IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 東京大学の特許一覧

<>
  • 特開-通信装置、及びプログラム 図1
  • 特開-通信装置、及びプログラム 図2
  • 特開-通信装置、及びプログラム 図3
  • 特開-通信装置、及びプログラム 図4
  • 特開-通信装置、及びプログラム 図5
  • 特開-通信装置、及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024030634
(43)【公開日】2024-03-07
(54)【発明の名称】通信装置、及びプログラム
(51)【国際特許分類】
   H04M 1/00 20060101AFI20240229BHJP
   H04L 9/32 20060101ALI20240229BHJP
   H04L 9/10 20060101ALI20240229BHJP
【FI】
H04M1/00 R
H04L9/32 200B
H04L9/10 A
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022133638
(22)【出願日】2022-08-24
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(74)【代理人】
【識別番号】100102716
【弁理士】
【氏名又は名称】在原 元司
(72)【発明者】
【氏名】中尾 彰宏
【テーマコード(参考)】
5K127
【Fターム(参考)】
5K127BA03
5K127BB06
5K127GE04
5K127GE05
5K127HA09
5K127HA28
(57)【要約】
【課題】付加的情報等に対して認証を可能とする通信装置、及びプログラムを提供する。
【解決手段】署名対象情報と署名要求とを受け入れて、署名情報を生成して出力するプログラムを実行するプロセッサを備えた加入者識別情報保持体(SIM)を備え、このSIMとの間で情報を授受し、署名対象情報と署名要求とをSIMに出力し、SIMから署名情報を受け入れ、当該受け入れた署名情報を含むパケットの一部に含めて送出する通信装置である。
【選択図】図1
【特許請求の範囲】
【請求項1】
署名対象情報と署名要求とを受け入れて、署名情報を生成して出力するプログラムを実行するプロセッサを備えた加入者識別情報保持体(SIM)と、
前記SIMとの間で情報を授受し、署名対象情報と署名要求とを前記SIMに出力し、前記SIMから署名情報を受け入れるSIM制御手段と、
前記SIM制御手段から受け入れた署名情報を含むパケットを、ネットワークを介して送出する送信手段であって、前記署名情報を、パケットの一部に含めて送出する送信手段と、
を含む通信装置。
【請求項2】
請求項1に記載の通信装置であって、
前記SIMは、秘密鍵データと、当該秘密鍵データに対応する復号鍵データとを生成して、前記秘密鍵データを保持し、前記署名対象情報に基づき、前記秘密鍵データを利用して前記署名情報を生成する通信装置。
【請求項3】
請求項2に記載の通信装置であって、
前記SIMは、前記復号鍵データを出力し、
前記送信手段は、前記SIMが出力した復号鍵データを、ネットワークを介して送出する通信装置。
【請求項4】
署名対象情報と署名要求とを受け入れて、署名情報を生成して出力するプログラムを実行するプロセッサを備えた加入者識別情報保持体(SIM)を備えた通信装置を、
前記SIMとの間で情報を授受し、署名対象情報と署名要求とを前記SIMに出力し、前記SIMから署名情報を受け入れるSIM制御手段と、
前記SIM制御手段から受け入れた署名情報を含むパケットを、ネットワークを介して送出する送信手段であって、前記署名情報を、パケットの一部に含めて送出する送信手段と、
として機能させるプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、及びプログラムに関する。
【背景技術】
【0002】
ユーザの使用しているアプリケーションプログラム(以下、アプリケーションと略称する)の種別等に応じて、ネットワークの構成を動的に変化させる等の要望に応えるため、通信に使用するパケットにアプリケーションを特定する情報を含めて送出させる技術が開発されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015-164295号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、アプリケーションの種別等の情報を用いたデータの伝送制御を可能にしているが、ユーザ側の通信装置が送出したアプリケーションの種別等の付加的情報について、当該付加的情報を認証する手段は考慮されておらず、当該付加的情報の使用場面が限られていた。
【0005】
本発明は上記実情に鑑みて為されたもので、上記付加的情報等に対して認証を可能とする通信装置、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る通信装置は、署名対象情報と署名要求とを受け入れて、署名情報を生成して出力するプログラムを実行するプロセッサを備えた加入者識別情報保持体(SIM)を備え、前記SIMとの間で情報を授受し、署名対象情報と署名要求とを前記SIMに出力し、前記SIMから署名情報を受け入れるSIM制御手段と、前記SIM制御手段から受け入れた署名情報を含むパケットを、ネットワークを介して送出する送信手段であって、前記署名情報を、パケットの一部に含めて送出する送信手段と、を含むこととしたものである。
【発明の効果】
【0007】
本発明によると、付加的情報等に対して認証が可能となる。
【図面の簡単な説明】
【0008】
図1】本発明の実施の形態に係る認証装置の構成及び接続例を表すブロック図である。
図2】本発明の実施の形態に係る認証装置が送出するパケットデータの概要を表す説明図である。
図3】本発明の実施の形態に係る認証装置の例を表す機能ブロック図である。
図4】本発明の実施の形態に係る認証装置が備えるSIMが保持するデータの例を表す説明図である。
図5】本発明の実施の形態に係る認証装置の動作例を表す流れ図である。
図6】本発明の実施の形態に係る認証装置に接続されるサービス提供側装置の動作例を表す流れ図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態の一例に係る通信装置1は、携帯電話回線網を介して通信するスマートフォンを含む携帯電話機等であって、加入者識別情報保持体(SIM)10を備え、制御部11、記憶部12、操作部13、表示部14、及び通信部15を含んで構成される。
【0010】
ここでSIM10は、記憶部101、プロセッサ102、及び入出力部103を有し、この記憶部101には、耐タンパ性を有するプロファイル領域101aが含まれる。本実施の形態の例では、このプロファイル領域101aに、携帯電話回線網を利用するために必要なプロファイル情報と、小規模アプリケーション(アプレット)とが格納される。
【0011】
なお、このSIM10は、通信装置1に接続して使用するカード型のものであってもよいし、予め通信装置1内に組み込まれているチップ型のものであってもよい。さらにここでのSIM10には、遠隔から情報を更新するRSP(Remote SIM Provisioning)を用いてプロファイル情報を書き込んだeSIMを含む。
【0012】
本実施の形態では、この記憶部101に格納されるアプレットとして、入力された署名対象情報についての署名情報を生成して出力する電子署名アプレットが含まれるものとする。
【0013】
プロセッサ102は、入出力部103から入力される要求に応答して、記憶部101に格納されているプロファイル情報を読み出して出力する。またこのプロセッサ102は、入出力部103からアプレットの実行要求や、アプレットで処理するべきデータの入力を受け入れて、記憶部101に格納されたアプレットを実行する。そしてプロセッサ102は、アプレットの実行の結果、得られた出力を入出力部103を介して出力する。
【0014】
入出力部103は、制御部11との間で情報を授受し、制御部11から入力される要求や、データをプロセッサ102に出力する。またこの入出力部103は、プロセッサ102が出力する情報を制御部11に出力する。
【0015】
通信装置1の制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。この制御部11は、例えばアプリケーションを実行し、当該アプリケーションの処理において、ネットワークを介して接続されたサービス提供側装置3との間でデータを送受する。また、この制御部11は、署名対象情報と署名要求とをSIM10に出力し、SIM10に電子署名アプレットを実行させて、SIM10から署名情報を受け入れるSIM制御手段として機能する。さらに制御部11は、SIM10が出力した署名情報をパケットデータを生成し、ネットワークを介して送出する送信手段としても機能する。この制御部11の具体的な動作については後に述べる。
【0016】
なお、ここでパケットデータは、図2に例示するように、ヘッダ部Hと、ペイロード部Pとを含み、さらにオプションとしてトレイラ部Tとを含む。ヘッダ部Hは、通信のプロトコルにより予め定められたデータ(宛先を特定する情報等)が含められる。ペイロード部Pには、ユーザデータが含められる。本実施の形態の例では、制御部11は、付加情報をパケットの一部、具体的にはそのトレイラ部Tに含めるものとする。もっともこれは一例であり、付加情報は、パケットのヘッダ部Hあるいはペイロード部Pの一部に含められてもよい。
【0017】
記憶部12は、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、記憶部12に格納されたものであってもよい。またこの記憶部12は、制御部11のワークメモリとしても動作する。
【0018】
操作部13は、タッチパネル等であり、ユーザの操作を受け入れて、当該操作の内容を表す情報を、制御部11に出力する。表示部14は、ディスプレイ等であり、制御部11から入力される指示に従って情報を表示出力する。通信部15は、携帯電話回線網を介して情報を授受する携帯電話部や、無線LANインタフェース等のネットワークインタフェース等を含んで構成される。この通信部15は、制御部11から入力される指示に従い、携帯電話回線網や、無線LANなどのネットワーク通信網を介して情報を授受する。
【0019】
またこの通信装置1は、ネットワークを介して検証サーバ2や、サービス提供側装置3等に接続される。ここで検証サーバ2は、通信装置1を識別する識別情報に関連付けて、当該識別情報で識別される通信装置1が送出した署名情報を検証するための公開鍵(復号のための復号鍵)を保持する。ここでは、この公開鍵は通信装置1から送信され、この検証サーバ2にて保持されるものとする。またこの識別情報は、IMEI(International Mobile Equipment Identifier)等、通信装置1に固有の情報であるものとする。
【0020】
サービス提供側装置3は、例えばウェブサーバ等であり、通信装置1との間で通信を行って所定のサービスを提供する。またこのサービス提供側装置3は、ネットワーク上に配されて、通信装置1が送出したパケットデータの送信経路を制御するネットワークスイッチ装置等であってもよい。本実施の形態の例では、このサービス提供側装置3は、通信装置1が送出する署名情報を受信し、当該受信した署名情報を検証する処理を実行する。具体的な例として、このサービス提供側装置3は、サービスの要求を行った通信装置1の識別情報を取得し、当該取得した識別情報に関連付けて検証サーバ2が保持する公開鍵を取得する。そしてサービス提供側装置3は、この公開鍵を用いて署名情報をデコードし、デコードの結果が署名対象情報と一致するか否かにより、署名対象情報が正当なものであるか否かを検証する。この検証の結果は、サービス提供側装置3におけるサービスの処理に供される。
【0021】
次にSIM10のプロセッサ102の動作と、通信装置1の制御部11の動作とについて説明する。
【0022】
SIM10のプロセッサ102は、制御部11から署名対象情報とともに署名の要求の入力を受けて電子署名アプレットの実行を開始する。電子署名アプレットの処理においてプロセッサ102は、予め所定の方法で生成した秘密鍵を耐タンパ性を有するプロファイル領域101aに保持しており、この秘密鍵を用いて入力された署名対象情報をエンコードし、当該エンコードの結果を署名情報として制御部11へ出力する。なお、秘密鍵及びそれに対応する公開鍵の生成方法は広く知られているので、ここでの詳しい説明を省略する。
【0023】
後に説明するように、本実施の形態の一例において署名対象情報は、アプリケーションの名称であり、SIM10のプロセッサ102は、当該アプリケーションが通信に使用するソケットを特定する情報と、署名対象情報としてのアプリケーションの名称との入力を、署名の要求とともに受けて、電子署名アプレットを実行し、上記秘密鍵を用いて入力された署名対象情報をエンコードし署名情報を得る。プロセッサ102は、入力されたソケットを特定する情報等に関連付けて、得られた署名情報を、耐タンパ性を有するプロファイル領域101aに格納し、署名情報リストを生成する。
【0024】
SIM10のプロセッサ102は、ソケットを特定する情報とともに、署名情報の要求を受け入れると、当該受け入れた、ソケットを特定する情報に関連付けて上記プロファイル領域101aに格納された署名情報を取得して出力する。
【0025】
またこのプロセッサ102は、所定のタイミング(例えば要求されたタイミング、あるいは予め定めた時間ごとのタイミングなど)で、電子署名アプレットで利用する秘密鍵と当該秘密鍵に対応する公開鍵との鍵ペアを生成する。プロセッサ102は、鍵ペアを生成すると、秘密鍵を耐タンパ性を有するプロファイル領域101aに格納するとともに、公開鍵(復号用の復号鍵)と、自己のIMEIとを、ネットワークを介して検証サーバ2へ送出して、検証サーバ2に公開鍵を保持するよう要求する。
【0026】
また本実施の形態の例において、制御部11は、図3に例示するように、情報取得部31と、SIM制御部32と、パケットデータ生成部33と、送信処理部34とを機能的に含んで構成される。
【0027】
情報取得部31は、署名の対象となる署名対象情報を取得する。本実施の形態の一例では、通信装置1は、ソケット通信を行っているものとし、この署名対象情報は、通信に用いられているソケットに関する情報であるものとする。この例の場合、情報取得部31は、netstatコマンドまたはlsofコマンドなどを用いて、開かれている(LISTEN(待機中)やCLOSE_WAIT(終了待ち)等の状態にあるものを含む)ソケットを特定する情報(送信元となる通信装置1のIPアドレスと、ポート番号とを含む情報)と、各ソケットを用いて通信を行っているアプリケーションの名称とを署名対象情報として取得する。なお、この情報取得部31は、オペレーティングシステムのカーネルの機能として実装されてもよく、その場合はコマンド実行ではなく、システムコールプログラムによって各種情報を署名対象情報として取得することとしてもよいし、カーネルが管理している情報を読み出すことにより、各種情報を署名対象情報として取得することとしてもよい。本実施の形態の例では、情報取得部31は、ソケットを特定する情報の各々に対して、当該情報で特定される各ソケットを用いて通信を行っているアプリケーションの名称を関連付けて、署名対象情報として記憶部12に格納する。
【0028】
SIM制御部32は、所定の署名作成タイミングで、記憶部12に格納された署名対象情報と、署名要求とをSIM10に出力する。これによりSIM制御部32は、SIM10に電子署名アプレットを実行させ、SIM10が電子署名アプレットの処理結果として出力する署名情報を作成させる。SIM制御部32は、また、パケットデータ生成部33からソケットを特定する情報とともに署名情報の要求を受けると、SIM10に対して、当該ソケットを特定する情報に関連付けられた署名情報を要求し、SIM10から対応する署名情報を取得して、パケットデータ生成部33に出力する。
【0029】
またこのSIM制御部32は、予め定めた条件が満足されたときに、SIM10に対して、電子署名アプレットで利用する秘密鍵と当該秘密鍵に対応する公開鍵との鍵ペアを生成するよう要求してもよい。ここで予め定めた条件は、ユーザから要求された、との条件であってもよいし、前回鍵ペアを生成してからの経過日数が予め定めたしきい値を超えたとの条件であってもよい。
【0030】
パケットデータ生成部33は、ネットワークを介して送出するべきユーザデータが、アプリケーションの処理により生成されると、当該アプリケーションが通信のために作成したソケットを特定する情報と、当該ユーザデータとを受け入れる。
【0031】
パケットデータ生成部33は、当該受け入れたユーザデータを複数に分割し、当該分割して得たユーザデータをそれぞれ含む複数のパケットデータを生成する。またこのパケットデータ生成部33は、パケットデータの送信開始を意味するパケットデータ(SYNパケットデータ)など、ユーザデータを含まないパケットデータをさらに生成してもよい。パケットデータ生成部33は、当該生成した複数のパケットデータの少なくとも一つに、SIM制御部32が得た署名情報と、署名対象情報とを付加情報として付加する。本実施の形態では、付加情報は、パケットデータのトレイラ部に含めることとするが、ペイロード部が空(データサイズが「0」)であれば、ペイロード部に含めてもよい。また付加情報を、IPヘッダにおけるオプションとして定義しておき、付加情報をIPヘッダに含めてもよい。パケットデータ生成部33は、生成したパケットデータ(付加情報を付加したものを含む)と、当該パケットデータの元となったデータとともにアプリケーションから受け入れた、ソケットを特定する情報とを出力する。
【0032】
送信処理部34は、パケットデータ生成部33からパケットデータとソケットを特定する情報とを受け入れ、当該情報で特定されるソケットを介して各パケットデータを逐次的に送出する。
【0033】
本実施の形態の一例では、この通信装置1は、TCP(Transmission Control Protocol)を用いたソケット通信を行う際に、その先頭のパケットデータ(ソケットを開設した後、通信を開始するときに最初に送出するパケットデータ)のトレイラ部に、上記付加情報を付加する。TCPを用いた通信において、この先頭のパケットデータは、SYNパケットデータと呼ばれるパケットデータであり、ペイロード部にユーザデータを含まない(ペイロード部のデータサイズが「0」である)パケットデータである。
【0034】
[動作]
本発明の実施の形態に係る通信装置1は、基本的に以上の構成を備えており、次のように動作する。以下の例では、サービス提供側装置3はオープンフロー(https://opennetworking.org/)に対応するネットワークスイッチであり、そのフロー設定データベースには、動画データをネットワーク上のコンピュータから取得して再生するアプリケーションの名称の文字列「MoviePlayer」が、付加情報に係る条件として設定されている。またサービス提供側装置3は、この条件に関連付けて、所定の処理指示情報が設定されているものとする。ここで処理指示情報は、例えばネットワークフローを制御するための情報であり、具体的にはアプリケーション「MoviePlayer」からのパケットを、特定の通信ポートを介して送出するべき旨の指示を表す情報等となる。
【0035】
通信装置1は、SIM10に対して、電子署名アプレットで利用する秘密鍵と当該秘密鍵に対応する公開鍵との鍵ペアを生成させておく。SIM10が鍵ペアを生成すると、SIM10は秘密鍵を、耐タンパ性を有するプロファイル領域101aに格納するとともに、公開鍵と、自己のIMEIとを出力する。通信装置1は、この出力された公開鍵と、自己のIMEIとを検証サーバ2へ送出する。そして検証サーバ2が、送出されたIMEIと公開鍵とを受け入れ、当該IMEIと公開鍵とを関連付けて保持する。
【0036】
通信装置1は、所定のタイミングごとに繰返してnetstatやlsofなどのプロセスを実行し、アプリケーションごとに、当該アプリケーションが開設しているソケットを特定する情報(通信装置1のIPアドレスとポート番号との組など)を取得して記録する。
【0037】
また通信装置1は、ソケットを特定する情報と、署名対象情報としての当該情報で特定されるソケットを開設しているアプリケーションの名称と、署名の要求とをSIM10に出力し、SIM10の電子署名アプレットにより、対応する署名情報を生成させる。このとき、SIM10は、プロファイル領域101aに格納した秘密鍵を用いて、署名対象情報であるアプリケーションの名称をエンコードして署名情報を生成する。SIM10は、生成した署名情報と、入力された署名対象情報であるアプリケーションの名称と、ソケットを特定する情報とを関連付けて、署名情報リストとしてプロファイル領域101aに格納しておく(図4)。
【0038】
その後、通信装置1の利用者が、「MoviePlayer」の名称のアプリケーションを用いてIPアドレスがαであるサーバへアクセスする操作を行うと、通信装置1は、図5に例示する処理を開始し、このアプリケーションが開設しているソケットを特定する情報に関連付けられた署名情報を、SIM10に要求する(S11)。
【0039】
SIM10がこの要求に応答して、プロファイル領域101aに格納された情報のうち、要求に係るソケットを特定する情報に関連付けられている署名情報を出力すると(S12)、通信装置1は、当該署名情報を取得し、当該取得した署名情報とアプリケーションの名称とを含む付加情報を生成する(S13)。
【0040】
また通信装置1は、ヘッダ部に宛先IPアドレスとしてαを含むSYNパケットデータP1や、データを要求するユーザデータを含んだ後続のパケットデータP2,P3…を生成する(S14)。そして通信装置1は、SYNパケットデータP1の、例えばトレイラ部に、生成した付加情報(署名情報を含んだ情報)と、通信装置1を特定する情報としてIMEIとを含める(S15)。そして通信装置1は、アプリケーション「MoviePlayer」が開設したソケットを介して、当該生成したパケットデータP1,P2…を送出する(S16)。
【0041】
本実施の形態の例では、サービス提供側装置3が、この通信装置が送出したパケットデータP1,P2…を受け入れる。サービス提供側装置3は、例えば図6に例示する処理を実行し、受け入れたパケットデータごとに、当該パケットデータがSYNパケットデータであるか否かを調べる(S21)。
【0042】
サービス提供側装置3は、調べたパケットデータがSYNパケットデータであれば(S21:Yes)、予め定められた処理に従い、そのトレイラ部から付加情報とIMEIとを取り出す(S22)。そしてサービス提供側装置3は、予め設定されているフロー設定データベースに含まれるエントリのうち、当該取り出した付加情報に係るエントリを探索する(S23)。ここでは付加情報が満足する条件として、付加情報に含まれるアプリケーションの名称が一致するものを探索する。
【0043】
またサービス提供側装置3は、取り出した付加情報から署名情報を抽出する(S24)。サービス提供側装置3は、ステップS22で取り出したIMEIに関連付けて検証サーバ2が保持する公開鍵を取得し(S25)、当該取得した公開鍵で、ステップS24で抽出した署名情報をデコードする(S26)。そしてこのデコードの結果が、付加情報に含まれるアプリケーションの名称に一致するか否かを調べるなどして署名情報を検証する(S27:署名情報の検証)。ここでデコードの結果が、付加情報に含まれるアプリケーションの名称に一致するならば(S27:Yes(検証成功))、サービス提供側装置3は、ステップS23で見出したエントリに含まれる処理指示情報に基づいて、通信装置1から受信するパケットデータを処理する(S28)。このときサービス提供側装置3は、パケットデータから付加情報を取り除いて(SYNパケットデータであるパケットデータP1のトレイラ部を除去して)から、パケットデータP1を送出してもよい。
【0044】
一方、ステップS21において調べたパケットデータがSYNパケットデータでなければ(S21:No)、ステップS27に移行し、前回の署名情報の検証結果、検証に成功していれば(S27:Yes)、サービス提供側装置3は、ステップS23で見出したエントリに含まれる処理指示情報に基づいて、パケットデータを処理する(ステップS28)。
【0045】
このステップS28において、ステップS23での処理で付加情報に係るエントリが見出せなかった場合は、サービス提供側装置3は、通信装置1から受信するパケットデータP1,P2,…について予めデフォルトとして定められた処理に供する。
【0046】
一方、ステップS21で調べたパケットデータがSYNパケットデータであれば今回の、ステップS21で調べたパケットデータがSYNパケットデータでなければ前回の署名情報の検証結果、検証に成功しなかった場合(S27:No)、サービス提供側装置3は、パケットデータを破棄することとしてもよい(S29)。
【0047】
本実施の形態のこの処理により、アプリケーションの名称が「MoviePlayer」である場合と、そうでない場合とで、サービス提供側装置3におけるフロー設定データベースにおける処理指示情報の内容を異ならせて、例えばパケットの通信経路を変更したり、キャッシュの有無に関する条件を変更したりといったことが可能となる。
【0048】
またこの例によると、付加的情報等に対して認証が付加されているので、付加情報の正当性をサービス提供側装置3等、ネットワーク側の装置において認証できる。これにより通信経路上での改竄などによる不正な行為が防止される。
【0049】
[宛先での認証]
またパケットデータの宛先となるサービス提供側装置3(ウェブサーバ等)においても、署名情報の検証が行われてもよい。このウェブサーバ等として機能するサービス提供側装置3においても、通信装置1から到来したパケットデータがSYNパケットデータであるかを調べ、SYNパケットデータであれば、そのトレイラ部等から付加情報とIMEIとを取り出す。
【0050】
そしてこのサービス提供側装置3は、取り出した付加情報から署名情報を抽出するとともに、パケットデータから取り出したIMEIに関連付けて検証サーバ2が保持する公開鍵を取得する。サービス提供側装置3は、当該取得した公開鍵で、抽出した署名情報をデコードし、当該デコードの結果が、付加情報に含まれるアプリケーションの名称に一致するか否かを調べるなどして署名情報を検証する。
【0051】
サービス提供側装置3は、ここでデコードの結果が、付加情報に含まれるアプリケーションの名称に一致するなど、検証に成功すれば、その後に(上記SYNパケットデータに続いて)通信装置1から到来するパケットデータに含まれる要求に応答する処理を行う。
【0052】
一方、検証に成功しなかった場合には、サービス提供側装置3は、その後に(上記SYNパケットデータに続いて)通信装置1から到来するパケットデータを破棄するなどして、その要求に応答しないよう動作する。
【0053】
[UDPの例]
なお、ここまでの説明では主としてTCPを用いる例について述べたが、ソケット通信を行うものであれば、UDP(User Datagram Protocol)を用いるものであっても、その他のプロトコルを用いるものであってもよい。
【0054】
[鍵ペアに関する処理例]
本実施の形態では、既に述べたように、署名対象情報をエンコードするための秘密鍵と、対応する公開鍵との鍵ペアを、所定のタイミングで更新させてもよい。このタイミングは例えば毎日予め定めた時刻としておいてもよい。またこのように鍵ペアを更新した場合、通信装置1の制御部11は、SIM10に対し、その時点でプロファイル領域101aに格納されている署名情報リストを消去させる。
【0055】
その後制御部11は、改めてnetstatやlsofなどのプロセスを実行し、アプリケーションごとに、当該アプリケーションが開設しているソケットを特定する情報(通信装置1のIPアドレスとポート番号との組など)を取得して記録する。そして制御部11は、当該記録したソケットを特定する情報と、署名対象情報としての当該情報で特定されるソケットを開設しているアプリケーションの名称と、署名の要求とをSIM10に出力し、SIM10の電子署名アプレットにより、対応する署名情報を生成させる。このとき、SIM10は、プロファイル領域101aに格納した更新後の秘密鍵を用いて、署名対象情報であるアプリケーションの名称を改めてエンコードして署名情報を生成する。こうしてSIM10は、生成した署名情報と、入力された署名対象情報であるアプリケーションの名称と、ソケットを特定する情報とを関連付けて、プロファイル領域101aに格納し、署名情報リストを更新する。
【0056】
またここまでの例では、鍵ペアは、端末を識別する情報(IMEI)ごとに固有のものとしたが、本実施の形態はこれに限られない。例えば鍵ペアは、アプリケーションごとに生成されてもよい。この場合制御部11は、署名情報を付加したパケットを送出するべきアプリケーションを特定する情報(アプリケーションの名称や、当該アプリケーションが開設したソケットの情報等でよい)を、SIM10に出力し、SIM10に当該情報で特定されるアプリケーションに係る鍵ペアを生成させる。
【0057】
SIM10は、制御部11からアプリケーションを特定する情報とともに鍵ペアを生成するべき旨の要求を受けて、電子署名アプレットで利用する秘密鍵と当該秘密鍵に対応する公開鍵との鍵ペアを生成し、生成した秘密鍵を、入力されたアプリケーションを特定する情報に関連付けて、耐タンパ性を有するプロファイル領域101aに格納するとともに、公開鍵と、自己のIMEIと、アプリケーションを特定する情報とを制御部11に出力する。制御部11は、SIM10が出力した情報で特定されるアプリケーションの名称及び自己のIMEI(鍵特定情報)と、SIM10が出力した公開鍵とを検証サーバ2へ送出して、検証サーバ2に公開鍵を保持するよう要求する。
【0058】
そして検証サーバ2は、公開鍵と、通信装置1のIMEI及びアプリケーションの名称(鍵特定情報)とを関連付けて記録しておく。
【0059】
この例では、制御部11は、所定のタイミング、例えばアプリケーションがソケットを開設したタイミングなどにおいて、netstatやlsofなどのプロセスを実行し、当該アプリケーションの名称と、当該アプリケーションが開設しているソケットを特定する情報とをアプリケーションを特定する情報としてSIM10に出力し、SIM10に対して署名要求を行う。
【0060】
SIM10は、入力された、アプリケーションを特定する情報に関連付けて格納している秘密鍵を用いて、所定の署名対象情報(例えばアプリケーションの名称)をエンコードして署名情報を生成する。SIM10は、この署名情報を、アプリケーションの名称に関連付けて耐タンパ性を有するプロファイル領域101aに格納する。
【0061】
その後、制御部11は、アプリケーションの処理において、サービス提供側装置3に対して送出するユーザデータを生成すると、当該アプリケーションの名称と署名情報の要求とをSIM10に出力する。SIM10が当該要求に応答して、当該アプリケーションの名称に関連付けて格納している署名情報を出力すると、制御部11が当該署名情報を受け入れて、サービス提供側装置3に対して送出するパケットデータのトレイラ部に、当該パケットデータのペイロードに含めるユーザデータを生成したアプリケーションの名称(署名対象情報)と、受け入れた署名情報(当該アプリケーションに対応して生成された秘密鍵でエンコードされた情報)と、IMEIとを含む(つまり、署名情報と署名対象情報と鍵特定情報とを含む)付加情報を含める。
【0062】
サービス提供側装置3は、この通信装置1が送出したパケットデータを受け入れ、トレイラ部から付加情報を取り出す。そしてサービス提供側装置3は、付加情報から署名対象情報と署名情報とを抽出し、付加情報に含まれるIMEIとアプリケーションの名称と(鍵特定情報)を検証サーバ2に送出して対応する公開鍵を取得し、当該取得した公開鍵で、取り出した付加情報に含まれる署名情報をデコードして、署名対象情報と一致するか否かを調べ、パケットデータが正当なものであるか否か(改竄されていないことや、なりすましによるパケットデータでないこと)の検証を行う。
【0063】
[署名対象情報の他の例]
ここまでの説明において、署名対象情報は、例えば送信するユーザデータを生成したアプリケーションの名称であるものとしたが、本実施の形態はこれに限られない。この署名対象情報は、例えばパケットデータのヘッダ部やペイロード部に含まれる情報に基づく所定のハッシュ値であってもよい。
【0064】
この場合、通信装置1は、パケットデータごとに署名情報を生成することとなり、SIM10は、電子署名アプレットの処理として、署名対象情報の入力を受けて、所定の秘密鍵(通信装置1ごとに固有の秘密鍵を保持している場合は当該秘密鍵、アプリケーションごとに異なる秘密鍵が保持されている場合は、パケットデータのペイロード部に含まれるユーザデータを生成したアプリケーションに対応する秘密鍵)を用いて当該署名対象情報をエンコードし、その結果を署名情報として出力する。
【0065】
制御部11は、SYNパケットデータP1や、アプリケーションが生成したユーザデータを含むパケットデータP2,P3…を生成すると、その少なくとも一部のパケットデータのヘッダ部からペイロード部までのデータのハッシュ値を、予め定められた方法で演算する。
【0066】
制御部11は、当該ハッシュ値を署名対象情報としてSIM10に出力し、署名情報を要求する。制御部11は、SIM10から署名情報が出力されると、当該署名情報を、ハッシュ値を生成したデータを含むパケットデータのトレイラ部に、付加情報として付加して、ネットワークを介して送出する。なお制御部11は、この付加情報に、さらにIMEI等の鍵特定情報を含めておく。
【0067】
サービス提供側装置3は、この通信装置1が送出したパケットデータを受け入れると、各パケットデータについて、トレイラ部に付加情報が含まれるか否かを調べ、含まれていれば当該付加情報を取り出す。そしてサービス提供側装置3は、当該取り出した付加情報から署名情報を抽出し、付加情報に含まれるIMEI等の鍵特定情報を検証サーバ2に送出して対応する公開鍵を取得し、当該取得した公開鍵で、署名情報をデコードする。サービス提供側装置3は、そして、対応するパケットデータのヘッダ部からぺーロード部までのデータの、上記予め定められた方法で演算されるハッシュ値と、当該デコードした署名情報とが一致するか否かを調べ、パケットデータが正当なものであるか否か(改竄されていないことや、なりすましによるパケットデータでないこと)の検証を行う。
【0068】
この例において署名情報を付加するパケットデータは、例えばSYNパケットデータであってもよい。この場合、署名対象情報は、SYNパケットデータのヘッダ部のデータ(ペイロード部は空であるため)であってもよいし、ランダムな値を発行してSYNパケットデータのペイロード部に含め、このペイロード部に含めたデータを含むデータを、署名対象情報としてもよい。
【0069】
さらに署名情報を付加するパケットデータは、例えば所定のパケット数N個のパケットデータあたり一つと定められていてもよい。この数Nは、署名情報の生成の処理負荷(SIM10が一つの署名情報を出力するのに要する時間)に応じて定められてもよい。
【符号の説明】
【0070】
1 通信装置、2 検証サーバ、3 サービス提供側装置、10 SIM、11 制御部、12 記憶部、13 操作部、14 表示部、15 通信部、31 情報取得部、32 SIM制御部、33 パケットデータ生成部、34 送信処理部、101 記憶部、102 プロセッサ、103 入出力部。
図1
図2
図3
図4
図5
図6