(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-10
(45)【発行日】2024-12-18
(54)【発明の名称】被保護インテリジェントアプリケーションの呼出権限の認証方法及びインテリジェントデバイス
(51)【国際特許分類】
H04L 9/08 20060101AFI20241211BHJP
H04L 9/10 20060101ALI20241211BHJP
G06F 21/12 20130101ALI20241211BHJP
【FI】
H04L9/08 A
H04L9/10 A
G06F21/12 310
(21)【出願番号】P 2022549479
(86)(22)【出願日】2021-03-31
(86)【国際出願番号】 CN2021084716
(87)【国際公開番号】W WO2021197394
(87)【国際公開日】2021-10-07
【審査請求日】2024-01-15
(31)【優先権主張番号】202010259146.3
(32)【優先日】2020-04-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】519061479
【氏名又は名称】杭州海康威視数字技術股▲ふん▼有限公司
【氏名又は名称原語表記】Hangzhou Hikvision Digital Technology Co.,Ltd.
【住所又は居所原語表記】No.555 Qianmo Road,Binjiang District,Hangzhou,Zhejiang 310051,China
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】鄭 一平
【審査官】平井 誠
(56)【参考文献】
【文献】再公表特許第2010/041464(JP,A1)
【文献】特開2004-110646(JP,A)
【文献】橋本幹生(外1名),敵対的なOSからソフトウェアを保護するプロセッサアーキテクチャ,情報処理学会論文誌,日本,社団法人情報処理学会 Information Processing Socie,2004年03月15日,Vol45,No.SIG3(ACS5),p.1-p.10
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00-40
G09C 1/00- 5/00
G06F 21/10-12
(57)【特許請求の範囲】
【請求項1】
被保護インテリジェントアプリケーションの呼出権限の認証方法であって、被保護インテリジェントアプリケーションがインテリジェントデバイスにロードされる場合、該呼出権限のチェック方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを含み:
被保護インテリジェントアプリケーションにおける認証暗号文を取得し、
ハードウェア復号化モジュールを呼び出し、デバイスカーネルアプリケーションに予め埋め込まれたカーネル埋め込み鍵と取得された認証暗号文をハードウェア復号化モジュールに発行し、ハードウェア復号化モジュールに、インテリジェントデバイスの書込禁止記憶媒体におけるハードウェア書き込み鍵を用いてカーネル埋め込み鍵を復号化させ、且つカーネル埋め込み鍵を復号化して得られた復号鍵を用いて認証暗号文を復号化させ、ここで、カーネル埋め込み鍵が第1の被管理鍵を用いて第2の被管理鍵を暗号化して得られた二級認証鍵であり、且つハードウェア書き込み鍵が第1の被管理鍵である場合、カーネル埋め込み鍵を復号化して得られた復号鍵は第2の被管理鍵であり、
被保護インテリジェントアプリケーションが復号化平文とサンプル平文との一致性を検証して、デバイスカーネルアプリケーションに呼出権限を付与するかどうかを決定するために、ハードウェア復号化モジュールの呼び出しによって返された、認証暗号文を復号化して得られた復号化平文を被保護インテリジェントアプリケーションに提供し、ここで、認証暗号文は第2の被管理鍵を用いてサンプル平文を暗号化して得られたものであり、カーネル埋め込み鍵を復号化して得られた復号鍵が第2の被管理鍵である場合、認証暗号文を復号化して得られた復号化平文はデバイスカーネルアプリケーションのアクセスが遮断された被保護インテリジェントアプリケーションにおけるサンプル平文と一致する、
被保護インテリジェントアプリケーションの呼出権限の認証方法。
【請求項2】
認証暗号文は、サンプル平文に対して、二級認証鍵を入力鍵とし、第2の被管理鍵を真実の鍵とする欺瞞的暗号化を行うことで取得されるものである、
請求項1に記載の呼出権限の認証方法。
【請求項3】
二級認証鍵は、第1の被管理鍵を用いて第2の被管理鍵に対して第1の暗号化アルゴリズムに基づく暗号化操作を行って得られたものであり、
認証暗号文は、第2の被管理鍵を用いてサンプル平文に対して第2の暗号化アルゴリズムに基づく暗号化操作を行って得られたものであり、
ハードウェア復号化モジュールは、ハードウェア書き込み鍵を用いてカーネル埋め込み鍵に対して第1の復号化アルゴリズムに基づく復号化操作を行い、且つ、ハードウェア復号化モジュールは、カーネル埋め込み鍵を復号化して得られた復号鍵を用いて認証暗号文に対して第2の復号化アルゴリズムに基づく復号化操作を行い、
ここで、第1の復号化アルゴリズムが第1の暗号化アルゴリズムの逆アルゴリズムであり、且つ第2の復号化アルゴリズムが第2の暗号化アルゴリズムの逆アルゴリズムである、
請求項1に記載の呼出権限の認証方法。
【請求項4】
認証暗号文は、サンプル平文に対して第1の復号化アルゴリズムに基づく欺瞞的暗号化を行うことで取得されたものであり、ここで、該欺瞞的暗号化は、第1の被管理鍵を用いて入力鍵に対して第1の復号化アルゴリズムに基づく復号化操作を行い、且つ入力鍵を復号化して得られた欺瞞的鍵を真実の鍵として第2の暗号化アルゴリズムに基づく暗号化操作を行う、
請求項3に記載の呼出権限の認証方法。
【請求項5】
被保護インテリジェントアプリケーションがデバイスカーネルアプリケーションを実行するインテリジェントデバイスにロードされる前に、該呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを更に含み:
生産ライン書込デバイスによって提供された暗号鍵データを受信し、
暗号鍵データに対して復号化操作を行い、
暗号鍵データを復号化して得られた鍵データを用いて、インテリジェントデバイスの書込禁止記憶媒体に書き込んで、ハードウェア書き込み鍵を形成し、ここで、生産ライン書込デバイスによって提供された暗号鍵データがキーサーバからのものである場合、暗号鍵データを復号化して得られた暗号鍵が第1の被管理鍵であり、
書き込みが完了した後、該暗号鍵データを廃棄する、
請求項1に記載の呼出権限の認証方法。
【請求項6】
キーサーバに対する生産ライン書込デバイスのアクセス権限は、生産ライン書込デバイスに接続されたホットプラグ可能な暗号化装置によって認証される、
請求項5に記載の呼出権限の認証方法。
【請求項7】
生産ライン書込デバイスにより提供された暗号鍵データを受信する前に、
生産ライン書込デバイスの認証検出に応答し、生産ライン書込デバイスに、デバイスカーネルアプリケーションに予め埋め込まれた認証情報を提供することを更に含む、
請求項5に記載の呼出権限の認証方法。
【請求項8】
第1の被管理鍵の管理権は、第1の管理者に属し、
第2の被管理鍵の管理権は、第1の管理者と異なる第2の管理者に属し、
且つ、第1の管理者と第2の管理者は、いずれも、デバイスカーネルアプリケーションが属する第1の開発者と、被保護インテリジェントアプリケーションが属する第2の開発者とは異なる、
請求項2に記載の呼出権限の認証方法。
【請求項9】
インテリジェントデバイスの書込禁止記憶媒体は、OTP記憶媒体である、
請求項1に記載の呼出権限の認証方法。
【請求項10】
インテリジェントデバイスであって、デバイスカーネルアプリケーションをロードし実行するためのアプリケーション搭載モジュールと、ハードウェア復号化モジュールと、書込禁止記憶媒体とを備え、被保護インテリジェントアプリケーションがアプリケーション搭載モジュールに記録されると、デバイスカーネルアプリケーションは、請求項1乃至9の何れか1項に記載の呼出権限の認証方法を実行するために用いられる、
インテリジェントデバイス。
【請求項11】
非一時的なコンピュータ読取可能な記憶媒体であって、前記非一時的なコンピュータ読取可能な記憶媒体には命令が記憶されており、前記命令は、プロセッサーによって実行されると、前記プロセッサーにデバイスカーネルアプリケーションをロードさせて、デバイスカーネルアプリケーションに請求項1乃至9の何れか1項に記載の呼出権限の認証方法の実行を開始させる、
非一時的なコンピュータ読取可能な記憶媒体。
【請求項12】
鍵配置方法であって、
第1の管理者の第1の被管理鍵を取得し、前記第1の被管理鍵をハードウェア書き込み鍵として、指定されたインテリジェントデバイスの書込禁止記憶媒体に書き込むことと、
第2の管理者の第2の被管理鍵を取得し、前記第2の被管理鍵を被保護インテリジェントアプリケーションの暗号鍵とすることと、
前記第1の被管理鍵を用いて前記第2の被管理鍵に対して暗号化を行って二級認証鍵を取得し、前記二級認証鍵をカーネル埋め込み鍵として前記指定されたインテリジェントデバイスのデバイスカーネルアプリケーションに埋め込むことと、を含む、
鍵配置方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、インテリジェントアプリケーションの著作権保護に関し、特に、被保護インテリジェントアプリケーションの呼出権限の認証方法及びインテリジェントデバイスに関する。
【背景技術】
【0002】
アプリケーションの知能化の普及に伴い、さまざまなインテリジェントアプリケーションが生まれている。しかし、如何にインテリジェントアプリケーションの著作権を効果的に保護して、インテリジェントアプリケーションの使用権を指定された許可範囲内のインテリジェントデバイスに制限するかは、従来技術において解決すべき技術的課題となる。
【発明の概要】
【0003】
上記の課題に鑑み、本願の各実施例は、被保護インテリジェントアプリケーションの使用権を指定された許可範囲内のインテリジェントデバイスに制限するように、被保護インテリジェントアプリケーションの呼出権限の認証方法及び該呼出権限の認証方法を用いるインテリジェントデバイスをそれぞれ提供する。具体的な技術案は、以下の通りである。
【0004】
一実施形態において、被保護インテリジェントアプリケーションの呼出権限の認証方法を提供し、被保護インテリジェントアプリケーションがインテリジェントデバイスにロードされる場合、該呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを含み:
被保護インテリジェントアプリケーションにおける認証暗号文を取得し、
ハードウェア復号化モジュールを呼び出し、デバイスカーネルアプリケーションに予め埋め込まれたカーネル埋め込み鍵と取得された認証暗号文をハードウェア復号化モジュールに発行し、ハードウェア復号化モジュールに、インテリジェントデバイスの書込禁止記憶媒体におけるハードウェア書き込み鍵を用いてカーネル埋め込み鍵を復号化させ、且つカーネル埋め込み鍵を復号化して得られた復号鍵を用いて認証暗号文を復号化させ、ここで、カーネル埋め込み鍵が第1の被管理鍵を用いて第2の被管理鍵に対して暗号化して得られた二級認証鍵であり、且つハードウェア書き込み鍵が第1の被管理鍵である場合、カーネル埋め込み鍵を復号化して得られた復号鍵が第2の被管理鍵であり、
被保護インテリジェントアプリケーションが復号化平文とサンプル平文との一致性を検証して、デバイスカーネルアプリケーションに呼出権限を付与するかどうかを決定するために、ハードウェア復号化モジュールの呼び出しによって返された、認証暗号文を復号化して得られた復号化平文を被保護インテリジェントアプリケーションに提供し、ここで、認証暗号文が第2の被管理鍵を用いてサンプル平文を暗号化して得られたものであり、カーネル埋め込み鍵を復号化して得られた復号鍵が第2の被管理鍵であると、認証暗号文を復号化して得られた復号化平文はデバイスカーネルアプリケーションのアクセスが遮断された被保護インテリジェントアプリケーションにおけるサンプル平文と一致する。
【0005】
好ましくは、認証暗号文は、サンプル平文に対して二級認証鍵を入力鍵とし第2の被管理鍵を真実の鍵とする欺瞞的暗号化を行うことで取得されるものである。
【0006】
好ましくは、二級認証鍵は、第1の被管理鍵を用いて第2の被管理鍵に対して第1の暗号化アルゴリズムに基づく暗号化操作を行って得られたものであり、認証暗号文は、第2の被管理鍵を用いてサンプル平文に対して第2の暗号化アルゴリズムに基づく暗号化操作を行って得られたものであり、ハードウェア復号化モジュールは、ハードウェア書き込み鍵を用いてカーネル埋め込み鍵に対して第1の復号化アルゴリズムに基づく復号化操作を行い、且つ、ハードウェア復号化モジュールは、カーネル埋め込み鍵を復号化して得られた復号鍵を用いて認証暗号文に対して第2の復号化アルゴリズムに基づく復号化操作を行い、ここで、第1の復号化アルゴリズムが第1の暗号化アルゴリズムの逆アルゴリズムであり、且つ第2の復号化アルゴリズムが第2の暗号化アルゴリズムの逆アルゴリズムである。
【0007】
好ましくは、認証暗号文は、サンプル平文に対して第1の復号化アルゴリズムに基づく欺瞞的暗号化を行うことで取得されたものであり、ここで、該欺瞞的暗号化は第1の被管理鍵を用いて入力鍵に対して第1の復号化アルゴリズムに基づく復号化操作を行い、且つ入力鍵を復号化して得られた欺瞞的鍵を真実の鍵として第2の暗号化アルゴリズムに基づく暗号化操作を行う。
【0008】
好ましくは、被保護インテリジェントアプリケーションがデバイスカーネルアプリケーションを実行するインテリジェントデバイスにロードされる前に、該呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを更に含み、生産ライン書込デバイスによって提供された暗号鍵データを受信し、暗号鍵データに対して復号化操作を行い、暗号鍵データを復号化して得られた鍵データを用いてインテリジェントデバイスの書込禁止記憶媒体に書き込んで、ハードウェア書き込み鍵を形成し、ここで、生産ライン書込デバイスによって提供された暗号鍵データがキーサーバからのものである場合、暗号鍵データを復号化して得られた暗号鍵が第1の被管理鍵であり、書き込みが完了した後、該暗号鍵データを廃棄する。
【0009】
好ましくは、キーサーバに対する生産ライン書込デバイスのアクセス権限は、生産ライン書込デバイスに接続されたホットプラグ可能な暗号化装置によって認証される。
【0010】
好ましくは、生産ライン書込デバイスによって提供された暗号鍵データを受信する前に、生産ライン書込デバイスの認証検出に応答し、生産ライン書込デバイスに、デバイスカーネルアプリケーションに予め埋め込まれた認証情報を提供することを更に含む。
【0011】
好ましくは、第1の被管理鍵の管理権が第1の管理者に属し、第2の被管理鍵の管理権が第1の管理者と異なる第2の管理者に属し、且つ第1の管理者と第2の管理者は、いずれも、デバイスカーネルアプリケーションが属する第1の開発者と、被保護インテリジェントアプリケーションが属する第2の開発者とは異なる。
【0012】
好ましくは、インテリジェントデバイスの書込禁止記憶媒体は、OTP記憶媒体である。
【0013】
別の実施形態において、インテリジェントデバイスを提供し、デバイスカーネルアプリケーションをロードし実行するためのアプリケーション搭載モジュールと、ハードウェア復号化モジュールと、書込禁止記憶媒体と、を備え、被保護インテリジェントアプリケーションがアプリケーション搭載モジュールに記録されると、デバイスカーネルアプリケーションは、上記実施例に記載の呼出権限の認証方法を実行するために用いられる。
【0014】
別の実施形態において、非一時的なコンピュータ読取可能な記憶媒体を提供し、前記非一時的なコンピュータ読取可能な記憶媒体には命令が記憶されており、前記命令は、プロセッサーによって実行されると、前記プロセッサーにデバイスカーネルアプリケーションをロードさせて、デバイスカーネルアプリケーションに上記実施例に記載の呼出権限の認証方法の実行を開始させる。
【0015】
別の実施形態において、鍵配置方法を提供し、前記方法は、
第1の管理者の第1の被管理鍵を取得し、前記第1の被管理鍵をハードウェア書き込み鍵として、指定されたインテリジェントデバイスの書込禁止記憶媒体に書き込むことと、
第2の管理者の第2の被管理鍵を取得し、前記第2の被管理鍵を被保護インテリジェントアプリケーションの暗号鍵とすることと、
前記第1の被管理鍵を用いて前記第2の被管理鍵に対して暗号化を行って二級認証鍵を取得し、前記二級認証鍵をカーネル埋め込み鍵として前記指定されたインテリジェントデバイスのデバイスカーネルアプリケーションに埋め込むことと、を含む。
【0016】
上記の実施形態によれば、デバイスカーネルアプリケーションがハードウェア復号化モジュールを呼び出すことで、インテリジェントデバイスはデバイスカーネルアプリケーションのカーネル埋め込み鍵と書込禁止記憶媒体のハードウェア書き込み鍵とを用いて被保護インテリジェントアプリケーションの認証暗号文を復号化することができる。しかも、カーネル埋め込み鍵が第1の被管理鍵を用いて第2の被管理鍵に対して暗号化して得られた二級認証鍵であり、且つハードウェア書き込み鍵が第1の被管理鍵である場合にのみ、正しい第2の被管理鍵を取得して認証暗号文を復号し、復号化によってサンプル平文と一致する復号化平文を取得することができ、これにより、被保護インテリジェントアプリケーションが一致性の検証に合格して、デバイスカーネルアプリケーションに呼出権限を付与する。したがって、被保護インテリジェントアプリケーションの使用権を、二級認証鍵を正しく配置しており且つ第1の被管理鍵を書き込んでいるインテリジェントデバイスに制限することができ、これにより、被保護インテリジェントアプリケーションが不正なデバイスで実行されるという悪意ある海賊行為を防ぐことができる。
【図面の簡単な説明】
【0017】
以下、本願の実施例及び従来技術の技術案をより明確に説明するために、実施例及び従来技術に使用される図面を簡単に説明する。なお、以下に説明される図面は、単に本願の一部の実施例に係るものに過ぎず、当業者にとって、創造的な働きをせずに、これらの図面に基づいて他の図面が得られることは自明である。
【0018】
【
図1】
図1は、本願の一実施例に係る鍵の正当な配置案の原理的模式図である。
【
図2】
図2は、本願における
図1に示すような鍵の正当な配置案の実例の概略フローチャートである。
【
図3】
図3は、本願における
図1に示すような鍵の正当な配置案の最適化原理の模式図である。
【
図4】
図4は、本願における
図3に示すような鍵の正当な配置案の実例の概略フローチャートである。
【
図5】
図5は、本願の一実施例に係る被保護インテリジェントアプリケーションの呼出権限の認証方法の例示的なフローチャートである。
【
図6】
図6は、本願における
図5に示すような呼出権限の認証方法により防止できる鍵の不正配置行為の模式図である。
【
図7】
図7は、本願における
図5に示すような呼出権限の認証方法の実例の概略フローチャートである。
【
図8】
図8は、本願における
図5に示すような呼出権限の認証方法が
図2に示すような鍵の正当配置実例をサポートする拡張フローチャートである。
【
図9】
図9は、本願の一実施例に係るインテリジェントデバイスの例示的構造の模式図である。
【発明を実施するための形態】
【0019】
本願の発明の目的、技術案及びメリットをより明確にするために、以下、図面を参照しながら実施例を挙げることで、本願をより詳細に説明する。説明される実施例は、すべての実施例ではなく、単に本願の実施例の一部にすぎないことは明らかである。当業者は、本願の実施例に基づいて、創造的な働きをせずに得られるすべての他の実施例は、何れも本願の保護範囲に含まれる。
【0020】
図1は、本願の一実施例に係る鍵の正当な配置案(即ち鍵配置方法)の模式図である。
図1を参照すると、指定された許可範囲内のインテリジェントデバイス(例えばスマートカード)における被保護インテリジェントアプリケーション(例えばインテリジェントアルゴリズムライブラリ)のロード及び実行を実現するために、該実施例に係る鍵の正当な配置案は、第1の被管理鍵Key_root 110(ルート鍵とも呼ばれる)、第2の被管理鍵Key_alg 120(インテリジェントアプリケーションの最初の鍵とも呼ばれる)、及び二級認証鍵Key_ladder 130(ワーク鍵とも呼ばれる)という3つの鍵を提供する。
【0021】
第1の被管理鍵Key_root 110はAES(Advanced Encryption Standard,高度暗号化標準)鍵でよい。第1の被管理鍵Key_root 110は、インテリジェントデバイス200における正当なハードウェア書き込み鍵として、インテリジェントデバイス200の書込禁止記憶媒体220に書き込まれてよい。該書込禁止記憶媒体220は、例えばOTP(One Time Programmable,ワンタイムプログラマブル)記憶媒体などのようなハードウェア書き込み鍵への改ざんを防ぐことができる媒体であってもよい。しかも、第1の被管理鍵Key_root 110の管理権が第1の管理者(本願において、管理者は制御者とも呼ばれる。)510に属し、該第1の管理者510は、デバイスカーネルアプリケーション210が属する第1の開発者410と、被保護インテリジェントアプリケーション300が属する第2の開発者420とは異なる。第1の開発者410及び第2の開発者420に対して第1の被管理鍵Key_root 110を秘密にして隔離することを容易にするために、第1の被管理鍵Key_root 110は、アクセス権限によって制御されるキーサーバ100を中継キャリアとして使用することができる。
【0022】
第2の被管理鍵Key_alg 120もAES鍵でよい。第2の被管理鍵Key_alg 120は、暗号化によって得られた被保護インテリジェントアプリケーションにおける暗号文の正当な暗号鍵としてよく、且つ、第2の被管理鍵Key_alg 120の管理権は第2の管理者520に属し、該第2の管理者520は、第1の管理者510と、デバイスカーネルアプリケーション210が属する第1の開発者410と、被保護インテリジェントアプリケーション300が属する第2の開発者420とは異なる。
【0023】
二級認証鍵Key_ladder 130は、鍵階層(Key Ladder)メカニズムに基づいて、第1の被管理鍵Key_root 110を用いて第2の被管理鍵Key_alg120を暗号化して得られた二級認証鍵でよい。二級認証鍵Key_ladder 130は、デバイスカーネルアプリケーション210が属する第1の開発者410のグループで共有されることができ、且つ二級認証鍵Key_ladder 130はカーネル埋め込み鍵として、第1の開発者410によってデバイスカーネルアプリケーション210内に埋め込まれることができる。
【0024】
図2は、
図1に示すような鍵の正当な配置案の実例の概略フローチャートである。
図2を参照すると、一つの鍵の正当な配置の実例において、
第1の開発者410(例えば、デバイスカーネルアプリケーションの所有者の開発グループ)は、キーサーバ100に鍵配布ツールを配置する(S411)。ここで、キーサーバ100における鍵配布ツールの配置位置は第1の開発者410のみに知らせることができる。
【0025】
キーサーバ100が鍵配布ツールのインストールを成功に完了する(S101)と、第1の開発者410は、キーサーバ100によって返された成功応答を受信する(S102)。この時、キーサーバ100は、第1の被管理鍵Key_root 110の中継キャリアとして機能する能力を有する。キーサーバ100は、鍵配布ツールを用いて、第1の管理者によってアップロードされた第1の被管理鍵と、第2の管理者によってアップロードされた第2の被管理鍵とを受信し、第1の被管理鍵を暗号鍵として第2の被管理鍵を暗号化して二級認証鍵を取得し、鍵配布ツールを用いて二級認証鍵を第1の開発者に発行することにより、第1の被管理鍵の中継を実現する。
【0026】
第1の管理者510(例えば、デバイスカーネルアプリケーションの所有者の鍵マネージャー)は、第1の被管理鍵Key_root 110をキーサーバ100にアップロードする(S511)ことにより、キーサーバ100は、第1の被管理鍵Key_root 110をローカルに格納する(S103)。ここで、キーサーバ100における第1の被管理鍵Key_root 110の格納位置は、第1の管理者510によって指定され、且つ第1の管理者510のみに知らせる。一例として、A社は、B社にデバイスカーネルアプリケーションの開発を依頼する場合、B社が第1の開発者であり、A社が第1の管理者である。
【0027】
第2の管理者520(例えば、被保護インテリジェントアプリケーションの所有者の鍵マネージャー)は、第2の被管理鍵Key_alg 120をキーサーバ100にアップロードする(S521)ことにより、キーサーバ100は、配置された鍵配布ツールを呼び出し、ローカルに格納された第1の被管理鍵Key_root 110を用いて、アップロードされた第2の被管理鍵Key_alg 120を暗号化して、ラダー暗号化メカニズムに基づく二級認証鍵Key_ladder 130を取得する(S104)。ここで、ラダー暗号化メカニズムとは、二級認証鍵は、第1の被管理鍵を用いて第2の被管理鍵を暗号化して得られたものであり、2つの階層の鍵情報を含む。一例として、C社は、D社にインテリジェントアプリケーションの開発を依頼する場合、D社が第2の開発者であり、C社が第2の管理者である。
【0028】
そして、キーサーバ100は、ラダー暗号化メカニズムに基づく二級認証鍵Key_ladder 130を第1の開発者410に発行する(S105)。これにより、第1の開発者410は、二級認証鍵Key_ladder 130を保存して、二級認証鍵Key_ladder 130をデバイスカーネルアプリケーション内に埋め込み(S412)、更に、二級認証鍵Key_ladder 130が埋め込まれたデバイスカーネルアプリケーションを生産ラインでインテリジェントデバイス200に固化しロードする(S413)ことができる。
【0029】
デバイスカーネルアプリケーションを固化しロードしたインテリジェントデバイス200は、生産ライン書込デバイス430によるハードウェア書き込み鍵の書き込み手順を含む後続の生産プロセスを生産ラインで継続し実行する。即ち、生産ライン書込デバイス430はインテリジェントデバイス200に対する認証検出を開始することができ(S431)、インテリジェントデバイス200のデバイスカーネルアプリケーションは、生産ライン書込デバイス430の認証検出に応答して、生産ライン書込デバイス430にデバイスカーネルアプリケーションに予め埋め込まれた、デバイスカーネルアプリケーションの正当性及びバージョンを検証するための認証情報を提供する(S201)ことができ、これにより生産ライン書込デバイス430はインテリジェントデバイス200の正当性を判定することができる。
【0030】
生産ライン書込デバイス430は、認証情報に従ってインテリジェントデバイス200が正当で正しいバージョンのデバイスであることを検出すると、キーサーバ100への鍵要求を開始する(S432)。ここで、生産ライン書込デバイス430がキーサーバ100にアクセスする権限は、生産ライン書込デバイス430に接続されたホットプラグ可能な暗号化装置(ドングルなど)によって認証されることができる。これにより、キーサーバ100は、鍵要求を受信して、鍵要求に対する認証を通過した後、暗号化された鍵データを生産ライン書込デバイス430に発行する(S106)。キーサーバ100と生産ライン書込デバイス430は、異なるメーカーのデバイスであり、キーサーバ100により、生産ライン書込デバイス430のアクセス権限を認証することにより、不正なメーカーが生産ライン書込デバイス430を不正に使用して二級認証鍵を詐取することを防止する。
【0031】
生産ライン書込デバイス430は鍵データを復号化する機能を有しないため、生産ライン書込デバイス430は暗号化された鍵データをインテリジェントデバイス200に転送する(S433)。
【0032】
インテリジェントデバイス200のデバイスカーネルアプリケーションは、生産ライン書込デバイス430によって提供された暗号鍵データを受信して、キーサーバ100に使用された暗号化アルゴリズム(例えば、難読化アルゴリズム)の逆アルゴリズム(例えば、難読化解除アルゴリズム)に従って、暗号鍵データに対して復号化操作を行い(S202)、そして暗号鍵データを復号化して得られた鍵データ(この時は、第1の被管理鍵Key_root 110である)を用いて、インテリジェントデバイス200の書込禁止記憶媒体(例えばOTP記憶媒体)に書き込んで、ハードウェア書き込み鍵を形成し(S203)、書き込みが完了した後、インテリジェントデバイス200のデバイスカーネルアプリケーションは書き込み時に用いられた鍵データを廃棄する。
【0033】
第2の開発者420(例えば被保護インテリジェントアプリケーションの所有者の開発グループ)は、第2の被管理鍵Key_alg 120による暗号化を行う(S522)ように、第2の管理者520に認証平文を提供する(S421)。第2の管理者520によって提供された認証暗号文を受信した後(S523)、第2の開発者420は、認証暗号文と認証平文を被保護インテリジェントアプリケーションに埋め込む(S422)。ここで、認証暗号文は、無制限のアクセス権限で被保護インテリジェントアプリケーションに埋め込まれ、認証平文はデバイスカーネルアプリケーションのアクセスを遮断するように埋め込まれる。第2の被管理鍵を用いて認証平文を暗号化して認証暗号文を取得した後、第2の管理者は認証暗号文を第2の開発者へ送信する。第2の開発者は、認証暗号文を無制限のアクセス権限で被保護インテリジェントアプリケーションに埋め込み、認証平文をデバイスカーネルアプリケーションのアクセスを遮断するように被保護インテリジェントアプリケーションに埋め込む。
【0034】
図3は、
図1に示すような鍵の正当な配置案の最適化原理の模式図である。
図4は、
図3に示すような鍵の正当な配置案の実例の概略フローチャートである。一つの拡張形態として、認証平文への暗号化による認証暗号文の生成プロセスは、第2の開発者420によって行われてもよい。例えば、キーサーバ100は、二級認証鍵Key_ ladder 130を第2の管理者520(S107)と第2の開発者420(S108)にそれぞれ発行して保存することもできる。
【0035】
第2の管理者520は、欺瞞的暗号化を実現するための平文暗号化ツールを作成し(S522)、第2の開発者420に提供する(S523)。該欺瞞的暗号化は、二級認証鍵Key_ladder 130を入力鍵とし、第2の被管理鍵Key_alg 120を真実の鍵として暗号化操作を行う。ここで、欺瞞的暗号化とは、入力鍵が真実の鍵と異なる暗号化操作を意味し、すなわち、入力された二級認証鍵を使用せずに、第2の被管理鍵を用いて暗号化する。
【0036】
従って、第2の開発者420は、保存された二級認証鍵Key_ladder 130を用いて、第2の管理者520によって提供された平文暗号化ツールにより認証平文の暗号化を行い(S421’)、第2の被管理鍵Key_alg 120を真実の鍵として暗号化した認証暗号文を取得する。その後、第2の開発者420は認証暗号文と認証平文を被保護インテリジェントアプリケーションに埋め込む(S422)。ここで、認証暗号文は無制限のアクセス権限で被保護インテリジェントアプリケーションに埋め込まれ、認証平文はデバイスカーネルアプリケーションのアクセスを遮断するように埋め込まれる。
【0037】
鍵の正当な配置に対する上記の説明は、第1の被管理鍵Key_root 110(ルート鍵とも呼ばれる)がインテリジェントデバイスに書き込むために用いられ、第2の被管理鍵Key_alg 120(インテリジェントアプリケーションの最初の鍵とも呼ばれる)が被保護インテリジェントアプリケーションの認証暗号文を生成するために用いられ、二級認証鍵Key_ladder 130が復号化認証をトリガーするか又は更に暗号文の暗号化をトリガーするために用いられるという鍵関係を容易に理解することを目的としており、上記の鍵の正当な配置における操作プロセス、各関係者の身分及び鍵配布の詳細は、鍵関係に対する必要な制限を構成するものではないことが理解できる。
【0038】
以下、上記の鍵関係を有する第1の被管理鍵Key_root 110、第2の被管理鍵Key_alg 120、及び二級認証鍵Key_ladder 130により、被保護インテリジェントアプリケーションの呼出権限の認証方法を詳細に説明する。
【0039】
本願において、インテリジェントデバイスの具体的なタイプを限定しない。インテリジェントデバイスは、インテリジェントアプリケーションをロードし実行することができる任意のデバイスでよい。一例として、インテリジェントデバイスがスマートカメラ又はデジタルビデオレコーダなどである場合、被保護インテリジェントアプリケーションがインテリジェント分析アルゴリズム(例えば、目標識別や目標軌道分析などのアルゴリズム、あるいはビデオカメラ又はデジタルビデオレコーダなどのデバイスのクライアントなど)であってもよい。一例として、インテリジェントデバイスがビデオカメラ用雲台を搭載したドローンである場合、被保護インテリジェントアプリケーションが雲台を制御するアプリケーションであってもよい。
【0040】
図5は、本願の一実施例に係る被保護インテリジェントアプリケーションの呼出権限の認証方法の例示的なフローチャートである。
図5を参照すると、被保護インテリジェントアプリケーションがインテリジェントデバイスにロードされる(S500)と、該実施例に係る被保護インテリジェントアプリケーションの呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを含む。
【0041】
S510:被保護インテリジェントアプリケーションにおける認証暗号文を取得する。
【0042】
S530:ハードウェア復号化モジュールを呼び出し、予めデバイスカーネルアプリケーションに埋め込まれたカーネル埋め込み鍵と、取得された認証暗号文とをハードウェア復号化モジュールに発行し、ハードウェア復号化モジュールに、
S531において、インテリジェントデバイスの書込禁止記憶媒体からハードウェア書き込み鍵を読み取ることと、
S532において、書込禁止記憶媒体におけるハードウェア書き込み鍵を用いて、予めデバイスカーネルアプリケーションに埋め込まれたカーネル埋め込み鍵を復号化することと、
S533において、カーネル埋め込み鍵を復号化して得られた復号鍵を用いて、認証暗号文を復号化することと、
を実行させる。
【0043】
例えば、二級認証鍵Key_ladderは、第1の被管理鍵Key_rootを用いて、第2の被管理鍵Key_algに対して第1の暗号化アルゴリズムに基づく暗号化操作を行って得られるものであり、認証暗号文は、第2の被管理鍵Key_algを用いて、サンプル平文(即ち認証平文)を暗号化して得られるものである。これに対応して、ハードウェア復号化モジュールは、ハードウェア書き込み鍵を用いて、カーネル埋め込み鍵に対して第1の復号化アルゴリズム(第1の暗号化アルゴリズムの逆アルゴリズム)に基づく復号化操作を行い、且つ、ハードウェア復号化モジュールは、カーネル埋め込み鍵を復号化して得られた復号鍵を用いて、認証暗号文に対して第2の復号化アルゴリズム(第2の暗号化アルゴリズムの逆アルゴリズム)に基づく復号化操作を行う。
【0044】
これにより、カーネル埋め込み鍵が第1の被管理鍵Key_rootを用いて第2の被管理鍵Key_algを暗号化して得られた二級認証鍵Key_ladderであり、且つハードウェア書き込み鍵が第1の被管理鍵Key_rootである場合、カーネル埋め込み鍵を復号化して得られた復号鍵は第2の被管理鍵Key_algである。
【0045】
認証暗号文が、サンプル平文に対して、二級認証鍵Key_ladderを入力鍵とし第2の被管理鍵Key_algを真実の鍵とする欺瞞的暗号化を行うことで得られるものである場合、該欺瞞的暗号化は、第1の被管理鍵Key_rootを用いて入力鍵に対して第1の復号化アルゴリズム(第1の暗号化アルゴリズムの逆アルゴリズム)に基づく復号化操作を行い、且つ入力鍵を復号化して得られた欺瞞的鍵(第2の被管理鍵Key_alg)を真実の鍵として第2の暗号化アルゴリズムに基づく暗号化操作を行う。
【0046】
S550:被保護インテリジェントアプリケーションが、S600において復号化平文とサンプル平文との一致性を検証して、デバイスカーネルアプリケーションに呼出権限を付与するかどうかを決定するために、ハードウェア復号化モジュールの呼び出しによって返された、認証暗号文を復号化して得られた復号化平文を被保護インテリジェントアプリケーションに提供する。
【0047】
ここで、カーネル埋め込み鍵を復号化して得られた復号鍵が第2の被管理鍵Key_algである場合、認証暗号文を復号化して得られた復号化平文は、デバイスカーネルアプリケーションのアクセスが遮断された被保護インテリジェントアプリケーションにおけるサンプル平文と一致する。
【0048】
上記のプロセスによれば、デバイスカーネルアプリケーションがハードウェア復号化モジュールを呼び出すことで、インテリジェントデバイスはデバイスカーネルアプリケーションのカーネル埋め込み鍵と書込禁止記憶媒体のハードウェア書き込み鍵とを用いて被保護インテリジェントアプリケーションの認証暗号文を復号化することができる。
そして、カーネル埋め込み鍵が第1の被管理鍵Key_rootを用いて第2の被管理鍵Key_algを暗号化して得られた二級認証鍵Key_ladderであり、且つハードウェア書き込み鍵が第1の被管理鍵Key_rootである場合にのみ、正しい第2の被管理鍵Key_algを取得して認証暗号文を復号し、復号化によってサンプル平文と一致する復号化平文を取得することができ、これにより、被保護インテリジェントアプリケーションが一致性の検証に合格して、デバイスカーネルアプリケーションに呼出権限を付与する。
【0049】
したがって、被保護インテリジェントアプリケーションの使用権を、二級認証鍵Key_ladderを正しく配置しており且つ第1の被管理鍵Key_rootを書き込んでいるインテリジェントデバイスに制限することができ、これにより、被保護インテリジェントアプリケーションが不正なデバイスで実行されるという悪意ある海賊行為を防ぐことができる。
【0050】
図6は、
図1に示すような呼出権限の認証方法により防止できる鍵の不正な配置行為の模式図である。
図6を参照すると、剽窃者610がインテリジェントデバイスのハードウェア及びそのロードされたデバイスカーネルアプリケーションを模倣する場合、剽窃者610が二級認証鍵Key_ladderと第1の被管理鍵Key_rootを同時に取得することは困難であるため、偽造インテリジェントデバイスが被保護インテリジェントアプリケーション300の呼出権限を取得することができない。
【0051】
図7は、
図5に示すような呼出権限の認証方法の実例の概略フローチャートである。
図7を参照すると、被保護インテリジェントアプリケーションは、インテリジェントアプリケーションカーネル310と、アプリケーション検証モジュール320と、デバイスカーネルアプリケーションへのアクセス権限を付与するアクセスインターフェース331及び検証インターフェース332と、制限されたアクセス権限をデバイスカーネルアプリケーションに提供する呼び出しインターフェース390と、を備える。
【0052】
ここで、アクセスインターフェース331、検証インターフェース332及び呼び出しインターフェース390はいずれもAPI(Application Programming Interface,アプリケーションプログラムインタフェース)でもよく、そして、無制限のアクセス権限で被保護インテリジェントアプリケーションに埋め込まれた認証暗号文はアクセスインターフェース331に集積されることができ、デバイスカーネルアプリケーションのアクセスを遮断するように被保護インテリジェントアプリケーションに埋め込まれた認証平文は検証モジュール320に隠れて集積されることができる。
【0053】
それに対応して、
図7において、デバイスカーネルアプリケーションはS510において被保護インテリジェントアプリケーションのアクセスインターフェース331を読み取ることで認証暗号文を取得する。そして、被保護インテリジェントアプリケーションにおけるアプリケーション検証モジュール320が復号化平文とサンプル平文との一致性を検証して、この検証結果に基づいてデバイスカーネルアプリケーションに呼出権限を付与するかどうかを決定するために、デバイスカーネルアプリケーションは、S550において復号化平文を検証インターフェース332へ送信する。
【0054】
また、
図7において、呼出権限の認証方法は、S550の後に、デバイスカーネルアプリケーションによって実行されるS570を更に含む。該S570において、被保護インテリジェントアプリケーション(アプリケーション検証モジュール320)によって返された検証結果を受信し、検証結果を認識することで、被保護インテリジェントアプリケーションを呼び出す権利があるかどうか、即ち呼出インターフェース390にアクセスすることによりインテリジェントアプリケーションカーネル310への呼び出し成功応答を取得するかどうかを判定する。
【0055】
図8は、
図5に示すような呼出権限の認証方法が
図2に示すような鍵の正当な配置実例をサポートする拡張フローチャートである。
図8を参照すると、被保護インテリジェントアプリケーションがインテリジェントデバイスにロードされる前に(例えば、インテリジェントデバイスが生産ラインの製造段階にある)、該実施例に係る被保護インテリジェントアプリケーションの呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを含む。
S810:生産ライン書き込みデバイスによって提供された暗号鍵データを受信する。
S830:暗号鍵データに対して復号化操作を行う。
S850:暗号鍵データを復号化して得られた鍵データを用いて、インテリジェントデバイスの書込禁止記憶媒体に書き込んで、ハードウェア書き込み鍵を形成する。
【0056】
ここで、生産ライン書込デバイスによって提供された暗号鍵データがキーサーバからのものである場合、暗号鍵データを復号化して得られた鍵データが第1の被管理鍵Key_rootである。
【0057】
そして、より好ましい最適化案として、キーサーバに対する生産ライン書込デバイスのアクセス権限は、生産ライン書込デバイスに接続されたホットプラグ可能な暗号化装置(ドングルなど)によって認証される。
【0058】
S870:書き込みが完了した後、該鍵データを廃棄する。
【0059】
また、より好ましい最適化案として、S810の前に、該実施例に係る被保護インテリジェントアプリケーションの呼出権限の認証方法は、インテリジェントデバイスのデバイスカーネルアプリケーションによって実行される以下のステップを含み、即ち、生産ライン書込デバイスの認証検出に応答し、予めデバイスカーネルアプリケーションに埋め込まれた認証情報を生産ライン書込デバイスへ提供する。
【0060】
図9は、一実施例に係るインテリジェントデバイスの例示的構造の模式図である。
図9を参照すると、該実施例では、インテリジェントデバイス(スマートカードの形態として表現されてよい)は、アプリケーション搭載モジュール910と、ハードウェア復号化モジュール920と、書込禁止記憶媒体930(例えば、OTP記憶媒体など)と、を備える。
【0061】
アプリケーション搭載モジュール910は、デバイスカーネルアプリケーションをロードし実行するためのものである。そして、被保護インテリジェントアプリケーションがアプリケーション搭載モジュールに記録される場合、デバイスカーネルアプリケーションは、上記の実施例に記載された呼出権限の認証方法を実行するために用いられ、即ち
図5または
図7に示すプロセスを実行するために用いられ、更に
図8に示すプロセスを実行するために用いられることもできる。
【0062】
ハードウェア復号化モジュール920は、アプリケーション搭載モジュール910にロードされたデバイスカーネルアプリケーションに復号化支援を提供するためのものであり、即ち、
図5又は
図7に示したプロセスにおけるS531、S532及びS533のステップを実行するために用いられる。
【0063】
書込禁止記憶媒体930にはハードウェア書き込み鍵が書き込まれている。例えば、ハードウェア書き込み鍵は、
図8に示すプロセスにより該書込禁止記憶媒体930に書き込まれる。
【0064】
上記のインテリジェントデバイスを実現する際に、アプリケーション搭載モジュール910と、ハードウェア復号化モジュール920と、書込禁止記憶媒体930(例えば、OTP記憶媒体)とは、一つのIC(Integrated Circuit,集積回路)チップに集積されることができる。
【0065】
インテリジェントデバイスは非一時的なコンピュータ読取可能な記憶媒体を更に備え、該非一時的なコンピュータ読取可能な記憶媒体は、アプリケーション搭載モジュール910と、ハードウェア復号化モジュール920と、書込禁止記憶媒体930とを集積しているICチップから独立することができ、且つ非一時的なコンピュータ読取可能な記憶媒体には命令が記憶されている。該命令の一部は、例えばICチップなどのプロセッサーによって実行されると、例えば該ICチップなどのプロセッサーにデバイスカーネルアプリケーションをロードさせ(アプリケーション搭載モジュール910にロードされる)、デバイスカーネルアプリケーションに上記の実施例に記載された呼出権限の認証方法を実行させ、即ち
図5又は
図7に示すプロセスを実行させ、更に
図8に示すプロセスを実行させることもできる。
【0066】
該非一時的なコンピュータ読取可能な記憶媒体には、例えば該ICチップなどのプロセッサーにデバイスカーネルアプリケーションをロードさせる(アプリケーション搭載モジュール910にロードされる)ための他の命令を導入することもできる。
【0067】
ハードウェア復号化モジュール920により復号プロセスを実現するアルゴリズムは、非一時的なコンピュータ読取可能な記憶媒体からプログラムをロードする方式を使用せずに、ハードウェア復号化モジュール920に予め固化されてもよい。
【0068】
本願において、好ましい各技術案の技術的特徴は、矛盾しない限り、組み合わせて技術案を構成することができ、これらの技術案はいずれも本願に開示された範囲内にある。第1や第2のような関係用語は、1つのエンティティ又は操作を他のエンティティ又は操作と区別することに用いられるに過ぎず、必ずしもこれらのエンティティ又は操作の間にこのような実際的な関係又は順序が存在することをリクエスト又は示唆しない。また、用語「備える」、「含む」、又はその他の変形は、非排他的な包含をカバーすることを意図することで、一連の要素を含むプロセス、方法、物品、又はデバイスがそれらの要素だけでなく、明示的に挙げられていない他の要素を更に含み、或いは、このようなプロセス、方法、物品又はデバイスにおける固有の要素を更に含む。特別の制限がない限り、「1つの…を含む」により限定される要素は、上記要素を含むプロセス、方法、物品又はデバイスがさらに他の同一の要素を有することを排除するものではない。本明細書における各実施例は、何れも関連する方法で記載されているが、各実施例における重要な説明は、他の実施例との相違点であるため、各実施例間の同一または類似の部分は、互いに参照すればよい。
【0069】
以上の説明は、本願の好ましい実施例にすぎず、本願を限定するものではない。本願の精神及び原則を逸脱しない範囲内で行われた任意の補正、同等の置換、変更等は、いずれも本願の保護範囲内に含まれる。
【0070】
(関連出願への相互参照)
本願は、2020年04月03日に中国特許庁に提出された、出願番号が202010259146.3であり、発明の名称が「被保護インテリジェントアプリケーションの呼出権限の認証方法及びインテリジェントデバイス」である中国特許出願に基づき優先権を主張し、その全ての内容は援用により本願に組み込まれる。