Nothing Special   »   [go: up one dir, main page]

JP2007004522A - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP2007004522A
JP2007004522A JP2005184501A JP2005184501A JP2007004522A JP 2007004522 A JP2007004522 A JP 2007004522A JP 2005184501 A JP2005184501 A JP 2005184501A JP 2005184501 A JP2005184501 A JP 2005184501A JP 2007004522 A JP2007004522 A JP 2007004522A
Authority
JP
Japan
Prior art keywords
host device
card
data
command
key
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.)
Withdrawn
Application number
JP2005184501A
Other languages
English (en)
Inventor
Eiga Mizushima
永雅 水島
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005184501A priority Critical patent/JP2007004522A/ja
Priority to US11/443,244 priority patent/US7469837B2/en
Publication of JP2007004522A publication Critical patent/JP2007004522A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 ICカード機能モジュールのアプレットにより認証された外部ホスト機器が、そのアプレットに割り当てられたメモリエリアの機密データを読み書きする場合に、当該機密データをICカード機能モジュールのアプレットを経由させずに効率よく高速に転送できるメモリカード等の記憶装置を提供する。
【解決手段】 アプレットを格納可能で実行可能なICカードチップと、アプレットに関係した機密データを格納可能なフラッシュメモリチップと、これらに接続されたコントローラチップとを備えたメモリカードにおいて、ICカードチップ150はホスト機器160の検証を行い、コントローラチップ120は、ホスト機器160が検証によって認証されたならば、フラッシュメモリチップ130とホスト機器160との間で機密データの転送を許可する。
【選択図】 図1

Description

