以下、本発明をその実施の形態を示す図面に基づいて説明する。図1は本実施の形態の情報処理システムの構成の第1例を示す模式図である。情報処理システムは、測位ユニット10、セキュアコンポーネント30、デバイス50、及び位置情報管理システム100を備える。測位ユニット10及びセキュアコンポーネント30それぞれは、例えば、個々の半導体チップで構成され、秘匿通信路15(セキュアチャネル)を介して接続されている。なお、以下では、センサユニットとして測位ユニット10を例に挙げ、センサ情報の例として位置情報について説明するが、センサ情報は位置情報に限定されるものではない。
測位ユニット10は、外部の環境情報を元に、デバイス50の位置情報を計測する機器である。測位ユニット10は、測位方法として、例えば、GPS(Global Positioning System)、近距離無線(例えば、ビーコン、Wi-Fi、RFIDなど)、移動体通信網、地磁気、及び音波の少なくとも1つを用いることができる。これにより、用途に応じた測位方法を用いて位置情報を取得することができる。測位ユニット10は、位置情報計算機能12、セキュアチャネル機能13、及び出力機能14を備え、アンテナ11に接続されている。
位置情報計算機能12は、外部環境情報(例えば、電波、地磁気など)から、自身が置かれている位置情報を計算する。セキュアチャネル機能13は、図1に例示するように、測位ユニット10がセキュアコンポーネント30を内蔵していない場合、セキュアコンポーネント30との間で情報の授受を行うためのセキュアチャネルを開設する。出力機能14は、位置情報計算機能12によって計算された位置情報を外部(図の例では、セキュアコンポーネント30)に出力する。
位置情報計算機能12によって計算される位置情報の具体的な内容は、測位ユニット10で用いる技術によって異なるが、基本的にはGPSで採用されているNMEA(National Marine Electronics Association)フォーマットのような平文出力とすることができる。ただし、測位ユニット10によっては、暗号化した位置情報を出力することもできる。
出力機能14は、GPSモジュール等で採用されているUART(Universal Asynchronous Receiver/Transmitter)等、通常のチップ間インタフェースでよいが、セキュアコンポーネント30と秘匿通信路を確立する場合はセキュアチャネルを確立する機能を具備すればよい。セキュアチャネルの方式としては、例えば、GP SCP03(Global Platform Secure Channel Protocol 03)、TLS(Transport Layer Security)等、適宜の方式を用いればよい。
セキュアコンポーネント30は、デバイス50や測位ユニット10とは論理的、または物理的に隔離された、メモリを有するセキュアな実行環境である。本実施の形態では、セキュアコンポーネント30は、セキュアエレメントとするが、トラステッド実行環境(TEE:Trusted Execution Environment)等でもよい。セキュアエレメントは、耐タンパ性を有するセキュリティチップであり、内部にCPU、NVM(Non-volatile memory)を有し、セキュアな不揮発性メモリを有する。
セキュアコンポーネント30は、測位手段通信機能31、セキュアチャネル機能32、測位手段復号機能33、デバイス通信機能34、秘匿通信機能35、鍵更新機能36、暗号化機能37、署名生成機能38、及びユーザ認証機能39を備える。また、セキュアコンポーネント30は、暗号化フラグ、署名生成フラグ、PIN、測位手段復号鍵、秘匿通信鍵、位置情報暗号鍵、署名生成鍵、SEIDを保持する。
測位手段通信機能31は、測位ユニット10と通信する機能を備える。測位手段通信機能31は、測位ユニット10から送られた位置情報を受信する。セキュアチャネル機能32は、測位ユニットとの間でセキュアチャネルを開設し、秘匿通信を行う。測位手段復号機能33は、測位ユニットから送られて位置情報が暗号化されている場合、復号して平文の位置情報に戻す。
暗号化機能37は、測位ユニット10から送られた位置情報を暗号化する。暗号化機能37は、復号された位置情報を再度暗号化する。署名生成機能38は、位置情報に署名を付加する。デバイス通信機能34は、セキュアコンポーネント30を内蔵しているデバイス50と通信するための機能を備える。
ユーザ認証機能39は、デバイス所有者の認証を受け付け、認証可否判断を行い、認証状態を保持する機能を備える。秘匿通信機能35は、位置情報管理システム100とセキュアコンポーネント30との間で秘匿通信路を開設する機能を備える。鍵更新機能36は、セキュアコンポーネント30内の鍵を更新する機能を備える。
PINは、ユーザ認証機能39において、正当なユーザであることを確認するために用いられるデータ列である。SEIDは、各セキュアコンポーネント30に個別に付与されたIDであり、位置情報管理システム100側から個体識別が可能となっている。
次に、セキュアコンポーネント30が保持する鍵について説明する。
測位手段復号鍵は、測位ユニット10から得られる位置情報が暗号化されている場合に用いる復号鍵であり、使用する測位ユニット10に合わせて事前に設定することができる。測位手段復号鍵に対向する鍵はない。
位置情報暗号鍵は、セキュアコンポーネント30が位置情報を出力する際、位置情報の暗号化に用いる鍵である。位置情報管理システム100側で、対向する鍵(位置情報復号鍵)を持ち、暗号化された位置情報を復号することができる。
署名生成鍵は、セキュアコンポーネント30が位置情報に対して署名を行うための鍵である。デバイス50又は位置情報管理システム100側で、対向する鍵(署名検証鍵)を持ち、位置情報の正当性を確認することができる。
秘匿通信鍵は、セキュアコンポーネント30と外部システムが秘匿通信を行うための鍵である。外部システム側も、対向する鍵(秘匿通信鍵)を持つ。
セキュアコンポーネント30内の鍵として、対称鍵、非対称鍵のいずれを用いるかは適宜決定することができる。本実施の形態では、鍵の形態を以下のようにするが、これに限定されるものではない。
測位ユニット10の暗号化としては、非対称鍵暗号方式を用い、測位手段復号鍵を公開鍵とすることができる。GPSのように、不特定多数に位置情報を供給する場合、供給を受ける側で秘密鍵を個別化して保持することが困難であるためである。
位置情報の暗号化及び復号としては、対称鍵暗号方式を用い、位置情報の暗号化、復号を同一鍵で行うことができる。非対称暗号方式を用いてもよいが、位置情報を頻繁に取得する場合、演算速度が高速な対称鍵が好適である。
署名の生成、検証としては、非対称鍵暗号方式を用い、署名生成鍵を秘密鍵とし、署名検証鍵を公開鍵とすることができる。署名は秘密鍵で生成しないと正当性を検証できないからである。また、署名検証鍵は十分な保護の及ばないデバイス50上に保持されるユースケースがあるからである。
セキュアコンポーネント30との秘匿通信としては、対称鍵暗号方式を用い、秘匿通信鍵を同一の鍵とする。非対称暗号方式を用いてもよいが、セキュアコンポーネント30及び位置情報管理システム100に保持されているので対称鍵の方が演算速度上有利だからである。
デバイス50は、測位ユニット10、セキュアコンポーネント30、署名検証機能51、ネットワーク通信機能52、セキュアなコンポーネント通信機能53を備える。また、デバイス50は、署名検証鍵、ユーザからPIN入力を受け付けるためのキーパッドを備える。
セキュアなコンポーネント通信機能53は、デバイス50が内蔵するセキュアコンポーネント30と通信を行う機能を備える。署名検証機能51は、セキュアコンポーネント30が生成した署名を検証する機能を備える。署名の検証には、署名検証鍵が用いられる。署名検証鍵は、事前に位置情報管理システム100から取得することができる。ネットワーク通信機能52は、位置情報管理システム100と通信を行うための機能を備える。
デバイス50は、一時的、恒常的を問わず、何らかの手段により位置情報を利用する全てのデバイスを含み、位置情報を参照するものであればIoTデバイスも含む。デバイス50は、例えば、スマートフォン、タブレット端末を含み、あるいは、自転車、バイク、自動車、列車、船舶又は飛行機等の交通移動手段を含み、気象観測デバイスのように位置情報を利用するIoTデバイス等を含む。
位置情報管理システム100は、位置情報管理サーバ110、及び鍵管理サーバ120を備える。なお、図の例では、位置情報管理システム100は、2台のサーバで構成されているが、これに限定されるものではなく、1台または3台以上のサーバで構成してもよい。また、図の例では、1個のデバイス50を図示しているが、デバイス50は、複数備えることができる。
位置情報管理サーバ110は、デバイス50(セキュアコンポーネント30)それぞれの位置情報を管理し、把握するサーバである。位置情報管理サーバ110は、位置情報データベース111、位置情報管理機能112、及びネットワーク通信機能113を備える。
位置情報管理機能112は、位置情報データベース111へのアクセスを行い、位置情報を更新、参照する。ネットワーク通信機能113は、他のサーバと通信するための機能を備える。位置情報データベース111の詳細は後述する。
鍵管理サーバ120は、鍵情報データベース121、復号機能122、ネットワーク通信機能123、署名検証機能124、鍵更新(生成)機能125、及び秘匿通信機能126を備える。
復号機能122は、デバイス50から受信した暗号化された位置情報を復号する機能を備える。署名検証機能124は、デバイス50から受信した位置情報に付加された署名を検証する機能を備える。秘匿通信機能126は、セキュアコンポーネント30と秘匿通信路を確立するための機能を備える。鍵管理サーバ120は、秘匿通信路を介して、セキュアコンポーネント30の遠隔管理を行うことができる。鍵更新(生成)機能125は、鍵を更新する際に新しい鍵を生成し、鍵情報データベース121側に反映する機能を備える。ネットワーク通信機能123は、他のサーバと通信するための機能を備える。鍵情報データベース121の詳細は後述する。
本実施の形態では、デバイス50は、位置情報を鍵管理サーバ120に一旦送信し、鍵管理サーバ120側で復号や署名検証を行う。位置情報管理サーバ110は、デバイス50と直接通信せず、鍵管理サーバ120側から平文で受け取る形態としている。位置情報管理サーバ110と鍵管理サーバ120との間の通信は、例えば、TLS等の秘匿通信によって秘匿性を確保して行うことができる。
図2は位置情報データベース111及び鍵情報データベース121の構成の一例を示す模式図である。位置情報データベース111は、例えば、SEID、緯度、経度の各欄を有し、セキュアコンポーネント30(あるいは、セキュアコンポーネント30と紐付けられた測位ユニット10やデバイス50)個別の位置情報を保持する。鍵情報データベース121は、SEID、位置情報復号鍵、署名検証鍵、秘匿通信鍵の各欄を有し、各セキュアコンポーネント30に対応する位置情報復号鍵、署名検証鍵、秘匿通信鍵を保持する。
次に、本実施の形態の情報処理システムの具体的な処理について説明する。
図3は位置情報の暗号化出力と管理に関する処理フローの一例を示す模式図である。以下、図中の各処理を#1~#13として説明する。図3に例示する処理フローは、測位ユニット10から得られた位置情報を暗号化し、位置情報管理システム100の位置情報データベース111に位置情報を反映するものである。
#1(セキュアチャネルの開設):測位ユニット10とセキュアコンポーネント30は、位置情報の授受に先立って、両者間でセキュアチャネルを確立する。なお、後述するように、セキュアコンポーネント30が測位ユニット10に内蔵されている場合、本手順は省略することができる。
#2(環境情報の取得):測位ユニット10は、自身が位置情報を計算するために必要な環境情報(電波、地磁気など)を取得する。本実施の形態では、測位ユニット10をGPSとすると、衛星から出力されている電波を受信する。
#3(位置情報の計算):測位ユニット10は、取得した環境情報を元に位置情報を計算する。
#4(位置情報の出力):測位ユニット10は、計算した位置情報をセキュアコンポーネント30に出力する。この場合、セキュアチャネルによる保護を用いて、セキュアコンポーネント30に安全に位置情報を出力できる。
#5(位置情報の暗号化):セキュアコンポーネント30は、暗号化機能37を用いて、位置情報の暗号化を行う。ここでは、暗号化機能37は、暗号化フラグを参照し、暗号化フラグが「暗号化を実施する」という状態を示していることを確認した上で、位置情報暗号鍵を用いて、位置情報を暗号化することができる。
#6(署名の付与):セキュアコンポーネント30は、署名生成機能38を用いて、暗号化された位置情報に対して署名を付与する。ここでは、署名生成機能38は、署名生成フラグを参照し、署名生成フラグが「署名付与を実施する」という状態を示していることを確認した上で、セキュアコンポーネント30のSEIDを付与し、署名生成鍵を用いて、署名を付与することができる。
#7(デバイス50への出力):セキュアコンポーネント30は、暗号化、署名付与が完了した位置情報をデバイス50に出力する。
#8(位置情報管理システム100への送信):デバイス50は、ネットワーク通信機能52を用いて、セキュアコンポーネント30から取得した位置情報を位置情報管理システム100の鍵管理サーバ120に送信する。
#9(署名の検証):位置情報管理システム100は、鍵管理サーバ120の署名検証機能124を用いて、位置情報に付与された署名の検証を行う。署名検証機能124は、鍵情報データベース121に格納された署名検証鍵の中から、当該位置情報に付加されているSEID(この場合、SEID:00000001)に基づいて、対応する署名検証鍵を特定し、特定した署名検証鍵を用いて署名の検証を行うことができる。署名検証に失敗した場合、当該位置情報は不正なデータとして取り扱われ(例えば、廃棄される)、以降の処理を実施しない。
#10(位置情報の復号):位置情報管理システム100は、署名検証に成功した場合、鍵管理サーバ120の復号機能122を用いて位置情報の復号を行う。復号機能122は、当該位置情報に付加されているSEID(この場合、SEID:00000001)に基づいて、対応する位置情報復号鍵を特定し、特定した位置情報復号鍵を用いて位置情報の復号を行うことができる。
#11(位置情報管理サーバ110への送信):鍵管理サーバ120は、復号した位置情報を位置情報管理サーバ110に送信する。
#12(位置情報管理機能112への通知):位置情報管理サーバ110は、受信した位置情報を位置情報管理機能112に通知する。
#13(位置情報データベース111への反映):位置情報管理機能112は、受信した位置情報に付加されているSEID(この場合、SEID:00000001)をキーとして、位置情報データベース111の位置情報を、受信した位置情報で上書きする。
図4は位置情報データベース111の位置情報の反映の一例を示す模式図である。図4の例では、SEID:00000001に対応する緯度が、35.695855から35.795855に変更され、経度が、139.730134から139.630134に変更されている。なお、緯度及び経度の値は一例として挙げているものであり、数値自体に特別な意味を持つものではない。
なお、位置情報管理システム100側での署名検証に失敗し、位置情報が不正なデータとして取り扱われた場合の処理については、例えば、デバイス50の無効化を行う、当該SEIDのセキュアコンポーネント30からのデータをすべて破棄する等、種々の運用を採用することができる。
上述のように、平文での位置情報の出力を行わず、位置情報をセキュアコンポーネント30の外に出す際に暗号化を行うので、出力された位置情報の改ざん、漏洩を防止できる。また、不正な位置情報トレースを防止できる。
また、上述のように、セキュアコンポーネント30で暗号化に用いる鍵と対向する鍵を位置情報管理システム100にのみ持たせることにより、デバイス50側での位置情報の改ざんを防止しつつ、位置情報の個別復号(セキュアコンポーネント30の識別)を可能にする。
また、位置情報を暗号化する際、位置情報に対する署名を生成し、連結して出力するので、位置情報を取得したデバイス50や、位置情報管理システム100側において、測位ユニット10やセキュアコンポーネント30の正当性を確認することができる。
スプーフィング対策等に基づき、測位ユニット10から取得した位置情報が事前に暗号化されているケースについても、今後増加することが想定される。GPSのように、不特定多数に対して測位情報を提供する場合、測位情報は不特定多数によって共用されることになるため、受信する主体ごとに個別の暗号化を施すことは困難であり、原則として共通の鍵を用いて暗号化を行うしかない。以下では、測位ユニット10側で事前に暗号化された位置情報の処理について説明する。
図5は事前に暗号化された位置情報の取扱に関する処理フローの一例を示す模式図である。以下、図中の各処理を#1~#14として説明する。
#1(セキュアチャネルの開設):測位ユニット10とセキュアコンポーネント30は、位置情報の授受に先立って、両者間でセキュアチャネルを確立する。なお、後述するように、セキュアコンポーネント30が測位ユニット10に内蔵されている場合、本手順は省略することができる。
#2(環境情報の取得):測位ユニット10は、自身が位置情報を計算するために必要な環境情報(電波、地磁気など)を取得する。本実施の形態では、測位ユニット10をGPSとすると、衛星から出力されている電波を受信する。
#3(位置情報の計算):測位ユニット10は、取得した環境情報を元に位置情報を計算する。このとき、当該位置情報は、計算時点で暗号化されているものとする。
#4(位置情報の出力):測位ユニット10は、計算した位置情報をセキュアコンポーネント30に出力する。この場合、セキュアチャネルによる保護を用いて、セキュアコンポーネント30に安全に位置情報を出力できる。
#5(位置情報の復号):セキュアコンポーネント30は、取得した位置情報を測位手段復号機能33に渡し、位置情報に予め施されている暗号化を解いて復号する。復号には、事前に保持している測位手段復号鍵を用いることができる。
#6(位置情報の再暗号化):セキュアコンポーネント30は、暗号化機能37を用いて、位置情報の暗号化を行う。ここでは、暗号化機能37は、暗号化フラグを参照し、暗号化フラグが「暗号化を実施する」という状態を示していることを確認した上で、位置情報暗号鍵を用いて、位置情報を暗号化することができる。
#7(署名の付与):セキュアコンポーネント30は、署名生成機能38を用いて、暗号化された位置情報に対して署名を付与する。ここでは、署名生成機能38は、署名生成フラグを参照し、署名生成フラグが「署名付与を実施する」という状態を示していることを確認した上で、セキュアコンポーネント30のSEIDを付与し、署名生成鍵を用いて、署名を付与することができる。
#8(デバイス50への出力):セキュアコンポーネント30は、暗号化、署名付与が完了した位置情報をデバイス50に出力する。
#9(位置情報管理システム100への送信):デバイス50は、ネットワーク通信機能52を用いて、セキュアコンポーネント30から取得した位置情報を位置情報管理システム100の鍵管理サーバ120に送信する。
#10(署名の検証):位置情報管理システム100は、鍵管理サーバ120の署名検証機能124を用いて、位置情報に付与された署名の検証を行う。署名検証機能124は、鍵情報データベース121に格納された署名検証鍵の中から、当該位置情報に付加されているSEID(この場合、SEID:00000001)に基づいて、対応する署名検証鍵を特定し、特定した署名検証鍵を用いて署名の検証を行うことができる。署名検証に失敗した場合、当該位置情報は不正なデータとして取り扱われ(例えば、廃棄される)、以降の処理を実施しない。
#11(位置情報の復号):位置情報管理システム100は、署名検証に成功した場合、鍵管理サーバ120の復号機能122を用いて位置情報の復号を行う。復号機能122は、当該位置情報に付加されているSEID(この場合、SEID:00000001)に基づいて、対応する位置情報復号鍵を特定し、特定した位置情報復号鍵を用いて位置情報の復号を行うことができる。
#12(位置情報管理サーバ110への送信):鍵管理サーバ120は、復号した位置情報を位置情報管理サーバ110に送信する。
#13(位置情報管理機能112への通知):位置情報管理サーバ110は、受信した位置情報を位置情報管理機能112に通知する。
#14(位置情報データベース111への反映):位置情報管理機能112は、受信した位置情報に付加されているSEID(この場合、SEID:00000001)をキーとして、位置情報データベース111の位置情報を、受信した位置情報で上書きする。
上述のように、測位ユニット10の出力情報が暗号化されている場合、セキュアコンポーネント30内で一旦復号し、再度セキュアコンポーネント30内の鍵で暗号化して外部に出力するので、測位ユニット10の暗号鍵が個別化されていない(第三者が復号できる)場合でも、セキュアコンポーネント30の個別鍵で再暗号化することで、位置情報のセキュリティを高めることができる。すなわち、測位ユニット10の暗号鍵が個別化されていない場合でも、セキュアコンポーネント30の個別鍵で暗号化できるので、デバイス50が個別に取得したセンサ情報の秘匿性、完全性を高めることができる。
前述の#5の位置情報の復号のアルゴリズムと、#6の位置情報の再暗号化のアルゴリズムとは、必ずしも同一である必要はなく、異なっていてもよい。例えば、暗号化配信されている位置情報は、非対称鍵暗号(RSA:Rivest Shamir Adleman cryptosystem等)を用い、セキュアコンポーネント30内で再暗号化する際のアルゴリズムとして対称鍵暗号(AES:Advanced Encryption Standard等)を用いてもよい。
前述の図3及び図5に例示した処理では、位置情報を位置情報管理システム100側で復号することで位置情報の改ざんを防止できる。しかし、以下のような場合では、ユーザ、またはシステムの認証を付与することで、デバイス50への平文出力を許容する構成とすることができる。すなわち、(1)デバイス50側単体で位置情報の利用が完結している場合、(2)位置情報の取得を高速で行うため、都度暗号化の処理時間を削減したい場合、(3)位置情報のデバイス50側の利用形態がクリティカルなものでなく、多少の改ざんリスクを許容できる場合などである。以下では、まずユーザ認証によってデバイス50への平文出力を行うケースについて説明する。
図6はユーザ認証を行う場合のデバイス50への平文出力に関する処理フローの一例を示す模式図である。以下、図中の各処理を#1~#13として説明する。
#1(セキュアチャネルの開設):測位ユニット10とセキュアコンポーネント30は、位置情報の授受に先立って、両者間でセキュアチャネルを確立する。なお、後述するように、セキュアコンポーネント30が測位ユニット10に内蔵されている場合、本手順は省略することができる。
#2(ユーザによる認証情報の入力):ユーザは、デバイス50内部で平文の位置情報を使用したい場合、ユーザ認証情報をデバイス50に入力する。ここでは、ユーザは、PINを入力することができる。
#3(認証情報のインプット):デバイス50は、ユーザが入力した認証情報をセキュアコンポーネント30にインプットし、ユーザ認証を依頼する。
#4(認証の実施と暗号化フラグの変更):セキュアコンポーネント30は、ユーザ認証機能39を用いて、入力された認証情報が正当なユーザのものであるか否かを検証する。ここでは、セキュアコンポーネント30が保持している、事前に設定されているPINの値と、ユーザが入力したPINの値とが一致しているか比較し、両者が一致している場合には、認証成功とする。認証が成功した場合、ユーザ認証機能39は、暗号化フラグが「暗号化を実施する」という状態から「暗号化を実施しない」という状態になるように、暗号化フラグの値を変更する。認証が失敗した場合、セキュアコンポーネント30は、暗号化フラグを変更せず、「暗号化を実施する」という状態のままとして、平文出力を許可しない。この場合、以降の処理は実施されず、通常の暗号化出力のみが行われる。
#5(環境情報の取得):測位ユニット10は、自身が位置情報を計算するために必要な環境情報(電波、地磁気など)を取得する。本実施の形態では、測位ユニット10をGPSとすると、衛星から出力されている電波を受信する。
#6(位置情報の計算):測位ユニット10は、取得した環境情報を元に位置情報を計算する。このとき、当該位置情報は、計算時点で暗号化されているものとする。
#7(位置情報の出力):測位ユニット10は、計算した位置情報をセキュアコンポーネント30に出力する。この場合、セキュアチャネルによる保護を用いて、セキュアコンポーネント30に安全に位置情報を出力できる。
#8(位置情報の復号):セキュアコンポーネント30は、取得した位置情報を測位手段復号機能33に渡し、位置情報に予め施されている暗号化を解いて復号する。復号には、事前に保持している測位手段復号鍵を用いることができる。
#9(暗号化実施のキャンセル):セキュアコンポーネント30は、暗号化機能37を呼び出す。暗号化機能37は、暗号化フラグを参照し、「暗号化を実施しない」ことを確認した上で、暗号化を実施せずに、次の処理へ進む。
#10(署名の付与):セキュアコンポーネント30は、署名生成機能38を用いて、平文の位置情報に対して署名を付与する。ここでは、署名生成機能38は、署名生成フラグを参照し、署名生成フラグが「署名付与を実施する」という状態を示していることを確認した上で、セキュアコンポーネント30のSEIDを付与し、署名生成鍵を用いて、署名を付与することができる。
#11(デバイス50への出力):セキュアコンポーネント30は、署名付与が完了した平文の位置情報をデバイス50に出力する。
#12(デバイス50による署名検証):デバイス50は、自身が保持する署名検証鍵、及び署名検証機能51を用いて、平文の位置情報に付与された署名の検証を実施する。署名検証に成功した場合、当該位置情報は正当であり、改ざんされていないものとして取り扱う。署名検証に失敗した場合は、当該位置情報は不正な情報として取り扱い、ここで処理を終了する。
#13(デバイス50による位置情報利用):デバイス50は、署名検証に成功した後の正当な位置情報を、測位ユニット10から得られた正確な位置情報として、デバイス50内部で使用する。
上述のように、セキュアコンポーネント30に対してPIN等のユーザ認証を行うことで、位置情報を暗号化せずに直接出力するので、デバイス50内で完結するリアルタイム用途等、改ざん、漏洩のリスクがない(又は極めて低く許容できる)利用において、高速な位置情報の取得を可能にする。
前述の例において、ユーザが入力する認証情報は、PINに限定されるものではない。例えば、生体情報等を入力して認証を行ってもよく、あるいはデジタルキー等の所有物認証を行ってもよい。また、デバイス50側の署名検証のタイミングは、位置情報の取得の都度に限定されるものではなく、セキュリティポリシーに応じて、初回受信時のみに署名検証してもよく、また、署名検証のタイミングを変更してもよい。さらに、デバイス50側で署名検証が不要であるとのセキュリティポリシーで運用する場合には、セキュアコンポーネント30内での署名の付与を省略してもよい。すなわち、図6の#4(認証の実施と暗号化フラグの変更)において、暗号化フラグとともに署名生成フラグも変更し、署名の実施を不要とする旨をセキュアコンポーネント30に書き込むことで、署名生成を省略することができる。
次に、システム側から秘匿通信路経由で平文出力や署名なし出力を設定する例について説明する。
図7はシステム側から設定変更する場合のデバイス50への平文出力に関する処理フローの一例を示す模式図である。以下、図中の各処理を#1~#13として説明する。
#1(セキュアチャネルの開設):測位ユニット10とセキュアコンポーネント30は、位置情報の授受に先立って、両者間でセキュアチャネルを確立する。なお、後述するように、セキュアコンポーネント30が測位ユニット10に内蔵されている場合、本手順は省略することができる。
#2(秘匿通信路の開設):位置情報管理システム100とセキュアコンポーネント30とは、鍵管理サーバ120のネットワーク通信機能123、デバイス50のネットワーク通信機能52及びセキュアなコンポーネント通信機能53、並びにセキュアコンポーネント30の秘匿通信機能35を用いて、両者間でエンドツーエンドの秘匿通信路を開設する。なお、TLS等を用いてもよい。
#3(フラグ更新指示):位置情報管理システム100は、秘匿通信路上でセキュアコンポーネント30に対して、暗号化フラグの更新指示を送信する。
#4(暗号化フラグの変更):セキュアコンポーネント30は、秘匿通信機能35を用いて、暗号化フラグの更新指示を受信する。受信した更新指示に基づいて、セキュアコンポーネント30は、暗号化フラグの値を変更し、暗号化を実施しない旨を書き込む。
#5(環境情報の取得):測位ユニット10は、自身が位置情報を計算するために必要な環境情報(電波、地磁気など)を取得する。本実施の形態では、測位ユニット10をGPSとすると、衛星から出力されている電波を受信する。
#6(位置情報の計算):測位ユニット10は、取得した環境情報を元に位置情報を計算する。このとき、当該位置情報は、計算時点で暗号化されているものとする。
#7(位置情報の出力):測位ユニット10は、計算した位置情報をセキュアコンポーネント30に出力する。この場合、セキュアチャネルによる保護を用いて、セキュアコンポーネント30に安全に位置情報を出力できる。
#8(位置情報の復号):セキュアコンポーネント30は、取得した位置情報を測位手段復号機能33に渡し、位置情報に予め施されている暗号化を解いて復号する。復号には、事前に保持している測位手段復号鍵を用いることができる。
#9(暗号化実施のキャンセル):セキュアコンポーネント30は、暗号化機能37を呼び出す。暗号化機能37は、暗号化フラグを参照し、「暗号化を実施しない」ことを確認した上で、暗号化を実施せずに、次の処理へ進む。
#10(署名の付与):セキュアコンポーネント30は、署名生成機能38を用いて、平文の位置情報に対して署名を付与する。ここでは、署名生成機能38は、署名生成フラグを参照し、署名生成フラグが「署名付与を実施する」という状態を示していることを確認した上で、セキュアコンポーネント30のSEIDを付与し、署名生成鍵を用いて、署名を付与することができる。
#11(デバイス50への出力):セキュアコンポーネント30は、署名付与が完了した平文の位置情報をデバイス50に出力する。
#12(デバイス50による署名検証):デバイス50は、自身が保持する署名検証鍵、及び署名検証機能51を用いて、平文の位置情報に付与された署名の検証を実施する。署名検証に成功した場合、当該位置情報は正当であり、改ざんされていないものとして取り扱う。署名検証に失敗した場合は、当該位置情報は不正な情報として取り扱い、ここで処理を終了する。
#13(デバイス50による位置情報利用):デバイス50は、署名検証に成功した後の正当な位置情報を、測位ユニット10から得られた正確な位置情報として、デバイス50内部で使用する。
上述のように、セキュアコンポーネント30に対して秘匿通信路を介した指示を行うことで、位置情報を暗号化せずに直接出力するので、デバイス50内で完結するリアルタイム用途等、改ざん、漏洩のリスクがない(又は極めて低く許容できる)利用において、高速な位置情報の取得を可能にする。
図7に示す処理においても、図6のユーザ認証の場合と同様、デバイス50側の署名検証タイミングや署名生成フラグの更新による署名付与を省略することができる。
本実施の形態によれば、個別鍵をベースとした位置情報の個別保護を図ることができるが、ここで用いる鍵をセキュアコンポーネント30毎に個別更新することで、鍵の陳腐化や漏洩に備えることができる。以下では、鍵の更新について説明する。
図8は秘匿通信路を介した鍵の更新に関する処理フローの一例を示す模式図である。以下、図中の各処理を#1~#10として説明する。
#1(秘匿通信路の開設):位置情報管理システム100とセキュアコンポーネント30とは、鍵管理サーバ120のネットワーク通信機能123、デバイス50のネットワーク通信機能52及びセキュアなコンポーネント通信機能53、並びにセキュアコンポーネント30の秘匿通信機能35を用いて、両者間でエンドツーエンドの秘匿通信路を開設する。なお、TLS等を用いてもよい。
#2(鍵の生成):鍵管理サーバ120は、自身の鍵更新(生成)機能125を用いて、新しい鍵を生成する。本実施例では、新しい鍵として、位置情報暗号鍵、位置情報復号鍵、署名生成鍵、及び署名検証鍵を生成する。生成する鍵は、それぞれバージョン1.1とする。
#3(鍵更新指示の送信):鍵管理サーバ120は、鍵更新(生成)機能125が生成した鍵のうち、セキュアコンポーネント30の新しい鍵(位置情報暗号鍵、署名生成鍵)を取得し、取得した新しい鍵とともに鍵更新指示を秘匿通信路経由でセキュアコンポーネント30に送信する。
#4(鍵更新指示の受信):セキュアコンポーネント30は、秘匿通信路経由で鍵更新指示を受信する。
#5(鍵更新機能36の呼び出し):セキュアコンポーネント30は、受信した鍵更新指示を鍵更新機能36に渡す。
#6(鍵の更新):鍵更新機能36は、鍵更新指示に含まれる新しい鍵を取り出し、位置情報暗号鍵を暗号化機能37で用いる鍵とし、署名生成鍵を署名生成機能38で用いる鍵として、鍵の更新を行う。図の例では、位置情報暗号鍵1.1、署名生成鍵1.1に更新されている。
#7(更新処理終了通知の送信):上述の鍵の更新が終了すると、セキュアコンポーネント30は、鍵管理サーバ120に対して、秘匿通信路経由で鍵更新終了通知を送信する。
#8(更新処理終了通知の受信):鍵管理サーバ120は、セキュアコンポーネント30から、秘匿通信路経由で鍵更新終了通知を受信する。
#9(鍵情報データベース121への反映):鍵管理サーバ120は、鍵情報データベース121に、サーバ側の新しい鍵(位置情報復号鍵、署名検証鍵)を反映する。
図9は鍵情報データベース121への反映の一例を示す模式図である。図の例では、古いバージョンの位置情報復号鍵及び署名検証鍵が、新しいバーション1.1の位置情報復号鍵及び署名検証鍵に変更されている。
#10(デバイス側署名検証鍵の更新):デバイス50は、鍵管理サーバ120から、新しいバージョンの署名検証鍵の配布を受けて、自身の署名検証鍵を更新する。
なお、上述の例では、測位手段復号鍵の更新については明示していないが、測位手段復号鍵についても同様に、秘匿通信路を経由して更新することができる。
上述のように、セキュアコンポーネント30をエンドポイントとした秘匿通信路を外部と確立し、内部の個別鍵を遠隔で更新するので、セキュアコンポーネント30内の鍵の陳腐化を回避できる。
図1に例示した第1例では、測位ユニット10とセキュアコンポーネント30とは、秘匿通信路を介して接続される構成であった。すなわち、第1例では、測位ユニット10は、セキュアコンポーネント30を有する半導体チップとは別の半導体チップ内に構成され、秘匿通信路を介してセキュアコンポーネント30と接続されている。これにより、セキュアコンポーネント30との間で一連の動作を協調して行うことができる測位ユニット10を実現できる。
図10は本実施の形態の情報処理システムの構成の第2例を示す模式図である。第2例は、上述の第1例と異なり、測位ユニット10がセキュアコンポーネント30を備える構成である。この場合、測位ユニット10は、セキュアコンポーネント30を有する半導体チップ内に構成され(物理的に一体化され)、セキュアコンポーネント30と物理的に接続するようにしてもよい。測位ユニット10(出力機能14)は、配線16を介して、セキュアコンポーネント30と物理的に接続されている。これにより、セキュアコンポーネント30との間で一連の動作を協調して行うことができる測位ユニット10を実現できる。
また、図1又は図10のいずれの構成でも、測位ユニット10から得られた位置情報を速やかにセキュアコンポーネント30に取り込むので、測位ユニット10から取り込んだ位置情報の改ざん機会を与えない。
本実施の形態は、ICTを利用して交通をクラウド化し、全ての交通手段によるモビリティを一つのサービスとして捉えシームレスに繋ぐことを特徴としたMaaS(Mobility as a Service)にも適用可能である。例えば、社会にMaaSの概念が浸透していくと、(1)自動運転を用いた配車、(2)生活者の位置情報を用いた交通手段の最適選択、(3)人、電車、バス等の個々の位置を収集し、ビッグデータとして解析することで傾向性を把握、などの様々なサービスに利用することが可能となる。
上述の実施の形態では、センサユニットの一例として測位ユニットを挙げ、センサ情報の一例として位置情報について説明したが、センサユニットは測位ユニットに限定されるものではなく、情報も位置情報に限定されるものではない。例えば、家電業界では、エアコンなどの電化製品の使用状況を把握し、自動制御で運転制御、消費電力の最適化などに適用することができる。また、健康器具業界では、例えば、衣服やウェアラブル端末からユーザのバイタルデータ(例えば、心拍数、血圧など)、ユーザの姿勢や動作に関するデータを収集し、健康管理、ストレス、歩行状態などを推定するサービスに適用することができる。製造業界では、例えば、工場の生産設備ごとの稼働状態や消費電力のデータを収集し、設備の保守や予防交換の通知などのサービスに適用することができる。これらの場合、データを検出するためのセンサは、検出対象に応じて、公知のセンサを適宜用いればよい。
本実施の形態のセキュアコンポーネントは、センサユニットが検出したセンサ情報を取得するセンサ情報取得部と、前記センサ情報取得部で取得したセンサ情報を暗号化する暗号化部と、前記暗号化部で暗号化したセンサ情報を外部に出力する出力部とを備える。
本実施の形態のコンピュータプログラムは、コンピュータに、センサユニットが検出したセンサ情報を取得し、取得したセンサ情報を暗号化し、暗号化したセンサ情報を外部に出力する、処理を実行させる。
セキュアコンポーネントは、センサユニットが検出したセンサ情報を取得し、取得したセンサ情報を暗号化する。センサユニットから得られたセンサ情報を速やかにセキュアコンポーネントに取り込み、取り込んだセンサ情報を暗号化するので、センサ情報の改ざん機会を与えることを防止でき、センサ情報を保護することができる。また、セキュアコンポーネントは、暗号化したセンサ情報を外部に出力するので、出力されたセンサ情報の改ざん、漏洩を防止でき、センサ情報の保護を図ることができる。
本実施の形態のセキュアコンポーネントは、セキュアエレメント又はトラステッド実行環境のいずれかを備える。
セキュアコンポーネントは、セキュアエレメント又はトラステッド実行環境のいずれかを備えるので、セキュアコンポーネント内部の情報の保護を図ることができる。
本実施の形態のセキュアコンポーネントは、前記センサ情報取得部で取得したセンサ情報が暗号化されている場合、前記センサ情報を復号する復号部を備え、前記暗号化部は、前記復号部で復号したセンサ情報を、セキュアコンポーネント自身が保持する鍵で再度暗号化する。
セキュアコンポーネントは、取得したセンサ情報が暗号化されている場合、センサ情報を復号し、復号したセンサ情報を、セキュアコンポーネント自身が保持する鍵で再度暗号化する。センサユニットが出力するセンサ情報が暗号化されている場合、セキュアコンポーネント内で一旦復号し、再度セキュアコンポーネント内の鍵で暗号化して外部に出力することができる。これにより、センサユニットの暗号鍵が個別化されていない(第三者が復号できる)場合でも、セキュアコンポーネントの個別鍵で再暗号化することで、センサ情報のセキュリティを高めることができる。すなわち、センサユニットの暗号鍵が個別化されていない場合でも、セキュアコンポーネントの個別鍵で暗号化できるので、デバイスが個別に取得したセンサ情報の秘匿性、完全性を高めることができる。
本実施の形態のセキュアコンポーネントは、前記センサ情報取得部で取得したセンサ情報、又は前記暗号化部で暗号化したセンサ情報に対する署名を生成する署名生成部を備え、前記出力部は、暗号化されていないセンサ情報又は暗号化されたセンサ情報に前記署名を付与して外部に出力する。
セキュアコンポーネントは、取得したセンサ情報、又は暗号化したセンサ情報に対する署名を生成し、暗号化されていないセンサ情報又は暗号化されたセンサ情報に署名を付与して外部に出力する。署名を付与することにより、外部のデバイスや情報処理装置に対して、センサユニットやセキュアコンポーネントの正当性を確認するための情報を提供できる。
本実施の形態のセキュアコンポーネントは、ユーザが入力した認証情報を取得する認証情報取得部と、前記認証情報を認証する認証部とを備え、前記出力部は、前記認証情報の認証が成功した場合、前記署名を付与しない。
セキュアコンポーネントは、ユーザが入力した認証情報を取得し、取得した認証情報を認証し、認証情報の認証が成功した場合、署名を付与しない。セキュアコンポーネントを備えるデバイス側単体でセンサ情報の利用が完結しているリアルタイム用途であって、センサ情報の改ざんや漏洩のリスクがない場合には、ユーザが入力する認証情報の認証を条件として、署名の処理時間を削減して、高速なセンサ情報の取得を可能にすることができる。
本実施の形態のセキュアコンポーネントは、ユーザが入力した認証情報を取得する認証情報取得部と、前記認証情報を認証する認証部とを備え、前記出力部は、前記認証情報の認証が成功した場合、前記センサ情報取得部で取得したセンサ情報を暗号化せずに外部に出力する。
セキュアコンポーネントは、ユーザが入力した認証情報を取得する認証情報取得部と、前記認証情報を認証する認証部とを備え、ユーザが入力した認証情報の認証が成功した場合、取得したセンサ情報を暗号化せずに外部に出力する。セキュアコンポーネントを備えるデバイス側単体でセンサ情報の利用が完結しているリアルタイム用途であって、センサ情報の改ざんや漏洩のリスクがない場合には、ユーザが入力する認証情報の認証を条件として、センサ情報の平文出力を許容した構成を実現して、暗号化の処理時間を削減して、高速なセンサ情報の取得を可能にすることができる。
本実施の形態のセキュアコンポーネントにおいて、前記出力部は、前記認証情報の認証が成功した場合、前記署名を付与しない。
セキュアコンポーネントは、ユーザが入力した認証情報の認証が成功した場合、取得したセンサ情報を暗号化せず、かつ署名の付与もせずに外部に出力することができる。
本実施の形態のセキュアコンポーネントは、所定の鍵を保持する第1保持部と、第1外部サーバとの間で秘匿通信路を開設する第1開設部と、前記秘匿通信路を介して、前記第1外部サーバから取得した鍵で前記第1保持部に保持する鍵を更新する第1更新部とを備える。
セキュアコンポーネントは、所定の鍵を保持し、第1外部サーバとの間で開設した秘匿通信路を介して、第1外部サーバから取得した鍵で保持する鍵を更新する。これにより、セキュアコンポーネント内の鍵の陳腐化を回避することができる。
本実施の形態のセキュアコンポーネントは、暗号化処理及び署名生成処理の少なくとも1つを含む内部処理の設定情報を保持する第2保持部と、第2外部サーバとの間で秘匿通信路を開設する第2開設部と、前記秘匿通信路を介して、前記第2外部サーバからの指示に基づいて前記設定情報を更新する第2更新部とを備える。
セキュアコンポーネントは、暗号化処理及び署名生成処理の少なくとも1つを含む内部処理の設定情報を保持し、第2外部サーバとの間で開設した秘匿通信路を介して、第2外部サーバからの指示に基づいて設定情報を更新する。設定情報は、例えば、暗号化処理を実施するか否か、または署名生成処理を実施するか否かの設定のための情報である。これにより、デバイス側のセキュリティポリシーに応じた運用を行うことができる。
本実施の形態のセンサユニットは、前述のセキュアコンポーネントを備える。
センサユニットは、セキュアコンポーネントを備える。例えば、セキュアコンポーネントをセンサユニットの内部に格納することができる。これにより、セキュアコンポーネントとの間で一連の動作を協調して行うことができるセンサユニットを実現できる。
本実施の形態のセンサユニットは、セキュアコンポーネントを有する半導体チップとは別の半導体チップ内に構成され、秘匿通信路を介して前記セキュアコンポーネントと接続されている。
センサユニットは、セキュアコンポーネントを有する半導体チップとは別の半導体チップ内に構成され、秘匿通信路を介してセキュアコンポーネントと接続されている。これにより、セキュアコンポーネントとの間で一連の動作を協調して行うことができるセンサユニットを実現できる。
本実施の形態のセンサユニットは、セキュアコンポーネントを有する半導体チップ内に構成され、前記セキュアコンポーネントと物理的に接続されている。
センサユニットは、セキュアコンポーネントを有する半導体チップ内に構成され、セキュアコンポーネントと物理的に接続されている。これにより、セキュアコンポーネントとの間で一連の動作を協調して行うことができるセンサユニットを実現できる。
本実施の形態のセンサユニットは、前記センサ情報として位置情報を測位する位置測位センサを備える。
センサユニットは、位置測位センサを備え、センサ情報として位置情報を測位することができる。センサユニットと協調動作を行うセキュアコンポーネントは、センサユニットが検出した位置情報を取得し、取得した位置情報を暗号化する。センサユニットから得られた位置情報を速やかにセキュアコンポーネントに取り込み、取り込んだ位置情報を暗号化するので、位置情報の改ざん機会を与えることを防止でき、位置情報を保護することができる。また、セキュアコンポーネントは、暗号化した位置情報を外部に出力するので、出力された位置情報の改ざん、漏洩を防止でき、位置情報の保護を図ることができる。
本実施の形態のセンサユニットにおいて、前記位置測位センサは、測位方法に、GPS、近距離無線、移動体通信網、地磁気、及び音波の少なくとも1つを用いる。
センサユニットが備える位置測位センサは、測位方法に、GPS、近距離無線、移動体通信網、地磁気、及び音波の少なくとも1つを用いる。これにより、用途に応じた測位方法を用いて位置情報を取得することができる。
本実施の形態のデバイスは、前述のセキュアコンポーネントと、前述のセンサユニットとを備え、前記センサユニットが検出したセンサ情報であって、暗号化されたセンサ情報を外部装置に送出する。
デバイスは、セキュアコンポーネントと、センサユニットとを備え、センサユニットが検出したセンサ情報であって、暗号化されたセンサ情報を外部装置に送出する。デバイスは、セキュアコンポーネント内で暗号化されたセンサ情報を外部装置へ送出するので、センサユニットから取り込んだセンサ情報の改ざんや漏洩を防止できる。
本実施の形態のデバイスは、前記セキュアコンポーネントが出力するセンサ情報に署名が付与されている場合、前記署名を検証する検証部を備える。
デバイスは、セキュアコンポーネントが出力するセンサ情報に署名が付与されている場合、署名を検証する。これにより、センサ情報が正当なものであるか否かを検証することができ、仮に不正なセンサ情報であれば、当該不正なセンサ情報を使用せずに破棄することができる。
本実施の形態の情報処理装置は、前述のデバイスが送出した、暗号化されたセンサ情報を受信する受信部と、前記受信部で受信したセンサ情報を復号する復号部と、前記復号部で復号されたセンサ情報に基づいて、前記デバイスの状態を検知する検知部とを備える。
情報処理装置は、デバイスが送出した、暗号化されたセンサ情報を受信し、受信したセンサ情報を復号し、復号されたセンサ情報に基づいて、デバイスの状態を検知する。これにより、デバイス側でセンサ情報(例えば、位置情報を含む)の改ざんを防止しつつ、セキュアコンポーネントの識別に基づく、センサ情報の個別復号を可能にすることができる。デバイスの状態は、デバイスのセキュリティ上の状態とすることができ、例えば、セキュリティの観点でデバイスが適切な状態であるか否かを検知することができる。また、センサ情報が位置情報である場合、デバイスの位置を検知することができる。
本実施の形態の情報処理装置は、前記デバイスが送出するセンサ情報に署名が付与されている場合、前記署名を検証する検証部を備える。
情報処理装置は、デバイスが送出するセンサ情報に署名が付与されている場合、署名を検証する。これにより、センサ情報が正当なものであるか否かを検証することができ、仮に不正なセンサ情報であれば、当該不正なセンサ情報を使用せずに破棄することができる。
本実施の形態の情報処理装置において、前記センサ情報は、位置情報を含み、前記検知部は、前記デバイスの位置を検知する。
センサ情報は、位置情報を含み、情報処理装置は、デバイスの位置を検知する。これにより、情報処理装置は、位置情報の計算の元になる測位信号の改ざんや、デバイスでの位置情報の改ざんなどを防止した状態で正当な位置情報を取得することができる。
本実施の形態の情報処理装置は、前記セキュアコンポーネントとの間で秘匿通信路を開設する開設部と、前記秘匿通信路を介して、前記セキュアコンポーネントが保持する所定の鍵、及び前記セキュアコンポーネントによる内部処理設定情報の少なくとも一方の更新指示を出力する出力部とを備える。
情報処理装置は、セキュアコンポーネントとの間で秘匿通信路を開設し、開設した秘匿通信路を介して、セキュアコンポーネントが保持する所定の鍵、及びセキュアコンポーネントによる内部処理設定情報の少なくとも一方の更新指示を出力する。所定の鍵は、例えば、センサ情報の暗号化鍵、暗号化されたセンサ情報の復号鍵、署名を生成するための署名生成鍵、署名を検証するための署名検証鍵、秘匿通信に用いる鍵などを含む。これにより、鍵の陳腐化や漏洩を防止できる。内部処理設定は、例えば、暗号化処理を実施するか否かの設定情報、署名処理を実施するか否かの設定情報を含む。これにより、デバイス側のセキュリティポリシーに応じた運用を行うことができる。
本実施の形態の情報処理方法は、センサユニットが検出したセンサ情報をセキュアコンポーネントが暗号化し、前記センサユニット及びセキュアコンポーネントを備えるデバイスが、セキュアコンポーネントが暗号化したセンサ情報を情報処理装置に送出し、前記情報処理装置は、暗号化されたセンサ情報を復号し、復号したセンサ情報に基づいて前記デバイスの状態を検知する。
情報処理方法は、センサユニットが検出したセンサ情報をセキュアコンポーネントが暗号化し、センサユニット及びセキュアコンポーネントを備えるデバイスが、セキュアコンポーネントが暗号化したセンサ情報を情報処理装置に送出し、情報処理装置は、暗号化されたセンサ情報を復号し、復号したセンサ情報に基づいてデバイスの状態を検知する。これにより、情報処理装置は、センサ情報の計算の元になる信号の改ざんや、デバイスでのセンサ情報の改ざんなどを防止した状態で正当なセンサ情報を取得することができる。