カテゴリ: ソフトウェア保護
Cloud FSB
自動ビルドシステムと継続的インテグレーション(CI)は、現代のソフトウェア開発プロセスの標準となっています。通常、これらプロセスの実行環境は、各開発者のニーズに応じたリソースの増減を可能にするため、仮想化されています。このようなビルド環境すべてのクラウド(例:Azure DevOps)への移行は、合理的にみえます。
しかし、開発プロセスにおける重要な要素の1つは、アプリケーションにおける実行ファイルの暗号化によるソフトウェア保護です。つまり、ソフトウェアのコンパイル後、実際のインストールパッケージの組立て前に行う必要があります。
CodeMeterの強みの1つとして、この暗号化とソフトウェアライセンスとの強固な結びつきが挙げられます。ソフトウェアの復号に必要となるPISK(Product Item Secret Key)と呼ばれる秘密鍵が、ライセンス自体に格納されています。従って、暗号化時にも同じPISKを把握していなければなりません。CodeMeterは、ソフトウェアベンダーのファームコード、選択したプロダクトコード、および秘密のマスターキーからPISKを計算します。割り出された秘密鍵は、Wibu-Systemsがソフトウェアベンダー専用のファームコードにより作成したCmDongle、ファームセキュリティボックス(FSB)に格納されます。
暗号化時に、201000といったプロダクトコードを入力すると、そのコードとファームコードの組み合わせからPISKが算出され、ソフトウェアの暗号化が完了します。同じプロダクトコードでライセンスを作成した場合には、同じPISKが計算され、ライセンスに格納されます。
結果はシンプルです。
- ライセンスが確かに存在する場合:ソフトウェアの復号が可能。
- ライセンスが存在しない場合:ソフトウェアの復号は不可能。
以上より、FSBがソフトウェアの暗号化に不可欠な理由がお分かりいただけたと思います。しかし、CmDongleをクラウド上の仮想マシンやDockerコンテナに接続するには、どうしたらよいのでしょうか。2022年中期にWibu-Systemsは、この難問を解決するCloud FSBというソリューションを発表しました。これはWibu-Systemsによってホストされ、仮想ドングルのような働きをします。ビルドシステムは、ポート80または443で接続します。
通常のCmDongleと同じく、CmCloudContainer内のマスターキーの入手は不可能です。FSBへのアクセス権限をもつシステムは、キーを使用することはできますが、盗むことはできません。
ビルドシステムがCloud FSBと接続する場合、強力なパスワードを含むクレデンシャルファイルが必要となります。これにより、セキュアに暗号化された接続が実現されます。CodeMeter Runtimeでは、Cloud FSBは通常のローカルCmDongleとして表示されます。CodeMeter Developer Portalを通じてCloud FSBへアクセスし、ローカルデバイスに直接接続、もしくはクレデンシャルファイルをダウンロードすることができます。後者のオプションは、ビルドシステムにとって合理的な選択となります。但し、ファイルは確実に安全かつセキュアに保管される必要があります。この方法については、Azure DevOpsのトピック「Use secure files」で詳しく説明されています。
FSBには2つの種類があります。1つは標準FSBで、ライセンス作成、AxProtectorのライセンスバージョンによるソフトウェアの暗号化が可能です。もう1つは、暗号化専用FSBです。その名の通り、ソフトウェアの暗号化は可能ですが、ライセンスの作成はできません。万が一、紛失や盗難にあった場合でも、前者に比べて被害が少なく済むため、自動ビルドシステムなどにおすすめです。紛失し、何者かがクレデンシャルファイルを不正利用した場合、CodeMeter Developer Portalを通じて簡単に無効化することができます。これにより、クレデンシャルファイルは、システム全体に展開できるよう新しく作り直されるため、混乱は最小限にとどまります。
KEYnote 44 – Edition Fall/Winter 2022