本発明は、セキュリティ機能を搭載した記憶装置及びその記憶装置が挿入可能なホスト機器及びその記憶装置を備えたホスト機器に係り、特に、フラッシュメモリチップとコントローラチップとICカードチップを有するメモリカード等に適用して有効な技術に関する。
本発明者が検討した従来技術として、例えば特許文献1には、ICカード上のアプリケーションプログラム(アプレット)ごとに、分割されたメモリエリアを割り当て、1つのアプレットが必要に応じて自身に割り当てられたエリアの機密データを、他のアプレットに侵害されることなく読み書きできるメモリカードが記載されている。
特開2004−295160号公報
ところで、上記のような従来技術において、上記特許文献1では、ICカードのアプレットによって認証された外部のホスト機器へ当該メモリエリアから大量の機密データを読み出して出力したり、あるいはそのホスト機器から入力された大量の機密データを当該メモリエリアに書き込む際には、非常に処理効率が悪い。すなわち、当該メモリエリアを読み書きするためにはICカードのアプレットからメモリコントローラへのアクセス要求メッセージが必要であるため、当該メモリエリアの機密データを外部のホスト機器へ出力するたびに、一旦、ICカードのアプレットに機密データを渡さねばならない。
あるいは、外部のホスト機器から入力された機密データを当該メモリエリアに書き込むたびに、一旦、ICカードのアプレットに機密データを渡さねばならない。一般にICカードのインタフェースのデータ転送速度は数十キロビット毎秒程度であり、メモリチップのインタフェースのそれが数十メガビット毎秒程度であるのに比べて非常に遅いため、メモリカードが機密データを認証されたホスト機器との間で転送するのは、一般のホスト機器との間で普通のデータ(機密でないデータ)を転送するよりもはるかに長い時間がかかる。
そこで、本発明の目的は、ICカード機能モジュールのアプリケーションにより認証された外部ホスト機器が、そのアプリケーションに割り当てられたメモリエリアの機密データを読み書きする場合に、当該機密データをICカード機能モジュールのアプリケーションを経由させずに効率よく高速に転送できるメモリカード等の記憶装置を提供することである。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、外部のホスト機器と接続するためのインタフェースと、アプレットを格納可能で、このアプレットを実行可能なICカード機能モジュールと、アプレットに関係した機密データを格納可能な不揮発性メモリと、インタフェースとICカード機能モジュールと不揮発性メモリに接続されたメモリコントローラとを備えたメモリカード等の記憶装置に適用され、以下のような特徴を有するものである。
例えば、メモリコントローラは、ホスト機器からインタフェースで受信された第1のコマンドに応答して、ICカード機能モジュールから鍵を揮発性記憶手段に転送する。メモリコントローラは、ホスト機器からインタフェースで受信された第2のコマンドに応答して、不揮発性メモリとホスト機器との間で転送されるデータを、鍵を用いて暗号処理手段により暗号化または復号化する。
または、ICカード機能モジュールは、ホスト機器の検証を行う。メモリコントローラは、ホスト機器が検証によって認証されたならば、不揮発性メモリとホスト機器との間で機密データの転送を許可する。
あるいは、不揮発性メモリは、アプレットを識別するためのアプリケーションIDと、ICカード機能モジュールとメモリコントローラとの間の転送情報を暗号化するための鍵とを対応づけて格納する管理領域を有する。
具体的には、不揮発性メモリ上のメモリエリアの一部を複数のブロックに分割し、ブロックの使用権をICカード機能モジュールのアプレットごとに割り当てる。そのアプレットは、自身に割り当てられたメモリブロック内の機密データの読み書きを許可する外部のホスト機器を認証し、そのホスト機器との間であらかじめ第3者に知られない鍵を共有する。当該メモリブロック内の機密データは、記憶装置とホスト機器との間を転送される際に、その鍵で暗号化・署名され、第3者が盗聴や改ざんできないようにする。この共有鍵は、アプレットの要求にしたがってICカード機能モジュールからメモリコントローラに送信され、メモリコントローラは一時的にそれを保持する。
その後、ホスト機器が記憶装置に対して当該メモリブロックへの機密データの書き込みを要求すれば、メモリコントローラはホスト機器から入力された機密データをその共有鍵で復号化・署名検証し、当該メモリブロックにライトする。あるいは、ホスト機器が記憶装置に対して当該メモリブロックからの機密データの読み出しを要求すれば、メモリコントローラはホスト機器へ出力されるべき機密データを当該メモリブロックからリードし、その共有鍵で署名作成・暗号化する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、ICカード機能モジュールのアプリケーションにより認証された外部ホスト機器が、そのアプリケーションに割り当てられたメモリエリアのデータを読み書きする場合に、当該データをICカード機能モジュールのアプリケーションを経由させずに効率よく高速に転送できるという効果を奏する。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
以下においては、セキュリティ機能を搭載した記憶装置の一例として、フラッシュメモリチップとコントローラチップとICカードチップを有するメモリカードに適用する場合を例に説明する。しかしながら、本発明は、これに限定されるものではない。
また、本発明の特徴である各構成要素は、以下の実施の形態において、次のような対応となる。それぞれ、ICカード機能モジュールはICカードチップ、不揮発性メモリはフラッシュメモリチップ、メモリコントローラはコントローラチップ、暗号処理手段は暗号処理回路、揮発性記憶手段は鍵レジスタに対応する。
図1は、本発明を適用した一実施の形態のMultiMediaCard(MultiMediaCardはInfineonTechnologiesAGの登録商標である。以下、「MMC」と略記する。)の内部構成図を簡単に表したものである。
MMC110は、MultiMediaCard仕様に準拠するのが好ましい。MMC110は、外部に接続したホスト機器160がMultiMediaCardのプロトコル仕様に準拠したメモリカードコマンドを発行することによって、ファイルデータを読み書きすることができるストレージ機能や、機密データ保護や個人認証などに必要な暗号演算を行うことができるセキュリティ処理機能を有する。
ホスト機器160は、例えば、携帯電話、携帯情報端末(PDA)、パーソナルコンピュータ、音楽再生(及び録音)装置、カメラ、ビデオカメラ、自動預金預払器、街角端末、決済端末等が該当する。
MMC110は、MMC外部端子140、コントローラチップ120、フラッシュメモリチップ130、ICカードチップ150を持つ。
フラッシュメモリチップ130は、不揮発性の半導体メモリを記憶媒体とする大容量(例えば、128メガバイト)のメモリチップであり、フラッシュメモリコマンドによりデータの読み書きができる。MMC外部端子140は複数の端子から構成され、外部のホスト機器160と情報交換するために、電源供給端子、クロック入力端子、コマンド入出力端子、データ入出力端子、グランド端子を含む。
コントローラチップ120は、MMC110内部の他の構成要素(MMC外部端子140、フラッシュメモリチップ130、ICカードチップ150)と接続されており、これらを制御するマイコンチップである。
ICカードチップ150は、ICカードのプラスチック基板中に埋め込むためのマイコンチップであり、その外部端子、電気信号プロトコル、コマンドはISO/IEC7816規格に準拠している。ICカードチップ150の外部端子には、電源供給端子、クロック入力端子、リセット入力端子、I/O入出力端子、グランド端子がある。ICカードチップ150の外部端子は、グランド端子を除いて、電源供給端子、クロック入力端子、リセット入力端子、I/O入出力端子がコントローラチップ120に接続されている。
コントローラチップ120は、ICカードチップ150の外部端子からICカードチップ150にICカードコマンドを発行することによって、外部のホスト機器160から要求されたセキュリティ処理に必要な演算を行う。ICカードチップ150は、演算処理を行うためのCPU151と、EEPROM(Electrically Erasable Programmable Read Only Memory)152とを備える。一方、フラッシュメモリチップ130には、記憶素子を備えるが、マイコンは存在しない。
セキュリティ処理は、例えば、ICカードチップ150内のEEPROM152にデータが書き込まれるとき、又は、EEPROM152からデータが読み出されるときにCPU151により実行される。セキュリティ処理の詳細な内容は、EEPROM152内に格納されたプログラムコードによって記述されている。多種多様なセキュリティ処理に適用できるように、そのプログラムコードは機能的に異なる複数のモジュールとして構成されている。CPU151は必要に応じてセキュリティ処理に使用するモジュールを切り替えることができる。以下、このモジュール単位をアプレットと呼ぶ。
例えば、EEPROM152は、アプレットA153とアプレットB154とを格納する。ICカード内の各アプレットはそれぞれ、自身のアプリケーション識別子(以下、AID(Application IDentifier)と呼ぶ。)を所有する。図1において、アプレットA153のAIDは155として、アプレットB154のAIDは156として示されている。これらのAIDは、ICカードのアプリケーションプログラムを識別するために、国際的にユニークに割り振られた値であることが好ましい。国際的に流通するAIDの付番方法は、国際規格としてISO/IEC7816−5で規定されている。EEPROM152の記憶容量は例えば64キロバイトであり、フラッシュメモリチップ130の記憶容量より小さい。但し、本発明を実施する上で、EEPROM152の記憶容量は、フラッシュメモリチップ130の記憶容量と同じでもよいし、大きくてもよい。
ICカードチップ150には、セキュリティ評価基準の国際標準であるISO/IEC15408の評価・認証機関によって認証済みである製品を利用する。一般に、セキュリティ処理を行う機能を持つICカードを実際の電子決済サービスなどで利用する場合、そのICカードはISO/IEC15408の評価・認証機関による評価と認定を受ける必要がある。MMCにセキュリティ処理を行う機能を追加することによってMMC110を実現し、それを実際の電子決済サービスなどで利用する場合、MMC110も同様にISO/IEC15408の評価・認証機関による評価と認定を受ける必要がある。MMC110は、評価・認証機関によって認証済みのICカードチップ150を内蔵し、そのICカードチップ150を利用してセキュリティ処理を行う構造を持つことにより、セキュリティ処理機能を得る。したがって、MMC110はISO/IEC15408に基づくセキュリティ評価基準を容易に満足することができ、MMCにセキュリティ処理機能を追加するための開発期間を短縮することができる。
MMC110は、MultiMediaCard仕様に準拠した外部インタフェースを持つのが好ましい。MMC110は、一種類の外部インタフェースを通じて、MultiMediaCard仕様に準拠した標準メモリカードコマンドに加えて、セキュリティ処理を実行するコマンド(以下、セキュアライトコマンドと呼ぶ。)を受け付ける。セキュアライトコマンドは入力データを伴う。コントローラチップ120は、MMC110が受信したコマンドが標準メモリカードコマンドであるか、セキュアライトコマンドであるかによって、アクセスすべきチップを選択し、コマンド処理を分配する機能を持つ。標準メモリカードコマンドを受信したならば、フラッシュメモリチップ130を選択し、これにフラッシュメモリコマンドを発行してホストデータを読み書きできる。また、セキュアライトコマンドを受信したならば、ICカードチップ150を選択し、これにICカードコマンドを発行してセキュリティ処理を実行することができる。
ここで発行されるICカードコマンドは、セキュアライトコマンドによって入力されるデータ(以下、セキュアライトデータと呼ぶ。)の中に埋め込まれている。ICカードチップ150はこのコマンドに応じてICカードレスポンスを返すが、コントローラチップ120はそれをキャッシュする。さらに、MMC110は、一種類の外部インタフェースを通じて、セキュリティ処理の結果を読み出すコマンド(以下、セキュアリードコマンドと呼ぶ。)も受け付ける。セキュアリードコマンドは出力データを伴う。セキュアリードコマンドを受信したならば、キャッシュしておいたICカードレスポンスを含むデータ(以下、セキュアリードデータと呼ぶ。)を出力する。
図6は、セキュアライトデータおよびセキュアリードデータのフォーマットの一例を示したものである。このフォーマットは、実行するセキュリティ処理の内容が1つのICカードコマンドで表現でき、セキュリティ処理の結果が1つのICカードレスポンスで表現できる場合に適用することが好ましい。
上述の通り、ICカードチップ150に送信するICカードコマンド、ICカードチップ150から受信するICカードレスポンスはともにISO/IEC7816−4規格に従う。本規格によれば、ICカードコマンドの構成は、4バイトのヘッダ(クラスバイトCLA、命令バイトINS、パラメータバイトP1とP2)が必須であり、必要に応じて、入力データ長指示バイトLc、入力データフィールドDataIn、出力データ長指示バイトLeが後に続く。また、ICカードレスポンスの構成は、2バイトのステータスSW1とSW2が必須であり、必要に応じて、出力データフィールドDataOut613がその前に置かれる。
本フォーマットにおけるセキュアライトデータ601は、ICカードコマンド602の前にICカードコマンド長Lca604を付け、さらにICカードコマンド602の後にダミーデータ605をパディングしたものである。Lca604の値はICカードコマンド602の各構成要素(CLA、INS、P1、P2、Lc、DataIn606、Le)の長さを合計した値である。一方、セキュアリードデータ611は、ICカードレスポンス612の前にICカードレスポンス長Lra614を付け、さらにICカードレスポンス612の後にダミーデータ615をパディングしたものである。Lra614の値はICカードレスポンス612の各構成要素(DataOut613、SW1(616)、SW2(617))の長さを合計した値である。
なお、この図では、ICカードコマンドにLc、DataIn、Leが含まれ、ICカードレスポンスにDataOutが含まれる場合のフォーマット例を表している。MMC110に対する標準メモリカードコマンドに含まれるデータリード/ライトコマンドの仕様では、リード/ライトアクセスするデータを固定長のブロック単位で処理することが基本となっている。よって、セキュアライトデータ601やセキュアリードデータ611のサイズも、MMC110の標準メモリカードコマンドの仕様に準拠したブロックサイズに一致させることが好ましい。
ダミーデータ605,615は、セキュアライトデータ601やセキュアリードデータ611のサイズをブロックサイズに一致させるために適用される。ブロックサイズとして採用する値は、一般の小型メモリカードが論理ファイルシステムに採用しているFAT方式におけるセクタサイズ(512バイト)が好ましい。パディングするダミーデータ605,615は全てゼロでもよいし、乱数でもよいし、コントローラチップ120やホスト機器160がデータエラーを検出したり訂正するためのチェックサムでもよい。Lca604の値はコントローラチップ120がセキュアライトデータ601からダミーデータ605を除去してICカードコマンド602を抽出するために使用し、Lra614の値はホスト機器160がセキュアリードデータ611からダミーデータ615を除去してICカードレスポンス612を抽出するために使用する。
図1において、コントローラチップ120は、電源供給端子、クロック入力端子を通して、ICカードチップ150への電源供給、クロック供給を制御する。ホスト機器160からセキュリティ処理を要求されないときには、ICカードチップ150への電源供給やクロック供給を停止させることができ、MMC110の電力消費を削減することができる。電源供給されていないICカードチップ150を、ICカードコマンドを受信できる状態にするには、まず、ICカードチップ150に電源供給を開始し、リセット処理を施すことが必要である。コントローラチップ120は、MMC110がホスト機器160からセキュアライトコマンドを受信したのを契機に、電源供給端子を通してICカードチップ150への電源供給を開始する機能を持つ。
また、コントローラチップ120は、MMC110がホスト機器160からセキュアライトコマンドを受信したのを契機に、リセット入力端子を通してICカードチップ150のリセット処理を行う機能を持つ。コントローラチップ120は、セキュアライトコマンドを受信するまでICカードチップ150への電源供給を停止させておくことができる。したがって、MMC110の電力消費を削減することができる。コントローラチップ120は、ICカードチップ150のクロック入力端子を通してICカードチップ150に供給するクロック信号をMMC110内部で発生し、その周波数、供給開始タイミング、供給停止タイミングを制御する機能を持つ。MMC外部端子140のクロック入力端子のクロック信号と無関係にすることができるため、ホスト機器160によるタイミング解析、電力差分解析、故障利用解析と呼ばれる攻撃法に対してセキュリティが向上する。
図1において、フラッシュメモリチップ130は、ノーマルデータエリア131と管理エリア132とセキュアデータエリア133とを含む。ノーマルデータエリア131は、セクタ単位に論理アドレスがマッピングされている領域であり、ホスト機器160が標準メモリカードコマンドを使用することにより指定した論理アドレスにデータを読み書きできる領域である。セキュアデータエリア133は、ICカードチップ150内のEEPROM152に格納されたアプレット(例えば、153や154)をCPU151が実行する際に(すなわち、セキュリティ処理を実行する際に)、扱うデータを格納することができる領域である。
コントローラチップ120は、データ暗号鍵Kd122を持つ。コントローラチップ120がセキュアデータエリア133に格納するデータを、データ暗号鍵Kd122で暗号化することによって第3者の盗聴から保護する。MMC110が不正に分解されてフラッシュメモリチップ130を抽出してデータを読み出しても内容が解読できないため、安全性が向上する。データ暗号鍵Kd122はMMC110の製造者によって管理することが好ましい。
セキュアデータエリア133は複数のブロックに分割されている。これをセキュアデータブロックと呼ぶ。例えば、セキュアデータエリア133は4つのセキュアデータブロック133a,133b,133c,133dで構成される。セキュアデータブロックは、コントローラチップ120がアプレットごとにその利用権を割り当てることができる単位である。例えば、アプレットA153はセキュアデータブロックc133cの利用権を持ち、アプレットB154はセキュアデータブロックa133aの利用権を持つ。また、各セキュアデータブロックは複数の固定長データレコードに分割されている。例えば、1レコードのサイズは128バイトであり、1つのセキュアデータブロック当たり8192個のレコードで構成される。このとき、1つのセキュアデータブロックのサイズが1メガバイトとなり、セキュアデータエリア133の容量は4メガバイトとなる。したがって、EEPROM152に格納されたアプレットは、セキュアデータエリア133に格納されたデータにアクセスすることによって、EEPROM152の容量以上の不揮発データを利用できる。
例えば、ICカードチップ150内のアプレットA153が電子決済に関するセキュリティ処理のためのプログラムである場合、決済ログ(支払金額や日時など)をセキュアデータエリア133に格納することにより、EEPROM152のみを利用するよりも多くの決済ログが保存でき、ユーザの利便性が高くなる。電子決済システムにおける情報管理の多様性を考えたとき、この決済ログはアプレットA153が内部的に管理するだけでなく、外部のホスト機器160へ読み出したり、ホスト機器160が書き換えたりするケースも想定される。そのような仕組みを実現する際には、決済ログはMMC110とホスト機器160との間を転送される際に、何らかの鍵で暗号化・署名され、第3者が盗聴や改ざんできないようにすべきである。そのためには、アプレットA153とホスト機器160との間であらかじめ第3者に知られない鍵を共有する必要がある。その鍵を共有する相手は互いに信用できなければならない。すなわち、アプレットA153は自身に割り当てられたセキュアデータブロックc133c内のデータの読み書きを許可する外部のホスト機器160を認証すべきである。
本発明によれば、認証されたホスト機器160と共有された鍵はアプレットA153の要求にしたがってICカードチップ150からコントローラチップ120に送信され、コントローラチップ120は一時的にそれを鍵レジスタ123に保持する。その後、ホスト機器160がMMC110に対して当該ブロック133cへのデータ書き込みを要求すれば、コントローラチップ120はホスト機器160から入力されたデータを鍵レジスタ123内の共有鍵Ksで復号・署名検証し、データ暗号鍵Kd122で暗号化した後、当該ブロック133cにライトする。あるいは、ホスト機器160がMMC110に対して当該ブロック133cからのデータ読み出しを要求すれば、コントローラチップ120はホスト機器160へ出力されるべきデータを当該ブロック133cからリードし、データ暗号鍵Kd122で復号した後、鍵レジスタ123内の共有鍵Ksで署名作成・暗号化する。したがって、アプレットA153が認証した外部のホスト機器160へ決済ログを読み出したり、そのホスト機器160が決済ログを書き換えたりする処理は本発明により効率的に実現される。
コントローラチップ120は、上に述べた暗号化、復号、署名作成、署名検証を実行するための暗号処理回路121を持っている。データの転送性能を向上させるためにも、暗号処理回路121は暗号処理専用の論理回路によって構成されていることが好ましい。また、紛失や盗難に対する安全性を向上させるためにも、上に述べた鍵レジスタ123は揮発性のRAM(Random Access Memory)によって構成されていることが好ましい。
一方、管理エリア132は、コントローラチップ120がセキュアデータエリア133を管理するための情報を格納する領域である。コントローラチップ120は、MMC110がホスト機器160からセキュアライトコマンドを受信したことを契機に、この領域に情報を格納したり、削除したりする。そのコマンドについては後述する。管理エリア132は、ロックフラグ134とパスワードエリア135と管理テーブル136とを含む。
管理テーブル136は、セキュアデータエリア133を構成している各セキュアデータブロックの利用権を持つアプレットを登録するための領域である。アプレットを識別するために、この領域にAIDを格納することによってアプレットを登録することが望ましい。AIDを利用することにより、セキュアデータエリア133を使用するアプレットを確実に識別することができる。コントローラチップ120は、AID137に同一のAIDを複数格納することを禁止する。管理テーブル136のブロックの欄は、セキュアデータブロックを識別するためのブロック識別子としてブロックの先頭アドレス値を登録する。但し、先頭アドレス値の代わりにMMC内でユニークな番号をブロック識別子として登録してもよい。尚、管理テーブル136の代わりに、各セキュアデータブロック内に直接にAIDを登録)してもよい。
管理テーブル136には、AID137だけでなく、アプレットごとに転送コマンド138を格納することができる。この転送コマンド138は、コントローラチップ120がセキュアデータブロックの利用権を、アプレットのために割り当てる時に登録される。転送コマンドとは、“共有鍵転送コマンド”のコマンドAPDU(Application Protocol Data Unit)のCLAバイトとINSバイトに設定する2バイトの値である。ここで、“共有鍵転送コマンド”とは、セキュアデータエリア133に対してホスト機器160からアクセスが来る前に、コントローラチップ120とICカードチップ150との間でアクセスに使用する共有鍵Ksを転送するために、コントローラチップ120がICカードチップ150に対して発行するICカードコマンド形式のコマンドである。このコマンドの詳細な説明は後述する。
セキュアデータエリア133の利用権を持つアプレット(153や154)には、共有鍵転送コマンドを受信した際に共有鍵Ksを出力する処理プログラムが記述されている。転送コマンド138はアプレットごとに個別に決められるようになっている。もし、転送コマンドが全てのアプレットに共通の固定値であるならば、ホスト機器160からのセキュアライトデータに含まれるアプレット特有のコマンドと共有鍵転送コマンドとの間でコーディングの競合が発生する可能性がある。本発明によれば、このようなコーディング競合を防ぐことができる。なお、転送コマンド138のうちINSコードに関しては、伝送プロトコルの都合上ISO/IEC7816−3に準拠していなければならない。
管理テーブル136には、さらに、アプレットごとに転送鍵139を格納することができる。この転送鍵139はコントローラチップ120とICカードチップ150との間で転送する共有鍵Ksを、暗号や署名によって第3者の盗聴や改ざんから保護するための鍵である。ICカード内の各アプレットはそれぞれの転送鍵Ktを所有する。図1において、アプレットA153の転送鍵Kt(a)は157として、アプレットB154の転送鍵Kt(b)は158として示されている。アプレットは自身の転送鍵Ktで共有鍵Ksを署名・暗号化し、それをコントローラチップ120に転送する。コントローラチップ120は管理テーブル136から取得した同じ転送鍵Ktでこれを復号・署名検証して、確実に共有鍵Ksを取得することができる。
ロックフラグ134は、管理テーブル136に格納された登録情報の変更の可否を示す1バイトのデータを格納する領域である。この領域にFFhを設定することで管理テーブル136の情報の変更が禁止状態(ロック状態)であることを示す。また、00hを設定することで管理テーブル136の情報の変更が許可状態(アンロック状態)であることを示す。
パスワードエリア135は、管理テーブル136の情報をアンロック状態にするための255バイトのパスワードの参照値を格納しておく領域である。管理テーブル136の情報をロックする時には必ず、ホスト機器160からセキュアライトコマンドにより、255バイトのパスワード参照をこの領域に設定する。管理テーブル136の情報をアンロック状態にする場合は、ホスト機器160からセキュアライトコマンドにより、ロック時に設定したパスワード参照と同じパスワードを入力する必要がある。入力したパスワードとパスワード参照との一致によって、管理テーブル136の情報の変更をアンロックすることができる。
管理エリア132は、ホスト機器160が不正にアクセスしてセキュリティ処理を解析することができないように、コントローラチップ120により物理的にアクセス制限がかけられている。つまり、管理エリア132はコントローラチップ120による論理アドレスが割り振られていないため、ホスト機器160が直接データを読み書きできない。したがって、MMC110のセキュリティ処理の信頼性や安全性が向上する。
本発明を実施する際には、ICカードのアプレットは自身に割り当てられたセキュアデータブロック内のデータの読み書きを許可する外部のホスト機器160を認証し、それを通じて互いに共有する鍵を動的に作成することが好ましい。図2はその処理フローの一例を示したものである。ただし、この処理の前提条件として、ホスト機器160とICカードのアプレットは互いに同じ認証鍵Kaを知っているものとする。以下、その処理の流れを説明する。
ホスト機器160はホスト乱数を作成する(ステップ201)。第1コマンドはそのホスト乱数をアプレットに送信するICカードコマンドであり、ホスト機器160は第1コマンドをライトセキュアコマンドによりMMC110に送信する(ステップ202)。MMC110内のコントローラチップ120は第1コマンドのコマンドAPDUを抽出してICカードコマンドとしてICカードチップ150に送信する(ステップ203)。ICカードチップ150はこれを受信する(ステップ204)。そしてカード乱数を作成する(ステップ205)。
次に、取得したホスト乱数を認証鍵Kaで暗号化したカード認証文を作成し(ステップ206)、カード認証文とカード乱数を含むICカードレスポンスをコントローラチップ120に返信する(ステップ207)。コントローラチップ120はこのICカードレスポンスを受信し、これを第1レスポンスとしてセキュアリードコマンドによりホスト機器160に送信する(ステップ208)。ホスト機器160は第1レスポンスを受信し(ステップ209)、その中のカード認証文を認証鍵Kaで復号し、ホスト乱数が復元されるか検証する(ステップ210)。ホスト機器160はホスト乱数の復元を確認してカードが正当であると認証する。
そして、取得したカード乱数を認証鍵Kaで暗号化してホスト認証文を作成する(ステップ211)。第2コマンドはそのホスト認証文を送信するICカードコマンドであり、ホスト機器160は第2コマンドをライトセキュアコマンドによりMMC110に送信する(ステップ212)。MMC110内のコントローラチップ120は第2コマンドのコマンドAPDUを抽出してICカードコマンドとしてICカードチップ150に送信する(ステップ213)。ICカードチップ150はこれを受信する(ステップ214)。そして、その中のホスト認証文を認証鍵Kaで復号し、カード乱数が復元されるか検証する(ステップ215)。ICカードアプレットはカード乱数の復元を確認してホスト機器160が正当であると認証する。次に、カード乱数とホスト乱数の排他的論理和を取り、認証鍵Kaで暗号化することにより共有鍵Ksを生成する(ステップ216)。
そして、認証結果をホスト機器160に伝えるメッセージを作成し(ステップ217)、それをICカードレスポンスとしてコントローラチップ120に返信する(ステップ218)。コントローラチップ120はこのICカードレスポンスを受信し、これを第2レスポンスとしてセキュアリードコマンドによりホスト機器160に送信する(ステップ219)。ホスト機器160は第1レスポンスを受信する(ステップ220)。その中の認証結果が成功であることを確認して、カード乱数とホスト乱数の排他的論理和を取り、認証鍵Kaで暗号化することにより共有鍵Ksを生成する(ステップ221)。以上のように、相互に認証する中で動的に生成された同じ鍵を共有する。
なお、本発明を実施するのに上記のような認証処理を行うことは必須条件ではない。少なくともICカードのアプレットと外部のホスト機器160との間で何らかの鍵が共有できればよい。したがって、あらかじめ両者が固定的に同じ鍵を持ち、セキュアデータブロック内のデータをホスト機器160とMMC110との間で転送する時の暗号や署名には、いつもその鍵を適用することもできる。ただし、上記(図2)の方式に比べて第3者による暗号解析が容易になるため安全性は劣る。
上記の共有鍵Ksは、図2のような処理を通してホスト機器160とICカードチップ150の両者に共有されるが、その後、セキュアデータエリア133に対してホスト機器160から読み書きアクセスが来るのに備えて、ICカードチップ150からコントローラチップ120に対してこれを事前に転送しておく必要がある。そのために、コントローラチップ120はICカードチップ150に対して“共有鍵転送コマンド”を発行する。以下、図3を参照しながら、共有鍵転送コマンドのコマンドAPDUとレスポンスAPDUについて詳細に述べる。
図3(a)および図3(c)は、ICカードチップ150が出力するレスポンスAPDUを示している。これらのレスポンスAPDU300,320に含まれるDataOut304,326の先頭バイト(301,321)、およびSW1バイト305,327とSW2バイト306,328に特別な値を設定することにより、ICカードチップ150はコントローラチップ120に共有鍵設定要求を通知することができる。なお、DataOut304,326のうち先頭から2バイト目(302,322)はその後に続くデータの長さを示し、先頭から3バイト目以降は、共有鍵設定要求に必要な情報を送信するために使用される。
ICカードチップ150は、コントローラチップ120に対して共有鍵Ksを設定することを要求するため、SW1バイト305,327とSW2バイト306,328に90FFhという専用のステータス値を設定しなければならない。コントローラチップ120は、ICカードチップ150が出力するレスポンスAPDUを常に監視し、SW1バイト305,327とSW2バイト306,328の値が90FFhであることを検出したら、その前方にあるDataOut304,326の先頭バイト301,321を調査し、要求内容などを認知する。一方、90FFhでなかった場合は、このレスポンスAPDUを含むセキュアリードデータをホスト機器160にそのまま出力する。
コントローラチップ120は、共有鍵設定を開始するとき、ICカードチップ150上で選択されているアプレットが何であるかによって、133a〜133dの中からアクティブにする(ホスト機器160がアクセスできる)セキュアデータブロックを選択する。アクセスできるセキュアデータブロックの選択は、ICカードチップ150からブロック選択要求が発生した直後に行う。図3(a)はそのためのメッセージを示している。ブロック選択要求のためにDataOut304に設定するデータの仕様を以下に示す。先頭バイト301には19hを設定する。また、先頭から3バイト目以降303には、ICカードチップ150上で選択されているアプレットのAIDを設定する。例えば、アプレットA153が選択されているならばAID155を、アプレットB154が選択されているならばAID156を設定する。先頭から2バイト目302には、そのAIDの長さLaを設定する。
コントローラチップ120は、レスポンスAPDUの先頭バイトが19hならば、AID303で管理テーブル136内の全てのAID137を検索し、アクティブにすべきセキュアデータブロックを決定する。一致するAIDが見つからなかった場合は、このレスポンスAPDUを含むセキュアリードデータをホスト機器160に出力する。AIDを検出し、それに対応するセキュアデータブロックが判明した後、コントローラチップ120は、共有鍵Ksの転送を開始すると認識する。先頭バイトがそれ以外の場合は、このレスポンスAPDUを含むセキュアリードデータをホスト機器160に出力する。
コントローラチップ120が共有鍵転送開始を認知した後、共有鍵転送コマンドを発行することによって、共有鍵Ksの値、その鍵のアルゴリズム、認証されたホスト機器160がアクセス可能なレコード番号範囲をICカードチップ150からコントローラチップ120に転送することができる。図3(b)と図3(c)はそれぞれ共有鍵転送コマンドのコマンドAPDUとレスポンスAPDUを示したものである。前述のように、共有鍵転送コマンドのコマンドAPDU310のCLAバイト315とINSコード316にはあらかじめアプレットごとに登録された転送コマンド311の値を設定する。そのため、管理テーブル136から当該アプレット用の転送コマンド138を読み出す。
共有鍵転送コマンドのコマンドAPDU310では、前回の設定結果をICカードチップ150に通知するため、P1バイト317とP2バイト318に特殊な値を設定する。0000hは前回の設定にエラーがないことを意味する。80XXhは前回の設定にエラーが発生したことを意味する。なお、XXはエラー内容を示す16進コードである。エラーの場合、アクティブなセキュアデータブロックへのホスト機器160によるアクセスは許可されない。また、コマンドAPDU310は入力データDataIn319に乱数314を含む。この乱数は共有鍵Ksを転送する際にアプレットが改ざん防止のために付加する署名を計算するときに使う初期化ベクトルとなる。なお、Lcバイト313には、乱数314の長さを設定する。
ICカードチップ150は、共有鍵転送コマンドのコマンドAPDUに対して、図3(c)のような先頭バイト321が29hのレスポンスAPDU320を返信する。ICカードのアプレットは、このレスポンスAPDU320の先頭から3バイト目以降を用いて、共有鍵Ksの値、その鍵のアルゴリズム、認証されたホスト機器160がアクセス可能なレコード番号範囲をコントローラチップ120に送信する。共有鍵Ksの値およびその鍵のアルゴリズムは第3者に盗聴される危険を回避するため、一緒に転送鍵Ktで暗号化されている。図において暗号化された共有鍵324はそれを示している。また、認証されたホスト機器160がアクセス可能なレコード番号範囲はアクセス情報323で示される。この情報は秘匿すべきものではないので平文のままである。
このアクセス情報323と暗号化された共有鍵324は、第3者による改ざんが許されないので転送鍵Ktにより計算された署名325が末尾に付加される。先頭から2バイト目322には、アクセス情報323、暗号化された共有鍵324、署名325の合計の長さLkを設定する。なお、上記の暗号化や署名に用いられる転送鍵Ktはアプレットごとに管理されており、同じ鍵は図1の管理テーブル136内の転送鍵139にも登録されている。コントローラチップ120は転送鍵139から転送鍵Ktを取得して共有鍵Ksの復号や署名検証を行う。
1回目の共有鍵転送直前の(つまり、最初に発行される)共有鍵転送コマンドのコマンドAPDUは、図3(b)において、P1バイト317とP2バイト318には、0000hを設定する。
アクセスエラー時にアクセス結果312に設定する80XXhにおいて、エラー内容を示すコードXXの例を以下に示す。
XX=01は、アクセス情報323で指定されたレコード番号がアクセス可能な範囲外であるエラーを意味する。
XX=02は、フラッシュメモリチップ130が故障などにより利用できないエラーを意味する。
XX=03は、先頭バイト321の値が29hでないエラーを意味する。
XX=04は、先頭から2バイト目322の値が不正であるエラーを意味する。
XX=05は、署名325の検証に失敗したというエラーを意味する。
以下、図4を参照しながら、ICカードチップ150内のアプレットが、コントローラチップ120への共有鍵設定を開始するときの処理の流れ、および共有鍵転送コマンドによって鍵を転送するときの処理の流れを説明する。
第3コマンドはICカードアプレットによる共有鍵設定の引き金となるICカードコマンドであり、ホスト機器160は第3コマンドをセキュアライトコマンドによりMMC110に送信する(ステップ401)。コントローラチップ120は、第3コマンドのコマンドAPDUを抽出し、ICカードコマンドとしてICカードチップ150に送信する(ステップ404)。
ICカードチップ150は、そのICカードコマンドを受信し(ステップ405)、アクセスできるセキュアデータブロックの選択を要求するICカードレスポンス300を作成し、それを返信する(ステップ406)。コントローラチップ120は、このレスポンスを受信し、そのSW1バイト305とSW2バイト306が90FFhであるかを調べる(ステップ407)。90FFhでないならばステップ408に移る。90FFhであるならば、先頭バイト301が19hであるかを調べる(ステップ412)。19hでないならばステップ420に移る。19hであるならば、管理テーブル136がロックされているか調べる(ステップ413)。アンロックされているならばステップ408に移る。ロックされているならば、AID303で管理テーブル136上のAID137を検索する(ステップ414)。一致するAIDを検出したならば(ステップ415)、コントローラチップ120はブロック選択要求を承認し、ステップ416に移る。検出しなければブロック選択要求を却下し、ステップ408に移る。
ステップ416では、検出したAID137に対応するセキュアデータブロックを選択し、それをアクティブにする。さらに、対応する転送コマンド138を取得する(ステップ417)。また、対応する転送鍵139を取得する(ステップ418)。そして、図3(b)に示す共有鍵転送コマンドのための乱数を生成する(ステップ419)。その後、ステップ404に戻り、ICカードチップ150に共有鍵転送コマンドを発行する。ICカードチップ150は、そのICカードコマンドを受信し(ステップ405)、共有鍵Ksを転送するICカードレスポンス320を作成し、それを返信する(ステップ406)。
ステップ420では、ICカードレスポンス320において先頭バイト321が29hであるかを調べる。29hでないならばステップ408に移る。29hであるならば、アクティブなセキュアデータブロックが存在するかを調べる(ステップ421)。存在しないならばステップ408に移る。存在するならば、暗号化された共有鍵324をステップ418で取得した転送鍵Ktで復号し、共有鍵Ksの値とそのアルゴリズム情報を復元する(ステップ422)。そして、アクセス情報323を取得してコントローラチップ120内部のRAMに保持する(ステップ423)。
次に、署名325をステップ418で取得した転送鍵Ktで検証する(ステップ424)。検証に成功したならば、アルゴリズム情報に基づいて暗号処理回路121をセットアップし、鍵レジスタ123に共有鍵Ksを設定し(ステップ425)、ホスト機器160によるセキュアデータブロックへのアクセスに備える。そして、図3(b)に示す共有鍵転送コマンドのために“設定成功”の結果を設定し(ステップ426)、ステップ419に遷移する。一方、ステップ424の検証に失敗したならば、共有鍵転送コマンドのために“設定失敗”の結果を設定し(ステップ426)、ステップ419に遷移する。
その後、ステップ404に戻り、コントローラチップ120はICカードチップ150に再度共有鍵転送コマンドを発行する。ICカードチップ150は、そのICカードコマンドを受信し(ステップ405)、共有鍵設定の結果をホスト機器160に伝達するICカードレスポンスを作成し、これを返信する(ステップ406)。なお、このレスポンスのSW1とSW2には90FFh以外を設定し、ステップ407からすぐにステップ408に遷移するようにする。
第3レスポンスは、ステップ408に到達した時点でICカードチップ150から最後に受信したICカードレスポンスである。ホスト機器160はセキュアリードコマンドにより第3レスポンスを受信する(ステップ409)。第3レスポンスが共有鍵設定の結果を含んでいるならば、ホスト機器160はそれを見て共有鍵Ksが設定されたか否かを確認する(ステップ410)。
ホスト機器160は、以上のように共有鍵Ksがコントローラチップ120内部に設定されたことを確認した後、セキュアデータブロックへのアクセスを実行する。以下、図7および図8を参照しながら、ホスト機器160がセキュアデータブロックへライト/リードアクセスするときの処理の流れを説明する。
第4コマンドはホスト機器160がセキュアデータブロックへライトアクセスしようとして発行するコマンドであり、図8(a)のようにそのDataIn800はライト対象のレコードアドレス801、ライトしたいデータを共有鍵Ksで暗号化されたライトデータ802を含んでいる。またDataIn800の末尾にはレコードアドレスとライトデータに対する署名803が付加されている。これにより、第3者によるレコードアドレス801の改ざんが検知可能となり、ライトデータ802の解読も不可能となる。ホスト機器160は共有鍵Ksを利用してこのような第4コマンドを作成し、セキュアライトコマンドによりMMC110に送信する(ステップ701)。
コントローラチップ120は第4コマンドに含まれるライト対象レコードアドレス801を見て、共有鍵設定時にRAMに保持したアクセス情報の示すレコード番号範囲と照合し、アクセス許容範囲を越えていないことを確認する(ステップ702)。越えていたらライト結果を“エラー”として、ステップ707に遷移する。一方、越えていないならば、鍵レジスタに保持している共有鍵Ksで第4コマンドに含まれるライトデータ802を復号する(ステップ703)。
そして、同じくその共有鍵Ksで第4コマンドに含まれる署名803を検証する(ステップ704)。検証に失敗したならばライト結果を“エラー”として、ステップ707に遷移する。一方、検証に成功したならば、802から復元されたデータをさらにデータ暗号鍵Kd122で暗号化し、フラッシュメモリ上のアクティブなセキュアデータブロック内の指定レコードにそのデータをライトする(ステップ705,706)。ライトが正常に実行されたらライト結果を“成功”としてステップ707に遷移する。
ステップ707では、ライト結果を含むレスポンスAPDUを第4レスポンスとしてセキュアリードコマンドによりホスト機器160に送信する。ホスト機器160は第4レスポンスを受信し(ステップ708)、ライトアクセス処理は完了する。
第5コマンドはホスト機器160がセキュアデータブロックへリードアクセスしようとして発行するコマンドであり、図8(b)のようにそのDataIn810はリード対象のレコードアドレス811を含んでいる。ホスト機器160は第5コマンドをセキュアライトコマンドによりMMC110に送信する(ステップ711)。
コントローラチップ120は第5コマンドに含まれるリード対象レコードアドレス811を見て、共有鍵設定時にRAMに保持したアクセス情報の示すレコード番号範囲と照合し、アクセス許容範囲を越えていないことを確認する(ステップ712)。越えていたらリード結果を“エラー”として、ステップ717に遷移する。一方、越えていないならば、フラッシュメモリ上のアクティブなセキュアデータブロック内の指定レコードからデータをリードする(ステップ713,714)。そして、データ暗号鍵Kd122でこれを復号してリードしたいデータを復元する。
この後、ステップ715において、コントローラチップ120はホスト機器160に返信する第5レスポンスを作成する。ここで作成する第5レスポンスはリード結果が“成功”であることを示すレスポンスであり、図8(b)のようにそのDataOut820に暗号化されたリードデータ822、リード対象のレコードアドレス821を含む。またDataOut820の末尾にはレコードアドレス821とリードデータ822に対する署名823が付加されている。これにより、第3者によるレコードアドレス821の改ざんが検知可能となり、リードデータ822の解読も不可能となる。この署名作成とリードデータの暗号化は、鍵レジスタに保持している共有鍵Ksを用いる。
一方、ステップ717においても、コントローラチップ120はホスト機器160に返信する第5レスポンスを作成する。ここで作成する第5レスポンスはリード結果が“失敗”であることを示すレスポンスであり、そのSW1やSW2にはエラーコードを含む。
第5レスポンス作成後、これをセキュアリードコマンドによりホスト機器160に送信する(ステップ716または717)。ホスト機器160は第5レスポンスを受信する(ステップ718)。ホスト機器160は共有鍵Ksを利用して第5レスポンスに含まれる822からリードデータを復元し、署名823を検証することにより、安全かつ確実にリードデータを取得することができる。以上のように、リードアクセス処理は完了する。
以下、管理エリア132に関するアクセスについて説明する。ホスト機器160が管理エリア132の情報にアクセスできるように、MMC110は、以下の4つの管理コマンドに応じることができる。
すなわち、(1)アプレット登録コマンド、(2)アプレット登録解除コマンド、(3)管理テーブルロックコマンド、(4)管理テーブルアンロックコマンドの4つである。(1)は、管理テーブル136にセキュアデータエリア133を利用するアプレットを登録し、アプレットが利用するセキュアデータブロックを割り当てるコマンド、(2)は、管理テーブル136からアプレットの登録情報を削除し、セキュアデータブロックの割り当てを解除するコマンド、(3)は、管理テーブル136上の登録情報の変更を禁止するコマンド、(4)は、管理テーブル上136の登録情報の変更を許可するコマンドである。
これらのコマンドは、一般のセキュリティ処理と同じくセキュアライトコマンドとセキュアリードコマンドのプロトコルによって実施され、コントローラチップ120によって処理される。また、その際に入出力されるセキュアライトデータとセキュアリードデータに含まれるAPDU(図6における602や612)を利用して各処理(登録、登録解除、ロック、アンロック)に必要な情報を交換する。
アプレット登録コマンドとアプレット登録解除コマンドでは、DataIn606にAIDを設定する。このAIDによって登録したいアプレットを指定する。AIDとセキュアデータブロックとをどのように対応付けるかはコントローラチップ120が決定する。ホスト機器160はセキュアデータブロックを直接指定できない。
管理テーブルロックコマンドでは、DataIn606に255バイトのパスワードを設定する。そのパスワードはパスワードエリア135に設定され、ロックフラグ134がFFh(ロック状態)になる。これにより、アプレット登録コマンドとアプレット登録解除コマンドが無効になる。すでにロック状態だった場合は、そのパスワードはパスワードエリア135に設定されず、アプレット登録コマンドとアプレット登録解除コマンドは有効のままとなる。
管理テーブルアンロックコマンドでは、DataInに255バイトのパスワードを設定する。そのパスワードはパスワードエリア135に設定された値と一致比較され、一致したならばロックフラグ134が00h(アンロック状態)になる。これにより、アプレット登録コマンドとアプレット登録解除コマンドが有効になる。すでにアンロック状態だった場合は、アプレット登録コマンドとアプレット登録解除コマンドは無効のままとなる。
アプレット登録コマンドとアプレット登録解除コマンドが有効な状態(アンロック状態)では、パスワードを知らないホスト機器160によって管理テーブル136の情報が不正に変更され、あるアプレットが、それ自身がアクセス可能なセキュアデータブロック以外のセキュアデータブロックをライト/リードするという不正アクセスが発生し得る。そこで、コントローラチップ120は、ロックフラグ134の値が00h(アンロック状態)では、ICカードチップ150内で選択されているアプレットがセキュアデータエリアへアクセスするのを許可しない。ホスト機器160は、管理テーブル136の登録情報の設定/変更後は、管理テーブルロックコマンドにより必ずロックフラグ134をFFhに設定しなければならない。
図5を参照しながら、上記4つの管理コマンドの処理の流れを説明する。
第6コマンドはホスト機器160が管理エリア132の情報にアクセスしようとして発行するコマンドであり、ホスト機器160は第6コマンドをセキュアライトコマンドによりMMC110に送信する(ステップ501)。コントローラチップ120はそれが管理コマンドであるかを調べる(ステップ504)。管理コマンドならばステップ507に移る。一方、管理コマンドでないならば、そのコマンドAPDU602を用いてICカードチップ150にICカードコマンドを発行し(ステップ505)、ICカードチップ150からそのレスポンスを受信し(ステップ506)、ステップ527に移る。
ステップ507では、コントローラチップ120は、コマンドAPDU602がアプレット登録コマンドを示すものかを調べる。アプレット登録コマンドならばステップ511に移る。さもなくば、それがアプレット登録解除コマンドを示すものかを調べる(ステップ508)。アプレット登録解除コマンドならばステップ512に移る。さもなくば、それが管理テーブルロックコマンドを示すものかを調べる(ステップ509)。管理テーブルロックコマンドならばステップ513に移る。さもなくば、それが管理テーブルアンロックコマンドを示すものかを調べる(ステップ510)。管理テーブルアンロックコマンドならばステップ514に移る。さもなくば、ステップ525に移る。
ステップ511では、ロックフラグ134を見て、管理テーブル136がアンロック状態かを調べる。ロック状態ならばステップ525に移る。アンロック状態ならば、DataIn606内のAIDと同一のものが既に登録されているAID137の中に存在するかを調べる(ステップ515)。存在していればステップ525に移る。存在しなければ、管理テーブル136上に空きがあるか(つまり、まだ割り当てられていないセキュアデータブロックが存在するか)を調べる(ステップ516)。空きがなければステップ525に移る。空きがあれば、そのセキュアデータブロックに対応するAID137と転送コマンド138と転送鍵139に、DataIn606に含まれるAIDと転送コマンドと転送鍵Ktを設定する(ステップ517)。これにより、AIDで示されたアプレットがそのセキュアデータブロックの利用権を獲得する。そして、ステップ526に移る。
ステップ512では、ロックフラグ134を見て、管理テーブル136がアンロック状態かを調べる。ロック状態ならばステップ525に移る。アンロック状態ならば、DataIn606内のAIDで、登録されている全てのAID137の中を検索する(ステップ518)。一致するAIDを検出したならば(ステップ519)、管理テーブル136上からそのAID137とそれに対応する転送コマンド138と転送鍵139を削除する(ステップ520)。一致するAIDを検出しなければステップ525に移る。これにより、AIDで示されたアプレットがそのセキュアデータブロックの利用権を失う。そして、ステップ526に移る。
ステップ513では、ロックフラグ134を見て、管理テーブル136がアンロック状態かを調べる。ロック状態ならばステップ525に移る。アンロック状態ならば、ロックフラグ134にFFhを設定し(ステップ521)、管理テーブル136をロック状態にする。DataIn606内のパスワードをパスワードエリア135に設定する(ステップ522)。そして、ステップ526に移る。
ステップ514では、ロックフラグ134を見て、管理テーブル136がアンロック状態かを調べる。アンロック状態ならばステップ525に移る。ロック状態ならば、DataIn606内のパスワードがパスワードエリア135に設定したものと一致するかを調べる(ステップ523)。一致しないならば、ステップ525に移る。一致するならば、ロックフラグ134に00hを設定し(ステップ524)、管理テーブル136をアンロック状態にする。そして、ステップ526に移る。
ステップ525では、管理コマンドの処理でエラーが発生したことをホスト機器160に示すため、エラー内容を示すステータスコードを含むレスポンスAPDU612を作り、ステップ527に移る。ステップ526では、管理コマンドの処理が正常に終了したことをホスト機器160に示すため、正常終了(例えば、9000h)というステータスコードを含むレスポンスAPDU612を作り、ステップ527に移る。
ステップ527では、レスポンスAPDU612を第6レスポンスとしてセキュアリードコマンドによりホスト機器160へ送信する。そして、ホスト機器160は第6レスポンスを受信する(ステップ528)。
以上説明したように、本実施の形態によれば、ICカードチップ150のアプレットにより認証された外部のホスト機器160が、そのアプレットに割り当てられたフラッシュメモリチップ130のメモリエリアのデータを読み書きする場合に、当該データをICカードチップ150のアプレットを経由させずに効率よく高速に転送することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、本発明の適用に際しては、ICカードチップ150がコントローラチップ120に共有鍵Ksの転送を行う手段として、SW1バイト305,327とSW2バイト306,328に90FFhという専用のステータス値を設定することを示したが、あくまでこれは一例であり、これ以外の手段で転送を実行してもよい。例えば、90FFh以外のステータスコードでもよいし、DataOut304,326内に専用のパスワード等を含ませてもよい。
また、本発明の適用に際しては、MMC110が、新たな(あるいは前記の)管理コマンドに応じて、セキュアデータエリア133のサイズを変化させることができる機能を有してもよい。また、新たな(あるいは前記の)管理コマンドに応じて、セキュアデータブロックの分割数(上述では分割数=4)を変化させることができる機能を有してもよい。また、新たな(あるいは前記の)管理コマンドに応じて、各セキュアデータブロックのサイズを個別に変化させることができる機能を有してもよい。
また、本発明の適用に際しては、上述のパスワードの長さは255バイトでなくてもよい。ただし、安全上、このパスワードは長いほうが好ましい。
また、本発明の適用に際しては、アプレット登録解除コマンドで開放されたセキュアデータブロックに、それまでこのブロックを利用していたアプレットに関する機密データが残留し、次にそのブロックの使用権を得た他のアプレット、またはそのアプレットにより認証されたホスト機器160がその機密データを取得する危険性がある。そこで、安全上、登録解除後に残留したデータを消去することが好ましい。その消去の実施は、上述のアプレット登録解除コマンドの処理中に行ってもよいし、MMC110がホスト機器160からの新たな管理コマンドに応じて行ってもよい。
また、本発明の適用に際しては、ホスト機器160がセキュアデータブロックへライト/リードアクセスするときの第4コマンドと第5コマンドは、ICカードコマンドのコマンドAPDU形式でなくてもよい。また、セキュアライトコマンドにより送信しなくてもよい。同様に、第4レスポンスと第5レスポンスは、ICカードコマンドのレスポンスAPDU形式でなくてもよい。また、セキュアリードコマンドにより受信しなくてもよい。さらに、第4コマンドのDataIn800の暗号と署名に利用する共有鍵Ksは同じ値でなくてもよい。同様に、第5レスポンスのDataOut820の暗号と署名に利用する共有鍵Ksは同じ値でなくてもよい。すなわち、図3(c)のレスポンスAPDU320の中の暗号化された共有鍵324は、暗号用共有鍵と署名用共有鍵の2種類を含んでいてもよく、コントローラチップ120内の鍵レジスタ123は、暗号用鍵レジスタと署名用鍵レジスタの2種類で構成されていてもよい。
また、本発明は、不揮発性記憶媒体、そのコントローラチップ、およびセキュリティ処理に特化したマイコンチップを搭載している記憶装置ならば、カード形式以外の記憶装置(ハードディスクドライブ等)にも適用可能である。
本発明は、セキュリティ機能を搭載した記憶装置に係り、特に、フラッシュメモリチップとコントローラチップとICカードチップを有するメモリカード等に適用して有効であり、さらにハードディスクドライブ等にも適用することが可能である。
本発明を適用した一実施の形態のMMCの内部構成の一例を示す図である。 本発明を適用した一実施の形態において、ホスト機器とICカードチップのアプレットとが相互に認証する中で同じ鍵を共有する処理の一例を示すフローチャートである。 (a)(b)(c)は本発明を適用した一実施の形態において、コントローラチップとICカードチップとの間のICカードコマンドおよびICカードレスポンスの構造の一例を示す図である。 本発明を適用した一実施の形態において、ICカードチップからの要求に応じて共有鍵の設定を実行する処理の一例を示すフローチャートである。 本発明を適用した一実施の形態において、フラッシュメモリチップ上の管理エリアに対するアプレット登録などを行う管理コマンドの処理の一例を示すフローチャートである。 本発明を適用した一実施の形態において、セキュアライトデータとセキュアリードデータの構成の一例を示す図である。 本発明を適用した一実施の形態において、認証されたホスト機器がICカードチップのアプレットの管理するセキュアデータブロックにライト/リードアクセスする処理の一例を示すフローチャートである。 (a)(b)は本発明を適用した一実施の形態において、認証されたホスト機器がICカードチップのアプレットの管理するセキュアデータブロックにライト/リードアクセスするときの転送データの構成の一例を示す図である。
符号の説明
110…MMC、120…コントローラチップ、121…暗号処理回路、122…データ暗号鍵Kd、123…鍵レジスタ、130…フラッシュメモリチップ、131…ノーマルデータエリア、132…管理エリア、133…セキュアデータエリア、133a〜133d…セキュアデータブロック、134…ロックフラグ、135…パスワードエリア、136…管理テーブル、137…AID、138…転送コマンド、139…転送鍵、140…MMC外部端子、150…ICカードチップ、151…CPU、152…EEPROM、153,154…アプレット、155,156…AID、157,158…転送鍵Kt、160…ホスト機器。

