JP2017021687A - データ処理装置及びデータ処理方法及びデータ処理プログラム - Google Patents
データ処理装置及びデータ処理方法及びデータ処理プログラム Download PDFInfo
- Publication number
- JP2017021687A JP2017021687A JP2015140325A JP2015140325A JP2017021687A JP 2017021687 A JP2017021687 A JP 2017021687A JP 2015140325 A JP2015140325 A JP 2015140325A JP 2015140325 A JP2015140325 A JP 2015140325A JP 2017021687 A JP2017021687 A JP 2017021687A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data processing
- card
- target data
- execution target
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
ICカードのデータを用いたデータ処理を行うアプリケーションプログラム(以下、単にアプリケーションという)は、アプリケーションの初期化時やICカードとの接続時に、ICカード内の読み出し可能なデータをすべて読み出してメモリ領域にキャッシュし使用することによって性能向上を行ってきた。
そのため、ICカードの処理に必須となるパスワードやプライベート鍵等のデータファイルに加えて、ICカードのファイル構造の仕様を記述したファイルもICカードに格納されている。
IC(Integrated Circuit)カードに記憶されている複数のデータを用いて複数のデータ処理を実行するデータ処理装置であって、
前記複数のデータ処理のうち、実行対象のデータ処理を実行対象データ処理として選択する実行対象データ処理選択部と、
前記実行対象データ処理選択部により前記実行対象データ処理が選択された際に、前記複数のデータのうち前記実行対象データ処理に用いられるデータを読み出し対象データとして識別し、識別した前記読み出し対象データを前記ICカードから読み出すデータ読み出し部とを有する。
***構成の説明***
(システム構成例)
図1は、本実施の形態に係るシステム構成例を示す。
データ処理装置1は、例えば、PCである。
ICカード3は、ICカードリーダライタ2に挿入される。
データ処理装置1は、ICカードリーダライタ2を介して、ICカード3からデータを読み出す。
図2は、本実施の形態に係るデータ処理装置1の機能モジュール構成例を示す。
なお、実行対象データ処理選択部4により行われる動作は、実行対象データ選択ステップに対応する。
そして、データ読み出し部5は、識別した読み出し対象データをICカード3から読み出す。
更に、データ読み出し部5は、ICカード3から読み出したデータを用いて、実行対象データ処理選択部4により選択された実行対象データ処理を実行する。
なお、データ読み出し部5により行われる動作は、データ読み出しステップに対応する。
ICカードデータ7は、データ読み出し部5により読み出され、メモリ領域6にキャッシュされたデータである。
図3は、本実施の形態に係るデータ処理装置1のソフトウェア構成例を示す。
図3において、ICカード3、メモリ領域6、ICカードデータ7は図2に示したものと同様である。
暗号アプリケーション500は、複数のデータを用いて複数の暗号処理ができる。
上位アプリケーション400は、暗号アプリケーション500を呼び出して、複数の暗号処理のうち暗号アプリケーション500に実行させる暗号処理(実行対象暗号処理)を選択する。
そして、暗号アプリケーション500は、複数のデータのうち、実行対象暗号処理に用いられるデータを読み出し対象データとして識別し、識別した読み出し対象データをICカード3から読み出す。
そして、暗号アプリケーション500は、ICカード3から読み出したデータを用いて、実行対象暗号処理を実行する。
図4は、本実施の形態に係るICカード3のファイル構造の一例を示す。
PKCS #15やISO/IEC 7816−15等の他のICカードファイル構造を定めている規格に準拠してもよい。
そして、DF配下には、ICカード処理用データを格納する領域として複数のElementary File(以下、EFと称する)が設けられている。
図4では、CIA(Cryptographic Information Applicaton)がDFであり、CIA以下の他のすべてのファイルがEFである。
なお、EFの数や大きさはICカード製造時に決定されるものである。
また、認証情報として管理者のパスワードを格納するSOPINがある。
また、プライベート鍵を格納するPriKey1及びPriKey2がある。
また、公開鍵を格納するPubKey1及びPubKey2がある。
また、公開属性を有する証明書を格納するPublic、プライベート属性を有する証明書を格納するPrivateがある。
また、CIA配下のICカード3の情報を示すCIAInfoがある。
また、オブジェクトファイルへのポインタを格納するOD、Public及びPrivateの空き領域を管理するUnusedSpace等がある。
また、PriKey1及びPriKey2のプライベート鍵は、PrKD内のプライベート鍵オブジェクトから参照される。
また、PubKey1及びPubKey2の公開鍵は、PuKD内の公開鍵オブジェクトから参照される。
また、Publicの公開属性を有する証明書及びPrivateのプライベート属性を有する証明書は、CD内の証明書オブジェクトからそれぞれ参照される。
CIAInfo内には、先頭領域からCIAInfo型のオブジェクトがASN.1のDERエンコードされた形式で格納されている。
ODにはCIOChoice型の複数のオブジェクトがDERエンコードされた形式で格納される。
また、これらのオブジェクトにはAODの認証オブジェクトを示すauthObjects、PrKDのプライベート鍵オブジェクトを示すprivateKeys、PuKDの公開鍵オブジェクトを示すpublicKeys、CDの証明書オブジェクトを示すcertificatesが含まれている。
これらCIOChoice型のオブジェクトを格納する順序は上記に限るものではなく、他のCIOChoice型の要素を含んでいてもよい。
また、あるCIOChoice型のオブジェクトの最後尾が格納される領域と次のCIOChoice型のオブジェクトの先頭が格納される領域とは連続していなくてもよい。
この場合には、オブジェクトのデータが存在しない領域にデータが存在しないことを示す0xFFまたは0x00のデータが格納される。
なお、これはODに限ることではなく、他のEFにおいても複数のオブジェクトが格納される場合は同様である。
また、これらのUnusedSpace型のオブジェクトには空き領域が存在するEFの情報、先頭からのバイト数の情報、長さを示すバイト数の情報がデータとして含まれている。
また、AODにはAuthenticationObjectChoice型のオブジェクトがDERエンコードされた形式で複数格納され、このオブジェクトとして、パスワードを示すpwdがUserPINまたはSOPINを示すデータとして選択されている。
また、PuKDには、PubKey1またはPubKey2を示すデータを含むPublicKeyChoice型のPublicRSA(登録商標)Key等のオブジェクトがDERエンコードされた形式で複数格納されている。
CDには、先頭からのバイト数の情報及び長さを示すバイト数の情報と共に、PublicまたはPrivateを示すCertificateChoice型のx509Certificate等のオブジェクトがDERエンコードされた形式で複数格納されている。
UserPINが認証されるとPriKey1及びPriKey2の使用及びPrivateの読み込みが可能になる。
SOPINには、ICカードに特有の形式でパスワードを認証するためのデータに加え、製造時にデフォルトのパスワードを認証するためのデータが格納されており、SOPINが認証されると全EFの変更が可能になる。
PriKey1及びPriKey2にはそれぞれプライベート鍵が格納されており、これらの鍵を使用することでICカード3内部での演算、すなわち電子署名の生成や暗号化されたデータの復号化が可能となる。
PubKey1、PubKey2、Public、PrivateといったEFは指定されたデータを保存したり読み出したりする基本機能のみを有し、PubKey1及びPubKey2には先頭領域から公開鍵が1つだけ格納され、Public及びPrivateには複数の証明書が格納されている。
即ち、CIAInfoにはICカード3の情報、AODにはSOPINとUserPINの情報、PrKDにはプライベート鍵の情報、PuKDには公開鍵の情報、CDには証明書の情報、ODにはAOD、PrKD、PuKD、CDの情報が格納されているものとする。
また、SOPINに管理者のパスワード、UserPINに一般利用者のパスワード、PriKey1にプライベート鍵、PubKey1に公開鍵、Publicに証明書4つ、Unused SpaceにはPublicの空き領域が格納されているものとする。
更に、PriKey2、PubKey2、Privateにはデータは格納されていないものとする。
読み出し可能なファイルはCIAInfo、AOD、PrKD、PuKD、CD、OD、PubKey1、Public、Unused Spaceである。
読み出し不可能なファイルはSOPIN、UserPIN、PriKey1とする。
(暗号アプリケーションの処理フロー)
ここで、暗号アプリケーション500の基本的な処理フローを図5を用いて説明する。
しかしながら、暗号アプリケーション500が、Windows(登録商標) OSで提供されているCryptoAPI等その他の仕様に準拠したアプリケーションインタフェースを持つことでもよい。
初期化処理では、暗号アプリケーション500はICカード3にアクセスしない。
即ち、暗号アプリケーション500は、初期化処理では、ICカード3からデータを読み出さない。
なお、この段階でも、暗号アプリケーション500は、ICカード3からデータを読み出さない。
そして、暗号アプリケーション500は、実行対象暗号処理に用いられるデータのみをICカード3から読み出して、実行対象暗号処理を実行する(S3)。
即ち、暗号アプリケーション500は、ICカード3からICカード情報を取得したり、利用者証明書を取得したり、プライベート鍵を用いて電子署名を行なったりするICカードの処理を行う。
複数の実行対象暗号処理がある場合は、暗号アプリケーション500はデータの読み出しを繰り返し実行する。
図6に示す手順は、データ処理方法及びデータ処理プログラムの例に相当する。
S31の処理の結果、キャッシュ対象データがない場合(S32でNO)、つまり、ICカード3からデータを読み出さなくても、実行対象暗号処理を実行できる場合は、暗号アプリケーション500は、実行対象暗号処理を実行する(S37)。
既にキャッシュ済みであれば、暗号アプリケーション500は、次のキャッシュ対象データの判定に進む(S36)。
キャッシュ対象データがメモリ領域6にキャッシュされていなければ、暗号アプリケーション500は、ICカード3からキャッシュ対象データを読み出す(S34)。
そして、暗号アプリケーション500は、読み出したキャッシュ対象データをメモリ領域6のICカードデータ7に追加して保管する(S35)。
すべてのキャッシュ対象データの判定が済んだら、暗号アプリケーション500は、メモリ領域6のICカードデータ7の中から必要なデータを取り出して実行対象暗号処理を実行する(S37)。
ICカードの処理(S3)の1つ目の具体的例としてICカード情報の取得処理フローについて図7を用いて説明する。
それぞれのデータがキャッシュ済みでなければ、暗号アプリケーション500は、ICカード3からデータを読み出しメモリ領域6のICカードデータ7に追加する(S102、S103、S104)。
暗号アプリケーション500は、CIAInfoとAODに格納されている情報からICカード情報を作成し、C_GetTokenInfoの出力値として上位アプリケーション400に返す(S105)。
ICカードの処理(S3)の2つ目の具体的例として利用者証明書の取得処理フローについて図8を用いて説明する。
この時、上位アプリケーション400は、入力値として検索対象が利用者証明書のIDを持つ証明書オブジェクトであることを示す値を関数に入力する。
暗号アプリケーション500は関数の入力値から検索に必要なファイルがODとCDであることを判定しキャッシュ対象データに選定する。
それぞれデータがキャッシュ済みでなければ、暗号アプリケーション500は、ICカード3からデータを読み出しメモリ領域6のICカードデータ7に追加する(S202、S203)。
また、暗号アプリケーション500は、CDを用いて証明書オブジェクトを検索し、該当するオブジェクトを自身で保持しておく。
そして、C_FindObjectsInitを終了する(S204)。
次に、上位アプリケーション400から検索されたオブジェクトを取得する関数C_FindObjectsが実行される(S205)。
暗号アプリケーション500は、自身で保持しているオブジェクトを出力値として返す(S206)。
オブジェクト検索終了関数C_FindObjectsFinalが実行されると(S207)、暗号アプリケーション500は必要な処理を行い、関数を終了する(S208)。
暗号アプリケーション500は、ICカードデータ7から読み出したCDを用いてPublicの利用者証明書データ格納領域を見つけ、利用者証明書データのみ読み出しICカードデータ7に追加する(S210)。
そして、暗号アプリケーション500は、出力値として利用者証明書データを返して終了する(S211)。
ICカードの処理(S3)の3つ目の具体的例としてプライベート鍵を用いた電子署名処理フローについて図9を用いて説明する。
暗号アプリケーション500は、関数の入力値から利用者認証に必要なODとAODをキャッシュ対象データに選定する。
それぞれのデータがキャッシュ済みでなければ、暗号アプリケーション500は、ICカード3からデータを読み出しメモリ領域6のICカードデータ7に追加する(S302、S303)。
そして、暗号アプリケーション500は、キャッシュされたAODから利用者認証に必要な情報を取得し、利用者認証を行い、関数を終了する(S304)。
この時、上位アプリケーション400は、入力値として検索対象がプライベート鍵のIDを持つプライベート鍵オブジェクトであることを示す値を関数に入力する。
暗号アプリケーション500は、関数の入力値から検索に必要なファイルがODとPrDであることを判定しキャッシュ対象データに選定する。
ODはS302によってキャッシュ済みであるので、暗号アプリケーション500は、PrKDのみICカード3からデータを読み出しメモリ領域6のICカードデータ7に追加する(S306)。
暗号アプリケーション500は、PrKDを用いてプライベート鍵オブジェクトを検索し該当するオブジェクトを自身で保持しておく。
そして、C_FindObjectsInitを終了する(S307)。
暗号アプリケーション500は自身で保持しているオブジェクトを出力値として返す(S309)。
オブジェクト検索終了関数C_FindObjectsFinalが実行されると(S310)、暗号アプリケーション500は必要な処理を行い、関数を終了する(S311)。
そして、出力値として署名データを返して終了する(S316〜S318)。
以上のように、本実施の形態によれば、実行対象データ処理が選択された際に、実行対象データ処理に用いられるデータに絞ってICカードから読み出すことによって、データの読み出し時間を短縮することができる。
つまり、暗号アプリケーションの初期化時やICカード接続時ではなく、ICカードを用いて行う暗号処理の内容が判明した時に初めてデータをキャッシュし、処理内容に応じてキャッシュ対象のデータを必要なものだけに絞るようにしているので、データの読み出し時間を短縮し処理時間を削減することができる。
本実施の形態では、1つ目の具体例ではCIAInfo、OD、AODの3個、2つ目の具体例ではOD、CD、Public内の1つの証明書の3個、3つ目の具体例ではOD、AOD、PrKDの3個のデータをキャッシュするだけでよい。
しかしながら、データ読み出し部5が実行するデータ処理は暗号処理に限られず、復号処理、圧縮処理等の他の種類のデータ処理であってもよい。
データ処理装置1はコンピュータであり、データ処理装置1の各要素をプログラムで実現することができる。
データ処理装置1のハードウェア構成としては、バスに、演算装置901、補助記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
補助記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
図2及び図3に示すメモリ領域6は、例えば、主記憶装置903で実現される。
通信装置904は、例えば、NIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、図2に示す「実行対象データ処理選択部4」及び「データ読み出し部5」として説明している機能を実現するプログラムである。
更に、補助記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「実行対象データ処理選択部4」及び「データ読み出し部5」の機能を実現するプログラムを実行する。
また、図3に示した「上位アプリケーション400」及び「暗号アプリケーション500」も補助記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、本実施の形態の説明において、「実行対象データ処理選択部4」及び「データ読み出し部5」、「上位アプリケーション400」及び「暗号アプリケーション500」の処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
Claims (6)
- IC(Integrated Circuit)カードに記憶されている複数のデータを用いて複数のデータ処理を実行するデータ処理装置であって、
前記複数のデータ処理のうち、実行対象のデータ処理を実行対象データ処理として選択する実行対象データ処理選択部と、
前記実行対象データ処理選択部により前記実行対象データ処理が選択された際に、前記複数のデータのうち前記実行対象データ処理に用いられるデータを読み出し対象データとして識別し、識別した前記読み出し対象データを前記ICカードから読み出すデータ読み出し部とを有するデータ処理装置。 - 前記データ処理装置は、更に、
前記データ読み出し部により読み出されたデータを記憶するメモリ領域を有し、
前記データ読み出し部は、
前記実行対象データ処理選択部により前記実行対象データ処理が選択された際に、前記読み出し対象データが前記メモリ領域に記憶されているか否かを判定し、
前記読み出し対象データが前記メモリ領域に記憶されていない場合に、前記読み出し対象データを前記ICカードから読み出す請求項1に記載のデータ処理装置。 - 前記データ読み出し部は、
前記読み出し対象データのみを前記ICカードから読み出す請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
前記複数のデータ処理として、複数の暗号処理を行い、
前記実行対象データ処理選択部は、
前記実行対象データ処理として、前記複数の暗号処理のうち実行対象の暗号処理を選択し、
前記データ読み出し部は、
前記実行対象データ処理選択部により前記実行対象データ処理として特定の暗号処理が選択された際に、前記複数のデータのうち前記特定の暗号処理に用いられるデータを前記読み出し対象データとして識別し、識別した前記読み出し対象データを前記ICカードから読み出す請求項1に記載のデータ処理装置。 - IC(Integrated Circuit)カードに記憶されている複数のデータを用いて複数のデータ処理を実行するコンピュータが行うデータ処理方法であって、
前記コンピュータが、前記複数のデータ処理のうち、実行対象のデータ処理を実行対象データ処理として選択する実行対象データ処理選択ステップと、
前記実行対象データ処理選択ステップにより前記実行対象データ処理が選択された際に、前記コンピュータが、前記複数のデータのうち前記実行対象データ処理に用いられるデータを読み出し対象データとして識別し、識別した前記読み出し対象データを前記ICカードから読み出すデータ読み出しステップとを有するデータ処理方法。 - IC(Integrated Circuit)カードに記憶されている複数のデータを用いて複数のデータ処理を実行するコンピュータに、
前記複数のデータ処理のうち、実行対象のデータ処理を実行対象データ処理として選択する実行対象データ処理選択ステップと、
前記実行対象データ処理選択ステップにより前記実行対象データ処理が選択された際に、前記複数のデータのうち前記実行対象データ処理に用いられるデータを読み出し対象データとして識別し、識別した前記読み出し対象データを前記ICカードから読み出すデータ読み出しステップとを実行させるデータ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015140325A JP2017021687A (ja) | 2015-07-14 | 2015-07-14 | データ処理装置及びデータ処理方法及びデータ処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015140325A JP2017021687A (ja) | 2015-07-14 | 2015-07-14 | データ処理装置及びデータ処理方法及びデータ処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017021687A true JP2017021687A (ja) | 2017-01-26 |
Family
ID=57888282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015140325A Pending JP2017021687A (ja) | 2015-07-14 | 2015-07-14 | データ処理装置及びデータ処理方法及びデータ処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017021687A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002366993A (ja) * | 2001-06-11 | 2002-12-20 | Denso Corp | データ処理装置 |
JP2002366905A (ja) * | 2001-06-06 | 2002-12-20 | Dainippon Printing Co Ltd | Icカード処理装置及びicカード処理プログラム |
JP2006195878A (ja) * | 2005-01-17 | 2006-07-27 | Dainippon Printing Co Ltd | カード型記憶媒体のデータをキャッシュするコンピュータシステムおよびキャッシュ方法 |
JP2010117784A (ja) * | 2008-11-11 | 2010-05-27 | Infocity Inc | 取り外し可能な不揮発性補助記憶装置 |
-
2015
- 2015-07-14 JP JP2015140325A patent/JP2017021687A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002366905A (ja) * | 2001-06-06 | 2002-12-20 | Dainippon Printing Co Ltd | Icカード処理装置及びicカード処理プログラム |
JP2002366993A (ja) * | 2001-06-11 | 2002-12-20 | Denso Corp | データ処理装置 |
JP2006195878A (ja) * | 2005-01-17 | 2006-07-27 | Dainippon Printing Co Ltd | カード型記憶媒体のデータをキャッシュするコンピュータシステムおよびキャッシュ方法 |
JP2010117784A (ja) * | 2008-11-11 | 2010-05-27 | Infocity Inc | 取り外し可能な不揮発性補助記憶装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042664B2 (en) | Device remote access method, thin client, and virtual machine | |
US10078599B2 (en) | Application access control method and electronic apparatus implementing the same | |
RU2456663C2 (ru) | Прогрессивная начальная загрузка для беспроводного устройства | |
JP5611598B2 (ja) | Usbトークン上の暗号化キーコンテナ | |
US10586026B2 (en) | Simple obfuscation of text data in binary files | |
US9392005B2 (en) | System and method for matching pattern | |
US10691362B2 (en) | Key-based memory deduplication protection | |
US10917237B2 (en) | Attestable and destructible device identity | |
CN110414249B (zh) | 信息处理方法、装置、存储介质及电子设备 | |
CN105069365A (zh) | 一种数据处理的方法及移动终端 | |
US20240211601A1 (en) | Firmware policy enforcement via a security processor | |
CN111259364B (zh) | 一种使用国密加密卡的方法、装置、设备及存储介质 | |
US9971789B2 (en) | Selective disk volume cloning for virtual disk creation | |
US11347519B2 (en) | Systems and methods for detecting short-term changes to BIOS setup | |
Votipka et al. | Passe-partout: A general collection methodology for Android devices | |
US10860707B2 (en) | Systems and methods for obfuscation of password key and dynamic key pool management | |
KR101539811B1 (ko) | 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템 | |
CN109324997B (zh) | 一种基于区块链的数字权利保护方法及装置 | |
US20230025870A1 (en) | Password authentication apparatus, password authentication method, and computer readable medium | |
JP2017021687A (ja) | データ処理装置及びデータ処理方法及びデータ処理プログラム | |
CN112395613B (zh) | 静态特征库的加载方法、装置及设备 | |
CN111984941A (zh) | 文件处理方法、装置、终端设备及可读存储介质 | |
CN111061731B (zh) | 一种加密数据全文检索方法 | |
CN112291355B (zh) | 区块链钱包的密钥备份和恢复方法与装置 | |
CN111753316B (zh) | 一种对象存储元数据加密方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20170804 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170807 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180626 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180801 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180911 |