カテゴリ: ライセンシング
緊急時のライセンスオプション
2006年以来、Wibu-Systemsは、ライセンスの生成・配布・管理を可能にするツール、CodeMeter License Centralを提供してきました。発売からわずか1年、CodeMeter License Centralを手元でインストールできるオプションに加え、クラウド上のSaaSとしてターンキーソリューションの提供が必要だと分かりました。これこそが、Wibu Operating Services Team(略してWOPS)の始まりでした。
最初のデータセンターは、社内のサーバールームでした。それは、温度管理・RAIDストレージ・代替インターネット接続、すべてを備えていたためです。その数年後、処理能力の問題により、外部のデータセンターに移転することになりました。データのセキュリティと冗長性には、細心の注意を払っていました。しかし昨年、最悪の事態が発生しました。 ストレージや接続などに冗長性を持たせていたにもかかわらず、長期間にわたる障害が起きてしまったのです。
この出来事を契機に、本記事では、現在すでに運用されている事業継続計画と、Wibu-Systemsがこれまで行ってきた対策、および今後予定している対策についてまとめました。新規ユーザーにライセンスを販売する場合、既存ユーザーに別のシステムへと既存ライセンスを移行してもらう場合、そして、既存ライセンスに障害が発生した際に、本番システムを稼動させ続ける場合、この3つのユースケースを本稿では検討します。
組み込まれたセキュリティ
CodeMeterの大きな強みの1つは、CodeMeter Protection Suiteが、ライセンスに安全に保管されるキーを使用して、保護されるソフトウェアを暗号化するという点です。これにより、ライセンスと、保護されるソフトウェアとが、強固に紐付けられ、ソフトウェアは、適合するライセンスがある場合にのみ起動します。メモリダンプのような攻撃に対するセキュリティを強化するため、ソフトウェアの一部は、メモリ内で暗号化され、必要に応じて動的に復号されます。つまり、ライセンスは、アプリケーションの起動時のみならず、ユーザの操作状況に応じて周期的に必要となります。
エラーではなく「警告」
セキュリティの観点から、ライセンス無しでソフトウェアを実行した場合に、警告メッセージのみを表示する方法は推奨しません。一部の市場やユーザーにとっては有効なソリューションかもしれません。しかし、それは、ライセンシングを自主的なセルフチェックに頼ることになります。私自身、20年以上にわたり、CodeMeterの統合のサポートをユーザーに提供してきましたが、こうした経験は一度のみです。
この場合、基本的にCodeMeter Protection Suiteは使用できないか、「No-License Mode」にすれば使用可能です。ソフトウェアは、ライセンスに保管されたキーではなく、ソフトウェア内で難読化されたキーにより、暗号化されます。ライセンスが存在せずとも、ソフトウェアは常に起動します。CodeMeter Core APIにより、ライセンスの問い合わせが行われ、ライセンスが存在しない、または有効期限切れの場合は、警告が表示されます。
このオプションにより、前述の3つすべてのユースケースで、ソフトウェアを確実に動作させることができますが、その代わり、セキュリティは損なわれます。
起動時のみ確認
操作中でのライセンス失効を想定し、ユーザーから、特にCodeMeter Protection Suiteに関連して、「ソフトウェアの起動時のみ、ライセンス確認を行うことは可能か」、時折相談を受けることがあります。答えは「はい」です。起動時に、必要な暗号化データをすべて読み取り、キャッシュに保存するというオプションがあります。但し、当然ながら、必要なデータはすべてメモリ上に存在するため、メモリダンプに対する保護は極端に弱まります。
ただ、ソフトウェアの再起動は不可能である以上、こうしたユースケースは今やほとんど見ないように思います。悪意を持った人間が、「CmStickをメモリースティックと間違えて持ち出し、工場が操業停止に陥る」というケースは、メモリースティックがまだ高価であった時代には存在したかもしれませんが、現在ではほとんど聞かなくなりました。実際、私がCmActLicenseの「故障」を経験したのは、「High Availability」環境で仮想マシンを移動させた、その1回のみであり、特殊なバインディングの設定を施せば、故障を回避することが可能です。
従って、オプションとして「起動時の確認のみ」というのは事実上可能ですが、使用する機会は非常に限られ、セキュリティの低下につながります。
緊急ライセンス(オフライン)
よりセキュアなソリューションを求める場合、ライセンスは不可欠です。その中でも極めてシンプルなのが、ソフトウェアと共に提供される、「緊急ライセンス(オフライン)」です。これはつまり、特定のハードウェアに縛られないCmActLicenseであり、どのコンピューターでも使用できるライセンスです。CmActLicense内のライセンスがソフトウェアで有効な期間、そして、CmActLicenseファイルが1台のコンピューターにつき1回のみ使用できます。
ファイルを1度コンピューターにインポートすると、CmActLicenseがシステムに紐付けられます。ファイルを削除しても、CodeMeter Runtimeは、このファイルがすでに使用されていることを検知するため、新たなインポートを防ぐことができます。また、ライセンスには、日単位での使用期間が設定されます。ライセンスがソフトウェアで最初に使用された日からカウントダウンが始まり、決められた期間が経過すると、ライセンスは失効し、使用不可となります。
大抵の場合、緊急ライセンス(オフライン)には、ソフトウェアの全機能が盛り込まれており、場合によっては、今後リリース予定の機能も使えるよう設定されてることもあります。必要に応じて、再び使用可能な新規のライセンスファイルを作成することも可能です。
ただ、この機能は、セキュリティ上、安全性と可用性のトレードオフ関係にあることを意味します。悪意ある攻撃者も、期限付きのライセンスを取得できてしまうため、ライセンスが無い場合に比べ、攻撃の脅威が増すことは避けられない事実です。
しかしながら、ライセンス自体には制限があり、攻撃が検出された場合には、即座にブロックすることも可能です。また、その間、CodeMeter Protection Suiteでは、ソフトウェアの動的復号のためのすべての機能を使用することができます。但し残念ながら、いつでも新たな仮想マシンを構築し、すべてをリセットすることができてしまうため、仮想環境での使用は控えることを強くおすすめします。
緊急ドングル
私がおすすめするソリューションの1つが、この「緊急ドングル」です。先述の緊急ライセンス(オフライン)と同様、通常、すべてのライセンス、または、すべての機能へのアクセスを可能にするプロダクトコードが含まれます。オプションとして、ライセンスには、使用期間またはユニットカウンターを付けることもできます。使用期間は、緊急ライセンス(オフライン)と同じく、日単位で設定でき、その期間を過ぎると、ライセンスは失効します。ソフトウェア開発者は、これらのライセンスをリセットすることで、緊急ドングルの使用後も、エンドユーザーのフェイルセーフを確保することができます。
ユニットカウンターは、分単位で設定でき、ソフトウェアの使用時に定義した時間間隔でカウントダウンすることができます。例えば、10分間隔でカウントしたい場合、144回(6回/時間×24時間)に設定すれば、ソフトウェアは、丸1日、または半日を2回、もしくは任意の区切りで動作させることができます。こうすることで、緊急ドングルを複数回使用することができ、例えば、ソフトウェアの引き渡し時に、エンドユーザー側でテストをしてもらうことも可能になります。
セキュリティの観点から、緊急ドングルは優れたソリューションと言えます。取り扱いも非常に簡単です。但し、これは、緊急ドングルを既に所有しているエンドユーザーに限って適応されるため、新規に利用を開始する場合には、エンドユーザーの手元に届くまで時間を要します。
緊急クラウドコンテナ
緊急ドングルと同様に、「緊急クラウドコンテナ」を用意することも可能です。エンドユーザーにはまず、緊急クラウドコンテナへのアクセスデータを含むクレデンシャルファイルを配布します。緊急時には、このクレデンシャルファイルをシステム上にインポートすることで、緊急ライセンスが組込まれた仮想ドングルを即座に利用することができます。
セキュリティの面では、CmCloudContainerとCmDongleの緊急コンテナとしての役割に差はありません。しかし、CmCloudContainerは、インターネットへの接続が必須であるものの、配布までの時間は非常に短く、新規エンドユーザーにも最適なソリューションです。さらに、エンドユーザーのニーズに合わせてライセンスをカスタマイズし、使用後に直接、ライセンスを再設定することも可能です。
※説明を簡便化するため、緊急ドングルと同様のプロセスを実装し、CmCloudContainer(新規エンドユーザー向け)とCmDongle(オフライン向け)とを組み合わせて使用することを想定しています。
緊急ライセンス(オンライン)
CmDongleやCmCloudContainerと同様に、CmActLicenseも緊急コンテナとして使用することができます。事前にプログラムされた、最初の2つのコンテナとは異なり、CmActLicenseは、CodeMeter License Centralを介してオンデマンドで作成されます。ユーザーは、すべての機能に対してグローバルライセンスを適用するか、個々のエンドユーザーに合わせたライセンスを使用するか、選ぶことができます。
CodeMeter License Centralの本番システムでの障害を想定し、緊急ライセンス用のCodeMeter License Centralは、別のデータセンターにて完全に独立した状態で運用されます。後者のデータセンターは基本、Wibu-Systemsが提供しますが、ユーザー自身で運用することも可能です。
CodeMeter License Centralの本番システムと緊急システムとの接続で唯一必要となるのは、本番システム上の新規ライセンスまたは新規エンドユーザーに対して、緊急システム上の緊急ライセンスを自動で作成するルール設定です。このルールセットは、ユーザーの要件に合わせて設定することができます。さらに、本番システムがその時点で利用できない場合には、このインスタンスで、緊急ライセンスを手動で生成し、新規エンドユーザーへ提供することも可能です。
セキュリティに関して言えば、このソリューションは、標準的なCmActLicenseと同等のセキュリティレベルを有します。新規エンドユーザー、移行やライセンスの不具合など、すべてのユースケースに対応可能です。モニタリングツールを利用して、ライセンスの使用量を監視し、自動で、もしくはワークフローに従って、使用可能な緊急ライセンスを補充することができます。
再アクティベーション
ライセンスが紛失または破損した場合には、CodeMeter License Centralでの再アクティベーションという特別な方法があります。ユーザーは、エンドユーザーが、新しいデバイスにライセンスのコピーを作成できる範囲を指定します。エンドユーザーのライセンスの使用頻度を監視し、不正利用の疑いがある場合には、対処することもできます。
紛失または破損したライセンス(置き換えられたライセンス)は、CodeMeter License Centralにて記録され、更新時に、返却またはブロックされます。そのため、ソフトウェア内でライセンスの自動更新を適用すると便利です。
セキュリティの点で、このソリューションは、ライセンシングに使用されるCmContainerと同じ働きをもちます。前述の一時的な緊急ライセンスとは異なり、CodeMeter License Centralの本番システムがその時点で利用可能であれば、ライセンス障害に対する即時かつ持続可能なソリューションになります。
WOPSによる、冗長性の増加
2024年からは、WOPSによるホスティングにより、CodeMeter License Centralのホスティングサービス4つのうち2つに関して、さらに高い冗長性が提供されるようになります。コンピューター、ストレージ、接続といったローカルな冗長性に加え、CodeMeter License Centralのデータは、2つ目の別のデータセンターに複製されます。緊急時の切り替えは、即座に自動で行われ(High Availability System)、必要に応じて手動でも行うことができます(High Performance Edition)。
さまざまなパス
WOPSが運営するCodeMeter License Centralへの接続は、弊社のシステムの可用性だけでなく、そこまでのパスにも左右されます。例えば、ネームサーバーは、エンドユーザーが、lc.codemeter.comを入力する際に、正しいアドレスへと導く重要な役割を果たします。ネームサーバーは、Wibu-Systemsの管理下にはなく、インターネット上の様々なプロバイダーによる一般的なアドレス帳となります。
ここでも冗長性を持たせるため、すべてのシステムは、lc.codemeter.comとlc.licensecentral.deの両方で利用可能になっています。この2つのアドレスは、異なるプロバイダーに登録されているため、ここでも、冗長性が最大限、確保されます。
さらに、lc2.codemeter.comとlc2.licensecentral.deは、弊社のホスティングへの2つの代替エントリーポイントを提供しています。これらは、異なるアクセスポイントへの代替ルートとなります。
サマリー
15年以上前にホスティングサービスの提供を開始して以来、Wibu-Systemsでは、冗長性と事業継続性を重視し、2024年には、データセンターの増設やデータミラーリングなどを行い、絶えず改善を図っています。豊富な選択肢の中から、ユーザーとそのエンドユーザーに最適なオプションをご利用いただけます。
関連情報
- CmDongle:ソフトウェア認証用のUSBドングル
- CmActLicense:USB不要のソフトウェアライセンス
- CmCloudContainer:クラウドライセンス用のライセンスコンテナ
- CodeMeter License Central:ライセンスの作成・管理システム
- CodeMeter Protection Suite:CodeMeterの暗号化製品シリーズ
貴社の課題をCodeMeterで解決しませんか?
お気軽にお問合せください。製品説明および最適な使い方をご提案します。
お問合せ
KEYnote 47 – Edition Spring/Summer 2024