Claims (15)

  1. 外部のホスト機器と接続するためのインタフェースと、
    アプリケーションプログラムを格納可能で、前記アプリケーションプログラムを実行可能なICカード機能モジュールと、
    前記アプリケーションプログラムに関係したデータを格納可能な不揮発性メモリと、
    前記インタフェースと前記ICカード機能モジュールと前記不揮発性メモリに接続され、暗号処理手段と揮発性記憶手段とを有するメモリコントローラとを備え、
    前記メモリコントローラは、前記ホスト機器から前記インタフェースで受信された第1のコマンドに応答して、前記ICカード機能モジュールから鍵を前記揮発性記憶手段に転送し、
    前記メモリコントローラは、前記ホスト機器から前記インタフェースで受信された第2のコマンドに応答して、前記不揮発性メモリと前記ホスト機器との間で転送される前記データを、前記鍵を用いて前記暗号処理手段により暗号化または復号化することを特徴とする記憶装置。
  2. 外部のホスト機器と接続するためのインタフェースと、
    アプリケーションプログラムを格納可能で、前記アプリケーションプログラムを実行可能なICカード機能モジュールと、
    前記アプリケーションプログラムに関係したデータを格納可能な不揮発性メモリと、
    前記インタフェースと前記ICカード機能モジュールと前記不揮発性メモリに接続されたメモリコントローラとを備え、
    前記ICカード機能モジュールは、前記ホスト機器の検証を行い、
    前記メモリコントローラは、前記ICカード機能モジュールによって前記ホスト機器の検証が成功した場合に、前記不揮発性メモリと前記ホスト機器との間で前記データの転送を許可することを特徴とする記憶装置。
  3. 請求項2に記載の記憶装置において、
    前記メモリコントローラは、揮発性記憶手段を備え、
    前記ICカード機能モジュールは、前記ICカード機能モジュールによって前記ホスト機器の検証が成功した場合に、鍵を前記メモリコントローラに送信し、
    前記メモリコントローラは、前記鍵を前記揮発性記憶手段に格納することを特徴とする記憶装置。
  4. 請求項2に記載の記憶装置において、
    前記メモリコントローラは、暗号処理手段を備え、
    前記メモリコントローラは、前記ICカード機能モジュールによって前記ホスト機器の検証が成功した場合に、前記不揮発性メモリと前記ホスト機器との間で転送される前記データを、前記暗号処理手段により暗号化または復号化することを特徴とする記憶装置。
  5. 請求項2に記載の記憶装置において、
    前記ICカード機能モジュールは、複数の前記アプリケーションプログラムを格納及び実行可能で、
    前記不揮発性メモリは、複数のブロックに分割され、
    前記複数のブロックの各ブロックは、各アプリケーションプログラムに割り当てられ、各データを格納可能であることを特徴とする記憶装置。
  6. 請求項3に記載の記憶装置において、
    前記不揮発性メモリは、前記アプリケーションプログラムを識別するためのアプリケーションIDと、前記鍵を前記メモリコントローラに送信するためのオペレーションコードとを対応づけて格納する管理領域を有することを特徴とする記憶装置。
  7. 請求項6に記載の記憶装置において、
    前記ICカード機能モジュールに格納されたアプリケーションプログラムに関する前記管理領域の内容の変更または追加または削除を行う機能と、前記変更機能または前記追加機能または前記削除機能を禁止するロック機能と、前記ロック機能を解除するアンロック機能とを有することを特徴とする記憶装置。
  8. 請求項6に記載の記憶装置において、
    前記メモリコントローラは、前記ICカード機能モジュールから取得したアプリケーションIDと前記不揮発性メモリから取得したアプリケーションIDとを比較し、両者が一致した場合に、当該アプリケーションIDに対応する前記オペレーションコードを含む第3のコマンドを前記ICカード機能モジュールに送信することを特徴とする記憶装置。
  9. 請求項8に記載の記憶装置において、
    前記ICカード機能モジュールは、前記第3のコマンドに応答して、前記鍵を前記メモリコントローラに送信することを特徴とする記憶装置。
  10. 請求項7に記載の記憶装置において、
    前記メモリコントローラは、前記ホスト機器からの第4のコマンドに応答して、前記変更機能または前記追加機能または前記削除機能または前記ロック機能または前記アンロック機能を実行することを特徴とする記憶装置。
  11. 請求項2に記載の記憶装置において、
    前記ICカード機能モジュールは、前記ICカード機能モジュールによって前記ホスト機器の検証が成功した場合に、前記不揮発性メモリの前記データを格納する領域において前記ホスト機器との間のデータ転送を許可するアドレス範囲を前記メモリコントローラに送信することを特徴とする記憶装置。
  12. 請求項11に記載の記憶装置において、
    前記メモリコントローラは、前記アドレス範囲内に前記ホスト機器が転送を要求するアドレスが含まれるならば、前記不揮発性メモリと前記ホスト機器との間の前記データの転送を許可することを特徴とする記憶装置。
  13. 請求項3に記載の記憶装置において、
    前記ICカード機能モジュールは、前記ICカード機能モジュールによって前記ホスト機器の検証が成功した場合に、前記鍵を動的に生成することを特徴とする記憶装置。
  14. 外部のホスト機器と接続するためのインタフェースと、
    アプリケーションプログラムを格納可能で、前記アプリケーションプログラムを実行可能なICカード機能モジュールと、
    前記アプリケーションプログラムに関係したデータを格納可能な不揮発性メモリと、
    前記インタフェースと前記ICカード機能モジュールと前記不揮発性メモリに接続されたメモリコントローラとを備え、
    前記不揮発性メモリは、前記アプリケーションプログラムを識別するためのアプリケーションIDと、前記ICカード機能モジュールと前記メモリコントローラとの間の転送情報を暗号化するための鍵とを対応づけて格納する管理領域を有することを特徴とする記憶装置。
  15. 外部のホスト機器と接続するためのインタフェースと、
    アプリケーションプログラムを格納可能で、前記アプリケーションプログラムを実行可能なICカード機能モジュールと、
    前記アプリケーションプログラムに関係したデータを格納可能な不揮発性メモリと、
    前記インタフェースと前記ICカード機能モジュールと前記不揮発性メモリに接続されたメモリコントローラとを備え、
    前記ICカード機能モジュールは、複数の前記アプリケーションプログラムを格納及び実行可能で、
    前記不揮発性メモリは、複数のブロックに分割され、
    前記複数のブロックの各ブロックは、各アプリケーションプログラムに割り当てられ、各データを格納可能であり、
    第1のアプリケーションプログラムは、自身に割り当てられた第1のブロック内のデータの読み書きを許可するホスト機器を認証し、そのホスト機器との間であらかじめ鍵を共有し、
    前記第1のブロック内のデータは、前記ホスト機器との間で転送される際に、前記鍵で暗号化され、
    前記鍵は、前記第1のアプリケーションプログラムの要求にしたがって前記ICカード機能モジュールから前記メモリコントローラに送信されて、前記メモリコントローラに保持され、
    前記メモリコントローラは、前記ホスト機器が前記第1のブロックへのデータの書き込みを要求したならば、前記ホスト機器から入力されたデータを前記鍵で復号化し、前記第1のブロックにライトし、
    前記メモリコントローラは、前記ホスト機器が前記第1のブロックからのデータの読み出しを要求したならば、前記ホスト機器へ出力されるべきデータを前記第1のブロックからリードし、前記鍵で暗号化することを特徴とする記憶装置。
