1. 背景
IntelliJ IDEA、Navicat、Visual Studioなど、さまざまな開発ソフトウェアをよく使用しますが、これらのソフトウェアはすべて有料であるという特徴があります。通常、ソフトウェアを使用するには、ライセンスを購入し、このライセンスをソフトウェアに入力する必要があります。
公開キー暗号化には主に 3 つの用途があります。
- 暗号化とデコード
- デジタル署名
- 鍵交換
許可が必要です。単純な認証方法は次のとおりです。
- ライセンスファイル
- USBドングル
- ネットワーク認証
これらのサードパーティ ソフトウェア自体の価格は高くないため、ライセンス ファイルの使用が最も低コストの方法です。アクティベーション コードはわずか数十文字であり、ライセンス ファイルのようなものであると考えることもできます。指定されたファイルにこれらの文字を入れることはライセンス ファイルではありません。ライセンス認証の原理も非常に単純で、データが与えられた場合、どのデータが準拠しており、どのデータが準拠していないのかはメーカーのみが知っています。
2. 原則
デジタル署名: 偽造防止技術。公開キーによって検証できるデータは、秘密キーの所有者によって発行される必要があります。したがって、秘密キーが漏洩しない限り (通常はサーバー上に置かれます)、誰も秘密キーを偽造することはできません。
ライセンスの生成とは、サーバーが非対称暗号化秘密キーを使用してライセンスにデジタル署名し、クライアントが対応する公開キーを使用してライセンスのデジタル署名を検証し、検証に合格した後にライセンスの内容を検証することを意味します。
お客様のサーバーのハードウェア情報(MACアドレス、IPアドレス、CPUシリアル番号、マザーボードシリアル番号)に基づいて認可証明書を生成し、同時に認可証明書の有効時間と有効期限を設定できます。
ライセンス認証メカニズムの原理:
(1) 秘密鍵と公開鍵を含む鍵ペアを生成します。
(2) 認可者は秘密鍵を保管し、その秘密鍵を利用して使用期限やMACアドレスなどの認可情報のライセンス署名証明書を生成します。
(3) 公開キーはユーザーに与えられ、ライセンス署名証明書が使用条件を満たしているかどうかを確認するためにコード内で使用されます。