以下、本発明の実施の形態を図面に基づいて説明する。図1は本実施の形態のデバイス100の構成の一例を示すブロック図である。デバイス100は、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイス(電子デバイスとも称する)を含む。デバイス100は、IoTデバイスとも称され、デバイス本体10及びセキュアエレメント50を備える。すなわち、デバイス100は、セキュアエレメント50を搭載し、デバイス100のうち、セキュアエレメント50以外の部分をデバイス本体10と称する。セキュアエレメント50は、耐タンパ性を有し、デバイス100とは物理的に独立したものである。
デバイス100(より具体的には、デバイス本体10)は、クラウド側の、サーバ210(サービスAを実現するサーバA)、サーバ220(サービスBを実現するサーバB)と接続される。サーバ210、220は、デバイス100と接続されることによって、所定のIoTサービスを提供する。なお、図1では、サーバ210、220の2つを図示しているが、サーバの数は2つに限定されない。また、デバイス100(より具体的には、セキュアエレメント50)は、秘匿通信路サーバ300と接続される。秘匿通信路サーバ300は、セキュアエレメント50とエンドツーエンドの秘匿通信路を確立するサーバであり、セキュアエレメント50に対してファイルアクセス可否制御やファイル更新等の遠隔操作を実施する。
セキュアエレメント50は、第1ファイルシステムとしてのセキュアエレメント側ファイルシステム51、セキュリティステータス52、コマンド授受処理部53、秘匿通信路開設処理部54、及び外部認証用機密情報部55を備える。
デバイス本体10は、アプリケーション11(IoTアプリとも称する)、OS12(OSレイヤーとも称する)、及びデバイス証明書部18を備える。OS12は、第2ファイルシステムとしてのデバイス側ファイルシステム13、アクセス権対応テーブル14、コマンド授受処理部15、ログイン処理部16、及びファイルシステムアクセス処理部17を備える。
セキュアエレメント側ファイルシステム51は、セキュア情報を保持している。セキュア情報は、セキュアエレメントに格納されている情報という意味であり、例えば、認証情報、公開鍵及び秘密鍵などの鍵情報を含む。なお、セキュア情報には、秘密情報が含まれるが、秘密情報には限定されない。また、セキュア情報は、外部のサーバ(例えば、サーバ210、220)へ送信(提供)する情報だけでなく、外部のサーバには送信しないがデバイス本体10(デバイス側)に提供する情報も含まれる。セキュアエレメント側ファイルシステム51は、外部に対してファイルシステムとしての機能を提供する構成であればよく、ファイル構造には、ヒエラルキーがあるものも、ないものも含まれる。以下では、ヒエラルキーがある場合の例について説明するが、セキュアエレメント50内の実施形態は、JavaCard(登録商標)等、他の形態でもよい。
図2はセキュアエレメント側ファイルシステム51の構造の一例を示す模式図である。図2に示すように、セキュアエレメント側ファイルシステム51は、MF−DF−EFのヒエラルキーがある。MFは主ファイル(Master File)であり、ファイル構造の根幹となるものであり、PC等で用いられるファイルシステムのルートディレクトリに相当するものである。DFは専用ファイル(Dedicated File)であり、DFの下位のEFやDFをグループ化するファイルである。なお、図示していないが、DFのさらに下位にDFを置くことができる。EFは基礎ファイル(Elementary File)であり、様々なデータを格納することができるファイルである。
図2では、便宜上、DF_CERT、EF_CERTは、当該フォルダ又は当該ファイルに認証情報などのセキュア情報などが格納されることを示す。DF_CIPHERTEXT、EF_CIPHERTEXTは、当該フォルダ又は当該ファイルに暗号化した文字列などが格納されていることを示す。DF_SECRETKEY、EF_SECRETKEYは、当該フォルダ又は当該ファイルに鍵情報が格納されていることを示す。READは読み出し専用であることを示し、UPDATEは書き込み等の更新も可能であることを示す。「ABCD」はデータであることを示す。CLOUD_Aは、サービスAを実現するサーバ210に対応するフォルダ又はファイルであることを示し、CLOUD_Bは、サービスBを実現するサーバ220に対応するフォルダ又はファイルであることを示す。本実施例では、IoTサービスサーバは2つ存在しており、それぞれ別の認証情報を含むセキュア情報が用いられ、対応するセキュア情報をファイル名の末尾(CLOUD_A、CLOUD_B)で識別する。「NEV」はアクセスを禁止(アクセス不可)していることを示す。
本実施例において、MF、DF及びEFには、当該フォルダ及び当該ファイルにアクセスするために必要となるセキュリティステータスが設定されている。なお、セキュアエレメント側ファイルシステム51の構造は、図2の例に限定されない。
図3はセキュリティステータス52の一例を示す模式図である。コマンド授受処理部53は、アクセス設定部及び許可部としての機能を有し、セキュアエレメント側ファイルシステム51へのアクセス権限毎のアクセスの許諾可否(すなわち、セキュリティステータス52)を設定することができる。すなわち、セキュリティステータス52は、現時点でセキュアエレメント側ファイルシステム51に対し、どのレベルの認証が完了しているかを保持するフラグである。本実施例では、セキュリティステータス52は、UAU(Dev)、UAU(PIN)、UAU(ADMPIN)、EAUで構成されている。UAUはUser Authenticationの略である。UAU(Dev)は、デバイス100の起動時のデバイス認証処理が正常終了(アクセス許諾可)していることを意味するフラグである。UAU(PIN)は、ユーザによるPIN認証が完了していることを意味するフラグである。U(ADMPIN)は、デバイス100の管理者によるPIN認証が完了していることを意味するフラグである。EAUは、秘匿通信路経由での認証許可を受信していることを意味するフラグである。なお、図中、×は認証が未だ完了していないことを表す。また、セキュリティステータスは、図3の例に限定されない。
セキュアエレメント側ファイルシステム51のあるファイルにアクセスするためには、当該ファイルに設定されているセキュリティステータスに加えて、当該ファイルの上位のフォルダで指定されているセキュリティステータス全てを充足する必要がある。例えば、MFに対してREADを行うためには、MFで要求されるUAU(Dev)のセキュリティステータスを充足する必要がある。また、MF/DF_CERT/EF_CERT(CLOUD_B)に対してREADを行うためには、(1)MFで要求されるUAU(Dev)、(2)DF_CERTで要求されるUAU(PIN)、及び(3)EF_CERT(CLOUD_B)で要求されるEAUの全てのセキュリティステータスを充足する必要がある。なお、上述の階層的なセキュリティステータス検証のメカニズムは一例であって、これに限定されない。例えば、任意のセキュリティステータス検証のメカニズムや、ファイルアクセス権管理の機構を用いることができる。
セキュアエレメント側ファイルシステム51から読み出し可能な値は固定値に限定されるものではなく、読み出し要求を受けた際に何らかの演算を行った値をファイルとして読み出す構成であってもよい。例えば、DF_CIPHERTEXT配下のEF群のファイルは、EF_SECRETKEYにより何らかの演算が行われた値を外部に出力するためのファイルとすることができる。
外部認証用機密情報部55は、セキュアエレメント側ファイルシステム51とは別に、セキュアエレメント50が外部の主体を認証するために保持しているセキュア情報を有する。図1の例では、4つの認証情報(PIN、ADMPIN、デバイス秘密鍵、秘匿通信路用鍵)を保持している。
コマンド授受処理部53は、デバイス本体10から実行されたデータ列をコマンドとして解釈し、解釈したコマンドで指定された内容を実行し、実行結果をデバイス本体10へ返送する。
秘匿通信路開設処理部54は、セキュアエレメント50が外部の秘匿通信路サーバ300とエンドツーエンドの秘匿通信路を開設する処理を行う。
アプリケーション11は、IoTサービスの機能を実現するためにデバイス本体10上で実行されるアプリケーションである。図では1つのアプリケーション11を図示しているが、アプリケーション11は複数存在してもよい。アプリケーション11は、サーバ210、220と接続、通信することによってIoTサービスの機能を実現することができる。
ファイルシステムアクセス処理部17は、受付部としての機能を有し、OS12において、アプリケーション11からデバイス側ファイルシステム13へのファイルアクセス要求を受け付けるモジュールであり、デバイス側ファイルシステム13のインタフェース機能を有する。
図4はデバイス側ファイルシステム13の構造の一例を示す模式図である。図4に示すように、デバイス側ファイルシステム13は、「/」(ルートフォルダ)を最上位としたファイルツリーとして構成され、ルートフォルダの配下には、homeフォルダ、binフォルダ、libフォルダ、seフォルダが存在している。なお、デバイス側ファイルシステム13の構造は、図4の例に限定されない。
コマンド授受処理部15は、セキュアエレメント50に対してコマンドを実行し、セキュアエレメント50からの実行結果を受け取る。
デバイス証明書部18は、デバイス100(デバイス本体10)自身に対するデバイス証明書を保持する。デバイス証明書部18は、デバイス本体10のハードウェアに埋め込まれており、デバイス証明書は、デバイス100の個体識別に用いられる。
図5はアクセス権対応テーブル14の構造の一例を示す模式図である。アクセス権対応テーブル14は、アクセス権限部としての機能を有し、所定のイベントとセキュアエレメント側ファイルシステム51へのアクセス権限とを対応付ける。アクセス権限は、セキュアエレメント側ファイルシステム51のどのレベルのアクセスを許容するかを定める情報である。アクセス権限は、例えば、前述のPIN(ユーザ権限)、ADMPIN(管理者権限)などとすることができる。
所定のイベントは、例えば、ユーザがログイン操作を行った場合のユーザ情報、管理者がログイン操作を行った場合の管理者情報、デバイス側ファイルシステム13へのアクセスなどを含めることができる。図6の例では、ユーザ名user1に対してPINが対応付けられ、管理者名rootに対してADMPINが対応付けられている。なお、ユーザ名の数は1つに限定されるものではなく、複数のユーザ毎に割り当てることができる。
次に、本実施の形態のデバイス100の動作について説明する。
図6はデバイス起動時のセキュアエレメント50のアンロックの動作例を示す説明図である。セキュアエレメント50を搭載したデバイス100を運用する場合、セキュアエレメント50へのアクセスを当該デバイス100(デバイス本体10)に限定することにより、セキュアエレメント50へのアクセス性を必要最小限に限定することができ、不正なデバイスからのセキュアエレメント50、及びサーバ210、220へのアクセスを制限できる。以下、符号P1〜P4で示す処理について説明する。
P1(デバイス証明書の読み出し):デバイス本体10は、起動時に自身が保持しているデバイス証明書を読み出し、コマンド授受処理部15へ出力する。
P2(デバイス証明書の送信):コマンド授受処理部15は、デバイス証明書をコマンドに含めて、セキュアエレメント50へ送信する。デバイス証明書を送信する場合、所要の公開鍵演算結果を加えることもできる。例えば、デバイス証明書に対してハッシュ演算を行ってダイジェストを生成し、生成したダイジェストを公開鍵で暗号化し、暗号化したダイジェストをデバイス証明書に埋め込んで送信してもよい。
P3(デバイス証明書の検証):セキュアエレメント50は、受信したデバイス証明書を、自身が保持しているデバイス証明書に対応してデバイス秘密鍵で検証を行い、デバイス証明書及び公開鍵演算結果が正当なものであるかを確認する。
P4(セキュリティステータスの開錠):処理P3において、正当なデバイス証明書、及び公開鍵であることが確認された場合、セキュアエレメント50は、セキュリティステータスUAU(Dev)を開錠する。図6では、符号×が符号〇に変更されている。符号〇は、認証が完了したことを示す。
上述のように、デバイス証明書部18は、第3出力部としての機能を有し、デバイス本体10のデバイス証明書(デバイス認証情報)をセキュアエレメント50へ出力する。セキュアエレメント50のコマンド授受処理部53は、第2照合部、取得部及び照合部としての機能を有し、デバイス証明書を取得し、取得したデバイス証明書を照合する。コマンド授受処理部53は、デバイス証明書が正当であると確認された(照合された)場合、デバイス本体10に対応するアクセス権限のアクセスを許諾可に設定する。
また、デバイス証明書部18は、デバイス100の起動時にデバイス証明書を出力することができる。これにより、デバイス100の起動の都度、セキュア情報への不正なアクセスを防止できる。
上述の処理により、デバイス100の起動時に、セキュアエレメント50によるデバイス認証を行い、正当なデバイスであることを確認できた場合のみ、セキュアエレメント50のセキュアエレメント側ファイルシステム51へのアクセスを許可する。すなわち、セキュアエレメント側ファイルシステム51のMFのアクセスに必要なセキュリティステータスは、UAU(Dev)であるため、上述のデバイス認証を行わない限り、デバイス本体10からセキュアエレメント側ファイルシステム51へのアクセスを行うことができない。これにより、セキュアエレメント側ファイルシステム51へのアクセスを正当なデバイスに限定することができるので、不正なデバイス接続や、デバイスに対する改造が実施された際に、セキュア情報への不正なアクセスを防止できる。
図7はユーザ認証の動作例を示す説明図である。IoTデバイスの場合、起動や運用に人が介在しないケースも多く、上述のデバイス認証で運用可能なケースも多くある。一方で、人が介在する現場(工場など)における運用や、セキュリティを高めたい場合などは、起動時に運用者認証を行うことが望ましい場合もある。以下、符号P11〜P19で示す処理について説明する。
P11(ユーザのログイン操作):デバイス100の運用開始時、ユーザ(ユーザ名:user1)はデバイス100に対してログイン操作を行う。ユーザは、ユーザ情報として、ユーザ名及びパスワードを入力する。
P12(アクセス権対応テーブルの参照):ログイン処理部16は、ユーザが入力したユーザ名及びパスワードを確認し、アクセス権対応テーブル14を確認し、当該ユーザ(ユーザ名:user1)にマッピングされているセキュアエレメント50の権限を確認する。図の例では、user1に対してPINがマッピングされている。
P13(セキュアエレメント認証指示):ログイン処理部16は、処理P12で確認したマッピング結果をもとに、ユーザに対してセキュアエレメント50に対する認証を指示する。図の例では、PINがマッピングされているので、ユーザに対してPINの入力を求める画面を表示する。
P14(セキュアエレメント認証情報入力):ユーザは、認証指示に応じて認証情報であるPINを入力する。
P15(認証コマンド生成):ログイン処理部16は、ユーザから得られた認証情報を元に、セキュアエレメント50に対する認証コマンドを生成し、生成した認証コマンドをコマンド授受処理部15へ出力して、認証コマンドをセキュアエレメント50へ送信するよう指示する。ここでは、PINを照合する認証コマンドが生成される。
P16(認証コマンド送信):コマンド授受処理部15は、PINが含まれる認証コマンドをセキュアエレメント50に送信する。
P17(認証情報比較):コマンド授受処理部53は、受信した認証コマンドに対して、外部認証用機密情報部55から認証情報(認証用PIN)を取り出して検証を行う。ここでは、検証は、受信したPINと取り出したPINとが一致するか否かを判定する。検証に失敗した場合(PINが不一致の場合)、セキュアエレメント50は、処理を終了し、デバイス本体10に認証失敗の応答を返す。
P18(セキュリティステータスの開錠):処理P17で認証に成功した場合(PINが一致の場合)、コマンド授受処理部53は、認証コマンドに対応しているセキュリティステータスUAU(PIN)を開錠する。図7では、符号×が符号〇に変更されている。
P19(認証レスポンス返送:認証成功):コマンド授受処理部53は、認証成功として認証コマンドのレスポンスをデバイス本体10に返送する。
上述の手順でユーザ認証に成功した場合、ユーザ(user1)による認証が成功したことになり、user1に対応するセキュアエレメント50内の権限(UAU(PIN))を利用して、セキュアエレメント50内のセキュアエレメント側ファイルシステム51へのアクセスが可能となる。
上述のように、ログイン処理部16は、認証部としての機能を有し、所定のイベントとしての、ユーザがログイン操作を行った場合、ユーザのユーザ情報を認証する。コマンド授受処理部15は、第2出力部としての機能を有し、ログイン処理部16がユーザ情報の認証を行った場合、認証されたユーザ情報(イベント)に対応付けられたアクセス権限(PIN)に対応する認証情報(アクセス認証情報)をセキュアエレメント50へ出力する。
コマンド授受処理部53は、第1照合部としての機能を有し、認証情報を照合する。コマンド授受処理部53は、認証情報を照合された場合、認証情報に対応するアクセス権限(UAU(PIN))のアクセスを許諾可に設定する。
これにより、イベントが認証されると、イベントに対応するセキュアエレメント50のセキュアエレメント側ファイルシステム51のアクセス権限とのマッピングが行われ、セキュアエレメント50に対して当該アクセス権限に対する認証の実施を自動的に行うことができ、セキュアエレメント50に対する操作回数を低減して利便性を向上させることができる。
また、セキュアエレメント50に対するアクセス権限に対する認証を、ユーザ情報の認証と同時に行うことができる。
図示していないが、所定のイベントとして、デバイス側ファイルシステム13へのアクセスがあった場合のアクセス元を認証することもできる。これにより、セキュアエレメント50に対するアクセス権限に対する認証を、デバイス側ファイルシステム13へのアクセスの認証と同時に行うことができる。
なお、IoTデバイスの運用時のセキュリティポリシーに応じて、以下のような取り扱いを行うことができる。例えば、デバイス100へのログインに成功したが、セキュアエレメント50の認証に失敗した場合には、ユーザのパスワードは正当であるが、セキュアエレメント50内の認証情報が不正な状態であると言える。このような場合には、ユーザを信用せずにログインを拒否してもよく、あるいはログインを許可しつつセキュアエレメント50を使用させないこともできる。また、例えば、アクセス権対応テーブル14にマッピングされていないユーザは、セキュアエレメント50を使用可能なユーザとしてデバイス100が認識していない状態であるので、上述のケースと同様の取り扱いをすることができる。
以上の手順により、セキュアエレメント50の認証としてデバイス認証とユーザ認証の双方が行われ、デバイス本体10からセキュアエレメント50のセキュアエレメント側ファイルシステム51へのアクセスに必要な認証が完了した。次に、デバイス本体10のアプリケーション11がクラウド上のサーバ210、220に対して認証情報を提示する際の動作について説明する。
図8はIoTサービスサーバに提示する認証情報の取得と使用の動作例を示す説明図である。以下、符号P31〜P41で示す処理について説明する。
P31(認証情報ファイルアクセス):アプリケーション11は、IoTサービスサーバであるサーバ210へアクセスするための認証情報をファイルシステムアクセス処理部17に要求する。ここでは、フォルダ/se/DF_CERT/EF_CERT(CLOUD_A)に対して読み出し(READ)を行ったものとする。また、アプリケーション11は、デバイス100に存在するユーザ名user1で実行しているとする。
デバイス本体10のデバイス側ファイルシステム13をセキュアエレメント50のセキュアエレメント側ファイルシステム51にマッピングするには、両方のファイルシステムのパスに対応関係を持たせる必要がある。すなわち、ファイルシステムアクセス処理部17は、両方のファイルシステムのパスの対応関係を保持している。例えば、デバイス側ファイルシステム13の「/se」をセキュアエレメント側ファイルシステム51の「MF」に対応付けることができる。この場合、セキュアエレメント側ファイルシステム51のMF/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_B)にアクセスする際には、デバイス側ファイルシステム13の/se/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_B)というパスでアクセスすればよい。なお、デバイス本体10側でセキュアエレメント側ファイルシステム51のファイル構造(ツリー構造)を予め把握しておくことができる。また、デバイス本体10側でセキュアエレメント側ファイルシステム51のファイル構造を予め把握していない場合には、セキュアエレメント側ファイルシステム51内の所要のセキュア情報を検索すればよい。
P32(アクセス先の特定とリダイレクト):ファイルシステムアクセス処理部17は、デバイス側ファイルシステム13にアクセスする。この時、フォルダ「/se」へのアクセスを検知し、当該フォルダがセキュアエレメント側ファイルシステム51に対応付けられていることを検知する。
P33(コマンド実行指示):ファイルシステムアクセス処理部17は、コマンド授受処理部15に対して、セキュアエレメント側ファイルシステム51のMF/DF_CERT/EF_CERT(CLOUD_A)へアクセスするためのコマンド実行を指示する。
P34(コマンドの実行):コマンド授受処理部15は、セキュアエレメント50に対してアクセス用コマンド実行を指示する。
P35(ファイルへのアクセス要求):コマンド授受処理部53は、セキュアエレメント側ファイルシステム51へのアクセスを行う。ここでは、コマンド授受処理部53は、指定されたMF/DF_CERT/EF_CERT(CLOUD_A)へアクセスする。
P36(セキュリティステータスの確認):セキュアエレメント50は、セキュリティステータス52を確認し、受信したコマンドで要求されているファイルへのアクセス権が充足されていることを確認する。ここでは、アクセス先のMF/DF_CERT/EF_CERT(CLOUD_A)が各階層で要求されるアクセス権(UAU(Dev)とUAU(PIN))が全て充足されていることを確認する。アクセス権が充足されていない場合、セキュアエレメント50は、処理を終了し、アクセス拒否としてデバイス本体10にレスポンスを返送する。
P37(アクセス結果の取得):セキュアエレメント側ファイルシステム51は、指定されたファイルへのアクセス結果(読み出し結果、又は書き込み結果)をコマンド授受処理部53へ返す。ここでは、MF/DF_CERT/EF_CERT(CLOUD_A)の内容を取得できたとする。
P38(レスポンスの送信):コマンド授受処理部53は、取得したファイルへのアクセス結果をレスポンスとしてデバイス本体10へ返す。ここでは、コマンド授受処理部53は、MF/DF_CERT/EF_CERT(CLOUD_A)の内容をレスポンスとしてデバイス本体10へ返す。
P39(アクセス結果の取得):コマンド授受処理部15は、ファイルシステムアクセス処理部17にレスポンスを返送する。ここでは、コマンド授受処理部15は、MF/DF_CERT/EF_CERT(CLOUD_A)の内容をレスポンスとしてファイルシステムアクセス処理部17へ返す。
P40(アプリケーションへの伝達):ファイルシステムアクセス処理部17は、アプリケーション11から要求されたファイルアクセスの結果をアプリケーション11に伝達する。ここで、アプリケーション11は、所望のMF/DF_CERT/EF_CERT(CLOUD_A)を取得する。
P41(認証情報の使用):アプリケーション11は、MF/DF_CERT/EF_CERT(CLOUD_A)を認証情報として、サーバ210に提示し、サーバ210による認証を受け、IoTサービスを受ける。
上述のように、ファイルシステムアクセス処理部17は、アプリケーション11からデバイス側ファイルシステム13へのアクセス要求を受け付ける。ファイルシステムアクセス処理部17は、変換部としての機能を有し、受け付けたアクセス要求を、当該アクセス要求に含まれるファイル情報に対応するセキュア情報が格納されたセキュアエレメント側ファイルシステム51へのアクセスに変換する。このようなファイルシステムへのアクセスの変換を透過的なアクセスと称することができる。アクセス権限が全て充足している場合、ファイル情報とセキュア情報とは、結果的に同じ情報となるが、ここでは、便宜上、デバイス側ファイルシステム13内のファイルをファイル情報と称し、セキュアエレメント側ファイルシステム51のファイルを、認証情報を含むセキュア情報と称する。
ファイルシステムアクセス処理部17は、デバイス本体10のデバイス側ファイルシステム13へのアクセスを、セキュアエレメント50のセキュアエレメント側ファイルシステム51へのアクセスにマッピングする機能を実現する。これにより、デバイス本体10側でデバイス側ファイルシステム13の所要のファイル情報にアクセスするだけで、セキュアエレメント50のセキュアエレメント側ファイルシステム51の当該ファイル情報に対応するセキュア情報へのアクセスを行うことができる。
コマンド授受処理部53は、第1出力部及び出力部としての機能を有し、セキュアエレメント側ファイルシステム51へのアクセスが許諾可に設定されている場合(すなわち、所要のアクセス権限を充足する場合)、当該アクセスに対応するセキュア情報をデバイス本体10へ出力する。ファイルシステムアクセス処理部17は、送出部としての機能を有し、セキュアエレメント50が出力したセキュア情報をアプリケーション11へ送出する。
上述の構成により、デバイス本体10側でアプリケーション11がデバイス側ファイルシステム13の所要のファイル情報にアクセスするだけで、アプリケーション11は、セキュアエレメント50に格納された所要のセキュア情報を取得することができるので、セキュア情報の確実な保護と、IoTデバイスやPC等で広く用いられているファイルシステムへのアクセス処理による利便性確保との両立を図ることができる。
セキュアエレメント50とデバイス本体10との間において、秘匿通信による保護等の対策は存在するものの、セキュアエレメント50内のセキュアエレメント側ファイルシステム51に対し、透過的なアクセスを許可した場合、セキュアエレメント50とデバイス本体10との間の通信を傍受することで情報を搾取することも不可能ではない。そうすると、外部からアクセス可能なセキュアエレメント50の認証情報は、IDや公開鍵証明書等の秘匿性のないデータに限定されてしまう。しかし、セキュアエレメント50内のセキュアエレメント側ファイルシステム51から読み出されるデータが、単なる不揮発性メモリから読み出される値ではなく、セキュアエレメント50内の所定の演算結果であれば、デバイス本体10は、デバイス側ファイルシステム13のインタフェースを使用しつつ、秘匿性の高いセキュア情報を暴露することなく得ることができる。以下では、セキュアエレメント50内の秘密鍵を用いた暗号演算結果をクラウド側のサーバに提示する場合について説明する。なお、本実施例では、所定の演算として暗号演算を用いて説明するが、本発明は、暗号演算に限定されるものではなく、暗号演算以外の演算により本発明を実施してもよい。
図9はセキュアエレメント50内の演算結果の取得と使用の動作例を示す説明図である。以下、符号P51〜P62で示す処理について説明する。
P51(認証情報ファイルアクセス):アプリケーション11は、IoTサービスサーバであるサーバ210へアクセスするためのセキュアエレメント50内の演算結果をファイルシステムアクセス処理部17に要求する。ここでは、フォルダ/se/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_A)に対して読み出し(READ)を行ったものとする。また、アプリケーション11は、デバイス100に存在するユーザ名user1で実行しているとする。
P52(アクセス先の特定とリダイレクト):ファイルシステムアクセス処理部17は、デバイス側ファイルシステム13にアクセスする。この時、フォルダ「/se」へのアクセスを検知し、当該フォルダがセキュアエレメント側ファイルシステム51に対応付けられていることを検知する。
P53(コマンド実行指示):ファイルシステムアクセス処理部17は、コマンド授受処理部15に対して、セキュアエレメント側ファイルシステム51のMF/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_A)へアクセスするためのコマンド実行を指示する。
P54(コマンドの実行):コマンド授受処理部15は、セキュアエレメント50に対してアクセス用コマンド実行を指示する。
P55(ファイルへのアクセス要求):コマンド授受処理部53は、セキュアエレメント側ファイルシステム51へのアクセスを行う。ここでは、コマンド授受処理部53は、指定されたMF/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_A)へアクセスする。
P56(セキュリティステータスの確認):セキュアエレメント50は、セキュリティステータス52を確認し、受信したコマンドで要求されているファイルへのアクセス権が充足されていることを確認する。ここでは、アクセス先のMF/DF_CIPHERTEXT/EF_CIPHERTEXT(CLOUD_A)が各階層で要求されるアクセス権(UAU(Dev)とUAU(PIN))が全て充足されていることを確認する。アクセス権が充足されていない場合、セキュアエレメント50は、処理を終了し、アクセス拒否としてデバイス本体10にレスポンスを返送する。
P57(秘密鍵による演算):セキュアエレメント50は、EF_CIPHERTEXT(CLOUD_A)へのアクセスを契機として演算を行い、演算結果をEF_CIPHERTEXT(CLOUD_A)の読み出し結果として返す。ここでは、対応する秘密鍵であるMF/DF_SECRETKEY/EF_SECRETKEY(CLOUD_A)を秘密鍵として、例えば、自身が生成した乱数に対してRSA暗号化した値を読み出し結果として設定することができる。
P58(アクセス結果の取得):セキュアエレメント側ファイルシステム51は、指定されたファイルへのアクセス結果(読み出し結果、又は書き込み結果)をコマンド授受処理部53へ返す。ここでは、セキュアエレメント50は生成した乱数をEF_SECRETKEY(CLOUD_A)によりRSA暗号化した値を得ることができる。
P59(レスポンスの送信):コマンド授受処理部53は、取得したファイルへのアクセス結果をレスポンスとしてデバイス本体10へ返す。ここでは、セキュアエレメント50が生成した演算結果をレスポンスとしてデバイス本体10へ返す。
P60(アクセス結果の取得):コマンド授受処理部15は、ファイルシステムアクセス処理部17にレスポンスを返送する。ここでは、コマンド授受処理部15は、セキュアエレメント50が生成した演算結果をレスポンスとしてファイルシステムアクセス処理部17へ返す。
P61(アプリケーションへの伝達):ファイルシステムアクセス処理部17は、アプリケーション11から要求されたファイルアクセスの結果をアプリケーション11に伝達する。ここで、アプリケーション11は、セキュアエレメント50が生成した演算結果を取得する。
P62(認証情報の使用):アプリケーション11は、セキュアエレメント50が生成した演算結果(暗号化された乱数)をサーバ210へ送信する。サーバ210では、演算結果を共通の秘密鍵を用いて復号することができる。
上述のように、セキュアエレメント50は、演算部としての機能を有し、セキュア情報を用いて所定の演算を行う。「セキュア情報を用いて」とは、所定の演算が行われる対象(加工対象)が、セキュア情報である場合を含むとともに、セキュア情報が加工対象でない場合も含む趣旨である。上述の例では、EF_CIPHERTEXT(CLOUD_A)が加工対象である。より具体的には、「セキュア情報を用いて」とは、例えば、所定の演算をセキュア情報に対して行って演算結果を得る場合、あるセキュア情報に対して別のセキュア情報を用いて所定の演算を行って演算結果を得る場合、セキュア情報ではないデータ(例えば、内部で一時的に生成されたデータ、あるいは、外部から入力されたデータ等)に対してセキュア情報を用いて所定の演算を行って演算結果を得る場合(セキュア情報が加工対象ではなく、加工に用いる入力の一つである場合)などが含まれる。所定の演算は、加工対象を固定値ではなく、可変の値とする演算であればよく、ハッシュ演算、平文の乱数、所要の暗号化演算などを含む。コマンド授受処理部53は、所定の演算結果をデバイス本体10へ出力する。これにより、セキュアエレメント50とデバイス本体10との間の通信を傍受されたとしても、加工対象が所定の演算によって固定値ではなく可変の値となっているので、秘匿性の高い加工対象(セキュア情報を含む)が外部に暴露されることなく、所望の演算結果をセキュアエレメント50から取得することができる。
上述の例では、EF_CIPHERTEXT(CLOUD_A)の内容として、セキュアエレメント50が生成した乱数を、EF_SECRETKEY(CLOUD_A)を秘密鍵として暗号化した値としているが、演算に用いる鍵、アルゴリズム等の演算方法、出力対象ファイルと鍵ファイルとの関係は、適宜所要のものを用いることができる。また、上述の例では、ファイルアクセスを契機として暗号演算を行っているが、暗号演算の契機は、ファイルアクセスに限定されるものではなく、例えば、リセット等、他のイベントを契機に事前に演算しておくことができる。
上述の例では、デバイス100側のデバイス認証とユーザ認証により、セキュアエレメント50内のセキュア情報へのアクセスを許可している。一方で、アクセス管理をクラウド側で集中的に実施する運用では、クラウド側への明示的な許可なくセキュア情報へアクセスすることを避けたいケースも考えられる。以下では、セキュアエレメント50が独立して開設した秘匿通信路経由でアクセス可否をクラウド側から付与する場合について説明する。
図10は秘匿通信路経由でのファイルアクセス許可の動作例を示す説明図である。以下、符号P71〜P84で示す処理について説明する。
P71(秘匿通信路の開設):秘匿通信路開設処理部54は、秘匿通信路サーバ300との間でのエンドツーエンドの秘密通信路を開設する。セキュアエレメント50が、Wifi(登録商標)やイーサネット(登録商標)等の通信手段を有さない場合、デバイス本体10の通信手段を用いてもよいが、秘匿通信のエンドポイントは、セキュアエレメント50と秘匿通信路サーバ300との間になるように秘匿通信路を開設する。
P72(ファイルアクセス許可指示):秘匿通信路サーバ300は、セキュアエレメント50に対して、EAUアクセス権限でのファイルアクセスを許可する。秘匿通信路上で別途コマンド実行を行うことで指示を行ってもよく、あるいは秘匿通信路開設時に自動的に行ってもよい。
P73(セキュリティステータスの開錠):秘匿通信路開設処理部54は、ファイルアクセス許可指示を受信すると、セキュリティステータス52を更新し、ファイルアクセス許可指示をセキュアエレメント50自身の状態に反映する。ここでは、セキュリティステータスEAUを開錠している。図10では、符号×が符号〇に変更されている。
P74(認証情報ファイルアクセス):アプリケーション11は、IoTサービスサーバであるサーバ220へアクセスするための認証情報をファイルシステムアクセス処理部17に要求する。ここでは、フォルダ/se/DF_CERT/EF_CERT(CLOUD_B)に対して読み出し(READ)を行ったものとする。また、アプリケーション11は、デバイス100に存在するユーザ名user1で実行しているとする。
P75(アクセス先の特定とリダイレクト):ファイルシステムアクセス処理部17は、デバイス側ファイルシステム13にアクセスする。この時、フォルダ「/se」へのアクセスを検知し、当該フォルダがセキュアエレメント側ファイルシステム51に対応付けられていることを検知する。
P76(コマンド実行指示):ファイルシステムアクセス処理部17は、コマンド授受処理部15に対して、セキュアエレメント側ファイルシステム51のMF/DF_CERT/EF_CERT(CLOUD_B)へアクセスするためのコマンド実行を指示する。
P77(コマンドの実行):コマンド授受処理部15は、セキュアエレメント50に対してアクセス用コマンド実行を指示する。
P78(ファイルへのアクセス要求):コマンド授受処理部53は、セキュアエレメント側ファイルシステム51へのアクセスを行う。ここでは、コマンド授受処理部53は、指定されたMF/DF_CERT/EF_CERT(CLOUD_B)へアクセスする。
P79(セキュリティステータスの確認):セキュアエレメント50は、セキュリティステータス52を確認し、受信したコマンドで要求されているファイルへのアクセス権が充足されていることを確認する。ここでは、アクセス先のMF/DF_CERT/EF_CERT(CLOUD_B)が各階層で要求されるアクセス権(UAU(Dev)とUAU(PIN))が全て充足されていることを確認する。アクセス権が充足されていない場合、セキュアエレメント50は、処理を終了し、アクセス拒否としてデバイス本体10にレスポンスを返送する。
P80(アクセス結果の取得):セキュアエレメント側ファイルシステム51は、指定されたファイルへのアクセス結果(読み出し結果、又は書き込み結果)をコマンド授受処理部53へ返す。ここでは、MF/DF_CERT/EF_CERT(CLOUD_B)の内容を取得できたとする。
P81(レスポンスの送信):コマンド授受処理部53は、取得したファイルへのアクセス結果をレスポンスとしてデバイス本体10へ返す。ここでは、コマンド授受処理部53は、MF/DF_CERT/EF_CERT(CLOUD_B)の内容をレスポンスとしてデバイス本体10へ返す。
P82(アクセス結果の取得):コマンド授受処理部15は、ファイルシステムアクセス処理部17にレスポンスを返送する。ここでは、コマンド授受処理部15は、MF/DF_CERT/EF_CERT(CLOUD_B)の内容をレスポンスとしてファイルシステムアクセス処理部17へ返す。
P83(アプリケーションへの伝達):ファイルシステムアクセス処理部17は、アプリケーション11から要求されたファイルアクセスの結果をアプリケーション11に伝達する。ここで、アプリケーション11は、所望のMF/DF_CERT/EF_CERT(CLOUD_B)を取得する。
P84(認証情報の使用):アプリケーション11は、MF/DF_CERT/EF_CERT(CLOUD_B)を認証情報として、サーバ210に提示し、サーバ210による認証を受け、IoTサービスを受ける。
上述のように、秘匿通信路開設処理部54は、通信部としての機能を有し、秘匿通信路サーバ300との間で暗号化された秘匿通信路を確立する。秘匿通信路開設処理部54は、アクセス設定部としての機能を有し、秘匿通信路サーバ300のアクセス権限のアクセス許可指示を受信した場合、秘匿通信路サーバ300に対応するアクセス権限のアクセスを許諾可に設定する。これにより、セキュアエレメント50内のセキュア情報に対して、遠隔でアクセス権限のアクセス許諾を設定できるので、セキュアな管理を行うことができる。
セキュア情報の危殆化等の理由により、セキュアエレメント50内のセキュア情報を更新する運用も想定される。以下では、セキュア情報の更新について説明する。
図11は秘匿通信路経由でのファイル更新の動作例を示す説明図である。以下、符号P91〜P104で示す処理について説明する。
P91(秘匿通信路の開設):秘匿通信路開設処理部54は、秘匿通信路サーバ300との間でのエンドツーエンドの秘密通信路を開設する。セキュアエレメント50が、Wifi(登録商標)やイーサネット(登録商標)等の通信手段を有さない場合、デバイス本体10の通信手段を用いてもよいが、秘匿通信のエンドポイントは、セキュアエレメント50と秘匿通信路サーバ300との間になるように秘匿通信路を開設する。
P92(ファイル更新指示):秘匿通信路サーバ300は、セキュアエレメント50に対して、EAUアクセス権限で更新可能なファイルの更新を秘匿通信路経由で指示する。ここでは、MF/DF_CERT/EF_CERT(CLOUD_B)の内容「ABCD」を「1234」とするように更新が指示されたとする。
P93(ファイルの更新):秘匿通信路開設処理部54は、ファイル更新指示を受信すると、指定されたファイルの内容を指定された値で更新する。ここでは、MF/DF_CERT/EF_CERT(CLOUD_B)の内容「ABCD」を「1234」で上書きする。
P94(認証情報ファイルアクセス):アプリケーション11は、IoTサービスサーバであるサーバ220へアクセスするための認証情報をファイルシステムアクセス処理部17に要求する。ここでは、フォルダ/se/DF_CERT/EF_CERT(CLOUD_B)に対して読み出し(READ)を行ったものとする。また、アプリケーション11は、デバイス100に存在するユーザ名user1で実行しているとする。
P95(アクセス先の特定とリダイレクト):ファイルシステムアクセス処理部17は、デバイス側ファイルシステム13にアクセスする。この時、フォルダ「/se」へのアクセスを検知し、当該フォルダがセキュアエレメント側ファイルシステム51に対応付けられていることを検知する。
P96(コマンド実行指示):ファイルシステムアクセス処理部17は、コマンド授受処理部15に対して、セキュアエレメント側ファイルシステム51のMF/DF_CERT/EF_CERT(CLOUD_B)へアクセスするためのコマンド実行を指示する。
P97(コマンドの実行):コマンド授受処理部15は、セキュアエレメント50に対してアクセス用コマンド実行を指示する。
P98(ファイルへのアクセス要求):コマンド授受処理部53は、セキュアエレメント側ファイルシステム51へのアクセスを行う。ここでは、コマンド授受処理部53は、指定されたMF/DF_CERT/EF_CERT(CLOUD_B)へアクセスする。
P99(セキュリティステータスの確認):セキュアエレメント50は、セキュリティステータス52を確認し、受信したコマンドで要求されているファイルへのアクセス権が充足されていることを確認する。ここでは、アクセス先のMF/DF_CERT/EF_CERT(CLOUD_B)が各階層で要求されるアクセス権(UAU(Dev)、UAU(PIN)、EAU)が全て充足されていることを確認する。アクセス権が充足されていない場合、セキュアエレメント50は、処理を終了し、アクセス拒否としてデバイス本体10にレスポンスを返送する。
P100(アクセス結果の取得):セキュアエレメント側ファイルシステム51は、指定されたファイルへのアクセス結果(読み出し結果、又は書き込み結果)をコマンド授受処理部53へ返す。ここでは、MF/DF_CERT/EF_CERT(CLOUD_B)の内容を取得できたとする。
P101(レスポンスの送信):コマンド授受処理部53は、取得したファイルへのアクセス結果をレスポンスとしてデバイス本体10へ返す。ここでは、コマンド授受処理部53は、MF/DF_CERT/EF_CERT(CLOUD_B)の内容をレスポンスとしてデバイス本体10へ返す。
P102(アクセス結果の取得):コマンド授受処理部15は、ファイルシステムアクセス処理部17にレスポンスを返送する。ここでは、コマンド授受処理部15は、MF/DF_CERT/EF_CERT(CLOUD_B)の内容をレスポンスとしてファイルシステムアクセス処理部17へ返す。
P103(アプリケーションへの伝達):ファイルシステムアクセス処理部17は、アプリケーション11から要求されたファイルアクセスの結果をアプリケーション11に伝達する。ここで、アプリケーション11は、所望のMF/DF_CERT/EF_CERT(CLOUD_B)を取得する。
P104(認証情報の使用):アプリケーション11は、MF/DF_CERT/EF_CERT(CLOUD_B)を認証情報として、サーバ220に提示し、サーバ220による認証を受け、IoTサービスを受ける。
上述のように、秘匿通信路開設処理部54は、更新指示取得部としての機能を有し、秘匿通信路経由で秘匿通信路サーバ300からセキュアエレメント側ファイルシステム51に格納されたセキュア情報の更新指示を取得する。秘匿通信路開設処理部54は、更新部としての機能を有し、更新指示を取得した場合、セキュア情報を更新する。これにより、セキュアエレメント50内のセキュア情報に対して、遠隔での更新を行うことができるので、セキュアな管理を行うことができる。
図12は本実施の形態のデバイス100によるイベント発生時の認証処理の手順の一例を示すフローチャートである。以下に説明する処理は、例えば、OS12により行うことができるので、便宜上、処理の主体をOS12として説明する。OS12は、所定のイベントがあるか否かを判定する(S11)。所定のイベントは、ユーザのログイン操作時のユーザ情報、あるいは、デバイス側ファイルシステム13へのアクセスがあった場合のアクセス元などとすることができる。
所定のイベントがない場合(S11でNO)、OS12は、ステップS11の処理を続ける。所定のイベントがあった場合(S11でYES)、OS12は、イベントの認証処理を行い(S12)、認証されたか否かを判定する(S13)。認証された場合(S13でYES)、OS12は、イベントに対応付けられたアクセス権限に対応するアクセス認証情報をセキュアエレメント50へ出力する。具体的には、例えば、ユーザがログイン操作した場合にユーザ名がuser1とすると、OS12は、アクセス権対応テーブル14を参照してuser1に対応するアクセス権限がPINであることを確認し、ユーザに対してPINの入力を要求し、入力されたPINをセキュアエレメント50へ出力する。
OS12は、セキュアエレメント50からアクセス認証情報の認証成功を取得したか否かを判定し(S15)、認証成功を取得した場合(S15でYES)、セキュアエレメント50のセキュアエレメント側ファイルシステム51へのアクセスが可となったとして(S16)、処理を終了する。イベントの認証がされなかった場合(S13でNO)、あるいは、認証成功を取得しなかった場合(S15でNO)、OS12は、処理を終了する。
図13は本実施の形態のデバイス100によるIoTサービス用のセキュア情報の取得処理の手順の一例を示すフローチャートである。図13の処理を行う場合、図12で示した処理によってセキュアエレメント側ファイルシステム51へのアクセスが可となっているものとする。OS12は、アプリケーション11からデバイス側ファイルシステム13へのアクセスがあったか否かを判定し(S21)、アクセスがない場合(S21でNO)、ステップS21の処理を続ける。
アクセスがあった場合(S21でYES)、OS12は、アクセスに対応するセキュアエレメント50のセキュアエレメント側ファイルシステム51のセキュア情報を特定し(S22)、セキュアエレメント50のセキュアエレメント側ファイルシステム51へのアクセスに変換する(S23)。具体的には、デバイス側ファイルシステム13に対するフォルダ「/se」へのアクセスを検知した場合、デバイス側ファイルシステム13の「/se」をセキュアエレメント側ファイルシステム51の「MF」に対応付けているとすると、OS12は、セキュアエレメント側ファイルシステム51のMF/DF_CERT/EF_CERT(CLOUD_A)へのアクセスに変換する。
OS12は、アクセス要求をセキュアエレメント50へ出力し(S24)、セキュアエレメント50からセキュア情報を取得したか否かを判定する(S25)。セキュア情報を取得した場合(S25でYES)、OS12は、取得したセキュア情報をアプリケーション11へ送出し(S26)、処理を終了する。アプリケーション11は、セキュア情報をIoTサービスサーバへ提示することによって、IoTサービスを実現することができる。セキュア情報を取得しなかった場合(S25)、OS12は、処理を終了する。
デバイス本体10を、CPU、RAM及びROMなどを含むコンピュータで構成し、図12及び図13に示すような処理手順を定めたコンピュータプログラムをRAMにロードし、CPU(プロセッサ)により当該コンピュータプログラムを実行させることにより、デバイス100の各処理をコンピュータプログラムによって実現することができる。
上述のように、本実施の形態によれば、セキュアエレメント50内のアクセス権限の認証をデバイス100のイベントと一体化し、認証が完了しているアクセス権限のファイルのみをデバイス本体10からアクセス可能にし、デバイス本体10のデバイス側ファイルシステム13とセキュアエレメント50のセキュアエレメント側ファイルシステム51とをマッピングするので、デバイス本体10のアプリケーション11から見て、セキュアエレメント50内のセキュア情報をデバイス側ファイルシステム13のファイルと同様に扱うことができ(透過的なアクセスを可能とし)、セキュアエレメント50の耐タンパ性によって、セキュアエレメント50内のセキュア情報の確実な保護を実現することができる。さらに、秘匿通信路経由での遠隔更新を可能にするので、セキュア情報のセキュアな遠隔管理を実現することができる。このように、本実施の形態によれば、セキュア情報の確実な保護とアクセス処理の利便性確保との両立を図ることができる。
本実施の形態のデバイスは、デバイス本体に接続されたセキュアエレメントを搭載するデバイスであって、前記セキュアエレメントは、セキュア情報が格納された第1ファイルシステムと、前記第1ファイルシステムへのアクセス権限毎のアクセスの許諾可否を設定可能なアクセス設定部とを備え、前記デバイス本体は、第2ファイルシステムと、所定のサービス機能を実現するアプリケーションと、前記アプリケーションから前記第2ファイルシステムへのアクセス要求を受け付ける受付部と、前記受付部で受け付けたアクセス要求を、前記アクセス要求に含まれるファイル情報に対応するセキュア情報が格納された前記第1ファイルシステムへのアクセスに変換する変換部とを備え、前記セキュアエレメントは、前記変換部で変換されたアクセスが前記アクセス設定部によって許諾可に設定されている場合、前記アクセスに対応するセキュア情報を前記デバイス本体へ出力する第1出力部を備え、前記デバイス本体は、前記第1出力部が出力したセキュア情報を前記アプリケーションへ送出する送出部を備える。
本実施の形態のコンピュータプログラムは、コンピュータに、セキュアエレメントとの間で所定の情報の授受を行わせるためのコンピュータプログラムであって、コンピュータに、所定のサービス機能を実現するアプリケーションから前記コンピュータ側のファイルシステムへのアクセス要求を受け付ける処理と、受け付けたアクセス要求を、前記アクセス要求に含まれるファイル情報に対応するセキュア情報が格納された前記セキュアエレメントのファイルシステムへのアクセスに変換する処理と、変換されたアクセスが前記セキュアエレメント内で許諾可に設定されている場合、前記セキュアエレメントが出力する前記アクセスに対応するセキュア情報を取得する処理と、取得したセキュア情報を前記アプリケーションへ送出する処理とを実行させる。
本実施の形態のファイルシステムアクセス方法は、デバイス本体に接続されたセキュアエレメントを搭載するデバイスによるファイルシステムアクセス方法であって、所定のサービス機能を実現するアプリケーションから前記デバイス本体の本体側ファイルシステムへのアクセス要求を受け付け、受け付けられたアクセス要求を、前記アクセス要求に含まれるファイル情報に対応するセキュア情報が格納された前記セキュアエレメントのファイルシステムへのアクセスに変換し、変換されたアクセスが前記セキュアエレメント内で許諾可に設定されている場合、前記セキュアエレメントが出力する前記アクセスに対応するセキュア情報を取得し、取得されたセキュア情報を前記アプリケーションへ送出する。
デバイスには、セキュアエレメントが搭載されている。セキュアエレメントは、耐タンパ性を有し、デバイスとは物理的に独立している。セキュアエレメントは、セキュア情報が格納された第1ファイルシステムと、第1ファイルシステムへのアクセス権限毎のアクセスの許諾可否を設定可能なアクセス設定部とを備える。セキュア情報は、セキュアエレメントに格納されている情報という意味であり、例えば、認証情報、公開鍵及び秘密鍵などの鍵情報を含む。なお、セキュア情報には、秘密情報が含まれるが、秘密情報には限定されない。第1ファイルシステムは、外部に対してファイルシステムとしての機能を提供する構成であればよく、ファイル構造には、ヒエラルキーがあるものも、ないものも含まれる。
デバイス本体は、第2ファイルシステムと、所定のサービス機能を実現するアプリケーションと、アプリケーションから第2ファイルシステムへのアクセス要求を受け付ける受付部と、受け付けたアクセス要求を、当該アクセス要求に含まれるファイル情報に対応するセキュア情報が格納された第1ファイルシステムへのアクセスに変換する変換部とを備える。
第2ファイルシステムは、例えば、IoTデバイスやPC等で広く用いられているファイルシステムとすることができる。アプリケーションは、例えば、IoTサービス機能を実現するためにデバイス上で実行されるアプリケーションである。例えば、IoTサービスを実現するためのサーバなどの外部のサーバと接続し通信を行うことにより、IoTサービスを実現できる。なお、外部のサーバとの通信を行うことは必須の構成ではない。
変換部は、デバイス本体の第2ファイルシステムへのアクセスを、セキュアエレメントの第1ファイルシステムへのアクセスにマッピングする機能を実現する。変換部は、両方のファイルシステムのパスの対応関係を保持している。これにより、デバイス本体側で第2ファイルシステムの所要のファイル情報にアクセスするだけで、セキュアエレメントの第1ファイルシステムの当該ファイル情報に対応するセキュア情報へのアクセスを行うことができる。
セキュアエレメントの第1出力部は、変換部で変換されたアクセスがアクセス設定部によって許諾可に設定されている場合、当該アクセスに対応するセキュア情報をデバイス本体へ出力する。デバイス本体の送出部は、第1出力部が出力したセキュア情報をアプリケーションへ送出する。
上述の構成により、デバイス本体側でアプリケーションが第2ファイルシステムの所要のファイル情報にアクセスするだけで、アプリケーションは、セキュアエレメントに格納された所要のセキュア情報を取得することができるので、セキュア情報の確実な保護と、IoTデバイスやPC等で広く用いられているファイルシステムへのアクセス処理による利便性確保との両立を図ることができる。
本実施の形態のデバイスにおいて、前記デバイス本体は、所定のイベントと前記第1ファイルシステムへのアクセス権限とを対応付けるアクセス権限部と、所定のイベントを認証する認証部と、前記認証部が前記イベントを認証した場合、認証されたイベントに対応付けられたアクセス権限に対応するアクセス認証情報を前記セキュアエレメントへ出力する第2出力部とを備え、前記セキュアエレメントは、前記第2出力部が出力したアクセス認証情報を照合する第1照合部を備え、前記アクセス設定部は、前記第1照合部が前記アクセス認証情報を照合した場合、前記アクセス認証情報に対応するアクセス権限のアクセスを許諾可に設定する。
デバイス本体は、所定のイベントと第1ファイルシステムへのアクセス権限とを対応付けるアクセス権限部と、所定のイベントを認証する認証部と、認証部がイベントを認証した場合、認証されたイベントに対応付けられたアクセス権限に対応するアクセス認証情報をセキュアエレメントへ出力する第2出力部とを備える。
アクセス権限は、第1ファイルシステムのどのレベルのアクセスを許容するかを定める情報である。アクセス権限には、例えば、デバイスのユーザ権限、デバイスの管理者権限などが含まれる。
セキュアエレメントは、第2出力部が出力したアクセス認証情報を照合する第1照合部を備える。アクセス設定部は、第1照合部がアクセス認証情報を照合した場合、アクセス認証情報に対応するアクセス権限のアクセスを許諾可に設定する。
これにより、イベントが認証されると、イベントに対応するセキュアエレメントの第1ファイルシステムのアクセス権限とのマッピングが行われ、セキュアエレメントに対して当該アクセス権限に対する認証の実施を自動的に行うことができ、セキュアエレメントに対する操作回数を低減して利便性を向上させることができる。
本実施の形態のデバイスにおいて、前記認証部は、前記所定のイベントとして、ログイン操作を行ったユーザのユーザ情報を認証する。
認証部は、ユーザがログイン操作を行った場合、ユーザのユーザ情報を認証する。これにより、セキュアエレメントに対するアクセス権限に対する認証を、ユーザ情報の認証と同時に行うことができる。
本実施の形態のデバイスにおいて、前記認証部は、前記所定のイベントとして、前記第2ファイルシステムへのアクセスがあった場合のアクセス元を認証する。
認証部は、第2ファイルシステムへのアクセスがあった場合のアクセス元を認証する。これにより、セキュアエレメントに対するアクセス権限に対する認証を、第2ファイルシステムへのアクセスの認証と同時に行うことができる。
本実施の形態のデバイスにおいて、前記デバイス本体は、デバイス本体のデバイス認証情報を前記セキュアエレメントへ出力する第3出力部を備え、前記セキュアエレメントは、前記第3出力部が出力したデバイス認証情報を照合する第2照合部を備え、前記アクセス設定部は、前記第2照合部が前記デバイス認証情報を照合した場合、前記デバイス本体に対応するアクセス権限のアクセスを許諾可に設定する。
デバイス本体の第3出力部は、デバイス本体のデバイス認証情報をセキュアエレメントへ出力する。セキュアエレメントの第2照合部は、第3出力部が出力したデバイス認証情報を照合する。アクセス設定部は、第2照合部がデバイス認証情報を照合した場合、デバイス本体に対応するアクセス権限のアクセスを許諾可に設定する。
上述の構成により、不正なデバイス接続や、デバイスに対する改造が実施された際に、セキュア情報への不正なアクセスを防止できる。
本実施の形態のデバイスにおいて、前記第3出力部は、前記デバイスの起動時に前記デバイス認証情報を出力する。
第3出力部は、デバイスの起動時にデバイス認証情報を出力する。これにより、デバイスの起動の都度、セキュア情報への不正なアクセスを防止できる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、セキュア情報を用いて所定の演算を行う演算部を備え、前記第1出力部は、前記演算部で演算された演算結果を前記デバイス本体へ出力する。
セキュアエレメントの演算部は、セキュア情報を用いて所定の演算を行う。「セキュア情報を用いて」とは、所定の演算が行われる対象(加工対象)が、セキュア情報である場合を含むとともに、セキュア情報が加工対象でない場合も含む趣旨である。例えば、所定の演算をセキュア情報に対して行って演算結果を得る場合、あるセキュア情報に対して別のセキュア情報を用いて所定の演算を行って演算結果を得る場合、セキュア情報ではないデータ(例えば、内部で一時的に生成されたデータ、あるいは、外部から入力されたデータ等)に対してセキュア情報を用いて所定の演算を行って演算結果を得る場合などが含まれる。所定の演算は、加工対象を固定値ではなく、可変の値とする演算であればよく、ハッシュ演算、平文の乱数、所要の暗号化演算などを含む。第1出力部は、演算部で演算された演算結果をデバイス本体へ出力する。これにより、セキュアエレメントとデバイス本体との間の通信を傍受されたとしても、加工対象が所定の演算によって固定値ではなく可変の値となっているので、秘匿性の高い加工対象(セキュア情報を含む)が外部に暴露されることなく、所望の演算結果をセキュアエレメントから取得することができる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、秘匿通信路サーバとの間で暗号化された秘匿通信路を確立する通信部を備え、前記アクセス設定部は、前記通信部で前記秘匿通信路サーバのアクセス権限のアクセス許可指示を受信した場合、前記秘匿通信路サーバに対応するアクセス権限のアクセスを許諾可に設定する。
セキュアエレメントの通信部は、秘匿通信路サーバとの間で暗号化された秘匿通信路を確立する。アクセス設定部は、通信部で秘匿通信路サーバのアクセス権限のアクセス許可指示を受信した場合、秘匿通信路サーバに対応するアクセス権限のアクセスを許諾可に設定する。これにより、セキュアエレメント内のセキュア情報に対して、遠隔でアクセス権限のアクセス許諾を設定できるので、セキュアな管理を行うことができる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、前記通信部を介して前記秘匿通信路サーバから前記第1ファイルシステムに格納されたセキュア情報の更新指示を取得する更新指示取得部と、前記更新指示取得部で更新指示を取得した場合、前記セキュア情報を更新する更新部とを備える。
セキュアエレメントは、通信部を介して秘匿通信路サーバから第1ファイルシステムに格納されたセキュア情報の更新指示を取得する更新指示取得部と、更新指示取得部で更新指示を取得した場合、セキュア情報を更新する更新部とを備える。これにより、セキュアエレメント内のセキュア情報に対して、遠隔での更新を行うことができるので、セキュアな管理を行うことができる。
本実施の形態のセキュアエレメントは、セキュア情報が格納されたセキュアエレメント側ファイルシステムと、デバイスの起動時に前記デバイスのデバイス認証情報を取得する取得部と、前記取得部で取得したデバイス認証情報を照合する照合部と、前記照合部が前記デバイス認証情報を照合した場合、デバイス側のファイルシステムへのアクセス要求に基づく前記セキュアエレメント側ファイルシステムへのアクセスを許可する許可部とを備える。
取得部は、デバイスの起動時にデバイスのデバイス認証情報を取得する。照合部は、デバイス認証情報を照合する。許可部は、デバイス認証情報を照合した場合、デバイス側のファイルシステムへのアクセス要求に基づくセキュアエレメント側ファイルシステムへのアクセスを許可する。これにより、デバイスの起動時にデバイス認証情報を照合した場合(例えば、デバイス認証情報が正当な情報であることが確認された場合)、セキュアエレメント側ファイルシステムへのアクセスを許可するので、デバイス側のファイルシステムにアクセスするだけで、セキュアエレメント内のセキュア情報に透過的にアクセスできるので、セキュア情報の確実な保護と、IoTデバイスやPC等で広く用いられているファイルシステムへのアクセス処理による利便性確保との両立を図ることができる。
本実施の形態のセキュアエレメントは、セキュア情報を用いて所定の演算を行う演算部と、前記演算部で演算された演算結果をデバイス側へ出力する出力部とを備える。
演算部は、セキュア情報を用いて所定の演算を行う。「セキュア情報を用いて」とは、所定の演算が行われる対象(加工対象)が、セキュア情報である場合を含むとともに、セキュア情報が加工対象でない場合も含む趣旨である。例えば、所定の演算をセキュア情報に対して行って演算結果を得る場合、あるセキュア情報に対して別のセキュア情報を用いて所定の演算を行って演算結果を得る場合、セキュア情報ではないデータ(例えば、内部で一時的に生成されたデータ、あるいは、外部から入力されたデータ等)に対してセキュア情報を用いて所定の演算を行って演算結果を得る場合などが含まれる。所定の演算は、加工対象を固定値ではなく、可変の値とする演算であればよく、ハッシュ演算、平文の乱数、所要の暗号化演算などを含む。第1出力部は、演算部で演算された演算結果をデバイス本体へ出力する。これにより、セキュアエレメントとデバイス本体との間の通信を傍受されたとしても、加工対象が所定の演算によって固定値ではなく可変の値となっているので、秘匿性の高い加工対象(セキュア情報を含む)が外部に暴露されることなく、所望の演算結果をセキュアエレメントから取得することができる。