JP2005184501A 2005-06-24 2005-06-24 記憶装置 Withdrawn JP2007004522A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005184501A JP2007004522A (ja) 2005-06-24 2005-06-24 記憶装置
US11/443,244 US7469837B2 (en) 2005-06-24 2006-05-31 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005184501A JP2007004522A (ja) 2005-06-24 2005-06-24 記憶装置

Publications (1)

Publication Number Publication Date
JP2007004522A true JP2007004522A (ja) 2007-01-11

Family

ID=37566176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005184501A Withdrawn JP2007004522A (ja) 2005-06-24 2005-06-24 記憶装置

Country Status (2)

Country Link
US (1) US7469837B2 (ja)
JP (1) JP2007004522A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535372A (ja) * 2007-07-31 2010-11-18 ロヴィ・ソリューションズ・コーポレーション 補助情報をデジタル署名付きコンテンツに埋め込み認証する、コンピュータにより実施される方法およびシステム
JP2011504263A (ja) * 2007-11-12 2011-02-03 マイクロン テクノロジー, インク. スマートストレージデバイス
US7933697B2 (en) 2008-07-24 2011-04-26 Autoliv Development Ab Method and apparatus for recording the rotation angle of a vehicle
JP2011158346A (ja) * 2010-02-01 2011-08-18 Furuno Electric Co Ltd 画像処理装置、レーダ装置、画像処理方法および画像処理プログラム
JP2013009426A (ja) * 2012-09-24 2013-01-10 Toshiba Corp メモリチップ
JP2013047992A (ja) * 2012-12-03 2013-03-07 Nintendo Co Ltd ダウンロードセキュリティシステム
US9176897B2 (en) 2007-09-04 2015-11-03 Nintendo Co., Ltd. Writing area security system
US9576156B2 (en) 2007-09-04 2017-02-21 Nintendo Co., Ltd. Download security system

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895443B2 (en) * 2002-11-05 2011-02-22 Safenet, Inc. Secure authentication using hardware token and computer fingerprint
US20080022415A1 (en) * 2006-06-20 2008-01-24 Yu-Chiun Kuo Authority limit management method
US20110022850A1 (en) * 2006-07-26 2011-01-27 Hondar Lee Access control for secure portable storage device
JP4702628B2 (ja) * 2006-07-27 2011-06-15 ソニー株式会社 電子機器、情報処理方法、およびプログラム
JP2008054090A (ja) * 2006-08-25 2008-03-06 Matsushita Electric Ind Co Ltd 制御装置
EP1895743A1 (en) * 2006-08-31 2008-03-05 Incard SA A method for implementing a wireless personal communication protocol for an IC Card
KR100782113B1 (ko) * 2006-11-13 2007-12-05 삼성전자주식회사 메모리 카드 시스템 및 그것의 호스트 식별 정보 전송 방법
JP2008181225A (ja) * 2007-01-23 2008-08-07 Toshiba Corp Icカード
KR100909364B1 (ko) * 2007-02-06 2009-07-24 삼성전자주식회사 시스템 클록의 노출을 차단하는 메모리 컨트롤러와 그 방법
KR100841982B1 (ko) * 2007-02-08 2008-06-27 삼성전자주식회사 호스트 식별 정보를 저장하는 메모리 카드 및 그것의액세스 방법
US8639940B2 (en) * 2007-02-28 2014-01-28 Red Hat, Inc. Methods and systems for assigning roles on a token
US7726568B2 (en) 2007-03-21 2010-06-01 Research In Motion Limited Smart card session optimization
US8341083B1 (en) * 2007-09-12 2012-12-25 Devicefidelity, Inc. Wirelessly executing financial transactions
US8162227B2 (en) 2007-11-12 2012-04-24 Micron Technology, Inc. Intelligent controller system and method for smart card memory modules
US8286883B2 (en) 2007-11-12 2012-10-16 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
US8156322B2 (en) * 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
US8271736B2 (en) * 2008-02-07 2012-09-18 International Business Machines Corporation Data block frequency map dependent caching
US8606757B2 (en) * 2008-03-31 2013-12-10 Intel Corporation Storage and retrieval of concurrent query language execution results
ES2525469T3 (es) * 2008-03-31 2014-12-23 Orange Procedimiento de acceso y de transferencia de datos relacionados con una aplicación instalada en un módulo de seguridad asociado a un terminal móvil, módulo de seguridad, servidor de gestión y sistema asociados
US7743292B2 (en) * 2008-06-13 2010-06-22 Silicon Motion Inc. Apparatus and method for memory card testing
US20120042147A1 (en) * 2008-09-22 2012-02-16 France Telecom Memory allocation method and a method for managing data related to an application stored in a security module associated with a terminal, an associated security module and an associated terminal
WO2010040407A1 (en) * 2008-10-08 2010-04-15 Nokia Corporation Memory access control
US9092387B2 (en) * 2008-12-10 2015-07-28 Micron Technology, Inc. Non-volatile memory device capable of initiating transactions
US8370645B2 (en) 2009-03-03 2013-02-05 Micron Technology, Inc. Protection of security parameters in storage devices
US9734356B2 (en) 2009-06-29 2017-08-15 Clevx, Llc Encrypting portable media system and method of operation thereof
EP2306416A1 (en) * 2009-09-25 2011-04-06 Incard SA Improved method for pre-personalizing an IC Card
US8276188B2 (en) * 2009-12-03 2012-09-25 Condel International Technologies Inc. Systems and methods for managing storage devices
WO2011097482A1 (en) * 2010-02-05 2011-08-11 Maxlinear, Inc. Conditional access integration in a soc for mobile tv applications
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
FR2966946B1 (fr) * 2010-10-27 2012-11-30 Oberthur Technologies Procede de configuration d'une entite electronique
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9575903B2 (en) * 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
JP5204291B1 (ja) * 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP2015513738A (ja) * 2012-02-29 2015-05-14 モビーウェイブ インコーポレイテッド 装置上でセキュアな金融取引を行うための方法、装置及びセキュア要素
US9171170B2 (en) * 2012-08-17 2015-10-27 Broadcom Corporation Data and key separation using a secure central processing unit
US8898769B2 (en) 2012-11-16 2014-11-25 At&T Intellectual Property I, Lp Methods for provisioning universal integrated circuit cards
US8959331B2 (en) 2012-11-19 2015-02-17 At&T Intellectual Property I, Lp Systems for provisioning universal integrated circuit cards
JP2014200059A (ja) * 2013-03-15 2014-10-23 パナソニック株式会社 記録媒体
CN104981872B (zh) 2013-03-15 2018-11-06 英特尔公司 存储系统
US9036820B2 (en) 2013-09-11 2015-05-19 At&T Intellectual Property I, Lp System and methods for UICC-based secure communication
JP6017392B2 (ja) * 2013-09-27 2016-11-02 株式会社東芝 情報処理装置、ホストデバイス、及びシステム
US9124573B2 (en) 2013-10-04 2015-09-01 At&T Intellectual Property I, Lp Apparatus and method for managing use of secure tokens
US9208300B2 (en) 2013-10-23 2015-12-08 At&T Intellectual Property I, Lp Apparatus and method for secure authentication of a communication device
US9240994B2 (en) 2013-10-28 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for securely managing the accessibility to content and applications
US9240989B2 (en) 2013-11-01 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for secure over the air programming of a communication device
US9313660B2 (en) 2013-11-01 2016-04-12 At&T Intellectual Property I, Lp Apparatus and method for secure provisioning of a communication device
US9413759B2 (en) 2013-11-27 2016-08-09 At&T Intellectual Property I, Lp Apparatus and method for secure delivery of data from a communication device
US9713006B2 (en) 2014-05-01 2017-07-18 At&T Intellectual Property I, Lp Apparatus and method for managing security domains for a universal integrated circuit card
EP3168786A1 (en) * 2015-11-16 2017-05-17 Kabushiki Kaisha Toshiba Portable electronic device and ic card
JP6710942B2 (ja) * 2015-11-25 2020-06-17 凸版印刷株式会社 Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム
US10802853B2 (en) 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
US10558589B1 (en) * 2017-06-02 2020-02-11 Apple Inc. Secure data access between computing devices using host-specific key
CN108021817A (zh) * 2017-12-20 2018-05-11 北京遥感设备研究所 一种加解密存储器访问接口实现系统及方法
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US10592710B1 (en) * 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11489554B2 (en) * 2020-10-30 2022-11-01 Schweitzer Engineering Laboratories, Inc. Systems and methods for establishing secure communication in an electric power distribution system with software defined network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923884A (en) * 1996-08-30 1999-07-13 Gemplus S.C.A. System and method for loading applications onto a smart card
JPH11120300A (ja) * 1997-10-09 1999-04-30 Fujitsu Ltd 可搬型カード媒体,可搬型カード媒体のメモリ空間管理方法,可搬型カード媒体の発行方法および可搬型カード媒体のプログラムデータ書込方法並びにメモリ空間管理プログラムが記録されたコンピュータ読取可能な記録媒体
JP3846367B2 (ja) * 2002-05-30 2006-11-15 セイコーエプソン株式会社 半導体素子部材及び半導体装置並びにそれらの製造方法、電気光学装置、電子機器
JP4322021B2 (ja) * 2003-02-06 2009-08-26 株式会社ルネサステクノロジ メモリカード
JP4792196B2 (ja) * 2003-03-27 2011-10-12 三洋電機株式会社 データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535372A (ja) * 2007-07-31 2010-11-18 ロヴィ・ソリューションズ・コーポレーション 補助情報をデジタル署名付きコンテンツに埋め込み認証する、コンピュータにより実施される方法およびシステム
US9176897B2 (en) 2007-09-04 2015-11-03 Nintendo Co., Ltd. Writing area security system
US9576156B2 (en) 2007-09-04 2017-02-21 Nintendo Co., Ltd. Download security system
JP2011504263A (ja) * 2007-11-12 2011-02-03 マイクロン テクノロジー, インク. スマートストレージデバイス
US7933697B2 (en) 2008-07-24 2011-04-26 Autoliv Development Ab Method and apparatus for recording the rotation angle of a vehicle
JP2011158346A (ja) * 2010-02-01 2011-08-18 Furuno Electric Co Ltd 画像処理装置、レーダ装置、画像処理方法および画像処理プログラム
JP2013009426A (ja) * 2012-09-24 2013-01-10 Toshiba Corp メモリチップ
JP2013047992A (ja) * 2012-12-03 2013-03-07 Nintendo Co Ltd ダウンロードセキュリティシステム

