(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】IoT鍵管理システム,セキュアデバイス,IoTデバイス,デバイス管理装置およびセキュアエレメントの公開鍵証明書生成方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20231212BHJP
G06F 21/44 20130101ALI20231212BHJP
H04L 9/32 20060101ALI20231212BHJP
【FI】
H04L9/08 C
H04L9/08 F
G06F21/44
H04L9/32 200A
(21)【出願番号】P 2019232211
(22)【出願日】2019-12-24
【審査請求日】2022-10-27
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100122529
【氏名又は名称】藤枡 裕実
(74)【代理人】
【識別番号】100135954
【氏名又は名称】深町 圭子
(74)【代理人】
【識別番号】100119057
【氏名又は名称】伊藤 英生
(74)【代理人】
【識別番号】100131369
【氏名又は名称】後藤 直樹
(74)【代理人】
【識別番号】100171859
【氏名又は名称】立石 英之
(72)【発明者】
【氏名】塙 知剛
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2015-039141(JP,A)
【文献】特開2017-175226(JP,A)
【文献】特開2019-057755(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/44
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
セキュアエレメントを組み込んだIoTデバイスおよびデバイス管理装置がネットワークを介して接続されたシステムであって,
前記セキュアエレメントは,非対称暗号方式の秘密鍵と公開鍵の組を生成し,認証コードを生成するための基本鍵を利用して,公開鍵を含ませた公開鍵ファイルの認証コードを算出した後,前記公開鍵ファイルとこの認証コードを出力する暗号鍵生成手段と,前記暗号鍵生成手段が生成した秘密鍵を用いて,指示されたメッセージの署名を生成する署名生成手段を備え,
前記IoTデバイスは,非対称暗号方式の秘密鍵と公開鍵の組の生成を前記セキュアエレメントに指示し,前記セキュアエレメントから受信した前記公開鍵ファイルに含まれる公開鍵のCSRファイルを生成した後,CSRファイルの署名生成を前記セキュアエレメントに指示し,前記公開鍵ファイル,この認証コード,および,前記セキュアエレメントが生成した署名を前記CSRファイルに付加した署名付きCSRファイルを前記デバイス管理装置へ送信するCSRファイル生成手段を備え,
前記デバイス管理装置は,前記セキュアエレメントと共有している前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証し,正当性検証に成功すると,前記署名付きCSRファイルを所定の認証局へ送信する証明書申請手段を備える,
ことを特徴とする,IoT鍵管理システム。
【請求項2】
前記セキュアエレメントの前記暗号鍵生成手段は,認証コードを算出する際,派生鍵を導出する導出アルゴリズムに従い,前記基本鍵と前記導出アルゴリズムで必要となるパラメータを用いて派生鍵を導出し,前記パラメータを含ませた前記公開鍵ファイルと前記派生鍵から認証コードを算出し,
前記デバイス管理装置の前記証明書申請手段は,前記基本鍵とこの前記公開鍵ファイルに含まれる前記パラメータを用いて,前記セキュアエレメントと同じ前記導出アルゴリズムにより派生鍵を生成し,派生鍵を用いて前記IoTデバイスから受信した認証コードを正当性検証する,
ことを特徴とする,請求項1に記載したIoT鍵管理システム。
【請求項3】
前記導出アルゴリズムを,疑似乱数関数を利用して前記基本鍵から派生鍵を導出するアルゴリズムとし,前記パラメータを前記疑似乱数関数の反復回数としたことを特徴とする,請求項2に記載したIoT鍵管理システム。
【請求項4】
前記導出アルゴリズムを,前記基本鍵を用いて前記パラメータを演算処理することで派生鍵を生成するアルゴリズムとし,前記パラメータを乱数情報としたことを特徴とする,請求項2に記載したIoT鍵管理システム。
【請求項5】
前記セキュアエレメントは,前記セキュアエレメントごとで個別な前記基本鍵を記憶し,前記暗号鍵生成手段は,前記セキュアエレメントで個別なエレメントIDを前記公開鍵ファイルに含ませ,
前記デバイス管理装置の前記証明書申請手段は,前記セキュアエレメントが格納している前記基本鍵を前記エレメントIDに関連付けて記憶し,前記IoTデバイスから受信した前記公開鍵ファイルに含まれている前記エレメントIDに関連付けられている前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証する,
ことを特徴とする,請求項1から請求項4のいずれか一つに記載したIoT鍵管理システム。
【請求項6】
セキュアエレメントの公開鍵証明書を生成する方法であって,
前記セキュアエレメントを組み込んだIoTデバイスが,非対称暗号方式の秘密鍵と公開鍵の組の生成を前記セキュアエレメントに指示し,前記セキュアエレメントが,非対称暗号方式の秘密鍵と公開鍵の組を生成し,認証コードを生成するための基本鍵を利用して,公開鍵を含ませた公開鍵ファイルの認証コードを算出した後,前記公開鍵ファイルとこの認証コードを出力するステップaと,
前記IoTデバイスが,前記公開鍵ファイルとこの認証コードを前記セキュアエレメントから受信すると,前記公開鍵ファイルに含まれる公開鍵のCSRファイルを生成するステップbと,
前記IoTデバイスが,前記CSRファイルの署名生成を前記セキュアエレメントに指示し,前記セキュアエレメントが,前記ステップaで生成した秘密鍵を用いて,前記CSRファイルの署名を生成して出力するステップc,
前記IoTデバイスが,前記公開鍵ファイル,この認証コード,および,前記セキュアエレメントが生成した署名を前記CSRファイルに付加した署名付きCSRファイルを,前記セキュアエレメントを管理しているデバイス管理装置へ送信するステップdと,
前記デバイス管理装置が,前記セキュアエレメントと共有している前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証し,正当性検証に成功すると,前記署名付きCSRファイルを所定の認証局へ送信するステップeを,
含むことを特徴とするセキュアエレメントの公開鍵証明書生成方法。
【請求項7】
前記ステップaにおいて,前記セキュアエレメントは,認証コードを算出する際,派生鍵を導出する導出アルゴリズムに従い,前記基本鍵と前記導出アルゴリズムで必要となるパラメータを用いて派生鍵を導出し,前記パラメータを含ませた前記公開鍵ファイルと前記派生鍵から認証コードを算出し,
前記ステップeにおいて,前記デバイス管理装置は,前記基本鍵とこの前記公開鍵ファイルに含まれる前記パラメータを用いて,前記セキュアエレメントと同じ前記導出アルゴリズムにより派生鍵を生成し,派生鍵を用いて前記IoTデバイスから受信した認証コードを正当性検証する,
ことを特徴とする,請求項
6に記載したセキュアエレメントの公開鍵証明書生成方法。
【請求項8】
前記導出アルゴリズムを,疑似乱数関数を利用して前記基本鍵から派生鍵を導出するアルゴリズムとし,前記パラメータを前記疑似乱数関数の反復回数としたことを特徴とする,請求項
7に記載したセキュアエレメントの公開鍵証明書生成方法。
【請求項9】
前記導出アルゴリズムを,前記基本鍵を用いて前記パラメータを演算処理することで派生鍵を生成するアルゴリズムとし,前記パラメータを乱数情報としたことを特徴とする,
請求項
7に記載したセキュアエレメントの公開鍵証明書生成方法。
【請求項10】
前記ステップaにおいて,前記セキュアエレメントは,前記セキュアエレメントごとで個別な前記基本鍵を利用して,前記セキュアエレメントで個別なエレメントIDを含ませた前記公開鍵ファイルの認証コードを生成し,
前記ステップeにおいて,前記デバイス管理装置は,前記エレメントIDに関連付けて記憶している前記基本鍵の中から,前記IoTデバイスから受信した前記公開鍵ファイルに含まれている前記エレメントIDに関連付けられている前記基本鍵を利用して,前記I
oTデバイスから受信した認証コードを正当性検証する,
ことを特徴とする,請求項
6から請求項
9のいずれか一つに記載したセキュアエレメントの公開鍵証明書生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,IoTデバイスに組み込まれるセキュアエレメントが生成した公開鍵の公開鍵証明書を生成する技術分野に関する。
【背景技術】
【0002】
2020年から日本国内で運用が開始される第5世代移動体通信システム(通称:5G)では,一平方キロメートル当たり100万台以上のモバイル機器を一つの中継基地に同時接続できるため,第5世代移動体通信システムの運用開始により,IoT(Internet of Things)が急速に普及すると言われている。
【0003】
決済,医療または交通などIoTの用途によっては,セキュアなIoTの運用が求められる。セキュアなIoTの運用には,CA(Certification Authority,日本語では認証局)のデジタル署名が付加された公開鍵証明書をベースとするPKI(public key infrastructure)を活用するのが一般的になっている。
【0004】
セキュアな運用が求められるIoTで用いるIoTデバイスには,PKIに対応したセキュアエレメントが組み込まれる。IoTデバイスに組み込まれるセキュアエレメントは,PKIに係る機能として,非対称暗号方式の暗号鍵対(秘密鍵と公開鍵)を生成する機能,秘密鍵を秘匿に記憶する機能,公開鍵を出力する機能,および,秘密鍵や公開鍵を用いた暗号演算を行う機能などを有する。
【0005】
PKIでは,IoTデバイスの通信相手がIoTデバイスに組み込まれたセキュアエレメントの正当性を確認できるように,CAのデジタル署名などが付加されたセキュアエレメントの公開鍵証明書が必要とされる。公開鍵証明書のフォーマットは任意であるが,例えば,X.509にて,公開鍵証明書の標準フォーマットが定められている。
【0006】
特許文献1に記載があるように,セキュアエレメントの公開鍵証明書を生成する一般的な手順は,以下のごとくである。
【0007】
手順1)IoTデバイスに組み込まれたセキュアエレメントが非対称暗号方式の秘密鍵と公開鍵を生成する。
【0008】
手順2)IoTデバイスが,セキュアエレメントから公開鍵を取得し,IoTデバイスが,セキュアエレメントから取得した公開鍵を,IoTデバイスを集中管理しているデバイス管理装置に送信する。
【0009】
手順3)デバイス管理装置が,公開鍵証明書の発行をCAに申請する。
【先行技術文献】
【特許文献】
【0010】
【文献】特許第6465426号公報(段落0018)
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら,IoTデバイスの公開鍵証明書を生成する従来の手順では,デバイス管理装置は,CAに公開鍵証明書の発行を申請する公開鍵が正当なセキュアエレメントで生成されたものである否か,および,公開鍵の改ざんなどを判定できない問題がある。
【0012】
そこで,本発明は,IoTデバイスに組み込まれたセキュアエレメントの公開鍵証明書を生成する際,公開鍵証明書の発行をCAに申請するデバイス管理装置側で,CAに公開鍵証明書の発行を申請する公開鍵の正当性を検証できるようにすることを目的とする。
【課題を解決するための手段】
【0013】
上述した課題を解決する第1発明に係るIoT鍵管理システムは,セキュアエレメントを組み込んだIoTデバイスおよびデバイス管理装置がネットワークを介して接続されたシステムである。
【0014】
第1発明に係る前記セキュアエレメントは,非対称暗号方式の秘密鍵と公開鍵の組を生成し,認証コードを生成するための基本鍵を利用して,公開鍵を含ませた公開鍵ファイルの認証コードを算出した後,前記公開鍵ファイルとこの認証コードを出力する暗号鍵生成手段と,前記暗号鍵生成手段が生成した秘密鍵を用いて,指示されたメッセージの署名を生成する署名生成手段を備える。
【0015】
第1発明に係る前記IoTデバイスは,非対称暗号方式の秘密鍵と公開鍵の組の生成を前記セキュアエレメントに指示し,前記セキュアエレメントから受信した前記公開鍵ファイルに含まれる公開鍵のCSRファイルを生成した後,CSRファイルの署名生成を前記セキュアエレメントに指示し,前記公開鍵ファイル,この認証コード,および,前記セキュアエレメントが生成した署名を前記CSRファイルに付加した署名付きCSRファイルを前記デバイス管理装置へ送信するCSRファイル生成手段を備える。
【0016】
第1発明に係る前記デバイス管理装置は,前記セキュアエレメントと共有している前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証し,正当性検証に成功すると,前記署名付きCSRファイルを所定の認証局へ送信する証明書申請手段を備える。
【0017】
前記デバイス管理装置が,前記セキュアエレメントが生成した前記公開鍵ファイルの認証コードを検証することで,公開鍵ファイルに含まれるデータが改ざんされているか否かを検証でき,更に,認証コードの生成に,セキュアエレメントとデバイス管理装置が共有している基本鍵を用いることで,公開鍵を生成した前記セキュアエレメントが前記デバイス管理装置で管理している前記セキュアエレメントであることを前記デバイス管理装置側で検証できる。
【0018】
更に,第2発明は,第1発明に記載したIoT鍵管理システムにおいて,前記セキュアエレメントの前記暗号鍵生成手段は,認証コードを算出する際,派生鍵を導出する導出アルゴリズムに従い,前記基本鍵と前記導出アルゴリズムで必要となるパラメータを用いて派生鍵を導出し,前記パラメータを含ませた前記公開鍵ファイルと前記派生鍵から認証コードを算出し,前記デバイス管理装置の前記証明書申請手段は,前記基本鍵とこの前記公開鍵ファイルに含まれる前記パラメータを用いて,前記セキュアエレメントと同じ前記導出アルゴリズムにより派生鍵を生成し,派生鍵を用いて前記IoTデバイスから受信した認証コードを正当性検証することを特徴とする。
【0019】
前記基本鍵と前記パラメータを用いて導出アルゴリズムにより派生鍵を導出することで,前記基本鍵の解読がより困難になり,前記公開鍵ファイルの改ざんなどを検知できる効果が高まる。
【0020】
更に,第3発明は,第2発明に記載したIoT鍵管理システムにおいて,前記導出アルゴリズムを,疑似乱数関数を利用して前記基本鍵から派生鍵を導出するアルゴリズムとし,前記パラメータを前記疑似乱数関数の反復回数としたことを特徴とする。
【0021】
疑似乱数関数を利用して前記基本鍵から派生鍵を導出するアルゴリズムでは,反復回数によりセキュリティを高めているため,前記公開鍵ファイルに含ませる前記パラメータを反復回数にすることが好適である。
【0022】
更に,第4発明は,第2発明に記載したIoT鍵管理システムにおいて,前記導出アルゴリズムを,前記基本鍵を用いて前記パラメータを演算処理することで派生鍵を生成するアルゴリズムとし,前記パラメータを乱数情報としたことを特徴とする。
【0023】
派生鍵の生成に前記乱数情報を利用することで,同じ前記セキュアエレメントであっても,公開鍵を生成するごとに認証コードの算出に用いる鍵を変更できる。
【0024】
更に,第5発明は,第1発明から第4発明のいずれか一つに記載したIoT鍵管理システム前記セキュアエレメントは,前記セキュアエレメントごとで個別な前記基本鍵を記憶し,前記暗号鍵生成手段は,前記セキュアエレメントで個別なエレメントIDを前記公開鍵ファイルに含ませ,前記デバイス管理装置の前記証明書申請手段は,前記セキュアエレメントが格納している前記基本鍵を前記エレメントIDに関連付けて記憶し,前記IoTデバイスから受信した前記公開鍵ファイルに含まれている前記エレメントIDに関連付けられている前記基本鍵を利用し,前記IoTデバイスから受信した認証コードを正当性検証することを特徴とする。
【0025】
前記セキュアエレメントが格納している基本鍵を,前記セキュアエレメントで個別にすることで,前記デバイス管理装置は,前記IoTデバイスから受信した公開鍵ファイルに含まれる前記エレメントIDから,公開鍵を生成した前記セキュアエレメントを特定できる。
【0029】
更に,第6発明は,セキュアエレメントの公開鍵証明書を生成する方法であって,前記セキュアエレメントを組み込んだIoTデバイスが,非対称暗号方式の秘密鍵と公開鍵の組の生成を前記セキュアエレメントに指示し,前記セキュアエレメントが,非対称暗号方式の秘密鍵と公開鍵の組を生成し,認証コードを生成するための基本鍵を利用して,公開鍵を含ませた公開鍵ファイルの認証コードを算出した後,前記公開鍵ファイルとこの認証コードを出力するステップaと,前記IoTデバイスが,前記公開鍵ファイルとこの認証コードを前記セキュアエレメントから受信すると,前記公開鍵ファイルに含まれる公開鍵のCSRファイルを生成するステップbと,前記IoTデバイスが,前記CSRファイルの署名生成を前記セキュアエレメントに指示し,前記セキュアエレメントが,前記ステップaで生成した秘密鍵を用いて,前記CSRファイルの署名を生成して出力するステップc,前記IoTデバイスが,前記公開鍵ファイル,この認証コード,および,前記セキュアエレメントが生成した署名を前記CSRファイルに付加した署名付きCSRファイルを前記デバイス管理装置へ送信するステップdと,前記デバイス管理装置が,前記セキュアエレメントと共有している前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証し,正当性検証に成功すると,前記署名付きCSRファイルを所定の認証局へ送信するステップeを含むことを特徴とするセキュアエレメントの公開鍵証明書生成方法である。
【0030】
第6発明は,第1発明に対応する方法の発明である。
【0031】
更に,第7発明は,第6発明に記載したセキュアエレメントの公開鍵証明書生成方法前記ステップaにおいて,前記セキュアエレメントは,認証コードを算出する際,派生鍵を導出する導出アルゴリズムに従い,前記基本鍵と前記導出アルゴリズムで必要となるパラメータを用いて派生鍵を導出し,前記パラメータを含ませた前記公開鍵ファイルと前記派生鍵から認証コードを算出し,前記ステップeにおいて,前記デバイス管理装置は,前記基本鍵とこの前記公開鍵ファイルに含まれる前記パラメータを用いて,前記セキュアエレメントと同じ前記導出アルゴリズムにより派生鍵を生成し,派生鍵を用いて前記IoTデバイスから受信した認証コードを正当性検証することを特徴とする。
【0032】
第7発明は,第2発明に対応する方法の発明である。
【0033】
更に,第8発明は,第7発明に記載したセキュアエレメントの公開鍵証明書生成方法であって,前記導出アルゴリズムを,疑似乱数関数を利用して前記基本鍵から派生鍵を導出するアルゴリズムとし,前記パラメータを前記疑似乱数関数の反復回数としたことを特徴とする。
【0034】
第8発明は,第3発明に対応する方法の発明である。
【0035】
更に,第9発明は,第7発明に記載したセキュアエレメントの公開鍵証明書生成方法であって,前記導出アルゴリズムを,前記基本鍵を用いて前記パラメータを演算処理することで派生鍵を生成するアルゴリズムとし,前記パラメータを乱数情報としたことを特徴とする。
【0036】
第9発明は,第4発明に対応する方法の発明である。
【0037】
更に,第10発明は,第6発明から第9発明のいずれか一つに記載したセキュアエレメントの公開鍵証明書生成方法であって,前記ステップaにおいて,前記セキュアエレメントは,前記セキュアエレメントごとで個別な前記基本鍵を利用して,前記セキュアエレメントで個別なエレメントIDを含ませた前記公開鍵ファイルの認証コードを生成し,前記ステップeにおいて,前記デバイス管理装置は,前記エレメントIDに関連付けて記憶している前記基本鍵の中から,前記IoTデバイスから受信した前記公開鍵ファイルに含まれている前記エレメントIDに関連付けられている前記基本鍵を利用して,前記IoTデバイスから受信した認証コードを正当性検証することを特徴とする。
【0038】
第10発明は,第5発明に対応する方法の発明である。
【発明の効果】
【0039】
このように,本発明によれば,IoTデバイスの公開鍵証明書を生成する際,公開鍵証明書の発行をCAに申請するデバイス管理装置側で,CAに公開鍵証明書の発行を申請する公開鍵の正当性を検証できる。
【図面の簡単な説明】
【0040】
【
図2】IoTデバイスが実装するセキュアエレメントのブロック図。
【
図5】セキュアエレメントの公開鍵証明書を生成する手順を説明する図。
【発明を実施するための形態】
【0041】
ここから,本発明に係る実施形態について記載する。本実施形態は,本発明の理解を容易にするためのものであり,本発明は,本実施形態に限定されるものではない。また,特に断りのない限り,図面は,本発明の理解を容易にするために描かれた模式的な図である。
【0042】
図1では,IoT鍵管理システム1の構成を示している。
図1で図示したIoT鍵管理システム1は,複数のIoTデバイス3,それぞれのIoTデバイス3に組み込まれているセキュアエレメント2およびデバイス管理装置4が含まれる。
図1では,これらに加えて,ゲートウェイ6,ネットワーク7およびCA5(Certification Authority,日本語では認証局)がIoT鍵管理システム1に含まれている。
【0043】
IoTデバイス3とは,IoTデバイス3の用途に応じたデータを取得し,取得したデータを所定の装置(ここでは,デバイス管理装置4)へ送信する機器である。IoTデバイス3の具体的な形態はユーザなどに応じて変更になる。IoTデバイス3の例としては,タブレットコンピュータ,POS端末(POS: Point of Sales)または自動車などがある。
【0044】
IoT鍵管理システム1は,署名,認証および暗号化に対応したPKIを活用してセキュリティが高められている。暗号化と復号で別々の暗号鍵を用いる非対称暗号方式の秘密鍵22はセキュアにIoTデバイス3に記憶されるため,IoTデバイス3には耐タンパー性が求められる。これを実現するために,本実施形態に係るIoTデバイス3には,耐タンパー性を有するICチップであるセキュアエレメント2が実装される。
【0045】
耐タンパー性を有するICチップであるセキュアエレメント2の形態には,eSE(embedded Secure Element)の形態もあるが,
図1のセキュアエレメント2は,SIMカード(Subscriber Identity Module Card)の形態になっている。
【0046】
デバイス管理装置4は,IoTデバイス3の運用・管理に係る様々なサービスを提供する装置である。本実施形態では,このサービスに,IoTデバイス3がセキュアエレメント2に非対称暗号方式の秘密鍵22と公開鍵23を生成させると,セキュアエレメント2が生成した公開鍵23の公開鍵証明書27の発行を申請するサービスが含まれている。
【0047】
ゲートウェイ6は,複数のIoTデバイス3と同時接続できる機器である。ネットワーク7は,ローカルネットワークでもよいが,IoTデバイス3を配置するエリアが広域の場合,ネットワーク7はインターネットになる。CA5は,セキュアエレメント2が生成した公開鍵23の公開鍵証明書27を発行する機関である。
【0048】
セキュアエレメント2が生成した公開鍵23の公開鍵証明書27を取得するサービスにおいて中心的な役割を果たす装置は,セキュアエレメント2,IoTデバイス3およびデバイス管理装置4になる。ここから,これらの装置について詳細に説明する。
【0049】
図2は,IoTデバイス3が実装するセキュアエレメント2のブロック図である。デバイス管理装置4の運営会社が発行するデバイスである。セキュアエレメント2は,デバイス管理装置4の運営会社によって認証済のアプリケーションとユーザのみアクセス可能に構成される。
【0050】
図2で図示した如く,セキュアエレメント2は,データの演算処理を行うプロセッサ200,非対称暗号方式の暗号演算(例えば,余剰演算)に特化した処理を行うコプロセッサ210を備える。更に,セキュアエレメント2は,揮発性メモリであるRAM220(Random Access Memory),外部装置(ここでは,IoTデバイス3)と通信する回路であるUART230(Universal Asynchronous Receiver/Transmitter),乱数を生成する回路であるRNG240(Random Number Generator)および電気的に書き換え可能な不揮発性メモリであるNVM250(Non-volatile memory)を備える。
【0051】
セキュアエレメント2のNVMには,セキュアエレメント2ごとに個別なデータとして,エレメントID252および基本鍵251が格納される。基本鍵251は,セキュアエレメント2ごとで同一でもよいが,本実施形態において,基本鍵251は,セキュアエレメント2ごとに個別である。
【0052】
また,セキュアエレメント2のNVM250には,セキュアエレメント2のプロセッサ200を動作させる複数のコマンド253が格納される。NVM250に格納されるコマンド253には,暗号鍵生成コマンド253aおよび署名生成コマンド253bが含まれる。
【0053】
暗号鍵生成コマンド253aは,非対称暗号方式の秘密鍵22と公開鍵23を生成するコマンドで,暗号鍵生成コマンド253aが実行されることで,セキュアエレメント2のプロセッサ200は,非対称暗号方式の秘密鍵22と公開鍵23を生成し,公開鍵23などを含ませた公開鍵ファイル24の認証コード25を算出した後,公開鍵ファイル24とこの認証コード25を出力する本発明に係る暗号鍵生成手段20として機能する。
【0054】
暗号鍵生成手段20が生成した非対称暗号方式の秘密鍵22と公開鍵23は,セキュアエレメント2のNVM250に格納される。非対称暗号方式の秘密鍵22は,セキュアエレメント2から読み出しできない状態で,セキュアエレメント2のNVM250に格納されるが,非対称暗号方式の公開鍵23は,セキュアエレメント2から読み出し可能な状態で,セキュアエレメント2のNVM250に格納される。
【0055】
認証コード25を算出するアルゴリズムは任意であるが,本実施形態に係るセキュアエレメント2は,セキュアエレメント2のNVM250に記憶されている基本鍵251を少なくとも用い所定の導出アルゴリズムに従い派生鍵を導出し,この派生鍵を用いて認証コードを算出する。派生鍵の導出に基本鍵251を用いることで,基本鍵251を知っている正当なもの(ここでは,デバイス管理装置4)だけが,認証コード25の生成に用いる派生鍵を導出できることになる。なお,公開鍵ファイル24には,派生鍵の導出に用いる導出アルゴリズムで必要なパラメータを含ませることができる。
【0056】
認証コード25の算出対象となる公開鍵ファイル24に含ませるエレメントID252は,セキュアエレメント2ごとで個別のデータである。非対称暗号方式の秘密鍵22と公開鍵23を生成したときにセキュアエレメント2が出力する公開鍵ファイル24に含まれるエレメントID252から,非対称暗号方式の公開鍵23を生成したセキュアエレメント2を特定できる。
【0057】
署名生成コマンド253bは,暗号鍵生成手段20(暗号鍵生成コマンド253a)が生成した秘密鍵22を用いて,セキュアエレメント2を実装したIoTデバイス3から送信されたメッセージのデジタル署名を生成するコマンドである。署名生成コマンド253bが実行されることで,セキュアエレメント2のプロセッサ200は,本発明に係る署名生成手段21として機能する。
【0058】
図3は,IoTデバイス3のブロック図である。
図3で図示した如く,IoTデバイス3は,MCU300(Micro Control Unit),移動体通信ユニット310,センサハブ320およびインタフェース330を備え,センサハブ320には,所定のデータをセンシングするセンサ321が接続し,インタフェース330には,セキュアエレメント2が接続している。
【0059】
MCU300は,様々なアプリケーションの処理が可能なアプリケーションプロセッサ301やメモリユニット302を含むコンピュータシステムを一つの集積回路にまとめた組み込み用のマイクロプロセッサである。移動体通信ユニット310は,所定の移動体通信規格に準拠した通信を行うための回路である。移動体通信ユニット310は,5Gに対応することが好適である。
【0060】
センサハブ320は,センサハブ320に接続しているセンサ321の信号を変換してMCU300に送信したり,センサハブ320に接続しているセンサ321を切り替えたりするICチップである。センサハブ320に接続させるセンサ321は任意でよい。センサハブ320に接続させるセンサ321としては,温度センサ,湿度センサ,電流センサ,光センサおよび位置センサなどがある。
【0061】
インタフェース330は,周辺機器をMCU300に接続させるための入出力回路である。本実施形態において,インタフェース330には,セキュアエレメント2と接続するためのものが含まれる。本実施形態では,セキュアエレメント2はSIMの形態をなしているため,インタフェース330には,ISO7816用インタフェースが含まれる。
【0062】
MCU300のメモリユニット302には,MCU300のアプリケーションプロセッサ301を動作させるアプリケーション303と,デバイス管理装置4から配布されたデバイス管理装置4の公開鍵証明書424が記憶される。なお,MCU300のメモリユニット302には,センサ321が取得したデータを記憶させることもできる。
【0063】
MCU300のメモリユニット302に記憶したアプリケーション303には,セキュアエレメント2に非対称暗号方式の秘密鍵22と公開鍵23を生成させ,セキュアエレメント2が生成した公開鍵23のCSRファイル31(CSR: Certificate Signing Request,日本語では,証明書署名要求)を生成してデバイス管理装置4へ送信する処理を実行するCSRファイル生成アプリケーション303aが含まれる。このCSRファイル生成アプリケーション303aは,デバイス管理装置4からIoTデバイス3に配信される。CSRファイル生成アプリケーション303aが実行されることで,MCU300のアプリケーションプロセッサ301は,本発明に係るCSRファイル生成手段30として機能する。IoTデバイス3が備えるCSRファイル生成手段30の動作については後述する。
【0064】
図4は,デバイス管理装置4のブロック図である。デバイス管理装置4は,一つまたは複数のサーバから構成される装置である。
図4では,デバイス管理装置4を構成するサーバを一つとしている。
図4で図示したように,デバイス管理装置4は,一つ以上のプロセッサ400と,バス430を介してプロセッサ400と接続している様々なコンポーネントを有する。
図4では,バス430を介してプロセッサ400と接続しているコンポーネントとして,ネットワーク通信ユニット410とストレージ420のみを図示しているが,実際は,これら以外の様々なコンポーネントがバス430を介してプロセッサ400と接続している。
【0065】
デバイス管理装置4のストレージ420には,IoTデバイス3の管理・運用に係る処理を行う管理アプリケーション421と,デバイス管理装置4が管理するセキュアエレメント2ごとの様々なデータを記憶するセキュアエレメントDB422(DataBase)と,デバイス管理装置4の秘密鍵423と,デバイス管理装置4の公開鍵証明書424が記憶される。
【0066】
デバイス管理装置4のストレージ420に記憶した管理アプリケーション421には,公開鍵ファイル24,認証コード25およびCSRファイル31を受信すると,認証コード25を正当性検証することで,CSRファイル31に含まれる公開鍵23の正当性を検証し,正当なセキュアエレメント2の場合,公開鍵証明書27の発行をCA5に申請する証明書申請アプリケーション421aが含まれる。証明書申請アプリケーション421aが実行されることで,デバイス管理装置4のプロセッサ400は,本発明に係る証明書申請手段40として機能する。本発明に係る証明書申請手段40の動作については後述する。
【0067】
デバイス管理装置4のストレージ420に記憶したセキュアエレメントDB422には,デバイス管理装置4の管理対象となるIoTデバイス3に実装されたセキュアエレメント2ごとに,セキュアエレメント2が格納しているエレメントID252に関連付けた状態で,セキュアエレメント2が格納している基本鍵251が記憶される。
【0068】
図5は,セキュアエレメント2の公開鍵証明書27を生成する手順を説明する図である。
図5を参照する説明は,方法のカテゴリに係る本発明であるセキュアエレメント2の公開鍵証明書生成方法の説明と、IoTデバイス3が備えるCSRファイル生成手段30の説明と,デバイス管理装置4が備える証明書申請手段40の説明を兼ねている。
【0069】
図5における最初のステップになるS1において,IoTデバイス3のCSRファイル生成手段30は,IoTデバイス3に実装されたセキュアエレメント2に対して非対称暗号方式の秘密鍵22と公開鍵23の生成を指示する。非対称暗号方式の秘密鍵22と公開鍵23の生成は,セキュアエレメント2が備えた暗号鍵生成手段20が行う。IoTデバイス3は,暗号鍵生成手段20を起動させるために,非対称暗号方式の秘密鍵22と公開鍵23の生成を指示する際,暗号鍵生成コマンド253aのコマンドAPDU(Application Protocol Data Unit)をセキュアエレメント2に送信する。
【0070】
図5におけるS2において,セキュアエレメント2の暗号鍵生成手段20は,非対称暗号方式の秘密鍵22と非対称暗号方式の公開鍵23を生成する。
【0071】
図5におけるS3において,セキュアエレメント2の暗号鍵生成手段20は,基本鍵251とエレメントID252をNVM250から読み出して,派生鍵を導出する導出アルゴリズムに従い,基本鍵251と導出アルゴリズムで必要となるパラメータを用いて派生鍵を導出する。
【0072】
派生鍵を導出する導出アルゴリズムは任意であるが,疑似乱数関数を利用して基本鍵251から派生鍵を導出するアルゴリズムを用いるのが好適である。このような導出アルゴリズムとしては,NIST Special Publication 800-108で開示されているアルゴリズムを利用できる。
【0073】
疑似乱数関数を利用して基本鍵251から派生鍵を導出する導出アルゴリズムでは,導出アルゴリズムの入力データとなるソルトと反復回数が導出アルゴリズムのパラメータとなる。この導出アルゴリズムのパラメータの一つとなるソルトは,セキュアエレメント2とデバイス管理装置4以外は知らないことがセキュリティ的に望ましいため,本実施形態では,この導出アルゴリズムのパラメータの一つとなる反復回数を公開鍵ファイルに含ませている。
【0074】
また,基本鍵251を用いてパラメータを演算処理することで派生鍵を生成するアルゴリズムを派生鍵の導出アルゴリズムに利用できる。この場合,RNG240で生成した乱数情報をパラメータとし,排他的論理和または暗号演算をこの演算処理に利用できる。
【0075】
図5におけるS4において,セキュアエレメント2の暗号鍵生成手段20は,
図5におけるS3において生成した派生鍵を用いて,エレメントID252,導出アルゴリズムのパラメータ(例えば,反復回数)および公開鍵23を含ませた公開鍵ファイル24の認証コード25を算出する。派生鍵を用いて認証コード25を生成するアルゴリズムとしては,CBC-MAC (Cipher Block Chaining Message Authentication Code)やCMAC(Cipher-based Message Authentication Code)を利用できる。
【0076】
図5におけるS5において,セキュアエレメント2の暗号鍵生成手段20は,
図5におけるS1において受信した暗号鍵生成コマンド253aのコマンドAPDUのレスポンスとして,公開鍵ファイル24およびこの認証コード25をレスポンスデータに含ませたレスポンスAPDUをIoTデバイス3へ出力する。
【0077】
図5におけるS6において,IoTデバイス3のCSRファイル生成手段30は,セキュアエレメント2から受信した公開鍵ファイル24に含まれる公開鍵23を含ませたCSRファイル31を生成する。なお,CSRファイル31には,公開鍵23に加えて,ディスティングイッシュネーム(コモンネーム,部門名,組織名など)が含まれる。
【0078】
図5におけるS7において,IoTデバイス3のCSRファイル生成手段30は,IoTデバイス3に実装されたセキュアエレメント2に対して,
図5のS7において生成したCSRファイル31の署名生成を指示する。CSRファイル31の署名生成は,セキュアエレメント2が備えた署名生成手段21によって行われる。IoTデバイス3は,署名生成手段21を起動させるために,CSRファイル31の署名生成を指示する際,CSRファイル31をコマンドデータに含ませた署名生成コマンド253bのコマンドAPDUをセキュアエレメント2に送信する。
【0079】
図5におけるS8において,セキュアエレメント2の署名生成手段21は,
図5のS2において生成した非対称暗号方式の秘密鍵22を用いて,IoTデバイス3から受信したCSRファイル31の署名26を生成する。なお,CSRファイル31の署名26は,一方向ハッシュ関数を用いて算出したCSRファイル31のハッシュ値を,非対称暗号方式の秘密鍵22を用いて暗号化することで算出される。
【0080】
図5におけるS9において,セキュアエレメント2の署名生成手段21は,
図5のS9において算出したCSRファイル31の署名26をレスポンスデータとする署名生成コマンド253bのレスポンスAPDUをIoTデバイス3へ送信することで,CSRファイル31の署名26を出力する。
【0081】
図5におけるS10において,IoTデバイス3は,
図5のS5においてセキュアエレメント2から取得した公開鍵ファイル24および公開鍵ファイル24の認証コード25,並びに,
図5のS10においてセキュアエレメント2が出力した署名26をCSRファイル31に付加した署名付きCSRファイル31aをデバイス管理装置4へ送信する。
【0082】
IoTデバイス3とデバイス管理装置4間の通信の安全性を確保するため,IoTデバイス3からデバイス管理装置4へ送信するデータは暗号化しなければならない。
図5のS10において,IoTデバイス3は,IoTデバイス3からデバイス管理装置4へ送信する公開鍵ファイル24などのデータを,デバイス管理装置4の公開鍵証明書424に含まれる公開鍵で暗号化する。
【0083】
図5におけるS11において,デバイス管理装置4の証明書申請手段40は,IoTデバイス3から送信されたデータをデバイス管理装置4の秘密鍵423で復号した後,IoTデバイス3から送信された認証コード25を正当性検証する。
【0084】
IoTデバイス3から送信された認証コード25を検証する際,デバイス管理装置4の証明書申請手段40は,IoTデバイス3から送信された公開鍵ファイル24に含まれるエレメントID252に関連付けられた基本鍵251をセキュアエレメントDB422から取得する。次に,デバイス管理装置4の証明書申請手段40は,セキュアエレメント2と同じ導出アルゴリズムにより,IoTデバイス3から送信された導出アルゴリズムのパラメータ(例えば,反復回数)とセキュアエレメントDB422から取得した基本鍵251から派生鍵を生成して,IoTデバイス3から送信された公開鍵ファイル24の認証コード25を算出した後,IoTデバイス3から送信された認証コード25とデバイス管理装置4側で算出した認証コード25が一致するか確認する。認証コード25が一致すると,デバイス管理装置4の証明書申請手段40は,署名付きCSRファイル31aに含まれる公開鍵23は正当なセキュアエレメント2が生成したと判断する。
【0085】
図5におけるS12において,デバイス管理装置4の証明書申請手段40は,認証コード25の正当性検証結果に応じて処理を分岐する。デバイス管理装置4の証明書申請手段40は,認証コード25の正当性検証に失敗すると,セキュアエレメント2が生成した公開鍵23の公開鍵証明書27の発行をCA5に申請することなく,
図5の手順は終了する。
【0086】
認証コード25の正当性検証に成功すると,
図5におけるS13において,デバイス管理装置4の証明書申請手段40は,CA5に対して,セキュアエレメント2が生成した公開鍵23の公開鍵証明書27の発行を申請する。公開鍵証明書27の発行を申請する際,デバイス管理装置4の証明書申請手段40は署名付きCSRファイル31aをCA5へ送信する。
【0087】
図5におけるS14において,CA5は,署名付きCSRファイル31aに含まれる公開鍵23を用いて署名付きCSRファイル31aの署名26を検証するなどして,署名付きCSRファイル31aを審査した後,CSRファイルの審査が通ると,CA5の秘密鍵を用いて署名付きCSRファイル31aに含まれる公開鍵23などの署名を算出し,署名付きCSRファイル31aに付加された署名26の代わりに,CA5の署名を付加した公開鍵23の公開鍵証明書27を発行する。
【0088】
図5におけるS15において,デバイス管理装置4の証明書申請手段40は,
図5のS13においてCA5に送信した署名付きCSRファイル31aに対応する公開鍵証明書27を,CA5が提供している公開鍵証明書27の公開場所からダウンロードした後,エレメントID252に関連づけて,デバイス管理装置4のセキュアエレメントDB422にこの公開鍵証明書27を登録して,
図5の手順は終了する。
【0089】
本実施形態に係るIoT鍵管理システム1では,CA5に公開鍵証明書27の発行を申請するデバイス管理装置4と公開鍵23を生成するセキュアエレメント2の間に,セキュアエレメント2が生成した公開鍵23から署名付きCSRファイル31aを生成するIoTデバイス3が存在する。このため,デバイス管理装置4側では,CA5に送信する署名付きCSRファイル31aに含まれている公開鍵23の正当性を検証できることが必要になる。
【0090】
本実施形態に係るIoT鍵管理システム1では,セキュアエレメント2が,公開鍵23を含ませた公開鍵ファイル24の認証コード25を生成し,デバイス管理装置4側で公開鍵ファイル24の認証コード25を検証することで,デバイス管理装置4側で,CA5に送信する署名付きCSRファイル31aに含まれている公開鍵23の正当性を少なくとも検証できるようにしている。
【0091】
デバイス管理装置4側で公開鍵ファイル24の認証コード25を検証することで,公開鍵ファイル24に含まれるデータが改ざんされているか否かを検証できる。また,認証コード25の生成に,セキュアエレメント2とデバイス管理装置4が共有している基本鍵251を用いることで,セキュアエレメント2が認証コード25の生成に利用した基本鍵251と,デバイス管理装置4が記憶している基本鍵251が同一であることが,認証コード25の正当性検証に成功する条件になる。よって,認証コード25を検証することで,公開鍵23を生成したセキュアエレメント2がデバイス管理装置4で管理しているセキュアエレメント2であることをデバイス管理装置4側で検証できる。
【0092】
また,セキュアエレメント2が格納している基本鍵251を,セキュアエレメント2で個別にすることで,デバイス管理装置4は,IoTデバイス3から受信した公開鍵ファイル24に含まれるエレメントID252から,公開鍵23を生成したセキュアエレメント2を特定できる。
【符号の説明】
【0093】
1 IoT鍵管理システム
2 セキュアエレメント
20 暗号鍵生成手段
21 署名生成手段
22 秘密鍵
23 公開鍵
24 公開鍵ファイル
25 認証コード
3 IoTデバイス
30 CSRファイル生成手段
31 CSRファイル
31a 署名付きCSRファイル
4 デバイス管理装置
40 証明書申請手段