RPI4を顧客に試用版に渡す必要がありますが、コードの実行を100回に制限したり、30日(特定日)後に開始されないようにタイムアウトを設定したいと思います。 RPIにI2C-RTC DS3231をインストールしました。
確認しましたが、crontab
日付以降の実行を制限するために使用できるかどうかはわかりません。
いくつかのメモ
- ユーザーはPiにアクセスできません。 Piが起動すると、コードの実行が開始されます。
- このアプリケーションはインターネットアクセスを必要とせず、周辺でインターネットを使用することはできません。
エンドユーザーが特定の日以降に実行できる回数と実行できない回数を制限する方法はありますか?
答え1
あなたが尋ねる質問はUNIX / Linuxに限定されず、あなたのアプリケーションにのみ当てはまります。このアプリケーションはターンキーシステムの一部として提供されるため、柔軟性に優れています。
簡単ではないのは、言及していないPi関連の問題を処理する方法です。 SDカードにアクセスできる場合は、誰かがシステム上のすべてのファイルに対して不正な変更を加えることができます。これには、ルートに対応するアカウントの追加、ネットワークアクセスの有効化、評価タイムアウトコードのバイパスなどが含まれます。
この問題を解決するには、SDカードを取り外すことができない(接着!)、曖昧さを介してセキュリティを実装する、または暗号化/暗号化解除/トークン化サービスを提供するために、Piに追加のパッケージを追加する必要があります。
また、ライセンス期間をリモートで延長する方法も検討してください。特にデバイスにネットワークアクセスがない場合は、はい。ここでは解決策を提案しませんが、新しいライセンスファイルをアップロードできるアプリケーションの特別なメニューオプションかもしれません。
まず、顧客に使用回数を100回または1ヶ月に制限する契約に署名するようにしてください。
次に、技術的な解決策を見てください。たとえば、アプリケーションにライセンスファイルを実装します。
改ざんを防ぐために、最初のパッケージの一部としてそのライセンスファイルに次のものを含めることを検討してください。
- 終了日は、ファイル内の可能な最大値に設定する必要があります(3ヶ月前など)。
- ファイルに実行中のカウンターが必要です。= 0
- これら2つの値のファイルには「秘密ハッシュ」が必要です。これらの「秘密ハッシュ」には、アプリケーションに固有の秘密を含める必要があります。
アプリケーションが起動すると、そのルールは次のようになります。
- ファイルがない場合は実行しないでください
- ファイルに無効なデータ(日付/カウンタ値と「秘密ハッシュ」の不一致を含む)が含まれている場合は実行しないでください。
- ファイルに有効なデータが含まれているが有効期限または実行回数を超えた場合は実行しないでください。
- 実行カウンタが0の場合、有効期限を今日から1ヶ月に設定します。
- ランニングカウンターを増やす
- 「秘密ハッシュ」アップデート
答え2
この特定の問題に対するいくつかの解決策があります。この問題を解決する最もエレガントな方法は、アプリケーションでスクリプトを作成することです。このスクリプトは、何が起こっても実際のプログラム/コードを実行します。
SQLデータベースまたは同様のデータベースにすべての日付(現在の日付とプログラムの実行日)を記録できます。アイテムが100を超える場合、または最初の実行後30日を超える場合は、ここで確認を生成できます。顧客がアクティベーションキーを入力する必要があるか、再ロックを解除するために作成したアイテムを入力する必要があるエラーメッセージを生成できます。
これが最も企業的なアプローチになります。そして、このコードは再利用可能です。
乾杯