以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.実施の形態
2.変形例
3.その他
<<1.実施の形態>>
まず、図1乃至図48を参照して、本技術の実施の形態について説明する。
<情報処理システム10の構成例>
図1は、本技術を適用した情報処理システム10の構成例を示している。
情報処理システム10は、サーバ11、クライアント12、及び、ネットワーク13を備える。クライアント12は、パーソナルコンピュータ(PC)21、リムーバブルメディア22、及び、電子機器23を備える。
サーバ11とPC21は、ネットワーク13を介して接続されており、相互に通信を行う。
サーバ11は、電子機器23で使用する機能のライセンスの提供及び管理、並びに、電子機器23の機能を実現するためのソフトウエアの提供等を行う。
PC21は、ネットワーク13を介してサーバ11と通信を行うことにより、サーバ11と各種のデータの授受を行う。例えば、PC21は、電子機器23で使用する機能のライセンスに関するデータ、並びに、電子機器23で使用するソフトウエア等の各種のデータをサーバ11から受信する。また、PC21は、電子機器23に関するデータ等の各種のデータをサーバ11に送信する。
リムーバブルメディア22は、磁気ディスク、光ディスク、光磁気ディスク、又は、半導体メモリ等からなり、PC21と電子機器23の間の各種のデータの授受に用いられる。
なお、以下、リムーバブルメディア22のことを単にメディア22とも称する。
電子機器23は、ケーブル等を介してPC21に接続され、PC21を介してネットワーク13に接続し、サーバ11と通信を行うことが可能である。また、電子機器23は、サーバ11から提供されるライセンスを、PC21又はメディア22を介してインストールすることにより、インストールしたライセンスに対応する機能の使用が可能になる。さらに、電子機器23は、必要に応じて、PC21又はメディア22を介して、サーバ11から提供されたライセンスをサーバ11に返却する。
なお、電子機器23の種類は特に限定されない。以下、主に電子機器23がカメラである場合を例に挙げて説明する。
また、サーバ11が提供するライセンスの対象となる機能の種類は、特に限定されない。例えば、必ずしもソフトウエアを用いた機能でなくてもよく、ハードウエアのみで実現される機能でもよい。
さらに、サーバ11が、ライセンスの対象となる機能を実現するためのソフトウエアも提供するようにしてもよい。この場合、当該機能のライセンスは、その機能を実現するためのソフトウエアのライセンスでもある。
また、図1では、図及び説明を分かりやすくするためにクライアント12を1つのみ図示しているが、実際には複数のクライアント12が設けられる。さらに、サーバ11も1つのみ図示しているが、サーバ11を複数設けるようにしてもよい。また、1つのクライアント12が、PC21、メディア22、及び、電子機器23のうち少なくとも1つを複数備えていてもよい。
<サーバ11の構成例>
図2は、サーバ11の構成例を示している。
サーバ11は、入力部101、制御部102、通信部103、出力部104、RTC(Real Time Clock)105、及び、記憶部106を備える。入力部101、制御部102、通信部103、出力部104、RTC105、及び、記憶部106は、バス121を介して相互に接続されている。
入力部101は、例えば、スイッチ、ボタン、キー、マイクロフォン、撮像素子等の入力機器を備え、各種のデータの入力に用いられる。入力部101は、入力されたデータを、バス121を介してサーバ11の各部に供給する。
制御部102は、例えば、CPU(Central Processing Unit)等のプロセッサを備え、サーバ11の各部の処理の制御を行う。
通信部103は、例えば、通信機器等を備え、ネットワーク13を介してPC21と通信を行う。なお、通信部103の通信方式は、特に限定されず、有線又は無線のいずれの通信方式であってもよい。また、例えば、通信部103が複数の通信方式に対応していてもよい。
出力部104は、例えば、ディスプレイ、スピーカ、照明装置、バイブレータ等の出力機器を備え、画像、音声、光、振動等により各種のデータの出力を行う。
RTC105は、サーバ11の電源をオフしても、バックアップ電池(不図示)等により稼働を続けるハードウエアクロックである。RTC105は、ユーザが日時(日付と時刻)を変更できないように管理されている。
記憶部106は、少なくとも不揮発性の記憶媒体を備え、サーバ11の処理に必要な各種のデータやソフトウエアを記憶する。
なお、以下、サーバ11の各部がバス121を介してデータの授受等を行う場合、バス121の記載を適宜省略する。例えば、制御部102と通信部103が、バス121を介してデータの授受を行う場合、単に、制御部102と通信部103がデータの授受を行うという。
<制御部102の機能の構成例>
図3は、サーバ11の制御部102の機能の構成例を示している。制御部102は、例えば、制御プログラムを実行することにより、ライセンス管理部151、データ生成部152、UI(ユーザインタフェース)制御部153、通信制御部154、及び、記憶制御部155を含む機能を実現する。
ライセンス管理部151は、電子機器23において使用する機能のライセンスの管理を行う。
データ生成部152は、PC21に送信する各種のデータを生成する。
UI制御部153は、PC21及び電子機器23におけるユーザインタフェースの制御を行う。例えば、UI制御部153は、PC21の画面に各種の情報を表示するための表示制御ファイルを生成し、PC21に送信することにより、PC21におけるユーザインタフェースを制御する。
通信制御部154は、通信部103による通信処理の制御を行う。また、通信制御部154は、PC21に送信するデータをサーバ11の各部から取得したり、PC21から受信したデータをサーバ11の各部に供給したりする。
記憶制御部155は、電子機器23において使用する機能のライセンスに関するデータ等の記憶部106への記憶を制御する。
<電子機器23の構成例>
図4は、電子機器23の構成例を示している。
電子機器23は、入力部201、機能実行部202、制御部203、通信部204、出力部205、RTC(Real Time Clock)206、記憶部207、及び、ドライブ208を備える。入力部201、機能実行部202、制御部203、通信部204、出力部205、RTC206、記憶部207、及び、ドライブ208は、バス221を介して相互に接続されている。
入力部201は、例えば、スイッチ、ボタン、キー、マイクロフォン、撮像素子等の入力機器を備え、各種のデータの入力に用いられる。入力部201は、入力されたデータを、バス221を介して電子機器23の各部に供給する。
機能実行部202は、電子機器23の機能を実行するための各種のハードウエア及びソフトウエアを備える。例えば、電子機器23がカメラである場合、機能実行部202は、レンズ、撮像素子等を備える。
制御部203は、例えば、CPU(Central Processing Unit)等のプロセッサを備え、電子機器23の各部の処理の制御を行う。
通信部204は、例えば、通信機器等を備え、PC21や図示せぬ他の電子機器(例えば、スマートフォン等)と通信を行う。なお、通信部204の通信方式は、特に限定されず、有線又は無線のいずれの通信方式であってもよい。また、例えば、通信部204が複数の通信方式に対応していてもよい。
出力部205は、例えば、ディスプレイ、スピーカ、照明装置、バイブレータ等の出力機器を備え、画像、音声、光、振動等により各種のデータの出力を行う。
RTC206は、電子機器23の電源をオフしても、バックアップ電池等により稼働を続けるハードウエアクロックである。RTC206は、ユーザが日時(日付と時刻)を変更できないように管理されている。
記憶部207は、少なくとも不揮発性の記憶媒体を備え、電子機器23の処理に必要な各種のデータやソフトウエアを記憶する。
ドライブ208は、メディア22を着脱可能であり、接続されたメディア22を駆動する。
なお、以下、電子機器23の各部がバス221を介してデータの授受等を行う場合、バス221の記載を適宜省略する。例えば、制御部203と通信部204が、バス221を介してデータの授受を行う場合、単に、制御部203と通信部204がデータの授受を行うという。
<制御部203の機能の構成例>
図5は、電子機器23の制御部203の機能の構成例を示している。制御部203は、例えば、制御プログラムを実行することにより、ライセンス管理部251、鍵生成部252、データ生成部253、UI(ユーザインタフェース)制御部254、通信制御部255、及び、記憶制御部256を含む機能を実現する。
ライセンス管理部251は、電子機器23において使用する機能のライセンスの管理を行う。
鍵生成部252は、電子機器23毎に異なる固有の秘密鍵である機器固有鍵を生成する。
データ生成部253は、PC21又はメディア22を介してサーバ11に送信する各種のデータを生成する。
UI制御部254は、出力部205を制御して、電子機器23におけるユーザインタフェースの制御を行う。
通信制御部255は、通信部204による通信処理の制御を行う。また、通信制御部255は、通信部204を介して外部に送信するデータを電子機器23の各部から取得したり、通信部204を介して外部から受信したデータを電子機器23の各部に供給したりする。
記憶制御部256は、電子機器23において使用する機能のライセンスに関するデータ等の記憶部207への記憶を制御する。
<情報処理システム10の処理の第1の実施の形態>
次に、図6乃至図37を参照して、情報処理システム10の処理の第1の実施の形態について説明する。
なお、この第1の実施の形態では、サブスクリプションかつフローティング方式により、電子機器23で使用する機能のライセンスがサーバ11から提供される。
<ライセンス取得処理>
まず、図6のフローチャートを参照して、クライアント12により実行されるライセンス取得処理について説明する。
ステップS1において、PC21は、機器情報取得用ファイルを要求する。
例えば、PC21は、ユーザの操作に従って、ネットワーク13を介してサーバ11にアクセスし、電子機器23で使用する機能のライセンスを取得するための画面を表示する。例えば、図7のウインドウ301がPC21の画面に表示される。
ウインドウ301は、機器情報欄301A及びライセンス情報欄301Bに分かれている。
機器情報欄301Aの左端には、電子機器23の画像及び型名が左右に並べて表示されている。
ライセンス情報欄301Bの左端には、ライセンスを取得する対象となる機能、及び、ライセンスの種類が示されている。この例では、4K画像の撮影機能のサブスクリプションラインセンスが取得対象であることが示されている。
なお、ユーザは、ライセンスを取得する際にライセンスの有効期間を選択する。例えば、30日間又は365日間の2種類の有効期間のライセンスが提供されており、ユーザは、その2種類の中から所望の有効期間のライセンスを選択する。
ライセンス情報欄301Bの右端には、インストールボタン302が表示されている。インストールボタン302が押下されると、例えば、図8のウインドウ311がPC21の画面に表示される。
ウインドウ311には、機器情報取得用ファイルをダウンロードし、メディア22に保存し、カメラ(電子機器23)にメディア22を入れるように促すメッセージ、及び、ダウンロードボタン312が表示されている。ダウンロードボタン312が押下されると、PC21は、ネットワーク13を介して、機器情報取得用ファイルをサーバ11に要求する。
これに対して、サーバ11は、後述する図13のステップS31において、ネットワーク13を介して、機器情報取得用ファイルをPC21に送信する。
ステップS2において、PC21は、サーバ11から送信された機器情報取得用ファイルを受信する。また、PC21は、例えばユーザの操作に従って、受信した機器情報取得用ファイルをメディア22に格納する。
ステップS3において、電子機器23は、機器情報取得ファイル内のコマンドを実行する。
具体的には、ユーザは、機器情報取得用ファイルが格納されているメディア22をPC21から取り外し、電子機器23のドライブ208に接続する。
ドライブ208は、メディア22に格納されている機器情報取得用ファイルを読み出し、制御部203に供給する。制御部203は、機器情報取得用ファイル内に含まれる機器情報取得用コマンドを実行する。これにより、機器情報の取得処理が開始される。
なお、例えば、ステップS1乃至ステップS3の処理を省略し、機器情報取得用コマンドを用いずに、ユーザが電子機器23を操作することにより、機器情報の取得処理が開始されるようにしてもよい。
ステップS4において、鍵生成部252は、機器固有鍵を生成済みであるか否かを判定する。鍵生成部252は、機器固有鍵が記憶部207に記憶されていない場合、機器固有鍵を生成済みでないと判定し、処理はステップS5に進む。
ステップS5において、鍵生成部252は、機器固有鍵を生成する。機器固有鍵の生成方法は、特に限定されない。記憶制御部256は、機器固有鍵を記憶部207に記憶させる。
すなわち、電子機器23は、工場出荷後に初めて機器情報ファイルを生成する前に、電子機器23に固有の秘密鍵である機器固有鍵を生成する。これにより、工場出荷時に機器固有鍵を生成し、電子機器23に格納する必要がなくなり、機器固有鍵の流出等のリスクが軽減される。また、例えば、電子機器23のファームウエアを変更する等により、機器固有鍵の生成方法や生成タイミング等を変更することができ、柔軟性が向上する。
その後、処理はステップS6に進む。
一方、ステップS4において、鍵生成部252は、機器固有鍵が記憶部207に記憶されている場合、機器固有鍵を生成済みであると判定し、ステップS5の処理はスキップされ、処理はステップS6に進む。
ステップS6において、データ生成部253は、現在のRTC206の日時をデバイスRTCに設定する。デバイスRTCは、機器情報ファイルを生成するときのRTC206の日時であって、ライセンスを要求するときの電子機器23のRTC206の日時を示す。また、デバイスRTCは、取得するライセンスの期限管理に用いられる基準日時となる。
ステップS7において、データ生成部253は、機器固有鍵をサーバ公開鍵で暗号化する。具体的には、データ生成部253は、機器固有鍵及びサーバ公開鍵を記憶部207から読み出す。なお、サーバ公開鍵は、サーバ11が保有するサーバ秘密鍵に対応する公開鍵であり、事前に電子機器23に配布されている。データ生成部253は、サーバ公開鍵を用いて機器固有鍵を暗号化する。これにより、機器固有鍵のセキュリティが確保され、機器固有鍵の改ざん、盗聴等が防止される。
ステップS8において、データ生成部253は、機器固有ID、デバイスRTC、及び、機器固有鍵を含む格納データを生成する。具体的には、データ生成部253は、機器固有IDを記憶部207から読み出す。機器固有IDは、各電子機器23に一意に割り当てられているIDであり、例えば、電子機器23の型名とシリアルナンバーを含む。データ生成部253は、機器固有ID、デバイスRTC、及び、暗号化された機器固有鍵を含む格納データを生成する。
ステップS9において、データ生成部253は、機器固有鍵を用いて格納データのハッシュ値を算出する。なお、ハッシュ値の算出に用いるハッシュ関数は、特に限定されない。
ステップS10において、データ生成部253は、格納データ及びハッシュ値を含む機器情報ファイルを生成する。これにより、機器固有鍵を用いて格納データのセキュリティが確保される。
この機器情報ファイルは、ライセンスの発行を要求するためのライセンス要求ファイルとして、サーバ11においてライセンスの発行に用いられる。
ステップS11において、データ生成部253は、ドライブ208を介して、機器情報ファイルをメディア22に格納する。
このとき、例えば、出力部205は、UI制御部254の制御の下に、図9のウインドウ321を表示する。ウインドウ321内には、機器情報ファイルを書き出した旨を伝えるメッセージ、及び、OKボタン322が表示されている。OKボタン322が押下されると、ウインドウ321が閉じる。
ステップS12において、PC21は、機器情報ファイルをサーバ11に送信する。
例えば、ユーザは、メディア22を電子機器23から取り外し、PC21に接続する。PC21は、例えば、図10のウインドウ331を画面に表示する。
ウインドウ331には、カメラ(電子機器23)から取得した機器情報ファイルのアップロードを促すメッセージ、及び、アップロードボタン332が表示されている。アップロードボタン332が押下されると、PC21は、機器情報ファイルをメディア22から読み出し、ネットワーク13を介してサーバ11に送信する。
これに対して、サーバ11は、後述する図13のステップS32において、機器情報ファイルを受信する。
ステップS13において、PC21は、ライセンス通信ファイルを取得するか否かを判定する。
サーバ11は、PC21から受信した機器情報ファイルが正当であると判定した場合、後述する図13のステップS34において、ネットワーク13を介して、ライセンスのインストールの実施を最終確認するための表示制御ファイルを送信する。
PC21は、表示制御ファイルに基づいて、図11のウインドウ341を画面に表示する。
ウインドウ341には、カメラ(電子機器23)の機器固有ID、及び、カメラへのライセンスのインストールの実施を確認するメッセージ、並びに、インストールボタン342が表示されている。インストールボタン342が押下されると、例えば、図12のウインドウ351がPC21の画面に表示される。
ウインドウ351には、ライセンス通信ファイルをダウンロードし、メディア22に保存し、カメラ(電子機器23)に入れるよう促すメッセージ、及び、ダウンロードボタン352が表示されている。そして、ダウンロードボタン352が押下されると、PC21は、ライセンス通信ファイルを取得すると判定し、ネットワーク13を介して、ライセンス通信ファイルの送信をサーバ11に要求する。その後、処理はステップS14に進む。
これに対して、サーバ11は、後述する図13のステップS40において、インストールキー等を含むライセンス通信ファイルを送信する。
ステップS14において、PC21は、ネットワーク13を介して、サーバ11からライセンス通信ファイルを受信する。
ステップS15において、PC21は、例えばユーザの操作に従って、ライセンス通信ファイルをメディア22に格納する。
その後、ライセンス取得処理は終了する。
一方、ステップS13において、PC21は、ライセンスのインストールの実施を最終確認するための表示制御ファイルを受信しなかった場合、又は、ライセンス通信ファイルの取得が指示されなかった場合、ライセンス通信ファイルを取得しないと判定する。その後、ステップS14及びステップS15の処理はスキップされ、ライセンス通信ファイルが取得されずに、ライセンス取得処理は終了する。
<ライセンス発行処理>
次に、図13のフローチャートを参照して、図6のクライアント12によるライセンス取得処理に対応して、サーバ11により実行されるライセンス発行処理について説明する。
なお、この処理は、例えば、上述した図6のステップS1において、サーバ11がPC21から機器情報取得用ファイルを要求されたとき開始される。
ステップS31において、サーバ11は、機器情報取得用ファイルを送信する。具体的には、データ生成部152は、機器情報取得用コマンドを含む機器情報取得用ファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、機器情報取得用ファイルをPC21に送信する。
なお、上述したように電子機器23の図6のステップS1乃至ステップS3の処理を省略することにより、このステップS31の処理を省略することができる。
ステップS32において、サーバ11は、機器情報ファイルを受信する。具体的には、通信制御部154は、通信部103を介して、上述した図6のステップS12の処理でPC21から送信された機器情報ファイルを受信する。
ステップS33において、ライセンス管理部151は、機器情報ファイルが正当であるか否かを判定する。具体的には、ライセンス管理部151は、機器情報ファイルに含まれる機器固有鍵の暗号化に用いられたサーバ公開鍵に対応するサーバ秘密鍵を記憶部106から読み出す。ライセンス管理部151は、読み出したサーバ秘密鍵を用いて機器固有鍵を復号する。
次に、ライセンス管理部151は、電子機器23と同じハッシュ関数、及び、復号した機器固有鍵を用いて、機器情報ファイルに含まれる格納データのハッシュ値を算出する。そして、ライセンス管理部151は、算出したハッシュ値が機器情報ファイル内のハッシュ値と一致する場合、機器情報ファイルが正当であると判定し、処理はステップS34に進む。
これにより、格納データ内の機器固有ID、デバイスRTC、及び、機器固有鍵の改ざん等が防止される。
ステップS34において、ライセンス管理部151は、ライセンス通信ファイルを送信するか否かを判定する。
具体的には、UI制御部153は、ライセンスのインストールの実施を最終確認するための表示制御ファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、PC21に表示制御ファイルを送信する。
そして、ライセンス管理部151は、上述した図6のステップS13において、PC21からライセンス通信ファイルの送信が要求された場合、ライセンス通信ファイルを送信すると判定し、処理はステップS35に進む。
ステップS35において、ライセンス管理部151は、インストールキーを生成する。
図14は、インストールキーのフォーマットの例を示している。
インストールキーは、機能ID、システム一意情報、機器固有ID、有効期限、及び、有効期間を含んでいる。
機能IDは、ライセンスの対象となる機能を識別するためのIDである。
システム一意情報は、サーバ11が生成する英数字からなる連番であり、インストールキー毎に異なる。
機器固有IDは、ライセンスを提供する対象となる電子機器23の機器固有IDであり、機器情報ファイルに含まれる電子機器23の機器固有IDが用いられる。
有効期限は、ライセンスが切れる日時を示し、例えば、年、月、日、時、分、秒で表される。また、有効期限は、機器情報ファイルに含まれるデバイスRTC、すなわち、電子機器23のRTC206を基準にして設定される。例えば、有効期限は、機器情報ファイル内のデバイスRTCに有効期間及び猶予時間を加えた値に設定される。
ここで、猶予時間は、電子機器23にライセンスをインストールするのに必要な時間を想定して設定される時間である。すなわち、電子機器23は、メディア22を介してPC21とデータの授受を行い、PC21がサーバ11と通信を行う。従って、電子機器23がサーバ11と直接通信を行う場合と比較して、ライセンスのインストールに時間を要する。そのため、実際のライセンスの有効期間に加えて、所定の猶予時間が加算される。
有効期間は、ライセンスの有効期間を示す。例えば、有効期間は、ユーザにより選択された有効期間を時間(hour)単位で表した値に設定される。
なお、複数の機能のライセンスを一度にインストールすることも可能であり、この場合、例えば、機能毎に複数のインストールキーが生成される。
ステップS36において、データ生成部152は、デバイスRTC、インストールキー、及び、ユーザIDを含む格納データを生成する。ユーザIDは、ライセンスの権利者であるユーザの固有のIDである。
なお、複数の機能のライセンスを一度にインストールする場合、各機能のインストールキーが格納データに格納される。
ステップS37において、データ生成部152は、機器固有鍵を用いて格納データのハッシュ値を算出する。すなわち、データ生成部152は、電子機器23と同じハッシュ関数、及び、機器情報ファイルに含まれる機器固有鍵を用いて、格納データのハッシュ値を算出する。
ステップS38において、データ生成部152は、格納データ及びハッシュ値を含むライセンス通信ファイルを生成する。具体的には、データ生成部152は、サーバ秘密鍵を用いてハッシュ値を暗号化することにより署名を生成する。そして、データ生成部152は、格納データ及び署名(暗号化したハッシュ値)を含むライセンス通信ファイルを生成する。これにより、機器固有鍵を用いて格納データのセキュリティが確保される。
なお、このライセンス通信ファイルは、電子機器23においてラインセンスのインストールに用いられるインストールファイルでもある。
ステップS39において、サーバ11は、ライセンス情報を記憶する。例えば、記憶制御部155は、現在のRTC105の日時、ユーザID、機器固有ID、機器固有鍵、インストールキー、デバイスRTC、並びに、ライセンスの有効期限、有効期間及び更新回数の組合せを含むライセンス情報を記憶部106に記憶させる。
なお、ライセンスの有効期限として、例えば、電子機器23のRTC206に基づく有効期限(以下、クライアント有効期限と称する)、及び、サーバ11のRTC105に基づく有効期限(以下、サーバ有効期限と称する)がライセンス情報に含まれる。クライアント有効期限は、インストールキーに含まれる有効期限と等しい。サーバ有効期限は、例えば、現在のRTC105の日時に有効期間及び猶予時間を加えた値に設定される。
また、ライセンスの更新回数は、初期値として0回に設定される。
さらに、現在のRTC105の日時とデバイスRTCとの差に基づいて、サーバ11のRTC105と電子機器23のRTC206のおおよそのズレが把握される。
また、複数の機能のライセンスが一度にインストールされる場合、例えば、ライセンス毎に異なるライセンス情報が生成され、記憶されるようにしてもよいし、全てのライセンスを含むライセンス情報が生成され、記憶されるようにしてもよい。
ステップS40において、通信部103は、通信制御部154の制御の下に、ライセンス通信ファイルをPC21に送信する。
その後、ライセンス発行処理は終了する。
一方、ステップS34において、ライセンス管理部151は、上述した図6のステップS13において、PC21からライセンス通信ファイルの送信が要求されていない場合、ライセンス通信ファイルを送信しないと判定し、ステップS35乃至ステップS40の処理はスキップされ、ライセンス発行処理は終了する。すなわち、インストールキーの生成、及び、ライセンス通信ファイルの送信は行われない。
また、ステップS33において、ライセンス管理部151は、算出したハッシュ値が機器情報ファイル内のハッシュ値と一致しない場合、機器情報ファイルが正当でないと判定し、ステップS34乃至ステップS40の処理はスキップされ、ライセンス発行処理は終了する。すなわち、インストールキーの生成、及び、ライセンス通信ファイルの送信は行われない。
<ライセンス開始処理>
次に、図15のフローチャートを参照して、電子機器23により実行されるライセンス開始処理について説明する。
例えば、ライセンス通信ファイルが格納されているメディア22が電子機器23のドライブ208に接続されたとき、出力部205は、例えば、UI制御部254の制御の下に、図16のウインドウ401を表示する。
ウインドウ401には、電子機器23の型名、機能の種類及びライセンス種別、並びに、その機能を有効にするか否かを確認するメッセージが表示されている。また、ウインドウ401には、YESボタン402及びNOボタン403が表示されている。そして、YESボタン402が押下された場合、ライセンス開始処理が開始される。一方、NOボタン403が押下された場合、ライセンス開始処理は開始されない。
ステップS61において、ライセンス管理部251は、ライセンス通信ファイルが正当であるか否かを判定する。具体的には、ライセンス管理部251は、ドライブ208を介して、メディア22からライセンス通信ファイルを読み出す。また、ライセンス管理部251は、機器固有鍵及びサーバ公開鍵を記憶部207から読み出す。
ライセンス管理部251は、ライセンス通信ファイルに含まれる署名を、サーバ公開鍵を用いて復号する。これにより、ライセンス通信ファイルに含まれる格納データのハッシュ値が得られる。また、ライセンス管理部251は、サーバ11と同じハッシュ関数及び機器固有鍵を用いて、ライセンス通信ファイルの格納データのハッシュ値を算出する。そして、ライセンス管理部251は、算出したハッシュ値がライセンス通信ファイル内のハッシュ値と一致する場合、ライセンス通信ファイルが正当であると判定し、処理はステップS62に進む。
これにより、格納データ内のデバイスRTC及びインストールキーの改ざん等が防止される。
ステップS62において、ライセンス管理部251は、過去にインストールしたインストールキーであるか否かを判定する。ライセンス管理部251は、ライセンス通信ファイルに含まれるインストールキーと一致するインストールキーが記憶部207に記憶されていない場合、過去にインストールしたインストールキーでないと判定し、処理はステップS63に進む。
これにより、過去にインストールしたインストールキーを用いてライセンスが二重にインストールされることが防止される。
ステップS63において、ライセンス管理部251は、インストールキー内の機器固有IDが自機のものと一致するか否かを判定する。ライセンス管理部251は、インストールキー内の機器固有IDが、記憶部207に記憶されている電子機器23の機器固有IDと一致する場合、インストールキー内の機器固有IDが自機のものと一致すると判定し、処理はステップS64に進む。
これにより、他の電子機器23用のインストールキーを用いてライセンスがインストールされることが防止される。
ステップS64において、ライセンス管理部251は、デバイスRTCが現在の日時以降であるか否かを判定する。ライセンス管理部251が、ライセンス通信ファイルに含まれるデバイスRTCが現在のRTC206の日時より前であると判定した場合、処理はステップS65に進む。
ステップS65において、ライセンス管理部251は、ライセンスの有効期限が切れているか否かを判定する。具体的には、ライセンス管理部251は、インストールキーの有効期限(クライアント有効期限)と現在のRTC206の日時を比較する。そして、ライセンス管理部251は、ライセンスの有効期限が現在のRTC206の日時より後である場合、ライセンスの有効期限が切れていないと判例し、処理はステップS66に進む。
ステップS66において、ライセンス管理部251は、デバイスRTCと現在の日時との間隔が猶予時間以上であるか否かを判定する。ライセンス管理部251が、デバイスRTCと現在のRTC206の日時とを比較し、両者の間隔が猶予時間未満であると判定した場合、処理はステップS67に進む。
これは、例えば、上述した図6のステップS6の処理でデバイスRTCが設定されてから猶予時間(例えば、1時間)以内に、電子機器23へのライセンスのインストールが行われた場合である。
ステップS67において、ライセンス管理部251は、ライセンスを有効化する。すなわち、ライセンス管理部251は、インストールキーによりライセンスが付与される機能を使用できる状態にする。
なお、ライセンス通信ファイルに複数の機能のインストールキーが含まれる場合、それらの機能が全て使用できる状態にされる。
また、当該機能を実現するソフトウエアは、予め電子機器23にインストールされていてもよいし、このときインストールされてもよい。
ステップS68において、電子機器23は、ライセンス情報を記憶する。記憶制御部256は、ユーザID、現在のRTC206の日時、インストールキー、並びに、ライセンスのクライアント有効期限、有効期間及び更新回数の組合せを含むライセンス情報を記憶部207に記憶させる。なお、この現在のRTC206の日時は、ライセンスの使用を開始した日時となる。また、ライセンスの更新回数は、初期値として0回に設定される。
また、複数の機能のライセンスが一度にインストールされた場合、例えば、ライセンス毎に異なるライセンス情報が生成され、記憶されるようにしてもよいし、全てのライセンスを含むライセンス情報が生成され、記憶されるようにしてもよい。
その後、ライセンス開始処理は終了する。
一方、ステップS66において、ライセンス管理部251が、デバイスRTCと現在のRTC206の日時との間隔が猶予時間以上であると判定した場合、処理はステップS69進む。
これは、例えば、上述した図6のステップS6の処理でデバイスRTCが設定されてから猶予時間(例えば、1時間)が経過した後に、電子機器23へのライセンスのインストールが行われた場合である。
また、ステップS65において、ライセンス管理部251は、ライセンスの有効期限が現在のRTC206の日時以前である場合、ライセンスの有効期限が切れていると判定し、処理はステップS69に進む。
これは、例えば、ライセンスの有効期限が切れた後に、電子機器23へのライセンスのインストールが行われた場合である。
ステップS69において、ライセンス再取得処理が実行され、その後、ライセンス管理処理は終了する。
なお、ライセンス再取得処理の詳細は、図17を参照して後述する。
一方、ステップS64において、デバイスRTCが現在のRTC206の日時以降であると判定された場合、ライセンス開始処理は終了する。
これは、例えば、デバイスRTCの改ざん、又は、RTC206の異常等が発生した場合が想定される。
また、ステップS63において、インストールキー内の機器固有IDが自機のものと一致しないと判定された場合、ライセンス開始処理は終了する。
これは、例えば、異なる電子機器23にメディア22を接続し、ライセンスをインストールしようとした場合、誤ったライセンス通信ファイルを受信した場合、又は、インストールキーが改ざんされた場合等が想定される。
さらに、ステップS62において、ライセンス管理部251は、ライセンス通信ファイルに含まれるインストールキーと一致するインストールキーが記憶部207に記憶されている場合、過去にインストールしたインストールキーであると判定し、ライセンス開始処理は終了する。
これは、以前インストールしたライセンスを再度インストールしようとした場合が想定される。
また、ステップS61において、ライセンス管理部251は、算出したハッシュ値がライセンス通信ファイル内のハッシュ値と一致しない場合、ライセンス通信ファイルが正当でないと判定し、ライセンス開始処理は終了する。
これは、ライセンス通信ファイルの改ざん等が行われた場合が想定される。
以上のようにして、サーバ11と電子機器23が直接通信を行わなくても、安全な状態で電子機器23にライセンスをインストールし、電子機器23の機能を使用可能な状態にすることができる。
また、ライセンスの有効期間に猶予時間が付加されることにより、サーバ11と電子機器23が直接通信を行わないことによりライセンスのインストールに時間を要したとしても、ライセンスを使用できる期間が短縮されることが防止される。
さらに、サーバ11と電子機器23が直接通信を行わなくても、サーバ11が把握するライセンスの有効期限(サーバ有効期限)と、実際のライセンスの有効期限(クライアント有効期限)とのズレが猶予時間内に抑えられる。そのため、例えば、適切なタイミングでライセンスの更新等のプロモーションを行うことができる。
<ライセンス再取得処理>
次に、図17のフローチャートを参照して、図15のステップS69のライセンス再取得処理の詳細について説明する。
ステップS101において、PC21は、ライセンス再発行用ファイルを要求する。
例えば、PC21は、ユーザの操作に従って、ネットワーク13を介してサーバ11にアクセスし、ライセンスの再発行を要求するための画面を表示する。例えば、図18のウインドウ501がPC21の画面に表示される。
ウインドウ501は、機器情報欄501A、ライセンス情報欄501B、及び、ライセンス詳細情報欄501Cに分かれている。
機器情報欄501Aの左端には、電子機器23の画像及び型名が左右に並べて表示されている。
ライセンス情報欄501Bの左端には、ライセンスを再発行する対象となる機能、及び、ライセンスの種類が示されている。この例では、4K画像の撮影機能のサブスクリプションラインセンスが再発行の対象であることが示されている。
ライセンス詳細情報欄501Cには、対象となる機能のライセンスの詳細な状態が表示されている。この例では、電子機器23の機器固有ID、現在のライセンスの状態、及び、ライセンスの有効期限が表示されている。なお、現在のライセンスの状態は、ライセンス通信ファイルをダウンロードした時点で、実際に電子機器23にインストールしたか否かに関わらず、インストール済み(Installed)となる。
ライセンス詳細情報欄501Cの右端には、再発行ボタン502が表示されている。再発行ボタン502が押下されると、ライセンスの再発行処理が開始される。例えば、再発行ボタン502が押下されると、PC21は、ネットワーク13を介して、ライセンス再発行用ファイルをサーバ11に要求する。
これに対して、サーバ11は、後述する図23のステップS131において、ネットワーク13を介して、ライセンス再発行用ファイルをPC21に送信する。
ステップS102において、PC21は、サーバ11から送信されたライセンス再発行用ファイルを受信する。また、PC21は、例えばユーザの操作に従って、受信したライセンス再発行用ファイルをメディア22に格納する。
このとき、例えば、図19のウインドウ511がPC21の画面に表示される。
ウインドウ511には、カメラ(電子機器23)で「再発行」ボタンを選択した後、取得した機器情報ファイルをアップロードするよう促すメッセージ、及び、アップロードボタン512が表示されている。
ステップS103において、電子機器23は、ライセンス再発行用ファイル内のコマンドを実行する。
具体的には、ユーザは、ライセンス再発行用ファイルが格納されているメディア22をPC21から取り外し、電子機器23のドライブ208に接続する。
ドライブ208は、メディア22に格納されているライセンス再発行用ファイルを読み出し、制御部203に供給する。制御部203は、ライセンス再発行用ファイル内に含まれるライセンス再発行用コマンドを実行する。
これにより、例えば、出力部205は、UI制御部254の制御の下に、「再発行」ボタンを含む画面を表示する。そして、「再発行」ボタンが押下されると、機器情報の取得処理が開始される。
なお、例えば、ステップS101乃至ステップS103の処理を省略し、ライセンス再発行用コマンドを用いずに、ユーザが電子機器23を操作することにより、機器情報の取得処理が開始されるようにしてもよい。
ステップS104において、図6のステップS6の処理と同様に、現在のRTC206の日時がデバイスRTCに設定される。
ステップS105において、図6のステップS7の処理と同様に、機器固有鍵がサーバ公開鍵で暗号化される。
ステップS106において、データ生成部253は、機器固有ID、デバイスRTC、機器固有鍵、及び、キャンセルしたインストールキーを含む格納データを生成する。具体的には、データ生成部253は、機器固有ID、及び、インストールをキャンセルしたライセンス用のインストールキー(キャンセルしたインストールキー)を記憶部207から読み出す。データ生成部253は、機器固有ID、デバイスRTC、暗号化された機器固有鍵、及び、キャンセルしたインストールキーを含む格納データを生成する。
ステップS107において、図6のステップS9の処理と同様に、機器固有鍵を用いて格納データのハッシュ値が算出される。
ステップS108において、図6のステップS10の処理と同様に、格納データ及びハッシュ値を含む機器情報ファイルが生成される。この機器情報ファイルは、ライセンスの再発行を要求するためのライセンス再要求ファイルとして、サーバ11においてライセンスの再発行に用いられる。
ステップS109において、図6のステップS11の処理と同様に、機器情報ファイルがメディア22に格納される。
ステップS110において、PC21は、機器情報ファイルをサーバ11に送信する。
例えば、ユーザは、メディア22を電子機器23から取り外し、PC21に接続する。そして、例えば、上述した図19のウインドウ511内のアップロードボタン512が押下されると、PC21は、機器情報ファイルをメディア22から読み出し、ネットワーク13を介して、サーバ11に送信する。
これに対して、サーバ11は、後述する図23のステップS132において、機器情報ファイルを受信する。そして、サーバ11は、機器情報ファイルが、キャンセルしたインストールキーを含み、かつ、正当であれば、ステップS134において、ネットワーク13を介して、ライセンスの再発行が可能である旨を通知する。
ステップS111において、PC21は、ライセンスの再発行を依頼するか否かを判定する。PC21は、例えば、サーバ11からライセンスの再発行が可能である旨が通知された場合、図20のウインドウ521を画面に表示する。
ウインドウ521には、インストールをキャンセルし、インストールキーの再発行を行う旨のメッセージ、及び、再発行ボタン522が表示されている。また、メッセージ内には、インストールをキャンセルするライセンスに関する情報が表示されている。ライセンスに関する情報は、例えば、電子機器23の型名、機能名、ライセンスの種類を含む。
そして、再発行ボタン522が押下されると、PC21は、ライセンスの再発行を依頼すると判定し、ネットワーク13を介して、サーバ11にライセンスの再発行を依頼する。その後、処理は、ステップS112に進む。
ステップS112において、PC21は、ライセンス通信ファイルを取得するか否かを判定する。
具体的には、サーバ11は、ライセンスの再発行が依頼されると、後述する図23のステップS136において、現在のライセンスのインストールキーを破棄した後、インストールキーの再発行が可能な旨を通知する表示制御ファイルをPC21に送信する。
これに対して、PC21は、例えば、図21のウインドウ531を画面に表示する。ウインドウ531には、ライセンスのインストールがキャンセルされ、再度インストールすることを促すメッセージ、及び、OKボタン532が表示されている。OKボタン532が押下されると、図22のウインドウ541がPC21の画面に表示される。
ウインドウ541は、図18のウインドウ501と同様に、機器情報欄541A、ライセンス情報欄541B、及び、ライセンス詳細情報欄541Cに分かれ、ウインドウ501とほぼ同様の表示内容である。ただし、再発行ボタン502が消え、インストールボタン542が、ライセンス情報欄501Bの右端に表示されている点が異なる。また、現在のライセンスの状態及び有効期限については、何も表示されていない点が異なる。
そして、インストールボタン542が押下されると、PC21は、ライセンス通信ファイルを取得すると判定し、ネットワーク13を介して、ライセンス通信ファイルの送信をサーバ11に要求する。その後、処理はステップS113に進む。
これに対して、サーバ11は、後述する図23のステップS143において、インストールキー等を含むライセンス通信ファイルを送信する。
ステップS113において、図6のステップS14の処理と同様に、ライセンス通信ファイルが受信される。
ステップS114において、図6のステップS15の処理と同様に、ライセンス通信ファイルがメディア22に格納される。
その後、ライセンス再取得処理は終了する。
<ライセンス再発行処理>
次に、図23のフローチャートを参照して、図17のクライアント12によるライセンス再取得処理に対応して、サーバ11により実行されるライセンス再発行処理について説明する。
なお、この処理は、例えば、上述した図17のステップS101において、サーバ11がPC21からライセンス再発行用ファイルを要求されたとき開始される。
ステップS131において、サーバ11は、ライセンス再発行用ファイルを送信する。具体的には、データ生成部152は、ライセンス再発行用コマンドを含むライセンス再発行用ファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、ライセンス再発行用ファイルをPC21に送信する。
なお、上述したように電子機器23の図17のステップS101乃至ステップS103の処理を省略することにより、このステップS131の処理は省略することができる。
ステップS132において、サーバ11は、機器情報ファイルを受信する。具体的には、通信制御部154は、通信部103を介して、上述した図17のステップS110の処理でPC21から送信された機器情報ファイルを受信する。
ステップS133において、図13のステップS33の処理と同様に、機器情報ファイルが正当であるか否かが判定される。機器情報ファイルが正当であると判定された場合、処理はステップS134に進む。
ステップS134において、ライセンス管理部151は、機器情報ファイルにキャンセルしたインストールキーが含まれるか否かを判定する。機器情報ファイルにキャンセルしたインストールキーが含まれると判定された場合、処理はステップS135に進む。このとき、通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、PC21にライセンスの再発行が可能である旨を通知する。
ステップS135において、ライセンス管理部151は、ライセンスの再発行が依頼されたか否かを判定する。ライセンス管理部151は、上述した図17のステップS111においてPC21からライセンスの再発行が依頼された場合、ライセンスの再発行が依頼されたと判定し、処理はステップS136に進む。
ステップS136において、ライセンス管理部151は、インストールキーを破棄する。例えば、ライセンス管理部151は、記憶部106に記憶されているライセンス情報のうち、機器情報ファイルに含まれるインストールキーを含むライセンス情報において、当該インストールキーをインストールがキャンセルされたインストールキーとして情報を更新する。
また、UI制御部153は、インストールキーの再発行が可能な旨を通知する表示制御ファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、PC21に表示制御ファイルを送信する。
ステップS137において、ライセンス管理部151は、ライセンス通信ファイルを送信するか否かを判定する。ライセンス管理部151は、上述した図17のステップS112において、PC21からライセンス通信ファイルの送信が要求された場合、ライセンス通信ファイルを送信すると判定し、処理はステップS138に進む。
ステップS138において、上述した図13のステップS35の処理と同様に、インストールキーが生成される。このとき、ステップS132の処理で受信した機器情報ファイルに含まれるデバイスRTCを基準にして、有効期限(クライアント有効期限)が設定される。すなわち、新たに取得したデバイスRTCに基づいて、ライセンスの有効期限が更新される。
その後、ステップS139乃至ステップS143において、上述した図13のステップS36乃至ステップS40と同様の処理が行われる。これにより、ステップS132において受信した機器情報ファイル内のデバイスRTC、及び、再生成されたインストールキーを含むライセンス通信ファイルが生成され、PC21に送信される。
その後、ライセンス再発行処理は終了する。
一方、ステップS137において、ライセンス管理部151は、上述した図17のステップS112において、PC21からライセンス通信ファイルの送信が要求されていない場合、ライセンス通信ファイルを送信しないと判定し、ステップS138乃至ステップS143の処理はスキップされ、ライセンス再発行処理は終了する。
すなわち、インストールキーの再生成、及び、ライセンス通信ファイルの送信は行われない。ただし、後で、改めてPC21から依頼することにより、サーバ11にインストールキーを再生成させ、再生成したインストールキーを含むライセンス通信ファイルを送信させることが可能である。
また、ステップS135において、ライセンス管理部151は、上述した図17のステップS111においてPC21からライセンスの再発行が依頼されなかった場合、ライセンスの再発行が依頼されなかったと判定し、ステップS136乃至ステップS143の処理はスキップされ、ライセンス再発行処理は終了する。すなわち、インストールキーの再生成、及び、ライセンス通信ファイルの送信は行われない。
さらに、ステップS134において、機器情報ファイルにキャンセルしたインストールキーが含まれていないと判定された場合、ステップS135乃至ステップS143の処理はスキップされ、ライセンス再発行処理は終了する。すなわち、インストールキーの再生成、及び、ライセンス通信ファイルの送信は行われない。
また、ステップS133において、機器情報ファイルが正当でないと判定された場合、ステップS134乃至ステップS143の処理はスキップされ、ライセンス発行処理は終了する。すなわち、インストールキーの再生成、及び、ライセンス通信ファイルの送信は行われない。
以上のようにして、サーバ11と電子機器23が直接通信を行わなくても、インストールをキャンセルしたライセンスの再発行を行い、安全な状態で電子機器23に再発行したライセンスをインストールし、電子機器23の機能を使用可能な状態にすることができる。
また、ライセンスの有効期限が新たなデバイスRTCに基づいて更新されるため、ライセンスを再発行することによりライセンスの有効期間が短縮されることが防止される。さらに、サーバ11のRTC105と電子機器23のRTC206の間にズレが生じていても、電子機器23のRTC206を用いて、再発行されたライセンスの期限管理を適切に行うことができる。
<ライセンス管理処理>
次に、図24のフローチャートを参照して、クライアント12により実行されるライセンス管理処理について説明する。
ステップS201において、ライセンス管理部251は、有効期限を過ぎたライセンスがあるか否かを判定する。
ライセンス管理部251は、例えば、電子機器23の電源がオンされたとき、電子機器23の使用が開始されたとき、又は、定期的に、記憶部207に記憶されているライセンス情報に基づいて、各ライセンスのクライアント有効期限をチェックする。そして、ライセンス管理部251は、クライアント有効期限が現在のRTC206の日時より前のライセンスがある場合、有効期限を過ぎたライセンスがあると判定し、処理はステップS202に進む。
或いは、例えば、ライセンス管理部251は、入力部201を介して、ライセンスが必要な機能を実行するための操作が行われた場合、記憶部207に記憶されているライセンス情報に基づいて、実行する機能のライセンスのクライアント有効期限をチェックする。そして、ライセンス管理部251は、そのライセンスのクライアント有効期限が現在のRTC206の日時より前である場合、有効期限を過ぎたライセンスがあると判定し、処理はステップS202に進む。
ステップS202において、ライセンス管理部251は、有効期限を過ぎたライセンスを一時停止する。すなわち、ライセンス管理部251は、有効期限を過ぎたライセンスに対応する機能を一時的に使用できない状態にする。
ここで、機能を一時的に使用できない状態にするとは、インストールキーを用いてライセンスを再インストールしなくても、後述するように延長コードを入力するだけで、機能を使用可能な状態に戻すことができる状態のことである。
その後、処理はステップS203に進む。
一方、ステップS201において、ライセンス管理部251は、記憶部207に記憶されているライセンス情報の中に、ライセンスの有効期限が現在のRTC206の日時より前のライセンスがない場合、有効期限を過ぎたライセンスがないと判定し、ステップS202の処理はスキップされ、処理はステップS203に進む。
ステップS203において、ライセンス管理部251は、延長コードの入力を行うか否かを判定する。例えば、ライセンス管理部251は、入力部201を介して延長コードを入力するための操作が行われた場合、延長コードの入力を行うと判定し、処理はステップS204に進む。
ステップS204において、出力部205は、UI制御部254の制御の下に、延長コードの入力画面を表示する。
例えば、後述するように、ライセンスの有効期限の所定の日数前以降に、ライセンスの決済が完了している場合、図25に示される内容のメールがユーザに届く。メールには、有効期限を迎える機能のライセンスを延長するための延長コードが記載されている。
一方、出力部205は、UI制御部254の制御の下に、図26のAのウインドウ601を表示する。
ウインドウ601には、電子機器23の機能のうち、ライセンスが機能の一覧が表示される。そして、カーソル602を用いて、ライセンスを更新する機能が選択されると、出力部205は、UI制御部254の制御の下に、図26のBのウインドウ611を表示する。
ウインドウ611には、延長コードの入力欄612及びOKボタン613が表示されている。
入力欄612には、3桁の延長コードが入力される。例えば、各桁の上下の三角の操作部が押下されると、各桁の数字が独立して増減する。そして、OKボタン613が押下されることにより、延長コードの入力が確定する。
なお、権利者が同じ(同じユーザIDに対応付けられており)、かつ、有効期限が同じライセンスが複数ある場合、1種類の延長コードを1回入力するだけで、それらの全てのライセンスが更新されるようにしてもよい。
例えば、図25及び図26は、機能A及び機能Bのライセンスの権利者及び有効期限が同じ場合の例を示している。この場合、例えば、ウインドウ601で機能A又は機能Bのいずれかが選択され、ウインドウ611で1種類の延長コードが1回入力されるだけで、機能A及び機能Bのライセンスがまとめて更新される。
なお、1つの電子機器23を複数のユーザで共有する場合、電子機器23で使用する機能のライセンスの権利者が異なるときがある。この場合、有効期限が同じライセンスが複数あっても、権利者が異なる場合には、各権利者のライセンス毎に延長コードが入力され、ライセンスの更新が行われる。
例えば、電子機器23をユーザAAAとユーザBBBの2人で共有している場合、図25のユーザAAA宛のメールとは別に、図27のユーザBBB宛のメールが届く。そして、図28に示されるように、ユーザBBBが権利を持つ機能Cのライセンスの延長コードは、ユーザAAAが権利を持つ機能A及び機能Bのライセンスの延長コードとは別に入力される。
なお、例えば、ステップS201において、有効期限を過ぎたライセンスがあると判定された場合、ステップS202の処理の後、ステップS203の判定処理を省略して、ステップS204の処理が実行されるようにしてもよい。これにより、有効期限を過ぎたライセンスがある場合、自動的に延長コードの入力画面が表示される。
ステップS205において、ライセンス管理部251は、正しい延長コードが入力されたか否かを判定する。
具体的には、ライセンス管理部251は、所定の方法により、正式な延長コードを生成する。例えば、ライセンス管理部251は、所定のハッシュ関数を用いて、電子機器23の機器固有鍵、更新対象となるライセンスのインストールキー、及び、ライセンスの更新回数のハッシュ値を算出する。
なお、更新対象となるライセンスが複数ある場合、それらのライセンスのインストールキーを全て含むデータのハッシュ値が算出される。また、ライセンスの更新回数は、更新対象となるライセンスのライセンス情報内の更新回数を1つ増やした値となる。
そして、ライセンス管理部251は、算出したハッシュ値を所定のアルゴリズムにより数値化し、数値化したハッシュ値の下3桁の数値を延長コードとする。
これにより、電子機器23(の機器固有鍵)、ライセンスのインストールキー、及び、ライセンスの更新回数の組み合わせにより、延長コードが略一意に定まる。例えば、同じ機能かつ有効期限のライセンスでも、インストール先の電子機器23が異なれば、延長コードが変化する。また、例えば、同じ電子機器23にインストールした同じ機能のライセンスでも、更新する毎に(更新回数により)、延長コードが変化する。
そして、ライセンス管理部251は、入力された延長コードが、生成した延長コードと一致しない場合、正しい延長コードが入力されなかったと判定し、処理はステップS206に進む。
ステップS206において、ライセンス管理部251は、延長コードを所定の回数間違えたか否かを判定する。まだ延長コードを所定の回数間違っていないと判定された場合、処理はステップS204に戻る。
その後、ステップS205において、正しい延長コードが入力されたと判定されるか、ステップS206において、延長コードを所定の回数間違えたと判定されるまで、ステップS204乃至ステップS206の処理が繰り返し実行される。
一方、ステップS204において、ライセンス管理部251は、入力された延長コードが、生成した延長コードと一致する場合、正しい延長コードが入力されたと判定し、処理はステップS207に進む。
ステップS207において、ライセンス管理部251は、延長コードが入力されたライセンスの有効期限を更新する。具体的には、ライセンス管理部251は、延長コードが入力されたライセンスのライセンス情報内の有効期限(クライアント有効期限)にライセンスの有効期間を加算することにより、有効期限を更新する。また、ライセンス管理部251は、ライセンス情報内の更新回数の値を1つ増やす。
ステップS208において、ライセンス管理部251は、延長コードが入力されたライセンスが一時停止されているか否かを判定する。延長コードが入力されたライセンスが一時停止されていると判定された場合、処理はステップS209に進む。
ステップS209において、ライセンス管理部251は、ライセンスを有効化する。すなわち、ライセンス管理部251は、延長コードが入力されたライセンスに対応する機能を使用可能な状態にする。
その後、処理はステップS211に進む。
一方、ステップS208において、延長コードが入力されたライセンスが有効化されていると判定された場合、ステップS209の処理はスキップされ、処理はステップS211に進む。
また、ステップS206において、延長コードを所定の回数間違えたと判定された場合、処理はステップS210に進む。
ステップS210において、ライセンス管理部251は、延長コードを間違えたライセンスを無効化する。すなわち、ライセンス管理部251は、延長コードを間違えたライセンスに対応する機能を使用できない状態にする。また、ライセンス管理部251は、インストールキーを用いてライセンスを再インストールしないと、当該機能を使用可能な状態に戻すことができない状態にする。
その後、処理はステップS211に進む。
一方、ステップS203において、延長コードの入力を行わないと判定された場合、ステップS204乃至ステップS210の処理はスキップされ、処理はステップS211に進む。
ステップS211において、ライセンス管理部251は、ライセンスの返却を行うか否かを判定する。例えば、ライセンス管理部251は、入力部201を介してライセンスを返却するための操作が行われた場合、ライセンスの返却を行うと判定し、処理はステップS212に進む。
ステップS212において、クライアント12は、ライセンス返却処理を実行し、処理はステップS213に進む。なお、ライセンス返却処理の詳細は、図29を参照して後述する。
一方、ステップS211において、ライセンスの返却を行わないと判定された場合、ステップS212の処理はスキップされ、処理はステップS213に進む。
ステップS213において、ライセンス管理部251は、RTC206が未設定状態になったか否かを判定する。RTC206が未設定状態になったと判定された場合、処理はステップS214に進む。
ステップS214において、ライセンス管理部251は、全てのライセンスを無効化する。すなわち、ライセンス管理部251は、RTC206が未設定状態になった場合、ライセンスの期限管理ができなくなるため、全てのライセンスに対応する機能を使用できない状態にする。
その後、処理はステップS1に戻り、ステップS1以降の処理が実行される。
一方、ステップS213において、RTC206が未設定状態になっていないと判定された場合、処理はステップS1に戻り、ステップS1以降の処理が実行される。
<ライセンス返却処理>
次に、図29のフローチャートを参照して、図24のステップS212のライセンス返却処理の詳細について説明する。
ステップS231において、PC21は、DeActivateリクエストファイルを要求する。
例えば、PC21は、ユーザの操作に従って、ネットワーク13を介してサーバ11にアクセスし、電子機器23で有効化されている機能のライセンスを返却するための画面を表示する。例えば、図30のウインドウ701がPC21の画面に表示される。
ウインドウ701は、機器情報欄701A、ライセンス情報欄701B、及び、ライセンス詳細情報欄701Cに分かれている。
機器情報欄701Aの左端には、電子機器23の画像及び型名が左右に並べて表示されている。
ライセンス情報欄701Bの左端には、ライセンスを返却する対象となる機能、及び、ライセンスの種類が示されている。この例では、4K画像の撮影機能のサブスクリプションラインセンスが再発行の対象であることが示されている。
ライセンス詳細情報欄701Cの左端には、ユーザが保有する電子機器23のうち、返却するライセンスに対応する機能を使用可能な電子機器23の機器固有IDが表示されている。
ライセンス詳細情報欄701Cの右端には、現在ラインセンスが有効化されている電子機器23に対して、DeActivateボタン702が表示されている。DeActivate702が押下されると、例えば、図31のウインドウ711がPC21の画面に表示される。
ウインドウ711には、DeActivateリクエストファイルをダウンロードし、メディア22に保存し、カメラ(電子機器23)にメディア22を入れるように促すメッセージ、及び、ダウンロードボタン712が表示されている。ダウンロードボタン712が押下されると、PC21は、ネットワーク13を介して、DeActivateリクエストファイルをサーバ11に要求する。
これに対して、サーバ11は、後述する図36のステップS261において、ネットワーク13を介して、DeActivateリクエストファイルをPC21に送信する。
ステップS232において、PC21は、サーバ11から送信されたDeActivateリクエストファイルを受信する。また、PC21は、例えばユーザの操作に従って、受信したDeActivateリクエストファイルをメディア22に格納する。
ステップS233において、電子機器23は、DeActivateリクエストファイル内のコマンドを実行する。
具体的には、ユーザは、DeActivateリクエストファイルが格納されているメディア22をPC21から取り外し、電子機器23のドライブ208に接続する。
ドライブ208は、メディア22に格納されているDeActivateリクエストファイルを読み出し、制御部203に供給する。制御部203は、DeActivateリクエストファイル内に含まれるDeActivateリクエストコマンドを実行する。これにより、出力部205は、例えば、UI制御部254の制御の下に、図32のウインドウ721を表示する。
ウインドウ721には、電子機器23で使用可能な機能のメニューが表示されている。この例では、4K、MPEG-HD、及び、High Frame Rateの3つの機能が表示されている。そのうち、4K及びMPEG-HDについては、現時点でライセンスが有効化されており、DeActivate可能であることが示されている。一方、High Frame Rateについては、グレイアウトされており、ライセンスが無効化されていることが示されている。
なお、例えば、ステップS231乃至ステップS233の処理を省略し、DeActivateリクエストコマンドを用いずに、ユーザが電子機器23を操作することにより、図32のウインドウ721を電子機器23に表示させ、ライセンス返却処理が開始されるようにしてもよい。
ステップS234において、ライセンス管理部251は、ライセンスを無効化する。
例えば、ユーザは、図32のウインドウ721において、カーソル722を用いてライセンスを返却する機能(DeActivateする機能)を選択する。そして、ライセンスを返却する機能の選択が確定されたとき、ライセンス管理部251は、その機能を使用できない状態にする。
ステップS235において、データ生成部253は、機器固有ID、及び、無効化したライセンスのインストールキーを含む格納データを生成する。具体的には、データ生成部253は、機器固有ID、及び、無効化したライセンスのインストールキーを記憶部207から読み出す。データ生成部253は、読み出した機器固有ID、及び、インストールキーを含む格納データを生成する。
ステップS236において、図6のステップS9の処理と同様に、機器固有鍵を用いて格納データのハッシュ値が算出される。
ステップS237において、データ生成部253は、格納データ及びハッシュ値を含むライセンス返却ファイルを生成する。
ステップS238において、データ生成部253は、ドライブ208を介して、ライセンス返却ファイルをメディア22に格納する。
ステップS239において、PC21は、ライセンス返却ファイルをサーバ11に送信する。
例えば、ユーザは、メディア22を電子機器23から取り外し、PC21に接続する。例えば、PC21は、図33のウインドウ731を画面に表示する。
ウインドウ731には、カメラ(電子機器23)から取得したライセンス返却ファイルのアップロードを促すメッセージ、及び、アップロードボタン732が表示されている。アップロードボタン732が押下されると、PC21は、ライセンス返却ファイルをメディア22から読み出し、ネットワーク13を介してサーバ11に送信する。
ステップS240において、PC21は、DeActivateが完了したか否かを判定する。PC21は、後述する図36のステップS265において、サーバ11から送信される、ライセンスのDeActivateが完了した旨を通知する表示制御ファイルを受信した場合、DeActivateが完了したと判定し、処理はステップS241に進む。
ステップS241において、PC21は、ライセンスの返却完了を通知する。例えば、PC21は、図34のウインドウ741を画面に表示する。
ウインドウ741には、DeActivateが完了し、返却したライセンスが別の電子機器23にインストール可能な旨を通知するメッセージ、及び、OKボタン742が表示されている。OKボタン742が押下されると、例えば、図35のウインドウ751がPC21の画面に表示される。
ウインドウ751は、図30のウインドウ701と同様に、機器情報欄751A、ライセンス情報欄751B、及び、ライセンス詳細情報欄751Cに分かれ、ウインドウ701とほぼ同様の表示内容である。ただし、DeActivateボタン702が消え、インストールボタン752が、ライセンス情報欄701Bの右端に表示されている点が異なる。
インストールボタン752が押下されると、図6を参照して上述したライセンス取得処理が開始される。これにより、例えば、返却したライセンスを他の電子機器23にインストールすることができる。
その後、ライセンス返却処理は終了する。
一方、ステップS240において、PC21は、サーバ11からライセンスのDeActivateが完了した旨を通知する表示制御ファイルを受信しなかった場合、DeActivateが完了しなかったと判定し、ステップS241の処理はスキップされ、ライセンス返却処理は終了する。
<ライセンス返却受付処理>
次に、図36のフローチャートを参照して、図29のクライアント12によるライセンス返却処理に対応してサーバ11により実行されるライセンス返却受付処理について説明する。
なお、この処理は、例えば、上述した図29のステップS231において、サーバ11がPC21からDeActivateリクエストファイルを要求されたとき開始される。
ステップS261において、サーバ11は、DeActivateリクエストファイルを送信する。具体的には、データ生成部152は、DeActivateリクエストファイルコマンドを含むDeActivateリクエストファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、DeActivateリクエストファイルをPC21に送信する。
なお、上述したように電子機器23の図29のステップS231乃至ステップS233の処理を省略することにより、このステップS261の処理を省略することができる。
ステップS262において、サーバ11は、ライセンス返却ファイルを受信する。具体的には、通信制御部154は、通信部103を介して、上述した図29のステップS239の処理でPC21から送信されたライセンス返却ファイルを受信する。
ステップS263において、ライセンス管理部151は、ライセンス返却ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致するか否かを判定する。具体的には、ライセンス管理部151は、記憶部106に記憶されているライセンス情報の中から、機器固有IDとインストールキーの組合せがライセンス返却ファイル内の機器固有IDとインストールキーの組合せと一致するライセンス情報を検索する。そして、ライセンス管理部151は、機器固有IDとインストールキーの組合せが一致するライセンス情報を検出した場合、ライセンス返却ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致すると判定し、処理はステップS264に進む。
ステップS264において、ライセンス管理部151は、ライセンス返却ファイルが正当であるか否かを判定する。具体的には、ライセンス管理部151は、ステップS263の処理で検出したライセンス情報に含まれる機器固有鍵を記憶部106から読み出す。
ライセンス管理部151は、電子機器23と同じハッシュ関数、及び、読み出した機器固有鍵を用いて、ライセンス返却ファイルに含まれる格納データのハッシュ値を算出する。そして、ライセンス管理部151は、算出したハッシュ値がライセンス返却ファイル内のハッシュ値と一致する場合、ライセンス返却ファイルが正当であると判定し、処理はステップS265に進む。
これにより、格納データ内の機器固有ID及びインストールキーの改ざん等が防止される。
また、これにより、ライセンス返却ファイル内のハッシュ値の算出に用いられた機器固有鍵、並びに、ライセンス返却ファイル内のインストールキー及び機器固有IDの組合せと、記憶部106に記憶されている機器固有鍵、インストールキー、及び、機器固有IDの組合せが一致することが保証される。
ステップS265において、ライセンス管理部151は、返却されたライセンスを使用可能な状態にする。例えば、ライセンス管理部151は、ステップS263の処理で検出したライセンス情報を、ライセンスが返却されたライセンス情報として更新する。また、ライセンス管理部151は、返却されたライセンスのインストールキーを新たに発行可能な状態にする。このようにして、ライセンスの返却が受け付けられる。
また、UI制御部153は、ライセンスのDeActivateが完了した旨を通知する表示制御ファイルを生成する。通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、PC21に表示制御ファイルを送信する。
その後、ライセンス返却受付処理は終了する。
一方、ステップS264において、ライセンス管理部151は、算出したハッシュ値がライセンス返却ファイル内のハッシュ値と一致しない場合、ライセンス返却ファイルが正当でないと判定し、ライセンスの返却が受け付けられずに、ライセンス返却処理は終了する。
また、ステップS263において、ライセンス管理部151は、機器固有IDとインストールキーの組合せが一致するライセンス情報を検出しなかった場合、ライセンス返却ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致しないと判定し、ライセンスの返却が受け付けられずに、ライセンス返却処理は終了する。
以上のようにして、サーバ11と電子機器23が直接通信を行わなくても、安全な状態で電子機器23からサーバ11にライセンスを返却し、ライセンスを他の電子機器23で使用可能な状態にすることができる。
また、メディア22及びPC21を介して、電子機器23からサーバ11にライセンス返却ファイルを送信するだけの一方向の処理でライセンスを返却することができ、ライセンスの返却に要する処理を軽減することができる。すなわち、複数の電子機器23でライセンスを共有する場合の利便性が向上する。
さらに、各電子機器23で異なる機器固有鍵が生成され、それぞれ異なる機器固有鍵により、各電子機器23とサーバ11との間の通信路のセキュリティが確保される。従って、仮に1つの電子機器23の機器固有鍵がハッキングされても、他の電子機器23に影響が及ぶことなく、他の電子機器23で安全にライセンスを共有することができる。
<ライセンス期限管理処理>
次に、図37のフローチャートを参照して、サーバ11により実行されるライセンス期限管理処理について説明する。
ステップS301において、ライセンス管理部151は、有効期限の所定の日数前になったライセンスがあるか否かを判定する。ライセンス管理部151は、記憶部106に記憶されているライセンス情報の中に、サーバ有効期限が現在のRTC105の日時から所定の日数前(例えば、5日前)までの範囲内のライセンスがある場合、有効期限の所定の日数前になったライセンスがあると判定し、処理はステップS302に進む。
ステップS302において、ライセンス管理部151は、決済済みであるか否かを判定する。ライセンス管理部151が、有効期限の所定の日数前になったライセンスがすでに決済済みであると判定した場合、処理はステップS303に進む。
ステップS303において、ライセンス管理部151は、延長コードを生成する。具体的には、ライセンス管理部151は、図24のステップS205の電子機器23と同様の方法により、有効期限の所定の日数前になったライセンスの延長コードを生成する。これにより、サーバ11と電子機器23が直接通信を行わなくても、電子機器23毎及び更新回数毎に異なり、サーバ11と電子機器23で共通の延長コードが生成される。
ステップS304において、サーバ11は、延長コードをメールで送信する。具体的には、通信部103は、通信制御部154の制御の下に、有効期限を更新するライセンスの権利者であるユーザに、上述した図25又は図27に示されるような延長コードを含むメールを送信する。
なお、電子機器23において延長コードを入力できる期間は、例えば、延長前のライセンスの有効期限の所定の日数前から延長後のライセンスの有効期限までとなる。例えば、延長コードを事前に入力できる期間を5日間とし、延長前のライセンスの有効期限が3月31日で、延長後のライセンスの有効期限が4月30日の場合、延長コードの入力可能期間は、3月27日から4月30日までの期間となる。なお、3月27日から3月31日までの期間は、3月31日までの有効期限の延長コード、及び、4月30日までの有効期限の延長コードの両方を入力することが可能である。
ステップS305において、ライセンス管理部151は、ライセンスの有効期限を更新する。具体的には、ライセンス管理部151は、更新対象となるライセンスのライセンス情報内のサーバ有効期限及びクライアント有効期限にライセンスの有効期間を加算することにより、有効期限を更新する。また、ライセンス管理部151は、ライセンス情報内の更新回数の値を1つ増やす。
その後、処理はステップS306に進む。
一方、ステップS302において、決済済みでないと判定された場合、ステップS303乃至ステップS305の処理はスキップされ、延長コードのメール送信が行われずに、処理はステップS306に進む。
また、ステップS301において、有効期限の所定の日数前になったライセンスがないと判定された場合、ステップS302乃至ステップS305の処理はスキップされ、処理はステップS306に進む。
ステップS306において、ライセンス管理部151は、有効期限を過ぎたライセンスがあるか否かを判定する。ライセンス管理部151は、記憶部106に記憶されているライセンス情報の中に、サーバ有効期限が現在のRTC105の日時より前のライセンスがある場合、有効期限を過ぎたライセンスがあると判定し、処理はステップS307に進む。
ステップS307において、ライセンス管理部151は、ライセンスを停止する。例えば、ライセンス管理部151は、有効期限を過ぎたライセンスのライセンス情報内のサーバ有効期限及びクライアント有効期限を期限切れに設定する。
その後、処理はステップS301に戻り、ステップS301以降の処理が実行される。
一方、ステップS306において、有効期限を過ぎたライセンスがないと判定された場合、処理はステップS301に戻り、ステップS301以降の処理が実行される。
以上のようにして、サーバ11が提供し、電子機器23で使用するライセンスの期限管理を適切に行うことができる。例えば、電子機器23は、サーバ11と直接通信しなくても、サーバ11と同様の方法により共通の延長コードを生成し、生成した延長コードにより認証を行うことにより、ライセンスを更新(ライセンスの有効期限を延長)することができる。また、サーバ11と電子機器23が直接通信しなくても、有効期限を過ぎたライセンスを電子機器23において無効化することができる。このように、ライセンスの期限管理を電子機器23内で完結させることができる。
<ライセンスの有効期間の変更について>
上述したように、ユーザは、ライセンスの取得時に複数の種類の有効期間の中から所望のものを選択することが可能である。そこで、例えば、ユーザが、ライセンスの有効期間を途中で変更できるようにしてもよい。この場合、ライセンスの更新時だけでなく、ライセンスの有効期間中に有効期間を変更できるようにしてもよい。
以下、ライセンスの有効期間が30日と365日の2種類の場合に、有効期間が30日のライセンス(以下、30日ライセンスと称する)の20日目まで経過した時点で、有効期間が365日のライセンス(以下、365日ライセンス)に変更する場合の例について説明する。
この場合、例えば、365日ライセンスの開始日を、30日ライセンスの終了後に設定することが考えられる。この場合、30日ライセンス及び365日ライセンスの両方がフルに使用されるため、365日ライセンスの料金が、そのままユーザに請求される。また、この場合、365日ライセンスの有効期限は、30日ライセンスの最終日から365日後に設定される。
また、例えば、365日ライセンスの開始日を、365日ライセンスへの変更の申請日の翌日に設定することが考えられる。この場合、例えば、365日ライセンスの料金から30日ライセンスの残り10日分の料金を差し引いた料金が、ユーザに請求される。また、この場合、365日ライセンスの有効期限は、申請日から365日後に設定される。
さらに、例えば、365日ライセンスの開始日を30日ライセンスの開始日に設定することが考えられる。すなわち、この場合、30日ライセンスが365日ライセンスに吸収される。この場合、例えば、365日ライセンスの料金から30日ライセンスの料金を差し引いた料金が、ユーザに請求される。また、この場合、365日ライセンスの有効期限は、30日ライセンスの開始日から364日後に設定される。
なお、例えば、365日ライセンスから30日ライセンスに変更するように、有効期間を短くする方向の変更は、基本的に禁止される。
また、上述したように、同じユーザIDに対応付けられているライセンスのうち、有効期限が同じライセンスは、1つの延長コードを入力するだけで、更新が可能である。従って、同じユーザが、異なる日にライセンスを申し込んだり、途中で有効期間を変更したりした場合、できる限り、ライセンスの有効期限を合わせるようにすることが望ましい。また、ライセンスの有効期限を合わせるために、ライセンスの有効期間を短くした場合、例えば、短くなった分だけ料金が割引される。
<情報処理システム10の処理の第2の実施の形態>
次に、図38乃至図48を参照して、情報処理システムの処理の第2の実施の形態について説明する。この第2の実施の形態では、第1の実施の形態と比較して、主にライセンスの有効期限の更新方法が異なる。より具体的には、第1の実施の形態では、ユーザがライセンスを更新したい場合に更新処理(延長コードの入力)を行うようにしたが、第2の実施の形態では、基本的にライセンスが自動更新され、ユーザがライセンスを解約したい場合に解約処理を行うようにする。
なお、この第2の実施の形態では、電子機器23が、ケーブル等によりPC21に接続され、PC21及びネットワーク13を介してサーバ11と直接通信を行う場合について説明する。
<ライセンス取得処理>
まず、図38のフローチャートを参照して、クライアント12により実行されるライセンス取得処理について説明する。
なお、この処理は、例えば、電子機器23の入力部201又はPC21が操作され、電子機器23の所定の機能のライセンスの取得の指示が入力されたとき開始される。
ステップS401乃至ステップS407において、図6のステップS4乃至ステップS10と同様の処理が実行される。
ステップS408において、通信部204は、通信制御部255の制御の下に、PC21及びネットワーク13を介して、機器情報ファイルをサーバ11に送信する。
ステップS409において、通信制御部255は、ライセンス通信ファイルを受信したか否かを判定する。
具体的には、サーバ11は、後述する図41のステップS461において、機器情報ファイルを受信し、機器情報が正当であると判定した場合、ステップS468において、ネットワーク13を介して、ライセンス通信ファイルを送信する。
そして、通信制御部255が、PC21及び通信部204を介して、ライセンス通信ファイルを受信したと判定した場合、処理はステップS410に進む。
ステップS410において、電子機器23は、ライセンスを有効化するか否かを判定する。
例えば、出力部205は、UI制御部254の制御の下に、図39のウインドウ801を表示する。
ウインドウ801には、電子機器23の型名、機能の種類及びライセンス種別、並びに、その機能を有効にするか否かを確認するメッセージが表示されている。また、ウインドウ401には、YESボタン402及びNOボタン403が表示されている。そして、ライセンス管理部251は、YESボタン402が押下された場合、ライセンスを有効化すると判定し、NOボタン403が押下された場合、ライセンスを有効化しないと判定する。ライセンスを有効化すると判定された場合、処理はステップS411に進む。
ステップS411において、電子機器23は、ライセンス開始処理を実行し、ライセンス取得処理は終了する。ここで、図40のフローチャートを参照して、ライセンス開始処理の詳細について説明する。
ステップS431において、図15のステップS61の処理と同様に、ライセンス通信ファイルが正当であるか否かが判定される。ライセンス通信ファイルが正当であると判定された場合、処理はステップS432に進む。
ステップS432において、図15のステップS62の処理と同様に、過去にインストールしたインストールキーであるか否かが判定される。過去にインストールしたインストールキーでないと判定された場合、処理はステップS433に進む。
ステップS433において、図15のステップS63の処理と同様に、インストールキー内の機器固有IDが自機のものと一致するか否かが判定される。インストールキー内の機器固有IDが自機のものと一致すると判定された場合、処理はステップS434に進む。
ステップS434において、図15のステップS67の処理と同様に、ライセンスが有効化される。
ステップS435において、電子機器23は、ライセンス情報を記憶する。具体的には、ライセンス管理部251は、デバイスRTCにライセンスの有効期間を加算することにより、ライセンスの有効期限(クライアント有効期限)を算出する。
なお、ライセンスの有効期間は、第1の実施の形態と同様に、ライセンスを取得する際に、複数の種類(例えば、30日間又は365日間)の中から選択される。
記憶制御部256は、現在のRTC206の日時、インストールキー、並びに、ライセンスのクライアント有効期限、有効期間、及び、確認日時を含むライセンス情報を記憶部207に記憶させる。
なお、この現在のRTC206の日時は、ライセンスの使用を開始した日時となる。また、ライセンスの確認日時は、最後にライセンスの継続を確認した日時(ライセンスを継続して使用することを確認した日時)を示し、初期値としてデバイスRTCが設定される。
その後、ライセンス開始処理は終了する。
一方、ステップS431において、ライセンス通信ファイルが正当でないと判定された場合、ステップS432において、過去にインストールしたインストールキーであると判定された場合、又は、ステップS433において、インストールキー内の機器固有IDが自機のものと一致しないと判定された場合、ライセンスは有効化されずに、ライセンス開始処理は終了する。
図38に戻り、一方、ステップS409において、ライセンス通信ファイルを受信していないと判定された場合、又は、ステップS410において、ライセンスを有効化しないと判定された場合、ライセンス開始処理は行われずに、ライセンス取得処理は終了する。
<ライセンス発行処理>
次に、図41のフローチャートを参照して、図38のクライアント12によるライセンス取得処理に対応して、サーバ11により実行されるライセンス発行処理について説明する。
ステップS461において、上述した図13のステップS32の処理と同様に、機器情報ファイルが受信される。
ステップS462において、図13のステップS33の処理と同様に、機器情報ファイルが正当であるか否かが判定される。機器情報ファイルが正当であると判定された場合、処理はステップS463に進む。
ステップS463において、ライセンス管理部151は、インストールキーを生成する。
図42は、インストールキーのフォーマットの例を示している。このインストールキーは、機能ID、システム一意情報、及び、機器固有IDを含んでいる。すなわち、このインストールキーは、図14のインストールキーと比較して、ライセンスの有効期限及び有効期間を含まない点が異なる。
ステップS464において、データ生成部152は、デバイスRTC及びインストールキーを含む格納データを生成する。
ステップS465及びステップS466において、図13のステップS37及びステップS38と同様の処理が実行される。
ステップS467において、サーバ11は、ライセンス情報を記憶する。例えば、記憶制御部155は、現在のRTC105の日時、機器固有ID、機器固有鍵、インストールキー、並びに、ライセンスのサーバ有効期限、有効期間、及び、確認日時の組合せを含むライセンス情報を記憶部106に記憶させる。
なお、ライセンスのサーバ有効期限は、現在のRTC105の日時にライセンスの有効期間を加算した日時に設定される。また、ライセンスの確認日時は、サーバ11のRTC105に基づく日時(以下、サーバ確認日時とも称する)と電子機器23のRTC206に基づく日時(以下、クライアント確認日時とも称する)の2種類が設定される。例えば、サーバ確認日時には、現在のRTC105の日時が設定され、クライアント確認日時には、デバイスRTCが設定される。なお、電子機器23のライセンス情報の確認日時は、電子機器23のRTC206に基づくため、クライアント確認日時となる。
ステップS468において、図13のステップS40の処理と同様に、ライセンス通信ファイルが送信され、ライセンス発行処理は終了する。
一方、ステップS462において、機器情報ファイルが正当でないと判定された場合、ステップS463乃至ステップS468の処理はスキップされ、ライセンス発行処理は終了する。
<ライセンス管理処理>
次に、図43のフローチャートを参照して、クライアント12により実行されるライセンス管理処理について説明する。
ステップS501において、ライセンス管理部251は、ライセンスの確認を行うか否かを判定する。例えば、ライセンス管理部251は、電子機器23の入力部201又はPC21が操作され、電子機器23の所定の機能のライセンスの確認の指示が入力されたとき、ライセンスの確認を行うと判定し、処理はステップS502に進む。或いは、例えば、ライセンス管理部251は、ケーブル等により電子機器23がPC21に接続され、PC21及びネットワーク13を介してサーバ11と通信を開始した場合、ライセンスの確認を行うと判定し、処理はステップS502に進む。
ステップS502において、クライアント12は、ライセンス確認処理を実行する。ここで、図44のフローチャートを参照して、ライセンス確認処理の詳細について説明する。
ステップS531において、図6のステップS6の処理と同様に、現在のRTC206の日時がデバイスRTCに設定される。
ステップS532において、データ生成部253は、機器固有ID、デバイスRTC、及び、確認するライセンスのインストールキーを含む格納データを生成する。具体的には、データ生成部253は、機器固有ID、及び、確認するライセンスのインストールキーを記憶部207から読み出す。データ生成部253は、読み出した機器固有ID、デバイスRTC、及び、インストールキーを含む格納データを生成する。
ステップS533において、図6のステップS9の処理と同様に、機器固有鍵を用いて格納データのハッシュ値が算出される。
ステップS534において、データ生成部253は、格納データ及びハッシュ値を含むライセンス確認ファイルを生成する。このライセンス確認ファイルは、主に電子機器23におけるライセンスの確認日時(デバイスRTC)の通知に用いられる。
ステップS535において、通信部204は、通信制御部255の制御の下に、PC21及びネットワーク13を介して、ライセンス確認ファイルをサーバ11に送信する。
これに対して、サーバ11は、後述する図45のステップS561において、ライセンス確認ファイルを受信する。
ステップS536において、ライセンス管理部251は、ライセンスの確認が完了したか否かを判定する。ライセンス管理部251は、後述する図45のステップS566において、ネットワーク13、PC21、及び、通信部204を介して、サーバ11からライセンスの確認の完了が通知された場合、ライセンスの確認が完了したと判定し、処理はステップS537に進む。
ステップS537において、ライセンス管理部251は、ライセンスの確認日時を更新する。具体的には、ライセンス管理部251は、記憶部207に記憶されている、確認を行ったライセンスのライセンス情報の確認日時(クライアント確認日時)を、ステップS531の処理で設定したデバイスRTCに更新する。
その後、ライセンス確認処理は終了する。
一方、ステップS536において、ライセンス管理部251は、サーバ11からライセンスの確認の完了が通知されなかった場合、ライセンスの確認が完了しなかったと判定し、ステップS537の処理はスキップされ、ライセンス確認処理は終了する。
<ライセンス確認受付処理>
次に、図45のフローチャートを参照して、図44のクライアント12によるライセンス確認処理に対応して、サーバ11により実行されるライセンス確認受付処理について説明する。
ステップS561において、サーバ11は、ライセンス確認ファイルを受信する。具体的には、通信制御部154は、通信部103を介して、上述した図44のステップS535の処理で電子機器23から送信されたライセンス確認ファイルを受信する。
ステップS562において、図36のステップS263と同様の処理により、ライセンス確認ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致するか否かが判定される。ライセンス確認ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致すると判定された場合、処理はステップS563に進む。
ステップS563において、図36のステップS264と同様の処理により、ライセンス確認ファイルが正当であるか否かが判定される。ライセンス確認ファイルが正当であると判定された場合、処理はステップS564に進む。
ステップS564において、ライセンス管理部151は、ライセンスの有効期限が切れているか否かを判定する。具体的には、ライセンス管理部151は、確認対象となるライセンスのライセンス情報のサーバ有効期限が、現在のRTC105の日時以降である場合、ライセンスの有効期限が切れていないと判定し、処理はステップS565に進む。
ステップS565において、ライセンス管理部151は、ライセンスの確認日時を更新する。具体的には、ライセンス管理部151は、確認対象となるライセンスのライセンス情報のクライアント確認日時を、ライセンス確認ファイル内のデバイスRTCに更新する。また、ライセンス管理部151は、確認対象となるライセンスのライセンス情報のサーバ確認日時を、現在のRTC105の日時に更新する。
すなわち、ライセンス確認ファイルのデバイスRTCにより、電子機器23におけるライセンスの確認日時がサーバ11に通知され、サーバ11により認識される。そして、サーバ11は、デバイスRTCを電子機器23におけるライセンスの確認日時(クライアント確認日時)に設定する。また、サーバ11は、RTC105に基づいて、電子機器23におけるライセンスの確認日時のサーバ11における日時(サーバ確認日時)を設定する。
ステップS566において、通信部103は、通信制御部154の制御の下に、ネットワーク13及びPC21を介して、ライセンスの確認の完了を通知する。
その後、ライセンス確認受付処理は終了する。
一方、ステップS564において、ライセンス管理部151は、確認対象となるライセンスのライセンス情報のサーバ有効期限が、現在のRTC105の日時より前である場合、ライセンスの有効期限が切れていると判定し、ライセンスの確認日時は更新されずに、ライセンス確認処理は終了する。
また、ステップS562において、ライセンス確認ファイル内のインストールキーと機器固有IDの組合せが記憶している組合せと一致しないと判定された場合、又は、ステップS563において、ライセンス確認ファイルが正当でないと判定された場合、ライセンスの確認日時は更新されずに、ライセンス確認受付処理は終了する。
以上のようにして、サーバ11は、電子機器23のライセンスの継続を確認する。
図43に戻り、一方、ステップS501において、ライセンスの確認を行わないと判定された場合、ステップS502の処理はスキップされ、処理はステップS503に進む。
ステップS503において、ライセンス管理部251は、所定の期間以上確認が行われていないライセンスがあるか否かを判定する。
例えば、ライセンス管理部251は、電子機器23の電源がオンされたとき、電子機器23の使用が開始されたとき、又は、定期的に、記憶部106に記憶されているライセンス情報に基づいて、各ライセンスの確認日時(クライアント確認日時)をチェックする。そして、ライセンス管理部251は、確認日時が現在のRTC206の日時より所定の最長未確認期間(例えば、30日)以上前のライセンスがある場合、換言すれば、サーバ11に確認日時(デバイスRTC)が通知されてから最長未確認期間が経過しているライセンスがある場合、所定の期間以上確認が行われていないライセンスがあると判定し、処理はステップS504に進む。
或いは、例えば、ライセンス管理部251は、入力部201を介して、ライセンスが必要な機能を実行するための操作が行われた場合、記憶部106に記憶されているライセンス情報に基づいて実行する機能のライセンスの確認日時(クライアント確認日時)をチェックする。そして、ライセンス管理部251は、そのライセンスの確認日時が現在のRTC206の日時より所定の最長未確認期間(例えば、30日)以上前である場合、所定の期間以上確認が行われていないライセンスがあると判定し、処理はステップS504に進む。
ステップS504において、出力部205は、UI制御部254の制御の下に、確認コードの入力画面を表示する。例えば、所定の期間以上確認が行われていないライセンスに対応する機能の立ち上げ時に、確認コードの入力画面が表示される。なお、確認コードは、上述した延長コードとは異なり、ライセンスの有効期限を延長するためではなく、ライセンスの継続を確認するために用いられる。
ステップS505において、ライセンス管理部251は、正しい確認コードが入力されたか否かを判定する。
具体的には、ライセンス管理部251は、所定の方法により、確認対象となるライセンスのライセンス情報内の確認日時に基づいて、正式な確認コードを生成する。例えば、ライセンス管理部251は、確認対象となるライセンスの確認日時に最長未確認期間を加算した日時に基づいて、所定のアルゴリズムにより確認コードを生成する。このアルゴリズムは、入力する日時が同じであれば、同じ確認コードを生成し、入力する日時が異なれば、異なる確認コードを生成する。
そして、ライセンス管理部251は、入力された確認コードが、生成した確認コードと一致しない場合、正しい確認コードが入力されなかったと判定し、処理はステップS506に進む。
ステップS506において、ライセンス管理部251は、確認コードを所定の回数間違えたか否かを判定する。まだ確認コードを所定の回数間違えてないと判定された場合、処理はステップS504に戻る。
その後、ステップS505において、正しい確認コードが入力されたと判定されるか、ステップS506において、確認コードを所定の回数間違えたと判定されるまで、ステップS504乃至ステップS506の処理が繰り返し実行される。これにより、正しい確認コードが入力されるまで、ライセンスの使用が停止され、そのライセンスに対応する機能が使用できなくなる。
一方、ステップS505において、ライセンス管理部251は、入力された確認コードが、生成した確認コードと一致する場合、正しい確認コードが入力されたと判定し、処理はステップS507に進む。
ステップS507において、ライセンス管理部251は、確認コードが入力されたライセンスの確認日時を更新する。具体的には、ライセンス管理部251は、確認コードが入力されたライセンスのライセンス情報内の確認日時(クライアント確認日時)に最長未確認期間を加算することにより、確認日時を更新する。
その後、処理はステップS509に進む。
一方、ステップS506において、確認コードを所定の回数間違えたと判定された場合、処理はステップS508に進む。
ステップS508において、ライセンス管理部251は、ライセンスを無効化する。すなわち、ライセンス管理部251は、確認コードを間違えたライセンスに対応する機能を使用できない状態にする。
その後、処理はステップS509に進む。
一方、ステップS503において、ライセンス管理部251は、記憶部106に記憶されているライセンス情報の中に、確認日時が現在のRTC206の日時より最長未確認期間以上前のライセンスがない場合、所定の期間以上確認が行われていないライセンスがないと判定し、ステップS504乃至ステップS508の処理はスキップされ、処理はステップS509に進む。
ステップS509において、ライセンス管理部251は、ライセンスの解約を行うか否かを判定する。例えば、ライセンス管理部251は、電子機器23の入力部201又はPC21が操作され、電子機器23の所定の機能のライセンスの解約の指示が入力されたとき、ライセンスの解約を行うと判定し、処理はステップS510に進む。
ステップS510において、クライアント12は、ライセンス解約処理を実行する。ここで、図46のフローチャートを参照して、ライセンス解約処理の詳細について説明する。
ステップS601乃至ステップS603において、上述した図29のステップS234乃至ステップS236と同様の処理が実行される。
ステップS604において、データ生成部253は、格納データ及びハッシュ値を含むライセンス解約ファイルを生成する。
ステップS605において、図44のステップS535と同様の処理により、ライセンス解約ファイルがサーバ11に送信される。
ステップS606において、ライセンス管理部251は、ライセンスの解約が完了したか否かを判定する。ライセンス管理部251は、後述する図48のステップS634において、サーバ11からライセンスの解約の完了が通知された場合、ライセンスの解約が完了したと判定し、処理はステップS607に進む。
ステップS607において、出力部205は、UI制御部254の制御の下に、ライセンスの解約の完了を通知する。
その後、ライセンス解約処理は終了する。
一方、ステップS606において、ライセンス管理部251は、サーバ11からライセンスの解約の完了が通知されなかった場合、ライセンスの解約が完了しなかったと判定し、ステップS607の処理はスキップされ、ライセンス解約処理は終了する。
<ライセンス解約受付処理>
次に、図47のフローチャートを参照して、図46のクライアント12によるライセンス解約処理に対応して、サーバ11により実行されるライセンス解約受付処理について説明する。
ステップS631において、サーバ11は、ライセンス解約ファイルを受信する。具体的には、通信制御部154は、通信部103を介して、上述した図43のステップS605の処理で電子機器23から送信されたライセンス解約ファイルを受信する。
ステップS632において、図36のステップS263と同様の処理により、ライセンス解約ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致するか否かが判定される。ライセンス解約ファイル内の機器固有IDとインストールキーの組合せが記憶している組合せと一致すると判定された場合、処理はステップS633に進む。
ステップS633において、図36のステップS264と同様の処理により、ライセンス解約ファイルが正当であるか否かが判定される。ライセンス解約ファイルが正当であると判定された場合、処理はステップS634に進む。
ステップS634において、サーバ11は、ライセンスの解約を受け付ける。例えば、ライセンス管理部151は、記憶部106に記憶されている解約対象となるライセンスのライセンス情報に解約済みを示すデータを格納する。また、通信部103は、通信制御部154の制御の下に、ネットワーク13を介して、ライセンスの解約の完了をクライアント12に通知する。
その後、ライセンス解約受付処理は終了する。
一方、ステップS632において、ライセンス解約ファイル内のインストールキーと機器固有IDの組合せが記憶している組合せと一致しないと判定された場合、又は、ステップS633において、ライセンス解約ファイルが正当でないと判定された場合、ライセンスの解約は受け付けられずに、ライセンス解約処理は終了する。
図43に戻り、一方、ステップS509において、ライセンスの解約を行わないと判定された場合、ステップS510の処理はスキップされ、処理はステップS511に進む。
ステップS511において、上述した図24のステップS213の処理と同様に、RTC206が未設定状態になったか否かが判定される。RTC206が未設定状態になったと判定された場合、処理はステップS512に進む。
ステップS512において、上述した図24のステップS214の処理と同様に、全てのライセンスが無効化される。
その後、処理はステップS501に戻り、ステップS501以降の処理が実行される。
一方、ステップS511において、RTC206が未設定状態になっていないと判定された場合、処理はステップS501に戻り、ステップS501以降の処理が実行される。
<ライセンス期限管理処理>
次に、図48のフローチャートを参照して、サーバ11により実行されるライセンス期限管理処理について説明する。
ステップS701において、ライセンス管理部151は、所定の期間以上確認が行われていないライセンスがあるか否かを判定する。ライセンス管理部151は、記憶部106に記憶されているライセンス情報の中に、サーバ確認日時が現在のRTC105の日時より所定の期間以上前のライセンスがある場合、換言すれば、電子機器23から確認日時(デバイスRTC)が通知されてから所定の期間が経過しているライセンスがある場合、所定の期間以上確認が行われていないライセンスがあると判定し、処理はステップS702に進む。
なお、この所定の期間は、図43のステップS503の処理の最長未確認期間(例えば、30日)より短い期間(例えば、25日)に設定される。これにより、電子機器23においてライセンスの確認が行われないまま最長未確認期間が経過する前に、確認コードがサーバ11からクライアント12に通知されるようになる。
ステップS702において、ライセンス管理部151は、確認コードを生成する。
具体的には、ライセンス管理部151は、電子機器23と同様の方法により、確認コードの生成対象となるライセンスのライセンス情報内のクライアント確認日時に基づいて、正式な確認コードを生成する。例えば、ライセンス管理部151は、確認コードの生成対象となるライセンスのクライアント確認日時に最長未確認期間を加算した日時に基づいて、電子機器23と同じアルゴリズムにより確認コードを生成する。このとき、サーバ11のライセンス情報内のクライアント確認日時は、対応する電子機器23のライセンス情報内の確認日時と同じ日時に設定されているため、サーバ11と電子機器23で同じ確認コードが生成されるようになる。
ステップS703において、図37のステップS304と同様の処理により、確認コードがメールで送信される。
その後、処理はステップS704に進む。
一方、ステップS701において、ライセンス管理部151は、記憶部106に記憶されているライセンス情報の中に、サーバ確認日時が現在のRTC105の日時より所定の期間以上前のライセンスがない場合、所定の期間以上確認が行われていないライセンスがないと判定し、ステップS702及びステップS703の処理はスキップされ、処理はステップS704に進む。
ステップS704において、図37のステップS306の処理と同様に、有効期限を過ぎたライセンスがあるか否かが判定される。有効期限を過ぎたライセンスがあると判定された場合、処理はステップS705に進む。
ステップS705において、ライセンス管理部151は、決済済みであるか否かを判定する。ライセンス管理部151が、有効期限を過ぎているライセンスがすでに決済済みであると判定した場合、処理はステップS706に進む。
ステップS706において、ライセンス管理部151は、ライセンスの有効期限を更新する。具体的には、ライセンス管理部151は、有効期限を更新するライセンスのライセンス情報内のサーバ有効期限にライセンスの有効期間を加算することにより、有効期限を更新する。
その後、処理はステップS701に戻り、ステップS701以降の処理が実行される。
一方、ステップS705において、ライセンス管理部151が、有効期限を過ぎているライセンスが決済済みでないと判定した場合、処理はステップS707に進む。
ステップS707において、図37のステップS307の処理と同様に、ライセンスが停止される。
その後、処理はステップS701に戻り、ステップS701以降の処理が実行される。
一方、ステップS704において、有効期限を過ぎたライセンスがないと判定された場合、処理はステップS701に戻り、ステップS701以降の処理が実行される。
以上のようにして、サーバ11が提供し、電子機器23が使用するライセンスの更新を適切に行うことができる。例えば、ライセンスに対する決済が行われていれば、ユーザが解約処理を行うまで、ライセンスが自動的に更新される。そして、ユーザは、定期的に電子機器23をサーバ11に接続し、ライセンスの継続を確認するだけで、ライセンスを継続して使用することができる。また、ライセンスの継続の確認が長期間行われていなくても、ライセンスに対する決済が行われていれば、ユーザは、サーバ11から通知された確認コードを入力するだけで、ライセンスの継続を確認し、ライセンスを継続して使用することができる。さらに、ライセンスに対する決済が停止すると、電子機器23がサーバ11と通信しなくても、電子機器23においてライセンスの使用が自動的に停止される。
<<2.変形例>>
以下、上述した本技術の実施の形態の変形例について説明する。
例えば、PC21の代わりに、サーバ11と通信可能であり、メディア22の読み書きが可能な他の情報処理装置(例えば、スマートフォン、タブレット等)を用いてもよい。
また、情報処理システム10の処理の第1の実施の形態において、例えば、電子機器23をPC21に接続して、サーバ11と電子機器23が、ネットワーク13及びPC21を介してデータの授受を行うようにしてもよい。また、例えば、電子機器23が、ネットワーク13を介してサーバ11と直接通信し、データの授受を行うようにしてもよい。
さらに、情報処理システム10の処理の第1の実施の形態において、所定の猶予時間を過ぎても、ライセンスのインストールが許可されるようにしてもよい。この場合、例えば、猶予時間を過ぎた分だけライセンスの有効期間が短縮される。
また、情報処理システム10の処理の第1の実施の形態において、例えば、インストールキーの代わりに、インストールキーに準ずるデータを用いて延長コードを生成するようにしてもよい。インストールキーに準ずるデータとは、例えば、インストールキーのようにライセンスのインストール毎に値が異なるデータのことである。例えば、サーバ11が、インストール毎にカウンタをカウントアップし、そのカウンタ値(例えば、インストール回数)をインストールキーの代わりに用いることが可能である。さらに、例えば、更新回数の代わりに、更新回数に準ずるデータを用いて延長コードを生成するようにしてもよい。更新回数に準ずるデータとは、例えば、更新回数により異なるデータであり、更新回数に所定の係数を乗じたデータ等である。
また、情報処理システム10の処理の第2の実施の形態において、サーバ11と電子機器23が、ネットワーク13、PC21及びメディア22を介してデータの授受を行うようにしてもよい。また、例えば、電子機器23が、ネットワーク13を介してサーバ11と直接通信し、データの授受を行うようにしてもよい。
さらに、例えば、情報処理システム10の処理の第2の実施の形態において、図47のステップS634の処理でライセンスの解約を受け付けた場合に、まだライセンスの有効期間が残っているとき、残り期間のライセンスを他の電子機器23で使用できるようにしてもよい。すなわち、この場合、解約が受け付けられたライセンスが、有効期間が満了するまで、フローティングライセンスとして扱われる。
また、以上の説明では、延長コード又は確認コードが、ユーザ操作により電子機器23に直接入力される例を示したが、例えば、スマートフォンのアプリケーションプログラム等を用いて入力されるようにしてもよい。例えば、スマートフォンが電子機器23に近接されると、スマートフォンと電子機器23が近距離無線通信を行い、スマートフォンから電子機器23に延長コード又は確認コードが転送されるようにしてもよい。
さらに、図14及び図42のインストールキーのフォーマットは、その一例であり、適宜変更することが可能である。例えば、インストールキーに含まれるデータの一部をインストールキーに格納せずに、インストールキーを送信するライセンス通信ファイル等のファイルに格納するようにしてもよい。
また、例えば、図24のステップS205において、電子機器23が、PC21及びネットワーク13を介して、延長コードをサーバ11に送信し、サーバ11が延長コードによる認証を行うことにより、ライセンスの有効期限を更新するようにしてもよい。
さらに、以上の説明では、サーバ11とクライアント21間で主にファイル形式で情報の送受信を行う例を示したが、送受信する情報の形式には他の任意の形式を用いることも可能である。
<<3.その他>>
<コンピュータの構成例>
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図49は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ1000において、CPU(Central Processing Unit)1001,ROM(Read Only Memory)1002,RAM(Random Access Memory)1003は、バス1004により相互に接続されている。
バス1004には、さらに、入出力インターフェース1005が接続されている。入出力インターフェース1005には、入力部1006、出力部1007、記録部1008、通信部1009、及びドライブ1010が接続されている。
入力部1006は、入力スイッチ、ボタン、マイクロフォン、撮像素子などよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記録部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインターフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体1011を駆動する。
以上のように構成されるコンピュータ1000では、CPU1001が、例えば、記録部1008に記録されているプログラムを、入出力インターフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ1000(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータ1000では、プログラムは、リムーバブル記録媒体1011をドライブ1010に装着することにより、入出力インターフェース1005を介して、記録部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記録部1008にインストールすることができる。その他、プログラムは、ROM1002や記録部1008に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
<構成の組み合わせ例>
本技術は、以下のような構成をとることもできる。
(1)
機器毎に固有の鍵である機器固有鍵を生成する鍵生成部と、
前記機器固有鍵、情報処理装置が提供するライセンスのインストール毎に異なる第1のデータ、及び、前記ライセンスの更新回数により異なる第2のデータに基づいて所定の方法により生成した延長コードと、入力された延長コードとが一致する場合、前記ライセンスを更新するライセンス管理部と
を備える電子機器。
(2)
前記第1のデータは、前記ライセンスのインストール用のインストールキーであり、
前記ライセンス管理部は、前記インストールキーを用いて前記ライセンスをインストールする
前記(1)に記載の電子機器。
(3)
前記機器固有鍵を含む情報である機器情報を生成するデータ生成部を
さらに備え、
前記インストールキーは、前記機器情報を用いて前記情報処理装置により生成された情報であるライセンス通信情報に含まれる
前記(2)に記載の電子機器。
(4)
前記ライセンス通信情報は、前記ライセンスの権利者に固有のユーザIDを含み、
前記ライセンス管理部は、前記生成した延長コードと前記入力された延長コードと一致した場合、1つの前記ユーザIDに対応付けられている複数の前記ライセンスの更新が可能である
前記(3)に記載の電子機器。
(5)
前記鍵生成部は、初めて前記機器情報が生成される前に前記機器固有鍵を生成する
前記(3)又は(4)に記載の電子機器。
(6)
前記第2のデータは、前記ライセンスの更新回数を示す
前記(1)乃至(5)のいずれかに記載の電子機器。
(7)
前記ライセンス管理部は、前記情報処理装置と同じハッシュ関数を用いて、前記機器固有鍵、前記第1のデータ、及び、前記第2のデータに基づいて、所定の桁数の延長コードを生成する
前記(1)乃至(6)のいずれかに記載の電子機器。
(8)
電子機器が、
前記電子機器に固有の鍵である機器固有鍵を生成し、
前記機器固有鍵、情報処理装置が提供するライセンスのインストール毎に異なる第1のデータ、及び、前記ライセンスの更新回数により異なる第2のデータに基づいて所定の方法により生成した延長コードと、入力された延長コードとが一致する場合、前記ライセンスを更新する
情報処理方法。
(9)
電子機器のコンピュータに、
前記電子機器に固有の鍵である機器固有鍵を生成し、
前記機器固有鍵、情報処理装置が提供するライセンスのインストール毎に異なる第1のデータ、及び、前記ライセンスの更新回数により異なる第2のデータに基づいて所定の方法により生成した延長コードと、入力された延長コードとが一致する場合、前記ライセンスを更新する
処理を実行させるためのプログラム。
(10)
電子機器に固有の鍵である機器固有鍵、前記電子機器へのライセンスのインストール毎に異なる第1のデータ、及び、前記電子機器における前記ライセンスの更新回数により異なる第2のデータに基づいて、前記電子機器と同じ方法により前記ライセンスを更新するための延長コードを生成するライセンス管理部と、
前記延長コードの送信を制御する通信制御部と
を備える情報処理装置。
(11)
前記ライセンス管理部は、前記ライセンスのインストール用のインストールキーを生成し、
前記第1のデータは、前記インストールキーである
前記(10)に記載の情報処理装置。
(12)
前記機器固有鍵を含み、前記電子機器により生成された情報である機器情報を用いて、前記インストールキーを含み、前記電子機器において前記ライセンスのインストールに用いる情報であるライセンス通信情報を生成するデータ生成部を
さらに備える前記(11)に記載の情報処理装置。
(13)
前記ライセンス通信情報は、前記ライセンスの権利者に固有のユーザIDを含む
前記(12)に記載の情報処理装置。
(14)
前記機器固有鍵は、前記電子機器により前記機器情報が初めて生成される前に生成される
前記(12)又は(13)に記載の情報処理装置。
(15)
前記第2のデータは、前記ライセンスの更新回数を示す
前記(10)乃至(14)のいずれかに記載の情報処理装置。
(16)
前記ライセンス管理部は、前記電子機器と同じハッシュ関数を用いて、前記機器固有鍵、前記第1のデータ、及び、前記第2のデータに基づいて所定の桁数の延長コードを生成する
前記(10)乃至(15)のいずれかに記載の情報処理装置。
(17)
情報処理装置が、
電子機器に固有の鍵である機器固有鍵、前記電子機器へのライセンスのインストール毎に異なる第1のデータ、及び、前記電子機器における前記ライセンスの更新回数により異なる第2のデータに基づいて、前記電子機器と同じ方法により前記ライセンスを更新するための延長コードを生成し、
前記延長コードの送信を制御する
情報処理方法。
(18)
電子機器に固有の鍵である機器固有鍵、前記電子機器へのライセンスのインストール毎に異なる第1のデータ、及び、前記電子機器における前記ライセンスの更新回数により異なる第2のデータに基づいて、前記電子機器と同じ方法により前記ライセンスを更新するための延長コードを生成し、
前記延長コードの送信を制御する
処理をコンピュータに実行させるためのプログラム。
(19)
ハードウエアクロックと、
前記ハードウエアクロックに基づく日時である確認日時がライセンスの期限を管理する情報処理装置に通知されてから所定の期間が経過した場合、前記確認日時に基づいて前記情報処理装置と同じ方法で生成され、前記ライセンスの継続の確認に用いられる確認コードが入力されるまで、前記ライセンスの使用を停止するライセンス管理部と
を備える電子機器。
(20)
前記情報処理装置に前記確認日時を通知するための情報であるライセンス確認情報を生成するデータ生成部を
さらに備える前記(19)に記載の電子機器。
(21)
機器毎に固有の鍵である機器固有鍵を生成する鍵生成部を
さらに備え、
前記データ生成部は、前記情報処理装置から前記ライセンスのインストール用に供給されたインストールキーを含み、前記機器固有鍵を用いてセキュリティが確保された情報であって、前記情報処理装置において前記ライセンスの解約に用いる情報であるライセンス解約情報をさらに生成する
前記(20)に記載の電子機器。
(22)
前記データ生成部は、前記機器固有鍵を含み、前記情報処理装置において前記ライセンスの発行に用いられる情報である機器情報をさらに生成する
前記(21)に記載の電子機器。
(23)
前記鍵生成部は、初めて前記機器情報が生成される前に前記機器固有鍵を生成する
前記(22)に記載の電子機器。
(24)
前記ライセンス管理部は、前記機器情報を用いて前記情報処理装置により生成された情報であるライセンス通信情報に含まれる前記インストールキーを用いて、前記ライセンスをインストールする
前記(22)又は(23)に記載の電子機器。
(25)
ハードウエアクロックを備える電子機器が、
前記ハードウエアクロックに基づく日時である確認日時がライセンスの期限を管理する情報処理装置に通知されてから所定の期間が経過した場合、前記確認日時に基づいて前記情報処理装置と同じ方法で生成され、前記ライセンスの継続の確認に用いられる確認コードが入力されるまで、前記ライセンスの使用を停止する
情報処理方法。
(26)
ハードウエアクロックを備える電子機器のコンピュータに、
前記ハードウエアクロックに基づく日時である確認日時がライセンスの期限を管理する情報処理装置に通知されてから所定の期間が経過した場合、前記確認日時に基づいて前記情報処理装置と同じ方法で生成され、前記ライセンスの継続の確認に用いられる確認コードが入力されるまで、前記ライセンスの使用を停止する
処理を実行させるためのプログラム。
(27)
電子機器のハードウエアクロックに基づく日時である確認日時が通知されてから所定の期間が経過した場合、前記確認日時に基づいて、前記電子機器が使用するライセンスの継続を前記電子機器において確認するための確認コードを前記電子機器と同じ方法で生成するライセンス管理部と、
前記確認コードの送信を制御する通信制御部と
を備える情報処理装置。
(28)
前記ライセンス管理部は、前記確認日時を含み、前記電子機器により生成された情報であるライセンス確認情報を用いて、前記確認日時を認識する
前記(27)に記載の情報処理装置。
(29)
前記ライセンス管理部は、前記ライセンスのインストール用のインストールキーを含み、前記電子機器に固有の鍵である機器固有鍵を用いてセキュリティが確保された情報であって、前記電子機器により生成された情報であるライセンス解約情報を用いて、前記ライセンスの解約を行う
前記(27)又は(28)に記載の情報処理装置。
(30)
前記機器固有鍵を含み、前記電子機器により生成された情報である機器情報を用いて、前記インストールキーを含み、前記電子機器において前記ライセンスのインストールに用いる情報であるライセンス通信情報を生成するデータ生成部を
さらに備える前記(29)に記載の情報処理装置。
(31)
前記機器固有鍵は、前記電子機器により初めて前記機器情報が生成される前に生成される
前記(30)に記載の情報処理装置。
(32)
情報処理装置が、
電子機器のハードウエアクロックに基づく日時である確認日時が通知されてから所定の期間が経過した場合、前記確認日時に基づいて、前記電子機器が使用するライセンスの継続を前記電子機器において確認するための確認コードを前記電子機器と同じ方法で生成し、
前記確認コードの送信を制御する
情報処理方法。
(33)
電子機器のハードウエアクロックに基づく日時である確認日時が通知されてから所定の期間が経過した場合、前記確認日時に基づいて、前記電子機器が使用するライセンスの継続を前記電子機器において確認するための確認コードを前記電子機器と同じ方法で生成し、
前記確認コードの送信を制御する
処理をコンピュータに実行させるためのプログラム。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。