カテゴリ: ソフトウェア保護
CodeMeter vs ブロックチェーン
ドイツの連邦政府は最近、「ブロックチェーン戦略」をリリースしました。この戦略が新しい連邦IDまたは電子患者カードのITの成功になるかどうかについてはまだ判断がつかないままです。しかし確かなことが1つあります。ブロックチェーンは、連邦政治の動きの遅い世界でさえ注目されているほど誇大になっています。そのため、3DプリンターのIPなどのデジタル資産の所有者やソフトウェア開発者が、ブロックチェーンとその可能性について疑問を持っていることは不思議ではありません。
CodeMeterはブロックチェーン技術を使用していますか?
CodeMeterは、2002年の発売以来、数百万人のユーザーによって試行およびテストされたソフトウェアとデジタルコンテンツ用のDRMシステムです。比較すると、1991年以降、ブロックの暗号化保護に関する研究が進んでいましたが、ブロックチェーンは最近 になってから実用的で実行可能なテクノロジーとなりました。そのため、CodeMeterはブロックチェーンよりも前に使われていきているということです。また、関連する暗号化プロセスに依存し、いくつかの側面でミニブロックテクノロジーを使用します。両方のテクノロジーは並行して開発され、その起源からのいくつかの特徴を共有しています。
ブロックチェーンとは?
ブロックチェーンの背景にある特別なアイデアは、データ(すべてのデータ)が銀行の金庫のような1つの中心的な場所に保持されるのではなく、多くのコンピューターのいわゆる分散型台帳でインターネット全体に拡散できるということです。
チェーンのメンバーは、元帳にトランザクションを入力できます。チェーンの全リンク上のメンバー全員は同じブロックチェーンを持っている必要があるため、最終製品は変更できません。
ブロックチェーン内のデータは後で変更することができないため、本質的に偽造防止が可能です。
データは全メンバーにも表示され、ブロックチェーンが透過的になります。データを暗号化するオプションもありますが、これは標準的な方法ではありません。
どのようにしてコンセンサスを確立しますか?
非常に一般的なコンセンサスメソッドの1つは、「プルーフ・オブ・ワーク」と呼ばれています。 これは、一定の時間を必要とする暗号操作の解決に依存しています。ビットコインのような暗号通貨の場合、いわゆる「マイナー」がこの仕事をします。タスクが完了すると、新しいブロックがチェーンに追加されます。選択するブロックチェーンが複数ある場合は、長いチェーンが優先されます。 チェーン内の計算能力の50%以上を保有するマイナーは、理論上、チェーンを事後的に操作することが可能です。
暗号化タスクの解決は、コンピューティング集約型の課題です。さらに悪いことに、多くの採掘者が並行して作業し、先着順の者だけが新しいブロックを追加する権利を持つことになります。このタイプのコンセンサスは、設計上大量のエネルギーを浪費するため、環境の観点から非常に不安定な立場に立っています。
ライセンスのチェックにブロックチェーン?
ライセンシング目的でブロックチェーンを使用する方法を想像してみてください。これは、数千の発行元(Independent Software Vendors、またはISV)と数百万のユーザーに支持されているソリューションを備えたWibu-Systemsの専門分野です。
CodeMeterにブロックチェーンを使用してみましょう。ブロックチェーンは、すべてのISVに同一のコピーで保持されます。例えば、会社「A-CAD」は、会社「B-CAD」が作成したライセンスの数を確認できます。データが暗号化された形式で保持されている場合でもこれは良いアイデアではなく、チェーンの全メンバーが行うように、少なくとも周りで発生しているトランザクションの数を確認し、独自の結論を導き出します。すべてのISVとそのユーザーが維持し続けなければならない膨大な量のデータの問題を無視してみましょう。
このようなシナリオは行き詰ってしまいます。代わりに、ISVごとに1つのブロックチェーンがあるシナリオを考えてみましょう。ここでも、1人のエンドユーザー(たとえば、アーキテクトの "Tom Dick Associates")は、競合他社(アーキテクトの"Harry and Partners")が使用しているライセンスの数を確認できます。繰り返しにはなりますが、膨大な量のデータは禁止されます。
CodeMeterは、ライセンスを監視する正当な利益を持つISVによって保持される1つの中央データベースを使用します。彼らはユーザーのためにライセンスを作成し、CodeMeterによって暗号化されたライセンスを使用する権利(暗号鍵の形で)を各ユーザーに与えています。鍵は、その正当なユーザーによってのみ解読され、使用することができます。また、ライセンスは改ざんを防ぐために署名されています。ブロックチェーンの言葉を使えば、これらはまさにミニチュアのミニブロックと呼べるでしょう。この場合のコンセンサスはシンプルです。"ISVは常に正しい "ということです。
CodeMeter : ブロックチェーン 1:0
ソフトウェア保護のためのブロックチェーン?
ISVがライセンスモデルを実施するには、ソフトウェアにライセンスを確実かつ安全にチェックする方法が必要です。これを行うための最良の方法は暗号化です。アプリケーションまたはデジタルコンテンツは暗号化され、適切なライセンスを所有するユーザーのみがそれを復号するために必要なキーにアクセスできます。可能である場合は、解読されたソフトウェアまたはコンテンツは、ドングル、システムサービス、クラウドなどの同様に安全な環境でアクティブである必要があります。つまり、エンドユーザーはキーに直接アクセスできません。
これは、ソフトウェアおよびその他のコンテンツを暗号化するためのツールを標準として提供するCodeMeterのまさに屋台骨です。
CodeMeter : ブロックチェーン 2:0
明確な識別
ライセンスとソフトウェア保護のもう1つの重要な側面は、ライセンスを使用する資格のある人を正しく識別することです。CodeMeterは、CmDongle、CodeMeter Cloudのアカウント、またはユーザーのコンピューターに安全にバインドされたCmActLicenseを使用してこれを行います。このソフトウェアは、正当なユーザーがこれら3つのコンテナーのいずれかで適切なライセンスがある場合にのみ使用できます。
CodeMeter : ブロックチェーン 3:0
ライセンス使用状況の追跡
興味深いユースケースの1つは、ソフトウェアアプリケーションやその他のデジタル権利(例:特定の製品を3Dプリントする権利)が使用される頻度を追跡することです。ISVは、使用権を割り当て、ユーザーに使用料を請求できます。
上記のように、このような権利の割り当ては、CodeMeterの典型的な使用例です。一方、取引はどのように行われるのでしょうか?一旦想像していたCodeMeter Blockchainに戻ってみましょう。
2つの重要な疑問を考慮する必要があります。
「ユーザーが本当にBlockchainに取引を記録していると、どうやって確認できるのか?」
使用状況が記録され、課金された場合にのみ、ユーザーがソフトウェアや保護されたコンテンツにアクセスできるようにする適切な手段を講じる必要があるのです。CodeMeterでは、暗号化システムにおいて、保護と使用状況の追跡が本質的にリンクしています。
「ユーザーがオフラインの場合はどうなりますか?」
この場合、トランザクションは送信されず予約されません。この状況の中でISVには、ソフトウェアを使用できない(不満な顧客が出てくる可能性)か、それとも単に収益が失われたことを受け入れるかという選択肢で板挟みになってしまいます。回避策の1つは、ローカルブロックチェーンの維持と報告の遅延です。ただし、ローカルブロックチェーンは他のブロックによって再保護されないため、最新のブロックは操作なしで削除でき、分散型台帳に表示されます。
CodeMeterには、ライセンスを追跡するための2つのオプションがあります。一つ目は、ライセンス自体に組み込まれた改ざん防止カウンターを使用して、アクセスされた頻度を追跡することです。カウンターはオフラインでも機能し、後でISVに報告します。プリペイドライセンスが使用されている場合、単純なカウントダウンはその報告なしでも機能できます。
もう1つのオプションは、ブロックチェーンタイプのメソッドを使用してCodeMeterによって作成および保護されるログファイルです。
CodeMeter : ブロックチェーン 4:0
オフラインの作業
ブロックチェーンの本質的な要素は、そのデータが常に最新で台帳のメンバー間で重複していることです。これは、接続が常にオンラインであることを意味します。多くの産業環境にとって、これは契約違反となり得ます。
CodeMeterは、オフラインでライセンスを転送して使用する機会を提供します。これは、暗号化された更新ファイルとドングルによって実行できます。バックチャネルは、ファイル転送によって再び発生することがある後払いモデルにのみ必要です。
CodeMeter : ブロックチェーン 5:0
ライセンスの借用と転送
考慮しなければならない最後のユースケースは、ライセンスを貸与および借用する機能です。このためには、ライセンスをライセンスサーバーからローカルデバイスに転送する必要があります。この場合、ライセンスサーバーへの接続が確立されていなくても、ライセンスを使用できるようにする必要があります。一定の期間が経過すると、ライセンスはサーバーに戻されます。
そのために、CodeMeterは特別なミニブロックを転送します。ISVは、定義された制限付きのライセンスを作成します。これは、ライセンスサーバーによってユーザーがアクティベーションされます。
ISVがライセンスの借用を許可している場合、CodeMeterは、特に安全なCmContainerで、このブロックを別のコンピューターに転送するための特別なプロトコルを備えています。新しいブロックはライセンスサーバーによって署名され、ターゲットコンテナー用に暗号化されます。借用はライセンスサーバーの履歴に記録されるため、貸し出し期間が終了するとライセンスは自動的に元に戻ります。ライセンスが返却されると、ブロックも無効になります。
ブロックチェーンと比較して、CodeMeterで使用されるライセンスブロックは、ライセンスが安全に返された後に削減でき、履歴を削除できます。これにより、プロセスで使用されるデータの量と関連するマシンのパフォーマンスが最適なレベルに維持され、ソリューションがその需要に合わせて拡張されます。
CodeMeter : ブロックチェーン 6:0
結論
CodeMeterは、ソフトウェア保護とライセンシングの要件を念頭に置いて特別に調整されました。ライセンスを作成および管理する1つの中心的なエンティティ(ISV)があります。エンドユーザーが保持するデータの量は最小限に抑えられます。また、オフライン使用とオフライン転送は明示的なオプションです。ライセンスと保護は、暗号化プロセスから切り離せません。そして、ブロックチェーンのよく知られた方法のいくつかは、適切な場合に使用されます。
KEYnote 38 – Edition Fall 2019