Also Published As

Publication number Publication date
US7469837B2 (en) 2008-12-30
US20060289659A1 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
JP2007004522A (ja) 記憶装置
US7650503B2 (en) Memory card
JP4322021B2 (ja) メモリカード
CN109542334B (zh) 存储器装置
JP4395302B2 (ja) 半導体メモリカード及びその制御方法
TWI524275B (zh) 儲存裝置及操作一儲存裝置之方法
CN107004083B (zh) 设备密钥保护
US20040255119A1 (en) Memory device and passcode generator
US20100043078A1 (en) Secure compact flash
JP2004295352A (ja) メモリデバイス
WO2002099742A1 (fr) Carte memoire
JP4869337B2 (ja) データの安全な処理
JPH05217033A (ja) データの認証方法
JP4475386B2 (ja) チップカードの初期化
JP2004252707A (ja) メモリデバイス
US7299366B2 (en) Secure software customization for smartcard
JP2004139242A (ja) Icカード、icカード発行システム及びicカード発行方法
KR20150017374A (ko) 아이씨칩을 이용한 결제 방법
JPH025158A (ja) 拡張icカード及びそのアクセス法
JP4052158B2 (ja) Icカードシステムおよびicカード発行方法
JP4899499B2 (ja) Icカード発行方法、icカード発行システムおよびicカード
CN111695165B (zh) 数据防护系统及方法
JP2007323140A (ja) 情報処理装置、情報処理方法及びプログラム
KR20160141692A (ko) 비접촉 ic칩을 이용한 결제 방법
JP2004334471A (ja) 情報カード

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070802

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100108