頻繁に更新される有料アドオンを含むプログラムがあります。ユーザーが特定のアドオンを使用できるようにするには、サブスクリプションを購入する必要があります (つまり、毎月無料で支払う)。
アドオンのサブスクリプション ベースのモデルを選択した主な理由は単純です。アドオンは頻繁に更新する必要があるため、更新は本当にセールス ポイントです。簡単に言えば、これらのアドオンは基本的に更新なしでは役に立たない.
ファイルのダウンロードに進みます。基本的には、有料ユーザーのみがこれらのアドオンを使用できるようにしたいと考えています。
通常、中央サーバーとデータベースを使用する場合、これはかなり簡単ですが、データベースを備えた中央サーバーを使用できない場合はそうではありません。(私はこれに影響を与えません。)
これは私が思いついた最も効率的なソリューションです。
- ユーザーはランダムな AES256 キーを取得します。
- 有料アドオンをランダムな AES256 キーで暗号化します。
- 次に、アドオンのキーをユーザー キーで暗号化します。
- すべてのユーザーとアドオンで上記を洗い流して繰り返し、1 つのモノリシック キーファイルを作成します。
- 暗号化されたアドオン ファイルとモノリシック キーファイルをファイル共有サービスにアップロードします。
上記のソリューションには、次の特徴があります。
- 以降のバージョンでキーを取り消す機能。(非常に重要)
- あいまいさによるセキュリティなし。誰でもアドオンまたはキーファイルをダウンロードできますが、AES256 をブルートフォースすることは計算上実行不可能であるため、キーを持っていない限り役に立ちません。
この解決策は問題ありませんが、ユーザーとアドオンの数が増えると問題が発生し始めます。
例:
- 10,000 人のユーザーと 100 個のアドオンがあります。
- 10,000 ユーザー × 100 アドオン = 1,000,000 キー
- 1,000,000 キー * キーあたり 300 バイト** = 300MB
** キー (64) + 初期化ベクトル (32) + キーごとのファイル形式のオーバーヘッド。これにより、ソフトウェアは復号化する正しいキーを見つけることができます。
最良の (不可能な) シナリオでも、96 MB のキーファイルになります。
この (未知の) 既知の問題に対する他の解決策はありますか? それらは何と呼ばれ、どこで使用されますか?