JP2017097659A - Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム - Google Patents

Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム Download PDF

Info

Publication number
JP2017097659A
JP2017097659A JP2015229969A JP2015229969A JP2017097659A JP 2017097659 A JP2017097659 A JP 2017097659A JP 2015229969 A JP2015229969 A JP 2015229969A JP 2015229969 A JP2015229969 A JP 2015229969A JP 2017097659 A JP2017097659 A JP 2017097659A
Authority
JP
Japan
Prior art keywords
security
command
response
terminal device
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015229969A
Other languages
English (en)
Other versions
JP6710942B2 (ja
Inventor
寛之 丹
Hiroyuki Tan
寛之 丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toppan Inc
Original Assignee
Toppan Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toppan Printing Co Ltd filed Critical Toppan Printing Co Ltd
Priority to JP2015229969A priority Critical patent/JP6710942B2/ja
Publication of JP2017097659A publication Critical patent/JP2017097659A/ja
Application granted granted Critical
Publication of JP6710942B2 publication Critical patent/JP6710942B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】多大な開発コストを要せずに、携帯端末装置のセキュリティの向上を図れるようにする。【解決手段】UICC20には、TPMアプレット40が実装される。TPMアプレット40は、携帯端末装置10からのセキュリティに関連するコマンドを受信し、セキュリティに関連するコマンドに応じてセキュリティに関連する処理を実行し、セキュリティに関連する処理のレスポンスを携帯端末装置10に返信する。【選択図】 図1

Description

本発明は、ICカード、データ保護方法、セキュリティ関連プログラム、及び通信システムに関する。
近年、スマートフォンと称される携帯端末装置が急速に普及している。携帯端末装置にはメモリが搭載されており、このメモリには、様々なアプリケーション・プログラムの一時的な情報や恒久的に保存するべき情報が格納される。携帯端末装置では、それぞれのアプリケーション・プログラムは、サンドボックスと呼ばれる限定的なメモリ空間でのみ実行され、アプリケーション・プログラムがオペレーションシステム(OS;Operating System)やハードウェア、他アプリケーション・プログラムに悪影響を与えないような仕組みが実装されている。
しかしながら、アプリケーション・プログラムをサンドボックスでのみ実行されるようにしたとしても、携帯端末装置の情報の流出は完全に防止できない。たとえば、アプリケーション・プログラムをインストールするときに、アプリケーション・プログラムがユーザにカメラ機能や位置情報送信機能のアクセス許可を求める場合がある。この場合、多くのユーザは、インストール手順の煩わしさから、アクセス許可に応じてしまう。ところが、アクセス許可に応じてしまうと、アプリケーション・プログラムはこれらの機能が使用できることになり、たとえばユーザの携帯端末で取得された位置情報が意思に反して送信されてしまい、ユーザのプライバシーが守られなくなるといった問題が生じてくる。
そこで、携帯端末装置にティー・ピー・エム(TPM;Trusted Platform Module)の機能を持たせることが考えられる。TPMは、主にパーソナルコンピュータ(PC;Personal Computer)のマザーボード等に搭載されるチップ(セキュアモジュール)であり、バイオス(BIOS;Basic Input/Output System)及びOS等が不正な操作を受けていないかをチェックしたり、PCに格納されたデータの暗号化を管理しアクセス可能なデバイスを制限したりすることができる(例えば特許文献1)。
特開2008−226191号公報
しかしながら、TPMのチップを携帯端末装置に搭載するためには、そのための基板を新しく開発していかなければならない。また、TPMチップと携帯端末装置のソフトウェア(OS等)との間で通信するための機能、エー・ピー・アイ(API;Application Programming Interface)、およびライブラリ等を新しく作らなければならず、多大な開発期間と開発コストとが必要となる。
上述の課題を鑑み、本発明は、多大な開発コストを要せずに、セキュリティの向上を図れるようにした、ICカード、データ保護方法、セキュリティ関連プログラム、及び通信システムを提供することを目的とする。
上述の課題を解決するために、本発明の一態様に係るICカードは、携帯端末装置で通信を行うための情報が収められたICカードであって、前記携帯端末装置からのセキュリティに関連するコマンドを受信するコマンド受信部と、前記セキュリティに関連するコマンドに応じて、セキュリティに関連する処理を実行するセキュリティ機能実行部と、前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するレスポンス送信部と、を備えることを特徴とする。
本発明の一態様に係るデータ保護方法は、通信を行うための情報が収められたICカードを装着して使用する携帯端末装置のデータ保護方法であって、前記携帯端末装置が前記ICカードにセキュリティに関連するコマンドを送信する工程と、前記ICカードが前記セキュリティに関連するコマンドに応じてセキュリティに関連する処理を実行する工程と、前記ICカードが前記携帯端末装置に前記セキュリティに関連する処理のレスポンスを返信する工程と、を含むことを特徴とする。
本発明の一態様に係るセキュリティ関連プログラムは、携帯端末装置で通信を行うための情報が収められたICカードに実装されるセキュリティ関連プログラムであって、前記携帯端末装置からのセキュリティに関連するコマンドを受信するステップと、前記セキュリティに関連するコマンドに応じてセキュリティに関連する処理を実行するステップと、前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するステップと、を含むことを特徴とする。
本発明の一態様に係る通信システムは、通信を行うための情報が収められたICカードと、前記ICカードを装着して処理を行う携帯端末装置とからなる通信システムであって、前記携帯端末装置は、前記ICカードにセキュリティに関連するコマンドを送信するコマンド送信部と、前記ICカードから返信されるレスポンスを受信するレスポンス受信部とを備え、前記ICカードは、前記携帯端末装置からのセキュリティに関連するコマンドを受信するコマンド受信部と、前記セキュリティに関連するコマンドに応じて、セキュリティに関連する処理を実行するセキュリティ機能実行部と、前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するレスポンス送信部とを備えることを特徴とする。
本発明によれば、携帯端末装置で通信を行うための情報が収められたICカードに、セキュリティに関連する処理の実行機能が収められる。これにより、携帯端末装置のセキュリティを向上させることができる。また、本発明によれば、TPMチップの開発が不要であり、また、携帯端末装置とICカードとの通信には、既存のプロトコルを用いることができる。このため、開発コストを抑えることができる。
本発明の第1の実施形態に係る通信システムの概要の説明図である。 本発明の第1の実施形態における携帯端末装置の概要を示すブロック図である。 本発明の第1の実施形態におけるUICCの構成を示すブロック図である。 アプレットの構造を示す説明図である。 UICCのCPUの機能構造を示すブロック図である。 携帯端末装置からUICCに送る通信コマンドの構造を示す説明図である。 UICCから携帯端末装置に返信する通信レスポンスの構造を示す説明図である。 「INS」と「Ordinal」との紐付けリストの説明図である。 「SW」と「ReturnCode」との紐付けリストの説明図である。 本発明の第1の実施形態に係る通信システムにおける携帯端末装置とUICCとの間のデータ通信のシーケンス図である。 本発明の第1の実施形態に係る通信システムにおけるUICC側でのTPMアプレットのコマンド処理を示すフローチャートである。 本発明の第1の実施形態に係る通信システムにおける携帯端末装置側でのTPMアプレットのコマンド処理を示すフローチャートである。
以下、本発明の実施の形態について図面を参照しながら説明する。図1は、本発明の第1の実施形態に係る通信システム1の概要を示すものである。
図1において、携帯端末装置10は、スマートフォンと称される端末装置である。携帯端末装置10には、各種のアプリケーション・プログラムをインストールすることができる。これらのアプリケーション・プログラムは、サンドボックスと称される限定的なメモリ空間でのみ実行されるようにして、セキュリティの向上が図られている。
携帯端末装置10は、UICC(ユー・アイ・シー・シー;Universal Integrated Circuit Card)20を装着して使用する。UICC20は、通信を行うための情報が収められたIC(Integrated Circuit;アイシー)カードであり、SIMカード(シムカード;Subscriber Identity Module Card)とも称される。UICC20は、耐ダンパー性をもったセキュアなICカードであり、外部からの悪意ある攻撃から情報を守る堅牢な構造を持っている。なお、UICC20は、クレジットカードサイズで提供されICチップの部分だけ切り離して携帯端末装置10に装着される場合もある。
本実施形態では、UICC20のアプリケーション・プログラムとして、TPMアプレット40が搭載される。TPMは、ティー・シー・ジー(TCG;Trusted Computing Group)が定める高セキュリティーモジュールの総称であり、PC等に搭載されている。TPMアプレット40は、セキュリティ関連の処理を実行する。すなわち、TPMアプレット40は、機器の起動時に各部品やOSが偽造されているかどうかをチェックしたり、各機器がもつデータを安全に暗号化したりする機能をもつ。また、TPMアプレット40は、暗号化機能に伴う鍵の発行機能をもつ。本実施形態では、UICC20のアプリケーション・プログラムで提供されるTPMアプレット40を用いることで、データの暗号化や復号化、デジタル署名の生成・検証、改竄の検知等を行うことができる。
図2は、携帯端末装置10の概要を示すブロック図である。図2に示すように、携帯端末装置10は、CPU(Central Processing Unit;中央演算処理装置)11、メインメモリ12、補助メモリ13、ディスプレイ14、タッチスクリーン15、無線通信部16、カードリーダ/ライタ17をハードウェアモジュールとして備える。これらのハードウェアモジュールは、バス18により相互接続されている。
CPU11は、携帯端末装置10の各種ハードウェアモジュールを制御する。CPU11は、補助メモリ13に格納された各種プログラムをメインメモリ12に読み出すとともに、メインメモリ12に読み出した各種プログラムを実行することで、各種機能を実現する。
メインメモリ12は、CPU11のワークエリアとして使用され、CPU11による処理に必要な各種データを記憶する。メインメモリ12としては、例えばRAM(Random Access read/write Memory;読み書き可能なメモリ)などが用いられる。
補助メモリ13は、携帯端末装置10を動作させる各種プログラムを格納している。補助メモリ13としては、例えば、HDD(Hard Disk Drive;ハードディスクドライブ)やフラッシュメモリ等の不揮発メモリが用いられる。
ディスプレイ14は、CPU11により制御され、ユーザに提示する画像情報を表示する。タッチスクリーン15は、ディスプレイ14に貼り付けられ、ユーザの指先やペン先などで接触された位置情報を入力する。ディスプレイ14に各種のアイコンを表示し、タッチスクリーン15をタップしたり、フリックしたりすることで、ジー・ユー・アイ(GUI;Graphical User Interface)が提供できる。
無線通信部16は、CPU11により制御され、3G(3rd Generation;第3世代移動通信システム)、またはLTE(Long Term Evolution;ロング・ターム・エボリューション)などによる通信機能を提供する。
カードリーダ/ライタ17は、UICC20の読み出し/書き込みを行う。本実施形態では、携帯端末装置10とUICC20との間のデータの転送には、既存の通信プロトコル(ISO7816−3)が用いられる。この通信プロトコルについては、後に説明する。カードリーダ/ライタ17は、ISO7816−3に準拠したコマンド送信部と、レスポンス受信部として機能する。
図3は、UICC20の構成を示すブロック図である。図3に示すように、UICC20は、CPU21と、ROM22と、RAM23と、不揮発性メモリ24と、通信部25とを備える。
CPU21は、UICC20のデータの処理の制御を行う。ROM22は、基本となる各種プログラムを格納する。RAM23は、CPU21のワークエリアとして使用される。不揮発性メモリ24は、UICCの動作制御に必要な各種のプログラムやデータを記憶する。通信部25は、携帯端末装置10側のカードリーダ/ライタ17と通信を行う。通信部25は、ISO7816−3に準拠したコマンド受信部と、レスポンス送信部として機能する。
UICC20は、JavaCard(登録商標)アプレットをサポートしている。図4は、JavaCard(登録商標)アプレットの構造を示すものである。図4に示すように、VM(Virtual Machine;仮想機械)制御部51により仮想マシンが構築される。そして、VM制御部51上に、アプレット制御部52が設けられ、アプレット制御部52により、アプレット53が実行される。暗号機能55及びメモリ制御56は、VM制御部51により管理される。
図5は、CPU21の機能構造を示すものである。図5に示すように、CPU21は、通信制御部61と、メモリ制御部62と、VM制御部63と、アプレット制御部64とからなる。通信制御部61は、通信部25によるデータ通信の制御を行う。メモリ制御部62は、ROM22、RAM23、不揮発性メモリ24によるデータの読み出し/書き込みの制御を行う。VM制御部63は、仮想マシンの制御を行う。アプレット制御部64は、VM制御部63上で実行されるJavaCard(登録商標)アプレットの制御を行う。
次に、本発明の第1の実施形態でのTPM機能について説明する。前述したように、本実施形態では、TPMアプレット40を、UICC20のアプリケーション・プログラムとして搭載している。このTPMアプレット40は、上述のJavaCard(登録商標)によるアプレットとして実現できる。
また、携帯端末装置10とUICC20との間のデータの転送には、既存の通信プロトコル(ISO7816−3)が用いられる。この通信プロトコルは、クレジットカードやUICCに代表されるICカードの規格を定めた国際標準規格であり、APDU(Application Protocol Data Unit;アプリケーション・プロトコル・データ・ユニット)と呼ばれるコマンド群により、ICカードとデータ通信を行うことを定めている。また、この通信プロトコルでは、エラーの処理方法等も規定されている。
本実施形態では、図6及び図7に示すように、携帯端末装置10とUICC20との間のデータの転送に、既存の通信のプロトコル(ISO7816−3)のAPDUコマンド及びAPDUレスポンスが用いられる。そして、このAPDUコマンド及びAPDUレスポンスのデータ中に、TPMアプレットのためのコマンドやリターンコードを組み込んでいる。
図6は、携帯端末装置10からUICC20に送る通信コマンドの構造を示すものである。この通信コマンドは、ICカードの通信プロトコル(ISO7816−3)のAPDUコマンドに基づいている。図6に示すように、APDUコマンドは、「CLA」、「INS」、「P1」、「P2」、「Lc」、「DATA」、「Le」からなる。「CLA」は、命令クラスである。「INS」は、命令コードである。「P1」及び「P2」は、命令パラメータである。「Lc」は、コマンドのデータフィールドに含まれるバイト数である。「DATA」は、コマンドで送信されるデータバイト列である。「Le」は、レスポンスのデータフィールドに含まれる予定の最大バイト数である。
また、APDUコマンドの「DATA」中には、TPMのコマンドが組み込まれる。TPMコマンドは、「TAG」、「ParamSize」、「Ordinal」、「Data」からなる。「TAG」は、識別用のタグである。「ParamSize」は、全バイト数である。「Ordinal」は、コマンドである。「Data」はデータバイト列である。このTPMコマンドは、TPM Main part3に基づいている。
図7は、UICC20から携帯端末装置10に返信する通信レスポンスの構造を示すものである。この通信レスポンスは、ICカードの通信プロトコル(ISO7816−3)のAPDUレスポンスに基づいている。図7に示すように、APDUレスポンスは、「DATA」、「SW」からなる。「DATA」は、APDUレスポンスで受信されるデータバイト列である。「SW」は、コマンド処理の状態を示すステータスワードである。コマンドが正常に終了した場合、「SW」の値として「0x9000」が返される。それ以外のレスポンスは、エラーまたはウォーニングが発生したことを示している。
また、APDUレスポンスの「DATA」中には、TPMレスポンスが組み込まれる。TPMレスポンスは、「TAG」、「ParamSize」、「ReturnCode」、「Data」からなる。「TAG」は、識別用のタグである。「ParamSize」は、全バイト数である。「ReturnCode」は、オペレーションのリターンコードである。「Data」はデータバイト列である。TPMレスポンスは、TPM Main part3に基づいている。
本実施形態では、図6に示したように、APDUコマンドの「DATA」中に、TPMのコマンドを組み込むようにしている。また、図7に示したように、APDUレスポンスの「DATA」中に、TPMレスポンスを組み込むようにしている。
また、本実施形態では、図8に示すようなAPDUコマンドの「INS」とTPMコマンドの「Ordinal」との紐付けリスト(コマンド対応リスト)や、図9に示すようなTPMレスポンスの「ReturnCode」とAPDUレスポンスの「SW」との紐付けリスト(レスポンス対応リスト)が用いられる。これらの紐付けリストは、携帯端末装置10の補助メモリ13及びUICC20の不揮発性メモリ24に記憶されている。これらの紐付けリストを用いることで、正規のTPMコマンドやTPMリターンコードであるかどうかを判定できる。
図8は、「INS」と「Ordinal」との紐付けリストを示すものである。この「INS」と「Ordinal」との紐付けリストでは、APDUコマンド(ISO7816−3)での「INS」値の意味と、TPMコマンド(TPM Main part3)での「Ordinal」値の意味とが等しくなるような組み合わせが行われている。但し、「INS=A4」は、アプレットの選択で使用するため、使用不可とされている。UICC20は、APDUコマンドを受信すると、受信したAPDUコマンドの中から「INS」の値と「Ordinal」の値を抽出する。UICC20は、「INS」の値と「Ordinal」の値が図8に示す「INS」と「Ordinal」との紐付けリストに適合するかどうかを判定する。そして、「INS」の値と「Ordinal」の値が「INS」と「Ordinal」との紐付けリストに適合する場合のみ、TPMコマンドの実行を行う。
図9は、「SW」と「ReturnCode」との紐付けリストを示すものである。この「SW」と「ReturnCode」との紐付けリストでは、APDUレスポンス(ISO7816−3)での「SW」の値の意味と、TPMリターンコード(TPM Main part3)での「ReturnCode」の値の意味とが等しくなるような組み合わせが行われている。携帯端末装置10は、APDUレスポンスを受信すると、受信したAPDUレスポンスの中から「SW」の値と「ReturnCode」の値を抽出し、「SW」の値と「ReturnCode」の値が図9に示す「SW」と「ReturnCode」との紐付けリストに適合するかどうかを判定する。そして、「SW」の値と「ReturnCode」の値が「SW」と「ReturnCode」との紐付けリストに適合する場合のみ、正規のレスポンスとして処理する。
次に、本発明の第1の実施形態に係る通信システムの動作について、図10のシーケンス図を参照しながら説明する。
図10は、本発明の第1の実施形態に係る通信システムにおける携帯端末装置10とUICC20との間のデータ通信のシーケンス図である。同図において、アプリケーション・プログラム30の実行処理は、携帯端末装置10にインストールされているソフトウェアにより行われる。携帯端末装置10の実行処理は、携帯端末装置10の各種の機能により実行される。TPMアプレット40の実行処理は、UICC20に実装されたTPMアプレットにより行われる。UICC20の実行処理は、UICC20の各種の機能により行われる。
図10において、携帯端末装置10のGUIによりアプリケーション・プログラム30が選択されると(ステップS1)、携帯端末装置10は、アプリケーション・プログラム30の起動処理を行い(ステップS2)、UICC20にアクセス要求を行う(ステップS3)。
UICC20は、携帯端末装置10からアクセス要求を受信すると、携帯端末装置10にアクセス許可のレスポンスを返信する(ステップS4)。
携帯端末装置10は、「TPMアプレット」を選択ファイルとしてAPDUコマンドを生成し、このAPDUコマンドをUICC20に送信する(ステップS5)。
UICC20は、「TPMアプレット」を選択ファイルとするAPDUコマンドを受信すると、TPMアプレット40があるかどうかをチェックし(ステップS6)、TPMアプレット40があれば、TPMアプレット40を選択する(ステップS7)。
そして、UICC20は正常終了レスポンスを携帯端末装置10のアプリケーション・プログラム30に返信する(ステップS8)。
携帯端末装置10のアプリケーション・プログラム30で、TPMコマンドが選択されると(ステップS9)、アプリケーション・プログラム30は、選択されたTPMコマンドに対応するTPMコマンドとAPDUコマンドを「INS」と「Ordinal」との紐付けリストから取得する(ステップS10)。
そして、アプリケーション・プログラム30は、「INS」と「Ordinal」との紐付けリストから取得したTPMコマンドとAPDUコマンドに基づいて、「INS」の値をAPDUコマンドの「INS」にセットし、APDUコマンドを生成する(ステップS11)。
そして、アプリケーション・プログラム30は、APDUコマンドのData領域にTPMコマンドを組み込み(ステップS12)、携帯端末装置10はこのAPDUコマンドをUICC20に送信する(ステップS13)。
UICC20は、携帯端末装置10からAPDUコマンドを受信すると、このAPDUコマンドが通信プロトコルに合致しているかをチェックし(ステップS14)、通信プロトコルに合致していれば、このAPDUコマンドをTPMアプレット40に転送する(ステップS15)。
TPMアプレット40は、APDUコマンドから「INS」の値と「Ordinal」の値とを抽出し、「INS」の値で示されるAPDUコマンドと、「Ordinal」の値で示されるTPMコマンドとが「INS」と「Ordinal」との紐付けリストに合致するかを確認する(ステップS16)。
TPMアプレット40は、「INS」の値と「Ordinal」の値とが「INS」と「Ordinal」との紐付けリストに合致していれば、TPMコマンド処理を実行する(ステップS17)。
TPMアプレット40は、TPM処理の実行結果に応じて、「ReturnCode」を生成し、「ReturnCode」と一致するAPDUレスポンスの「SW」を「SW」と「ReturnCode」との紐付けリストから取得する(ステップS18)。
そして、TPMアプレット40は、APDUレスポンスのData領域にTPMレスポンスを組み込み(ステップS19)、「SW」と「ReturnCode」との紐付けリストから取得した「SW」の値をAPDUレスポンスの「SW」に組み込み(ステップS20)、APDUレスポンスを生成する。
UICC20は、このAPDUレスポンスを携帯端末装置10のアプリケーション・プログラム30に送信する(ステップS21)。
携帯端末装置10のアプリケーション・プログラム30は、UICC20からのAPDUレスポンスを受信すると、このAPDUレスポンスからTPMレスポンスを抽出する(ステップS22)。
そして、アプリケーション・プログラム30は、受信したAPDUレスポンスの中から「SW」の値と「ReturnCode」の値を抽出し、APDUレスポンスの「SW」の値とTPMレスポンスの「ReturnCode」の値が「SW」と「ReturnCode」との紐付けリストに適合するかどうかを確認し(ステップS23)、「SW」と「ReturnCode」との紐付けリストに適合する場合のみ、正規のレスポンスとして処理する。
図11は、UICC20側でのTPMアプレットのコマンド処理を示すフローチャートである。
UICC20のCPU21は、「Select File」のAPDUコマンドを受信すると(ステップS101)、選択ファイルとして指定されている「TPMアプレット」が選択可能かどうかを判定する(ステップS102)。
ステップS102で、「TPMアプレット」が選択可能でなければ(ステップS102:No)、CPU21は、ファイルが選択できないことを示す「SW」の値をセットし(ステップS105)、APDUレスポンスを送信して(ステップS106)、処理を終了する。
ステップS102で、「TPMアプレット」が選択可能なら(ステップS102:Yes)、CPU21は、TPMアプレットを選択し(ステップS105)、「SW=0x9000」のレスポンスを返信する(ステップS106)。ここで、「SW=0x9000」は、正常終了を意味している。
UICC20のCPU21は、APDUコマンドの受信を待機しており(ステップS107)、APDUコマンドの受信を確認すると(ステップS108)、このAPDUコマンドが通信プロトコルに従ったクラスであるかどうかのCLAチェックを行い(ステップS109)、CLAチェックが正常に終了したかどうかを判定する(ステップS110)。
ステップS110で、CLAチェックが正常に終了していなければ(ステップS110:No)、CPU21は、CLAチェックが正常に終了しないことを示す「SW」の値をAPDUレスポンスにセットし(ステップS103)、APDUレスポンスを送信して(ステップS104)、処理を終了する。
ステップS110で、CLAチェックが正常に終了していれば(ステップS110:Yes)、CPU21は、APDUコマンドの「INS」の値が「Select File」以外かどうかを判定する(ステップS111)。
ステップS111で、「INS」の値が「Select File」の場合には(ステップS111:No)、CPU21は、TPMエラーをTPMレスポンスの「ReturnCode」に設定して、APDUレスポンスの「DATA」にセットする(ステップS112)。
そして、CPU21は、「SW」と「ReturnCode」との紐付けリストを参照して(ステップS113)、TPMエラーに対応するステータスワードをAPDUレスポンスの「SW」の値にセットし(ステップS114)、APDUレスポンスを送信する(ステップS115)。
ステップS111で、「INS」の値が「Select File」以外の場合には(ステップS111:Yes)、CPU21は、APDUコマンドの「DATA」中の「TAG」値がTPMコマンドのものかを判定する(ステップS116)。
APDUコマンドの「DATA」中の「TAG」値がTPMコマンドのものでない場合には(ステップS116:No)、CPU21は、ステップS112からステップS115の処理を行い、エラーに対応する「ReturnCode」と「SW」とを設定したAPDUレスポンスを送信する。
ステップS116で、APDUコマンドの「DATA」中の「TAG」値がTPMコマンドのものである場合には、(ステップS116:Yes)、CPU21は、「INS」と「Ordinal」との紐付けリストを参照し(ステップS117)、APDUコマンドの「INS」とTPMコマンドの「Ordinal」との組み合わせが「INS」と「Ordinal」との紐付けリストに合致しているかどうかを判定する(ステップS118)。
ステップS118で、APDUコマンドの「INS」とTPMコマンドの「Ordinal」との組み合わせが「INS」と「Ordinal」との紐付けリストに合致していない場合には(ステップS118:No)、CPU21は、ステップS112からステップS115の処理を行い、エラーに対応する「ReturnCode」と「SW」とを設定したAPDUレスポンスを送信する。
ステップS118で、APDUコマンドの「INS」とTPMコマンドの「Ordinal」との組み合わせが「INS」と「Ordinal」との紐付けリストに合致している場合には(ステップS118:Yes)、CPU21は、「TAG」と「Ordinal」との組み合わせを参照し(ステップS119)、「TAG」と「Ordinal」との組み合わせと処理が正しいかどうかを判定する(ステップS120)。
ステップS120で、「TAG」と「Ordinal」との組み合わせと処理が正しくない場合には(ステップS120:No)、CPU21は、ステップS112からステップS115の処理を行い、エラーに対応する「ReturnCode」と「SW」とを設定したAPDUレスポンスを送信する。
ステップS120で、「TAG」と「Ordinal」との組み合わせと処理が正しい場合には(ステップS120:Yes)、CPU21は、TPMコマンドの「Ordinal」に相当するセキュリティに関連する処理を実行する(ステップS121)。
そして、CPU21は、TPMコマンドの各パラメータが正しいかをチェックし(ステプS122)、「Ordinal」の処理結果は正しいかをチェックする(ステップS123)。
ステップS122でTPMコマンドのパラメータが正しくない場合には(ステップS122:No)、CPU21は、ステップS112からステップS115の処理を行い、エラーに対応する「ReturnCode」と「SW」とを設定したAPDUレスポンスを送信する。
同様に、ステップS123で「Ordinal」の処理結果は正しくない場合には(ステップS123:No)、CPU21は、ステップS112からステップS115の処理を行い、エラーに対応する「ReturnCode」と「SW」とを設定したAPDUレスポンスを送信する。
ステップS122でTPMコマンドのパラメータが正しく設定されており(ステップS122:Yes)、ステップS123で「Ordinal」の処理結果は正しい場合には(ステップS123:Yes)、CPU21は、正常終了の「ReturnCode」をTPMレスポンスに設定して、APDUレスポンスの「DATA」にセットする(ステップS124)。
そして、CPU21は、APDUレスポンスの「SW」を「SW=0x9000」にセットし(ステップS125)、このAPDUレスポンスを送信する(ステップS115)。
図12は、携帯端末装置10側でのTPMアプレットのコマンド処理を示すフローチャートである。
図12において、アプリケーション・プログラムが起動されると(ステップS201)、UICC20との通信が開始される(ステップS202)。
CPU11は、APDUコマンドの「INS」に、「Select File」を示す値を組み込み、選択ファイルとして「TPMアプレット」を指定する(ステップS203)。
そして、CPU11は、このAPDUコマンドを送信する(ステップS204)。
スマートフォンのCPU11は、UICC20からのAPDUレスポンスの受信を待ち(ステップS205)、APDUレスポンスの受信を確認すると(ステップS206)、このAPDUレスポンスの「SW」が「SW=0x9000」であるかどうかを判定する(ステップS207)。
「SW」が「SW=0x9000」であれば(ステップS207:Yes)、CPU11は、TPM機能を選択する(ステップS208)。
APDUレスポンスの「SW」が「SW=0x9000」以外であれば(ステップS207:No)、処理は終了される。
使用するTPM機能が指定されると(ステップS208)、CPU11は、「INS」と「Ordinal」との紐付けリストを参照し(ステップS209)、「INS」と「Ordinal」との紐付けリストから、TPM機能に対応するAPDUコマンドの「INS」とTPMコマンドの「Ordinal」の値をバッファにセットする(ステップS210)。
CPU11は、TPMコマンドの「Ordinal」に沿って、「TAG」、「ParamSize」、「Data」をバッファにセットし(ステップS211)、パラメータ「P1」及び「P2」をバッファにセットする(ステップS212)。
そして、CPU11は、「DATA」領域に設定する長さをAPDUコマンドの「Lc」の値として設定し(ステップS213)、このAPDUコマンドを送信する(ステップS214)。
スマートフォンのCPU11は、APDUレスポンスの受信を待機し(ステップS215)、APDUレスポンスの受信を確認すると(ステップS216)、このAPDUレスポンスの末尾の「SW」が「SW=0x9000」であるかどうかを判定する(ステップS217)。
ステップS217で、APDUレスポンスの「SW」が「SW=0x9000」であれば(ステップS217:Yes)、CPU11は、APDUレスポンスの「DATA」領域にあるTPMレスポンスをバッファに格納する(ステップS218)。
そして、CPU11は、TPMレスポンスの「ReturnCode」の値によって、アプリケーション・プログラムの処理を選択し(ステップS219)、アプリケーション・プログラムの処理を実行する(ステップS220)。
そして、CPU11は、アプリケーション・プログラムの処理の完了を確認し(ステップS221)、APDUコマンドの送信が必要であるかどうかを判定する(ステップS222)。
APDUコマンドの送信が必要なら(ステップS222:Yes)、ステップS214に行き、APDUコマンドを送信する。
APDUコマンドの送信が必要でなければ(ステップS222:No)、CPU11は、処理をステップS208に移し、使用するTPM機能の選択を待機する。
ステップS217で、APDUレスポンスの「SW」ドが「SW=0x9000」以外であれば(ステップS217:No)、CPU11は、実行エラーを表示する(ステップS223)。
そして、CPU11は、「SW」と「ReturnCode」との紐付けリストを参照して(ステップS224)、受信したAPDUレスポンスの「SW」の値が「SW」と「ReturnCode」との紐付けリストに存在するかどうかを判定する(ステップS225)。
ステップS225で、受信したAPDUレスポンスの「SW」の値が「SW」と「ReturnCode」との紐付けリストになければ(ステップS225:No)、CPU11は異常終了として処理し(ステップS226)、ステップS208に行き、使用するTPM機能の選択を待機する。
ステップS225で、受信したAPDUレスポンスの「SW」の値が「SW」と「ReturnCode」との紐付けリストに存在する場合には(ステップS225:Yes)、CPU11は、「SW」の値と「ReturnCode」の値は再処理を必要とするかどうかを判定する(ステップS227)。
ステップS227で、再処理が必要でない場合には(ステップS227:No)、CPU11は、処理をステップS208に進め、使用するTPM機能の選択を待機する。
ステップS227で、再処理が必要な場合には(ステップS227:Yes)、ステップS218からステップS220の処理を行い、再処理を実行する。
以上説明したように、本発明の実施形態では、UICC20のアプリケーション・プログラムとして、TPMの機能が搭載される。UICC20は、携帯端末装置10で標準搭載されるICチップであり、耐タンパー性をもっている。このため、UICC20のアプリケーション・プログラムにTPM機能を搭載することで、携帯端末装置10のセキュリティを向上させることができる。
また、本発明の実施形態では、携帯端末装置10とUICC20との間のデータの転送に、既存の通信のプロトコル(ISO7816−3)のAPDUコマンド及びAPDUレスポンスを用い、このAPDUコマンド及びAPDUレスポンスのデータ中に、TPMアプレットのためのコマンドやリターンコードを組み込んでいる。このため、TPMチップと携帯端末装置のソフトウェアとの間で通信するための機能を新たに開発する必要がない。したがって、TPM機能を新たに実装するために必要な、基板設計や通信プロトコルの実装などのハードウェア、ソフトウェア両面での開発コストの発生を抑えることが可能である。
また、UICCの規格はISO7816に定められており、同時期の機種ごとでは同一のものが搭載されている。そのため、ある機種で利用していたTPM機能を実装したUICCを別機種に移すことで、鍵の移行が容易になる。これにより、以前の機種で暗号化していた機密文書を、別機種でも読み取ることが可能である。
なお、通信システム1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1:通信システム
10:携帯端末装置
11:CPU
20:UICC
21:CPU
30:アプリケーション・プログラム
40:TPMアプレット

Claims (9)

  1. 携帯端末装置で通信を行うための情報が収められたICカードであって、
    前記携帯端末装置からのセキュリティに関連するコマンドを受信するコマンド受信部と、
    前記セキュリティに関連するコマンドに応じて、セキュリティに関連する処理を実行するセキュリティ機能実行部と、
    前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するレスポンス送信部と、
    を備えることを特徴とするICカード。
  2. 前記セキュリティに関連するコマンドは、前記携帯端末装置から前記ICカードへの通信コマンドの情報中に組み込まれる
    ことを特徴とする請求項1に記載のICカード。
  3. 更に、前記セキュリティに関連するコマンドと前記通信コマンドとの対応を示すコマンド対応リストを記憶する記憶部を備え、
    前記セキュリティ機能実行部は、前記コマンド対応リストに基づいて前記情報中に組み込まれた前記セキュリティに関連するコマンドを実行する
    ことを特徴とする請求項2に記載のICカード。
  4. 前記セキュリティに関連する処理のレスポンスは、前記ICカードから前記携帯端末装置への通信レスポンスの情報中に組み込まれることを特徴とする請求項1に記載のICカード。
  5. 更に、前記セキュリティに関連する処理のレスポンスと前記通信レスポンスとの対応を示すレスポンス対応リストを記憶する記憶部を備え、
    前記レスポンス送信部は、前記レスポンス対応リストに基づいて前記情報中に組み込まれた前記セキュリティに関連する処理のレスポンスを返信する
    ことを特徴とする請求項4に記載のICカード。
  6. 前記携帯端末装置と前記ICカードとの間の通信は、ISO7816に準拠していることを特徴とする請求項1乃至5の何れかに記載のICカード。
  7. 通信を行うための情報が収められたICカードを装着して使用する携帯端末装置のデータ保護方法であって、
    前記携帯端末装置が前記ICカードにセキュリティに関連するコマンドを送信する工程と、
    前記ICカードが前記セキュリティに関連するコマンドに応じてセキュリティに関連する処理を実行する工程と、
    前記ICカードが前記携帯端末装置に前記セキュリティに関連する処理のレスポンスを返信する工程と、
    を含むことを特徴とするデータ保護方法。
  8. 携帯端末装置で通信を行うための情報が収められたICカードに実装されるセキュリティ関連プログラムであって、
    前記携帯端末装置からのセキュリティに関連するコマンドを受信するステップと、
    前記セキュリティに関連するコマンドに応じてセキュリティに関連する処理を実行するステップと、
    前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するステップと、
    を含むコンピュータにより実行可能なセキュリティ関連プログラム。
  9. 通信を行うための情報が収められたICカードと、前記ICカードを装着して処理を行う携帯端末装置とからなる通信システムであって、
    前記携帯端末装置は、前記ICカードにセキュリティに関連するコマンドを送信するコマンド送信部と、前記ICカードから返信されるレスポンスを受信するレスポンス受信部とを備え、
    前記ICカードは、前記携帯端末装置からのセキュリティに関連するコマンドを受信するコマンド受信部と、前記セキュリティに関連するコマンドに応じて、セキュリティに関連する処理を実行するセキュリティ機能実行部と、前記セキュリティに関連する処理のレスポンスを前記携帯端末装置に返信するレスポンス送信部とを備える
    ことを特徴とする通信システム。
JP2015229969A 2015-11-25 2015-11-25 Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム Active JP6710942B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015229969A JP6710942B2 (ja) 2015-11-25 2015-11-25 Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015229969A JP6710942B2 (ja) 2015-11-25 2015-11-25 Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム

Publications (2)

Publication Number Publication Date
JP2017097659A true JP2017097659A (ja) 2017-06-01
JP6710942B2 JP6710942B2 (ja) 2020-06-17

Family

ID=58804913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015229969A Active JP6710942B2 (ja) 2015-11-25 2015-11-25 Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム

Country Status (1)

Country Link
JP (1) JP6710942B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030596A (ja) * 2001-07-13 2003-01-31 Hitachi Ltd 論理チャネル管理機能付き記憶装置
JP2003030613A (ja) * 2001-07-13 2003-01-31 Hitachi Ltd 記憶装置及び記憶装置を備えたデータ処理装置
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
JP2005322109A (ja) * 2004-05-11 2005-11-17 Renesas Technology Corp Icカードモジュール
US20060289659A1 (en) * 2005-06-24 2006-12-28 Nagamasa Mizushima Storage device
KR20100065723A (ko) * 2008-12-08 2010-06-17 한국전자통신연구원 모바일 신뢰모듈 기능을 제공하는 방법 및 그 장치
JP2015114998A (ja) * 2013-12-13 2015-06-22 凸版印刷株式会社 携帯情報処理装置、情報処理方法及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030596A (ja) * 2001-07-13 2003-01-31 Hitachi Ltd 論理チャネル管理機能付き記憶装置
JP2003030613A (ja) * 2001-07-13 2003-01-31 Hitachi Ltd 記憶装置及び記憶装置を備えたデータ処理装置
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
JP2005322109A (ja) * 2004-05-11 2005-11-17 Renesas Technology Corp Icカードモジュール
US20060289659A1 (en) * 2005-06-24 2006-12-28 Nagamasa Mizushima Storage device
KR20100065723A (ko) * 2008-12-08 2010-06-17 한국전자통신연구원 모바일 신뢰모듈 기능을 제공하는 방법 및 그 장치
JP2015114998A (ja) * 2013-12-13 2015-06-22 凸版印刷株式会社 携帯情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP6710942B2 (ja) 2020-06-17

Similar Documents

Publication Publication Date Title
US9015848B2 (en) Method for virtualizing a personal working environment and device for the same
US8322610B2 (en) Secure access module for integrated circuit card applications
KR101089023B1 (ko) 스마트 카드, 및 이를 이용한 안티-바이러스 시스템 및 스캐닝 방법
US9779232B1 (en) Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
EP2713304A1 (en) Secure User Authentication Using a Master Secure Element
WO2017088135A1 (zh) 一种安全指示信息的配置方法及设备
CN105446713A (zh) 安全存储方法及设备
US10701061B2 (en) Methods for blocking unauthorized applications and apparatuses using the same
EP2899664A1 (en) Secure access method and secure access device for an application program
CN109766152B (zh) 一种交互方法及装置
CN106663017B (zh) 实现主机卡模拟的方法、终端、数据路由方法及装置
KR102071438B1 (ko) 이동 단말의 결제 인증 방법 및 장치 그리고 이동 단말
US20100243736A1 (en) Storage device management systems and methods
KR20140112399A (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
JP5296627B2 (ja) 端末保護システム及び端末保護方法
CN109299944B (zh) 一种交易过程中的数据加密方法、系统及终端
US8190813B2 (en) Terminal apparatus with restricted non-volatile storage medium
KR20090109640A (ko) Usb 디바이스 보안 장치 및 방법
US11507958B1 (en) Trust-based security for transaction payments
US12002040B2 (en) Device driver for contactless payments
CN114830114A (zh) 阻止恶意emv交易的系统、方法和计算机可访问介质
EP3805969A1 (en) Safe operation method and system for storage data
JP2012141754A (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及び携帯端末
JP6710942B2 (ja) Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム
US8276188B2 (en) Systems and methods for managing storage devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181024

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200428

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200511

R150 Certificate of patent or registration of utility model

Ref document number: 6710942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250