[go: up one dir, main page]

JP4744106B2 - セキュアデバイス、情報処理端末、通信システム及び通信方法 - Google Patents

セキュアデバイス、情報処理端末、通信システム及び通信方法 Download PDF

Info

Publication number
JP4744106B2
JP4744106B2 JP2004201930A JP2004201930A JP4744106B2 JP 4744106 B2 JP4744106 B2 JP 4744106B2 JP 2004201930 A JP2004201930 A JP 2004201930A JP 2004201930 A JP2004201930 A JP 2004201930A JP 4744106 B2 JP4744106 B2 JP 4744106B2
Authority
JP
Japan
Prior art keywords
application
mta
information
terminal
secure device
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.)
Expired - Fee Related
Application number
JP2004201930A
Other languages
English (en)
Other versions
JP2005071328A (ja
Inventor
視野 竹川
久 高山
健 中
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004201930A priority Critical patent/JP4744106B2/ja
Priority to US10/910,808 priority patent/US8572386B2/en
Priority to TW093123457A priority patent/TW200511097A/zh
Priority to CN2004100562753A priority patent/CN1581118B/zh
Priority to EP04018737A priority patent/EP1505470A3/en
Publication of JP2005071328A publication Critical patent/JP2005071328A/ja
Application granted granted Critical
Publication of JP4744106B2 publication Critical patent/JP4744106B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

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

Description

本発明は、データをセキュアに保持するJAVA(登録商標)カード等のセキュアデバイスと、そのセキュアデバイスを搭載する携帯電話やPDA(Personal Digital Assistant)、パーソナルコンピュータなどの情報処理端末に関する。
近年、JAVA(登録商標)カード等のCPUと耐タンパ性のある記憶領域を持つセキュアデバイスは、カードアプリ(アプリはアプリケーションの略で、アプリケーションとはアプリケーションプログラムのことである。以下同様である)を動作させることが可能であり、電子マネーや定期券、電子チケット等のサービスに利用されている。このセキュアデバイスを携帯電話等の情報処理端末に装着し、セキュアデバイスに対するユーザ・インターフェースとして情報処理端末のキーボードやディスプレイを使用し、また、セキュアデバイスに書き込むデータや読み出したデータを、情報処理端末の通信機能を利用してネットワーク上で伝送することにより、様々なサービスを実行することができる。そのサービスを実行する際に情報処理端末が行うべき動作を規定した端末アプリが情報処理端末上で動作する。
情報処理端末は、従来、ネットワークを通じてサービス・プロバイダから端末アプリをダウンロードするなどして、この端末アプリを取得している。
例えば、下記特許文献1には、セキュアデバイスに保持された電子マネーや電子チケット等の価値情報をオフライン環境下で表示する端末アプリを、サービス・プロバイダからダウンロードする情報処理端末が開示されている。
特開2003−141457号公報
しかしながら、前記従来の方式では、情報処理端末上で起動される、セキュアデバイスにアクセスする端末アプリが、セキュアデバイスから見て真正なものであるかわからず、正規の認証情報を持つユーザが不正な端末アプリを用いて、真正な端末アプリに課せられるはずの制約を受けずに、セキュアデバイスの情報やサービスを利用可能であるという課題を有していた。
本発明は、前記従来の課題を解決するもので、端末アプリの真正性を認証することができるセキュアデバイス、情報処理端末、通信システム及び通信方法を提供することを目的とする。
前記従来の課題を解決するため、本発明のセキュアデバイスは、情報処理端末に処理させる種々のアプリケーションを記憶したセキュアデバイスであって、前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行手段前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶手段と、前記アプリ発行手段により発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行手段により発行した前記MTAに対して送信する送信手段と、を有し、前記MTAは、埋め込まれた前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記情報処理端末上で当該セキュアデバイスの処理を代行する機能により、前記送信手段により送信された前記アプリ暗号鍵を用いて、前記情報処理端末に記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する構成を採る。
本発明の情報処理端末は、セキュアデバイスが発行した種々のアプリケーションを処理する情報処理端末であって、前記アプリケーションの1つであるMTA(Master Trusted Agent)を起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信手段と、前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信手段と、を有し、前記MTAは、前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する構成を採る。
本発明の通信システムは、種々のアプリケーションを記憶したセキュアデバイスと、前記セキュアデバイスが発行した前記アプリケーションを処理する情報処理端末と、を有する通信システムであって、前記セキュアデバイスは、前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行手段と、前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶手段と、前記アプリ発行手段により発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行手段により発行した前記MTAに対して送信する送信手段と、を有し、前記情報処理端末は、前記MTAを起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信手段と、前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信手段と、を有し、前記MTAは、前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する構成を採る。
本発明の通信方法は、情報処理端末に処理させる種々のアプリケーションを記憶したセキュアデバイスにおける通信方法であって、前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行ステップと、前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶ステップと、前記アプリ発行ステップにより発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行ステップにより発行した前記MTAに対して送信する送信ステップと、を有し、前記MTAは、埋め込まれた前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記情報処理端末上で前記セキュアデバイスの処理を代行する機能により、前記送信ステップにより送信された前記アプリ暗号鍵を用いて、前記情報処理端末に記憶された暗号化済の前記MTA以外の前記アプリケーションを復号するようにした。
また、本発明の通信方法は、セキュアデバイスが発行した種々のアプリケーションを処理する情報処理端末における通信方法であって、前記アプリケーションの1つであるMTA(Master Trusted Agent)を起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信ステップと、前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信ステップと、を有し、前記MTAは、前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号するようにした。
本発明のセキュアデバイスは、アプリケーションに当該アプリケーションを認証するための情報を埋め込んで、情報処理端末に渡すようにしたため、情報処理端末によって当該アプリケーションが起動された際に、当該アプリケーションを認証するための情報を用いて認証を行うことにより、当該アプリケーションが真正であるか否かを認証することができる。
以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態1では、端末アプリを保持するセキュアデバイスについて説明する。このセキュアデバイスを情報処理端末に装着し、情報処理端末が端末アプリの起動を要求すると、セキュアデバイスによりアプリ認証情報の埋め込まれた端末アプリが情報処理端末に発行され、情報処理端末が端末アプリを起動すると、セキュアデバイスと情報処理端末との間で、アプリ認証情報による認証が行われる。
図1において、情報処理端末30は、端末OS35と、端末アプリ31の発行を要求するアプリ発行要求送信部301と、発行された端末アプリ31を受けとるアプリ受信部302とを備えている。また、起動される端末アプリ31は、セキュアデバイス10により端末アプリ31自身に埋め込まれたアプリ認証情報に基づいて認証を行うアプリ認証部311と、セキュアデバイス10上のカードアプリ11(図2(a)参照)と通信を行う通信部312とを備えている。なお、情報処理端末30には、端末アプリ31を保持するためのメモリやHDD等の記憶手段や、端末アプリ31を実行するためのCPUやメモリ等が設けられているが、説明および図では省略して説明するものとし、他の実施の形態でも同様である。また、図1では、情報処理端末30に端末アプリ31が設けられているが、これは、情報処理端末30がセキュアデバイス10から発行された端末アプリ31を受け取りメモリ等に記憶していることを示している。このことは、情報処理端末30にて端末アプリ31を暗号化して記憶しておく後述の実施の形態3(図12,図13参照)を除く他の実施の形態でも同様である。
一方、セキュアデバイス10は、端末アプリ31にアプリ認証情報を埋め込んで、端末アプリ31の発行を行うアプリ発行部101と、発行された端末アプリ31を送信するアプリ送信部102と、埋め込んだアプリ認証情報に基づいて発行した端末アプリ31の認証を行うアプリ認証部103と、情報処理端末30上の端末アプリ31と通信を行う通信部104と、真正性の確認された端末アプリ31を保持するアプリ記憶部105と、発行した時に端末アプリ31に埋め込んだアプリ認証情報を記憶する発行情報記憶部106とを備えている。なお、セキュアデバイス10にも、カードアプリ11や発行アプリ12を実行するためのMPUやメモリ等が設けられているが、説明および図では省略して説明するものとし、他の実施の形態でも同様である。また、図中、括弧書きの数字は、動作手順を示している(後述するその他の図においても同様である)。
次に、図1における動作を説明すると、情報処理端末30のアプリ発行要求送信部301は、端末アプリ31の起動が利用者等から要求されると、端末アプリ31の発行要求を、セキュアデバイス10のアプリ発行部101に送信する(図1の(1))。アプリ発行部101は、アプリ記憶部105から端末アプリ31を読みだし、端末アプリ31の発行毎に毎回異なるよう任意に発生させたアプリ認証情報を埋め込む発行処理を行い、発行に関する情報である、端末アプリ31のアプリID(アプリの識別子)と、埋め込んだアプリ認証情報とを対応づけて、発行情報記憶部106に保存し、発行した端末アプリ31をアプリ送信部102に渡す(図1の(2))。アプリ送信部102は、発行された端末アプリ31を情報処理端末30のアプリ受信部302に送信する(図1の(3))。アプリ受信部302は、発行された端末アプリ31を受信し、起動する(図1の(4))。端末アプリ31のアプリ認証部311は、セキュアデバイス10のアプリ認証部103との間で埋め込まれたアプリ認証情報に基づく認証処理を行う(図1の(5))。その際、後述するようにアプリ認証情報に基づいて鍵(以下、アプリ認証鍵と呼ぶ)を生成して端末アプリ31の認証を行うが、端末アプリ31が認証されると、端末アプリ31の通信部312およびセキュアデバイス10の通信部104は、それぞれ認証処理中に新たに共有した鍵、すなわちアプリ認証鍵とは別に生成した鍵により通信を行う(図1の(6))。これにより、セキュアデバイス10に格納されている重要なデータや価値あるデータである機密情報は、アプリ認証鍵により認証された端末アプリ31にしか渡さないので、かかる機密情報を保護することが可能となると共に、アプリ認証鍵は認証のときしか使用せず、その後の通信では新たに生成した鍵を共有して通信するので、認証処理と通信処理とで使用する鍵が別々になり、認証と通信の独立性が高まり、認証鍵や通信の際に使用する鍵の漏洩等をより確実に防止することが可能となる。
図2(a)および図2(b)の構成図は、それぞれ、実施の形態1の情報処理端末30およびセキュアデバイス10の各機能ブロックを実装する構成を示している。
情報処理端末30上において、アプリ認証部311、通信部312、およびサービスの提供を受け、利用者への情報の提示や入力の受け付けなどを行うサービス部313は、端末アプリ31によって実装される。また、アプリ発行要求送信部301およびアプリ受信部302は、セキュアデバイス10に格納された端末アプリ31の発行を依頼し、起動を行うアプリケーションである基本ローダ32によって実装される。
セキュアデバイス10上において、アプリ発行部101およびアプリ送信部102は、発行アプリ12によって実装される。また、アプリ認証部103、通信部104およびサービスを提供するサービス提供部109は、カードアプリ11によって実装される。アプリ記憶部105および発行情報記憶部106は、セキュアデバイス10上にある、耐タンパ性を持つなど外部からの直接参照が困難な記憶領域で、例えばセキュアデバイス10内のEEPROMやフラッシュメモリによって実現される。
図3のシーケンス図は、このセキュアデバイス10および情報処理端末30の処理手順を示している。
情報処理端末30の利用者による指示や、セキュアデバイス10の挿入の情報処理端末30による検出などがあった場合に、端末OS35により基本ローダ32が起動される(図3の(1))。基本ローダ32は、起動する端末アプリ31を指定するアプリIDをセキュアデバイス10の発行アプリ12に送信する(図3の(2))。
セキュアデバイス10では、発行アプリ12がアプリ認証情報を基本ローダ32からアプリIDにより指定された端末アプリ31に埋め込み(図3の(3))、情報処理端末30の基本ローダ32に発行する(図3の(4))。
基本ローダ32は端末アプリ31を受信すると、受信した端末アプリ31を端末OS35上で起動させる(図3の(5))。端末アプリ31は、埋め込まれたアプリ認証情報を用いて、セキュアデバイス11のカードアプリ11との間で認証を行う(図3の(6))。
図4は、端末アプリ31の生成から端末アプリ31のセキュアデバイス10へのダウンロード、さらには、情報処理端末30上の端末アプリ31とセキュアデバイス10との認証に至るまでのシステムの動作の概要を示している。なお、図4に示すセキュアデバイス10においては、図1に示すアプリ記憶部105と発行情報記憶部106とを1つの記憶装置13として表現しており、発行情報131、機密情報132、端末アプリ31、指示書133等を記憶している。
また、図4において、端末アプリ生成装置20は、ソースコード21をアプリ認証情報の埋め込みが可能な端末アプリに変換するソフトウェアが搭載されたコンピュータなどで構成され、埋め込み準備部22と、コンパイラ23と、指示書生成部24とを有している。
以下の例では、端末アプリ31に埋め込まれたアプリ認証情報から実行時にアプリ認証鍵を計算して、アプリ認証鍵によって認証する手法を取っている。さらに、ソースコード、特にアプリ認証鍵を計算し、認証を行う部分のソースコードを難読化すると効果的である。図4は、端末アプリ31を通常どおり開発し、JAVA(登録商標)などの言語で書かれたソースコード21を得た所から始まっている。
流れは、大きく分けて端末アプリ生成装置20により、ソースコード21から、アプリ認証情報の埋め込み可能な端末アプリ31と、アプリ認証情報の埋め込み方を指示する指示書133を生成し、セキュアデバイス10に記憶するまでの図4の(1)から(4)の動作と、セキュアデバイス10が端末アプリ31を発行し、認証処理が完了するまでの図4の(5)から(9)の動作から成っている。
次に、図4における動作を説明すると、まず、端末アプリ生成装置20の埋め込み準備部22は、開発した端末アプリのソースコード21を受けとり(図4の(1))、埋め込み準備を行う。具体的には、埋め込み準備部22は、受け取ったソースコード21にアプリ認証情報を埋め込むための余地と、埋め込まれたアプリ認証情報からアプリ認証鍵を得て、セキュアデバイス10と認証処理を行うためのソースコードを追加する。また、追加したソースコードに対応した埋め込み方とその利用の方法を指示する指示書133の雛型となる指示書テンプレートを生成する(図4の(2))。
この埋め込み準備の行われた端末アプリ31のソースコードは、コンパイラ23によってコンパイルされ、バイトコード(オブジェクトコード)として指示書生成部24に出力される(図4の(3))。
次に、指示書生成部24は、コンパイラ23からの端末アプリ31のバイトコードと、埋め込み準備部22からの指示書テンプレートとから指示書133を生成し、コンパイラ23と指示書生成部24とは、それぞれ、端末アプリ31のバイトコードと指示書133をセキュアデバイス10の記憶装置13に記憶する(図4の(4))。
利用者が情報処理端末30にて起動の操作をするなどして、端末アプリ31の起動が要求されると、基本ローダ32が起動され、基本ローダ32はセキュアデバイス10の発行アプリ12に対して、起動すべき端末アプリ31のアプリIDを伝えて、起動すべき端末アプリ31の発行を要求する(図4の(5))。これは、図1の(1)の動作に相当する。この時、利用者の認証、起動すべき端末アプリ31のライセンスの認証などが行われてもよい。
セキュアデバイス10内の発行アプリ12は、記憶装置13から端末アプリ31と指示書133を読み出し、指示書133を参照して、乱数や乱数を計算する式等により毎回値の異なるアプリ認証情報を端末アプリ31のバイトコードに埋め込む。そして、発行アプリ12は、端末アプリ31に埋め込んだアプリ認証情報からアプリ認証鍵を計算し、アプリIDと対応づけて発行情報131として記憶する(図4の(6))。これは、図1の(2)の動作に相当する。アプリ認証鍵は、情報処理端末30上にて端末アプリ31が実際に計算するアプリ認証鍵と同じものが計算される。
発行アプリ12から発行された端末アプリ31が情報処理端末30の基本ローダ32に渡されると、情報処理端末30にて端末アプリ31として起動される(図4の(7))。これは、図1の(3),(4)の動作に相当する。
端末アプリ31は、端末アプリ31に埋め込まれたアプリ認証情報と、端末アプリ生成部20の埋め込み準備部22によって端末アプリ31のソースコード21に追加されたセキュアデバイス10と認証処理を行うためのコードとによってアプリ認証鍵を計算し、セキュアデバイス10のカードアプリ11との間で認証プログラムにより認証処理を行う(図4の(8))。これは、図1の(5)の動作に相当する。
認証処理の結果、情報処理端末30に発行されて起動している端末アプリ31が真正なものと認証され、認証された情報処理端末30の端末アプリ31から機密情報132等を読みだす要求を受けると、カードアプリ11の通信部104は、記憶装置13から機密情報132等を読みだして、情報処理端末30の端末アプリ31との間で、アプリ認証鍵とは別の鍵を共有し通信して渡す(図4の(9))。これは、図1の(6)の動作に相当する。認証されていない情報処理端末30内の端末アプリ31からの要求には応じない。
以下において、図4の具体的なデータ例を含めた詳細な動作について、図5〜図8を参照して説明する。
図4における端末アプリ生成装置20の動作(2)では埋め込みの準備を行う。
具体的な埋め込みの例として以下では、埋め込まれるアプリ認証情報が変数に代入され、その変数からアプリ認証鍵を計算する方法について述べる。埋め込み準備部22は、ソースコード21に埋め込まれるアプリ認証情報が入る変数を用意し、それらの変数を用いてアプリ認証鍵を計算するコードを追加する。
埋め込む方法によっては、コンパイラ23にデバッグ情報を出力させ、指示書テンプレートから指示書を生成する際に利用するなど、コンパイルの方法が重要になる。例えば、ローカル変数として代入される変数を用意する場合には、指示書133を生成するために、ローカル変数の情報が必要だが、通常コンパイラ23はローカル変数の情報をバイトコードに残さない。デバッグ情報を出力させれば、ローカル変数の情報も残るため、指示書133の生成を行うことができるようになる。デバッグ情報をそのまま残しておくと、解析の手がかりになりえるため、指示書生成後、バイトコードからデバッグ情報を取り除くなど、バイトコードに余分な情報が残らないよう十分注意を払う。
また、ソースコードの難読化を行う場合は難読化の方法によっては、難読化のソフトウェアから情報を得る必要がでてくる。例えば、シンボル名を無意味なものに変換するような難読化を行う場合、もとの名前との対応がわからなければならない。
図5(a)は、図4における動作(2)、すなわち端末アプリ生成装置20の埋め込み準備部22により生成される指示書テンプレートの具体例である。
一行目は、端末アプリ31に対するアプリ認証情報の埋め込み先と、アプリ認証情報として埋め込む情報を示している。変数名s1,s2,s3はコード中の変数を表しており、この行は、s1,s2,s3に乱数を入れるという意味である。このs1,s2,s3は埋め込み準備時にコード中に用意される。言語の仕様に応じて32ビットの整数値を入れることを想定しているが、必要であれば、値の種類や範囲を明示してもよい。
二行目は、埋め込まれたアプリ認証情報からアプリ認証鍵を得る計算方法を示しており、この場合、埋め込んだ三個の変数の排他的論理和を取るという意味である。
図5(b)は、図4における動作(4)、すなわち端末アプリ生成装置20の指示書生成部24により生成される上述の指示書テンプレートに対応した指示書133の具体例である。
コンパイルされて決定したs1,s2,s3のバイトコード上の位置で、s1,s2,s3を置きかえる。図5(c)に模式的に示したように、0x47,0x57,0x67はそれぞれs1,s2,s3の位置の先頭からのバイト数の十六進表記である(すなわち、0x47はs1が十進表記でバイトコードの71バイト目であることを示す)。変数名は順に%1,%2,%3と番号で置きかえた。
バイトコードと指示書は、生成された後には、セキュアデバイス10の記憶装置13に記憶されるが、以下に注意すべきことについて述べる。
バイトコードと指示書133をセキュアデバイス10に渡す際には、真正性の確認や改竄検知が可能な形で渡す必要がある。例えば、渡すデータのハッシュ値に端末アプリ生成装置の秘密鍵で電子署名を施した証明書を添付する。セキュアデバイス10は証明書を検証できるよう生成装置の公開鍵証明書を持ち、受けとったデータを検証してから記憶する。
また、端末アプリ生成装置20、あるいは端末アプリ生成装置20から端末アプリと指示書を受けとって配布するサーバ等は、端末アプリや指示書が盗聴され、なりすまされることを防ぐために、セキュアデバイス10に送信する際には、相互認証をした上で、セキュアな通信路を確立し、暗号化して送信する。セキュアデバイス10側では、発行アプリ12が受信、検証し記憶する。
図4の動作(5)において、基本ローダ32が、発行を要求する端末アプリ31のアプリIDを発行アプリ12に送信し、発行要求を行う。
この時、アプリIDとともに情報処理端末30の機種や型番、空きメモリなどの情報も送信し、発行アプリ12が、アプリIDの他に送信された情報も利用して発行する端末アプリ31を選択してもよい。例えば、セキュアデバイス10は同じサービスに対して、機種A用と機種B用、あるいは、多機能だが必要なメモリの大きいアプリとシンプルだが必要なメモリの少ないアプリを保持し、情報処理端末30に応じて発行する端末アプリ31を選択することができる。
図4の動作(6)において、発行アプリ12は指示書133を参照して端末アプリ31のバイトコードにアプリ認証情報の埋め込みを行う。
発行すべき端末アプリ31の指示書133として、例えば、図5(b)に示すような指示書133を受けとった発行アプリ12は、この指示書133の一行目に従い、端末アプリ31のバイトコードの0x47,0x57,0x67の位置に乱数(random)を埋め込み、それぞれ一から三番目の変数(%1,%2,%3)として記憶する。その後、二行目に従い、それらの排他的論理和を計算して、アプリ認証鍵とする。
ここで、発行アプリ12は、端末アプリ31のバイトコードと指示書テンプレートを受けとり、指示書生成部24と同様に指示書133を生成して埋め込むことも可能だが、その処理は複雑であり、しかも、セキュアデバイス10上の発行アプリ12が発行毎に実行するのは無駄であり、一度指示書133を生成しておけば同じものが使えるため、図4に示す端末アプリ生成装置20のようにあらかじめ生成しておけば無駄を省ける。また、さらに複雑な処理をするために、コンパイラ23の手を借りたり、難読化を用いたりする時には、指示書133を生成するために、より多くの情報を必要とするため、このことからも、指示書133はセキュアデバイス10内で生成するのではなく、端末アプリ生成装置20等のセキュアデバイス10外にてあらかじめ作成した方が良い。
図4の動作(8)において、カードアプリ11は端末アプリ31の認証処理を行う。
端末アプリ31は、指示書133の指示内容と同様に、アプリ認証情報である埋め込まれた三個の乱数値の排他的論理和をアプリ認証鍵とするようプログラムされている。カードアプリ11は、記憶装置13に記憶された発行情報131からアプリ認証鍵を得る。アプリ認証鍵による認証手法には共通鍵による手法を用いることが可能である。例えば、チャレンジ・レスポンスを用いるか、あるいは相互認証の必要がなければ、単にアプリ認証鍵をワンタイムパスワードとして扱って、セキュアデバイスに送信するだけでもよい。さらに認証時に、その後の通信に用いる新たな鍵を共有することが望ましい。
ここで、発行アプリ12は、アプリ認証鍵を発行情報131として保存する際に、アプリ認証鍵に有効期限をつけるようにしてもよい。つまり、この有効期限はカードアプリ11のアプリ認証部103によって認証処理が行われる際に検証される。具体的には、アプリ認証部103は、アプリ発行部101によって端末アプリ31が発行されてからの経過時間を計測し、その経過時間が所定の有効期限内の場合は、アプリ認証鍵は有効であり、認証を行うことが可能であり、その経過時間が所定の有効期限を過ぎた場合には、アプリ認証鍵を無効とし、認証を行わないようにする。また、アプリ認証鍵は、最初の認証のときにのみ用いられ、それ以降の通信に用いる鍵は別途共有する。そのため、端末アプリの情報処理端末30へのロードが終了し、アプリ認証鍵による認証が終了するまでにかかる程度の時間だけ有効であれば十分である。必要以上に長い時間有効であると、発行した端末アプリが解析され、アプリ認証鍵が漏洩し、なりすましなどの攻撃が行われる危険が増すため、短めの期限を設定する。このように、認証を行うのに十分な期間だけ有効であるような有効期限をアプリ認証鍵に付けるようにすれば、端末アプリ31を解析し、不当な端末アプリ31になりすます攻撃を行おうとしても、認証情報の解析で余分に時間がかかっている間にアプリ認証鍵の期限が切れるため、不当な端末アプリになりすます攻撃から防御できると共に、何らかの攻撃が試みられていたことを検出できる。
図6は、発行情報131の例である。アプリIDと、アプリ認証鍵と、アプリ認証鍵の有効期限が書かれており、例えば二行目は、アプリIDがap1である端末アプリ31は、アプリ認証鍵が0xebabefac(十六進表記)であり、有効期限が2003年3月31日の7時0分5秒までであることを示している。
異なる複数のサービスを一つのセキュアデバイス10で提供するなどの目的で、複数のカードアプリ11がインストールされる場合は、端末アプリ31は自分が通信するべきカードアプリ11がどれであるかを識別できることが必要である。端末アプリ31の開発時にカードアプリ11の識別情報を指定しておくのが簡便である。カードアプリ11の識別情報は開発側に公開されないこともあり得る。この場合、発行アプリ12がサーバ等からカードアプリ11の識別情報を受けとり記憶する際に、埋め込みと同じ要領で指示書を受けとり、端末アプリに書きこむ。また、カードアプリ11の識別情報を動的なものにできる場合は、発行アプリ12が、カードアプリ11の識別情報を発行時に埋め込んでもよい。
また、端末アプリ31は、情報処理端末30にて端末アプリ31が実行され終了する時、セキュアデバイス10から入手した情報処理端末30側に記憶することを意図されていない情報、例えばアプリ認証鍵やカードアプリ11の識別情報等の発行情報131や機密情報132等はメモリ上も含めて記憶領域から全て消去して終了するようにプログラミングしておくと良い。このようにすれば、情報処理端末30側に記憶することを意図されていない情報が情報処理端末30側に渡っても、端末アプリ31の実行終了時には、確実に消去されるので、漏洩することを防止することが可能となる。
次に、アプリ認証情報の埋め込み方、および対応する指示書133のバリエーションを示す。
図7は、端末アプリ31に埋め込む認証情報の計算に用いられないダミーデータを入れる例である。図7(a)にダミーあり指示書テンプレートの例を示す。一行目は、s1からs6まで六個の乱数をアプリ認証情報として端末アプリ31に埋め込むという意味である。二行目は、s6の値によって、s1からs5の値から三個選んでa,b,cにするという意味である。つまり、六個の乱数のうち、二個はダミーデータということである。選び方は、例えば、s1〜s5から3個取り出して並べる全て並べ方(全順列という。この場合60通りある)を作って番号を振り、s6を全順列の数(この場合60)で割った余りに対応する順列に従ってa,b,cに割りあてる。三行目は、割りあてたa,b,cを使ってアプリ認証鍵を計算する。図7(b)は、図7(a)に示すダミーあり指示書テンプレートから生成される指示書133の例である。埋め込まれる位置が決定され、変数名が%7などに置きかわるのは、図5(b)の場合と同様である。また、端末アプリ31は、図7(b)に示すダミーあり指示書133の指示内容と同様に、アプリ認証情報である埋め込まれた六個の乱数値から三個を選択して排他的論理和をアプリ認証鍵とするようプログラムされている。
以上のように、ダミーあり指示書テンプレート、ダミーあり指示書133に従ってダミーデータを入れることによって、例えば、複数の発行された端末アプリ31を比較することによって端末アプリ31に埋め込まれたアプリ認証情報が外部から抽出できた場合でも、アプリ認証鍵の推測をより困難にすることができる。その結果、差分攻撃に対する耐タンパ性も強化することが可能となる。
このように、実施の形態1では、端末アプリ31を保持するセキュアデバイス10が装着された情報処理端末30が端末アプリ31の起動を要求すると、セキュアデバイス10が端末アプリ31にアプリ認証情報を埋め込んで情報処理端末30に発行するため、情報処理端末30が発行された端末アプリ31を起動すると、セキュアデバイス10と情報処理端末30との間で、アプリ認証情報に基づいて認証を行うことが可能になる。
なお、本実施の形態においては、端末アプリ31に埋め込む認証情報として指示書133に基づいて端末アプリ31の発行毎に毎回値の異なるアプリ認証情報を用いる例を説明したが、本発明ではこれに限らず、セキュアデバイス10から送信してもらわないと認識できないカードアプリ11の識別情報や、それ以外の任意の情報でもよく、例えば、端末アプリ31の動作を規定するパラメータであってもよいし、ライセンス情報などでもよい。その際、指示書133は、そのような情報を埋め込むことを指示する目的にも用いることができる。
また、本実施の形態においては、発行アプリ12がアプリ認証情報に基づきアプリ認証鍵を計算して発行情報の一つとして発行情報記憶部106に記憶するように説明したが、本発明ではこれに限らず、アプリ認証情報からアプリ認証鍵を計算するプログラムコードがカードアプリ11内にあり、例えばカードアプリ11内のアプリ認証部103等が認証時に発行アプリ12によって作られたアプリ認証情報を読みこんでアプリ認証鍵を計算するようにしてもよい。この場合、発行アプリ12が受け取る指示書133にはアプリ認証鍵の計算方法が書かれている必要がないので、発行アプリ11にもアプリ認証鍵がわからず、認証の独立性が高まり、認証鍵の漏洩等をより確実に防止することができる。
図8は埋め込んだアプリ認証情報からアプリ認証鍵を計算する際にカードアプリ11を用いる例である。図8(a)に指示書テンプレートの例を示す。一行目は、256個のアプリ認証情報を埋め込むことを示している。この場合は、配列として埋め込んでいる。二行目は、埋め込んだアプリ認証情報を引数としてカードアプリ11に渡し、カードアプリ11が埋め込まれたアプリ認証情報から計算し、返された結果をアプリ認証鍵とすることを示している。図8(b)は、指示書テンプレートから生成される指示書133の例である。埋め込まれる位置が決定され、変数名が0x37などに置きかわるのは、図5の場合と同様である。
また、本実施の形態において、基本ローダ32は発行された端末アプリを受けとってすぐに起動していたが、端末アプリ31に対して発行アプリ12による署名が行われており、基本ローダ32がその署名の検証をしてから起動することで、不正な端末アプリ31を起動してしまうことを防ぐようにしてもよい。
(実施の形態2)
本発明の実施の形態2では、情報処理端末上でセキュアデバイスの処理を代行する機能を有しているMTA(Master Trusted Agent)と呼ばれる端末アプリと、その他の端末アプリとを保持するセキュアデバイスについて説明する。このセキュアデバイスを情報処理端末に装着すると、まず、MTAと呼ばれる端末アプリがセキュアデバイスから情報処理端末に発行されて情報処理端末にて起動され、MTAに埋め込まれた認証情報により認証されると、その後の端末アプリの起動は、MTAにより仲介される。つまり、情報処理端末がセキュアデバイス装着後、端末アプリの起動を要求すると、MTA経由でセキュアデバイスによりアプリ認証情報の埋め込まれた端末アプリが発行され、MTAが端末アプリを起動すると、アプリ認証情報による認証が行われる。
このため、実施の形態1の場合とは異なり、実施の形態2では、セキュアデバイスが情報処理端末に装着されると、まず、MTAと呼ばれる端末アプリがセキュアデバイスから情報処理端末に発行されて起動および認証され、先に認証された端末アプリであるMTAが、他の実行すべき端末アプリの起動を行うために、他の実行すべき端末アプリを解析される可能性が低くなる。
図9において、実施の形態2の情報処理端末30は、端末OS35と、端末アプリの発行を要求するアプリ発行要求送信部301と、発行された端末アプリ31を受けとるアプリ受信部302と、端末アプリの発行を依頼するアプリ発行依頼部307とを備えている。また、起動される端末アプリ31は、実施の形態1と同様に、埋め込まれたアプリ認証情報に基づいて認証を行うアプリ認証部311と、セキュアデバイス10上のカードアプリ11と通信を行う通信部312とを備えている。
一方、セキュアデバイス10は、実施の形態1と同様に、端末アプリ31にアプリ認証情報を埋め込み端末アプリ31の発行を行うアプリ発行部101と、発行された端末アプリ31を送り出すアプリ送信部102と、埋め込んだアプリ認証情報に基づいて認証を行うアプリ認証部103と、情報処理端末30上の端末アプリ31と通信を行う通信部104と、真正性の確認された端末アプリ20を保持するアプリ記憶部105と、発行した時に端末アプリ31に埋め込んだアプリ認証情報を記憶する発行情報記憶部106とを備えている。
次に図9における動作を説明すると、情報処理端末30のアプリ発行要求送信部301は、端末アプリの起動が利用者等から要求されると、端末アプリの発行要求を、アプリ発行依頼部307に送信する(図9の(1))。アプリ発行依頼部307は、アプリ発行部101に、要求された端末アプリの起動を要求する(図9の(2))。アプリ発行部101は、アプリ記憶部105から端末アプリ31を読みだし、端末アプリ31の発行毎に異なるように任意に発生させたアプリ認証情報を埋め込む発行処理を行い、発行に関する情報である、端末アプリ31のアプリID(アプリの識別子)と、埋め込んだアプリ認証情報とを対応づけて、発行情報記憶部106に保存し、発行した端末アプリ31をアプリ送信部102に渡す(図9の(3))。アプリ送信部102は、発行された端末アプリ31を情報処理端末30のアプリ受信部302に送信する(図9の(4))。アプリ受信部302は、発行された端末アプリ31を受信し、起動する(図9の(5))。端末アプリ31のアプリ認証部311は、セキュアデバイス10のアプリ認証部103との間で埋め込まれたアプリ認証情報を用いてアプリ認証鍵により認証を行う(図9の(6))。その認証の結果、情報処理端末30にて起動している端末アプリ31が真正なものと認証されると、端末アプリ31の通信部312およびセキュアデバイス10の通信部104は、アプリ認証鍵とは別の鍵、すなわちアプリ認証情報による認証中に新たに生成した鍵を共有してセキュアデバイス10に記憶されている機密情報132等の通信を行う(図9の(7))。
図10(a)および図10(b)の構成図は、それぞれ、実施の形態2の情報処理端末30およびセキュアデバイス10の各機能ブロックを実装する構成を示している。
情報処理端末30上において、アプリ認証部311、通信部312、およびサービスの提供を受け、利用者への情報の提示や入力の受け付けなどを行うサービス部313は、端末アプリ31によって実装される。また、アプリ発行要求送信部301は、端末アプリの発行を依頼するアプリローダ33によって実装される。また、アプリ受信部302およびアプリ発行依頼部307は、MTA34によって実装される。
セキュアデバイス10上において、アプリ発行部101およびアプリ送信部102は、発行アプリ12によって実装される。また、アプリ認証部103、通信部104およびサービスを提供するサービス提供部109は、カードアプリ11によって実装される。アプリ記憶部105および発行情報記憶部106は、セキュアデバイス上にある、耐タンパ性を持つなど外部からの直接参照が困難な記憶領域で、例えばセキュアデバイス内のEEPROMやフラッシュメモリによって実現される。
図11のシーケンス図は、実施の形態2のセキュアデバイス10および情報処理端末30の処理手順を示している。
情報処理端末30の利用者による指示や、情報処理端末30によるセキュアデバイス10挿入の検出などがあると、端末OS35によりアプリローダ33が起動される(図11の(1))。その際、情報処理端末30からセキュアデバイス10に対し、自動的に、まず、MTA34の発行が要求され、情報処理端末30はアプリ認証情報の埋め込まれたMTA34を受信して起動し、他の端末アプリ31と同様にセキュアデバイス10との間で認証処理が行われ、起動しているMTA34が真正なものと認証済みであるとする。アプリローダ33は、起動させるべき端末アプリ31を指定するアプリIDをMTA34に伝える(図11の(2))。MTA34は、必要に応じてセキュアデバイス10と連携して利用者の認証を行う(図11の(3))。アプリ発行要求をセキュアデバイス10の発行アプリ12に送信する(図11の(4))。
発行アプリ12は、利用者に端末アプリを起動する権限があるか確認し(図11の(5))、認可されると、アプリ認証情報を指定された発行すべき端末アプリ31に埋め込み(図11の(6))、MTA34に送信する(図11の(7))。
MTA34は、受信した端末アプリ31を起動する(図の11(8))。端末アプリ31は、埋め込まれたアプリ認証情報を用いて、カードアプリ11と、アプリ認証情報による認証を行って(図11の(9))、新たに生成した共有鍵により機密情報132等の通信を行いながらそのプログラムを実行する。
ここで、MTA34は認証済みであるため、前述のMTA34による利用者の認証(図11の(3))からセキュアデバイス10による端末アプリ31の発行まで(図11の(7))の処理は、認証済みのセキュアチャネル上で実行されることになり、しかもセキュアデバイス10から発行された実行すべき端末アプリ31はMTA34のアプリ受信部302によって受信されるので、MTA34を用いない実施の形態1の場合よりも、制限のある端末アプリ31の発行をセキュアデバイス10に要求したり、セキュアデバイス10から受信した端末アプリ31の改竄等を確実に防止したりすることが可能となる。
このように、実施の形態2では、MTA34と呼ばれるアプリケーションとその他の端末アプリ31を保持するセキュアデバイス10が装着された情報処理端末30上でMTA34がまず発行されて起動されて認証され、MTA34起動後の実行すべき他の端末アプリ31の起動等は、認証されたアプリケーションであるMTA34が行うために、実行すべき端末アプリ31を解析される可能性が低くなる。
特に、実施の形態2では、認証済みのMTA34が利用者の認証からセキュアデバイス10による端末アプリ31の発行までの処理を行い、しかもセキュアデバイス10にて発行された実行すべき端末アプリ31はMTA34のアプリ受信部302が受信するので、MTA34を用いない実施の形態1の場合よりも、情報処理端末30における端末アプリ31の改竄等を確実に防止することが可能となる。
なお、本実施の形態において、MTAがJAVA(登録商標)のVM(Virtual Machine)に相当するアプリ実行手段を保持しており、MTA以外のアプリケーションをMTA自身が実行する構成であってもよい。この構成によれば、セキュアデバイスは、MTA以外のアプリケーションを実行するアプリ実行手段自体を信頼することができるので、たとえば実行後に機密情報を確実に消去する等、MTA以外のアプリケーションを安全に実行することができる。
また、本実施の形態において、MTA34がセキュアデバイス10に端末アプリ31の発行を要求すると、セキュアデバイス10が認証情報を埋め込んで、MTA34に発行していたが、セキュアデバイス10は埋め込まずに、端末アプリ31と指示書133をそのままMTA34に渡し、MTA34が自身に埋め込まれた認証情報を端末アプリ31に埋め込んで起動してもよい。このようにすることで、セキュアデバイス10に発行の負荷をかけずにすむ。
また、セキュアデバイス10は、MTA34を発行する際に、MTA34自身を認証する認証情報に加えて、後からMTA34が端末アプリ31に埋め込むのに用いることができる余分の認証情報をさらに埋め込んでもよい。あるいは、MTA34はセキュアデバイス10に埋め込むべき認証情報を要求して送信させてもよい。このようにすることで、安全性を犠牲にすることなくセキュアデバイス10の負荷を軽減することができる。
また、本実施の形態において、MTA34がセキュアデバイス10に端末アプリ31の発行を要求すると、セキュアデバイス10が認証情報を埋め込んで、MTA34に発行していたが、セキュアデバイス10は埋め込まずに、MTA34に単に端末アプリ31と新たな認証情報を渡し、MTA34が認証情報を端末アプリ31に渡して起動することで、埋め込みを必要としない端末アプリの起動を行ってもよい。このようにすることで、端末アプリ31を埋め込み可能な形に加工する手間をなくすことができる。
(実施の形態3)
本発明の実施の形態3では、MTA(Master Trusted Agent)と呼ばれる端末アプリを保持するセキュアデバイスと、暗号化された端末アプリ(以下では暗号化済アプリと呼ぶ)を保持する情報処理端末について説明する。
前述の実施の形態1,2では、セキュアデバイスに端末アプリを記憶しておくため、セキュアデバイスに十分な記憶容量が必要であった。しかし、ICカードなどのように、容量が十分でない場合には、情報処理端末に端末アプリを記憶させることになり、しかも解析や無断使用を防止するため暗号化しなければならない。
本実施の形態では、そのような場合においても、セキュアデバイスと端末アプリとが認証できるように起動する方法を開示する。
また、セキュアデバイスを情報処理端末に装着すると、MTAと呼ばれる端末アプリが起動されて認証され、その後の端末アプリの起動は、MTAにより行われる。そこで、本実施の形態では、情報処理端末が端末アプリの起動を要求すると、MTAがセキュアデバイスからアプリ暗号鍵とハッシュ値を受けとって、暗号化済アプリの復号および検証を行い、復号された暗号化済みアプリが改竄等されてないとハッシュ値により検証された場合に、MTAは、端末アプリとセキュアデバイスにアプリ認証情報を渡し、端末アプリを起動すると、アプリ認証情報による認証が行われる。
図12において、実施の形態3の情報処理端末30は、端末OS35と、端末アプリ31の発行を要求するアプリ発行要求送信部301と、端末アプリの発行を依頼するアプリ発行依頼部307と、暗号化済アプリを記憶する暗号化済アプリ記憶部304と、セキュアデバイス10から暗号化済アプリを復号化するための鍵を受け取り、復号を行う端末側アプリ復号部305と、復号された端末アプリ31を受けとり端末アプリ31の発行を行う端末側アプリ発行部306とを備えている。また、起動される端末アプリ31は、実施の形態1と同様に、アプリ認証情報に基づいて認証を行うアプリ認証部311と、セキュアデバイス10上のカードアプリ11と通信を行う通信部312とを備えている。
一方、実施の形態3のセキュアデバイス10は、情報処理端末30から端末アプリ31のアプリIDとアプリ認証情報を受けとるアプリ発行部101と、アプリ認証情報に基づいて認証を行うアプリ認証部103と、情報処理端末30上の端末アプリ31と通信を行う通信部104と、情報処理端末30から受けとったアプリ認証情報を端末アプリ31のアプリIDと対応づけて記憶する発行情報記憶部106と、指定された端末アプリ31の復号に用いるアプリ暗号鍵を情報処理端末に送信するアプリ暗号鍵送信部107と、端末アプリ31のアプリIDと端末アプリ31を復号するためのアプリ暗号鍵と端末アプリ31の正しいハッシュ値を記憶するアプリ暗号鍵記憶部108とを備えている。
次に、図12における動作を説明すると、情報処理端末30のアプリ発行要求送信部301は、端末アプリ31の起動が利用者等から要求されると、端末アプリ31の発行要求を、アプリ発行依頼部307に送信する(図12の(1))。アプリ発行依頼部307は、アプリ暗号鍵送信部107に対し、実行させるべき暗号化済み端末アプリ31の識別情報であるアプリIDを送信して、要求された端末アプリ31を復号化するためのアプリ暗号鍵と検証に用いるハッシュ値を要求する(図12の(2))。アプリ暗号鍵送信部107は、受信したアプリIDに基づいてアプリ暗号鍵記憶部108から対応するアプリ暗号鍵とハッシュ値とを読み出し、端末側アプリ復号部305に送信する(図12の(3))。端末側アプリ復号部305は、暗号化済アプリ記憶部304から、暗号化済の端末アプリ31を読みだし、セキュアデバイス10から受信したアプリ暗号鍵を用いて復号すると共に、ハッシュ値を計算して、端末アプリ31が改竄されていないことを検証する(図12の(4))。そして、端末側アプリ発行部306は、端末アプリ31が改竄されていないことを検証すると、端末アプリ31の復号毎に異なる値となるように任意にアプリ認証情報を発生させる発行処理を行い、発行に関する情報である、端末アプリ31のアプリID(アプリの識別子)と、アプリ認証情報とをセキュアデバイス10側のアプリ発行部101に送信する(図12の(5))。アプリ発行部101は、端末アプリ31のアプリIDと、アプリ認証情報とを受信すると、それらを対応づけて発行情報記憶部106に保存する(図12の(6))。一方、端末側アプリ発行部306は、復号した端末アプリ31にアプリ認証情報を渡して、端末アプリ31を起動する(図12の(7))。これにより、端末アプリ31のアプリ認証部311は、セキュアデバイス10のアプリ認証部103との間で前述の実施の形態1と同様に、アプリ認証情報によりアプリ認証鍵を生成して認証を行う(図12の(8))。そして、情報処理端末30の通信部312およびセキュアデバイス10の通信部104は、アプリ認証情報による認証中に新たに共有したアプリ認証鍵とは別の鍵によりセキュアデバイス10に記憶されている機密情報132等(図4参照)の通信を行う(図12の(9))。
図13(a)および図13(b)の構成図は、それぞれ、実施の形態3の情報処理端末30およびセキュアデバイス10の各機能ブロックを実装する構成を示している。
情報処理端末30上において、アプリ認証部311、通信部312およびサービスの提供を受け、利用者への情報の提示や入力の受け付けなどを行うサービス部313は、端末アプリ31によって実装される。また、アプリ発行要求送信部301は、アプリローダ33によって実装される。また、アプリ発行依頼部307、端末側アプリ復号部305および端末側アプリ発行部306は、MTA34によって実装される。
セキュアデバイス10上において、アプリ発行部101およびアプリ暗号鍵送信部107は、発行アプリ12によって実装される。また、アプリ認証部103、通信部104およびサービスを提供するサービス提供部109は、カードアプリ11によって実装される。発行情報記憶部106およびアプリ暗号鍵記憶部108は、セキュアデバイス10上にある、耐タンパ性を持つなど外部からの直接参照が困難な記憶領域で、例えばセキュアデバイス内のEEPROMやフラッシュメモリによって実現される。
図14のシーケンス図は、実施の形態3のセキュアデバイス10および情報処理端末30の処理手順を示している。
情報処理端末30の利用者による指示や、情報処理端末30によるセキュアデバイス10の挿入の検出などがあると、端末OS35によりアプリローダ33が起動される(図14の(1))。その際、実施の形態2の場合と同様に、自動的に、情報処理端末30からセキュアデバイス10に対しMTA34の発行が要求され、情報処理端末30は、アプリ認証情報の埋め込まれたMTA34を受信して起動し、他の端末アプリ31と同様にセキュアデバイス10との間で認証処理が行われて、認証済みであるとする。アプリローダ33は、起動する暗号化済みアプリを指定するアプリIDをMTA34に伝える(図14の(2))。MTA34は、必要に応じてセキュアデバイス10と連携して利用者の認証を行い(図14の(3))、アプリIDに対応した暗号化済みの端末アプリ31の復号化に用いるアプリ暗号鍵の要求をセキュアデバイス10の発行アプリ12に送信する(図14の(4))。
発行アプリ12は、利用者に暗号化済みの端末アプリ31を起動する権限があるか確認し(図14の(5))、確認されると、アプリIDに対応するアプリ暗号鍵とハッシュ値をMTA34に送信する(図14の(6))。MTA34は、受信したアプリ暗号鍵を用いて暗号化済の端末アプリ31を復号化し、ハッシュ値を計算し、改竄されていないことを検証した後、復号毎に異なるように任意に発生させたアプリ認証情報を、アプリIDとともに発行アプリ12に送信する(図14の(7))。そして、発行アプリ12は、アプリIDとアプリ認証情報を対応づけて記憶する。改竄が検出された場合は、端末アプリ31を起動しない。
また、MTA34は、端末アプリ31にアプリ認証情報を渡して端末アプリ31を端末OS上で起動する(図14の(8))。端末アプリ31は、渡されたアプリ認証情報を用いて、カードアプリ11と、アプリ認証情報による認証を行って(図14の(9))、機密情報等の通信を行いながらそのプログラムを実行する。
よって、実施の形態2と同様に、MTA34は認証済みであるため、前述のMTA34による利用者の認証(図14の(3))からMTA34によるアプリ認証情報の発行まで(図14の(7))の処理は、認証済みのセキュアチャネル上で実行されることになるので、MTA34を用いない実施の形態1の場合よりも、制限のある端末アプリ31の発行をセキュアデバイス10に要求すること等を確実に防止することが可能となる。
図15のシーケンス図は、暗号化済アプリを情報処理端末30にインストールする処理手順の一例を示している。
端末アプリ31を配布している端末アプリ生成装置20(図4参照)等のサーバ40に対し、利用者によりWWW(World Wide Web)経由で指定されるなど、なんらかの形でダウンロードしたい端末アプリ31が指定されると、サーバ40は、端末アプリ31を暗号化するためのアプリ暗号鍵をセキュアデバイス10と共有する(図15の(1))。その後、サーバ40からその端末アプリのアプリIDと検証用のハッシュ値がセキュアデバイス10に伝えられる(図15の(2))。セキュアデバイス10は、アプリIDとアプリ暗号鍵とハッシュ値を対応づけて記憶する(図15の(3))。サーバ40は、端末アプリ31をセキュアデバイス10と共有したアプリ暗号鍵で暗号化して暗号化済アプリとし、アプリIDとともに情報処理端末30のMTA34に送信する(図15の(4))。MTA34は、暗号化済の端末アプリ31をそのままアプリIDと対応づけて暗号化済アプリ記憶部304に記憶する(図15の(5))。
以上の手順で、アプリ暗号鍵とハッシュ値はセキュアデバイス10に記憶され、暗号化済の端末アプリ31が情報処理端末30に記憶される。なお、この図15に示す例は、情報処理端末30に暗号化済アプリをインストールする前に、セキュアデバイス10から情報処理端末30にMTA34が発行され起動し認証されている場合を示しているが、MTA34が情報処理端末30に発行されていない場合は、信頼度は落ちるものの、情報処理端末30に予め内蔵されているアプリローダ33等に以上のような機能を持たせればよい。
図16は、アプリ暗号鍵記憶部108に記憶されるデータの具体例である。アプリ暗号鍵記憶部108には、アプリIDと、アプリ暗号鍵と、暗号化済み端末アプリ31のハッシュ値が書かれており、例えば二行目は、アプリIDがap1である暗号済み端末アプリ31は、アプリ暗号鍵が0xeface321であり、ハッシュ値が、0x7ae9a3caであることを示している。
このように、実施の形態3では、暗号化済の端末アプリ31を保持した情報処理端末10にMTA34と呼ばれるアプリケーションを保持したセキュアデバイス10が装着されると、まず、そのMTA34が起動され、MTA34起動後の暗号化済みの端末アプリ31の起動は、認証されたMTA34により行われるため、実施の形態2と同様に、実行すべき端末アプリ31を解析される可能性が低くなると共に、MTA34を用いない実施の形態1の場合よりも、情報処理端末30における端末アプリ31の改竄等を確実に防止することが可能となる。
特に、実施の形態3では、情報処理端末30が記憶している暗号化済みの端末アプリ31の起動を要求すると、MTA34がセキュアデバイス10からアプリ暗号鍵とハッシュ値とを受け取って、暗号化済の端末アプリ31の復号および検証を行った後、復号された端末アプリ31とセキュアデバイス10にアプリ認証情報を渡し、復号された端末アプリ31が起動されると、アプリ認証情報による認証が行われるため、セキュアデバイス10に容量の大きい、あるいは、数多くの端末アプリ31を記憶させておくことができないために、情報処理端末30上に暗号化した端末アプリ31を記憶しておく場合でも、セキュアデバイス10は認証を行うことが可能になる。
なお、本実施の形態において、MTAがJAVA(登録商標)のVM(Virtual Machine)に相当するアプリ実行手段を保持しており、MTA以外のアプリケーションをMTA自身が実行する構成であってもよい。この構成によれば、セキュアデバイスは、MTA以外のアプリケーションを実行するアプリ実行手段自体を信頼することができるので、たとえば実行後に機密情報を確実に消去する等、MTA以外のアプリケーションを安全に実行することができる。
また、セキュアデバイス10と情報処理端末30との間の通信速度が十分である場合は、暗号化済の端末アプリ31を情報処理端末30にて復号せずにセキュアデバイス10に渡し、セキュアデバイス10にて暗号化済の端末アプリ31を復号するようにすれば、アプリ暗号鍵をセキュアデバイス10から外へ出さずにセキュアデバイス10内で暗号化済の端末アプリ31を復号することができ、実施の形態2と同様に、復号された端末アプリ31を情報処理端末30に発行することも可能である。
また、本実施の形態において、MTA34は復号された端末アプリ31に対して、単にアプリ認証情報を渡すようにしているが、発行アプリ12と同様に復号された端末アプリ31に対して埋め込み処理を行ってもよい。この場合、復号された端末アプリ31に対して埋め込み処理まで示し、アプリ認証鍵の計算方法が書かれていない指示書133が、暗号化済の端末アプリ31とともに暗号化されて情報処理端末30に記憶されているか、あるいはそのような指示書133がMTA34と共にセキュアデバイス10に記憶されており、MTA34の発行の際や、アプリ暗号鍵の受信の際に情報処理端末30に送信されることになる。
また、本実施の形態において、アプリ認証情報はMTA34が生成し、セキュアデバイス10に渡していたが、MTA34は単にセキュアデバイス10にアプリ認証情報の生成を依頼し、セキュアデバイス10が生成したアプリ認証情報を受けとることにしてもよい。
また、本実施の形態では、セキュアデバイス10から情報処理端末30に発行されて起動し認証されたアプリケーションであるMTA34が、暗号化済みの端末アプリ31を復号するためのアプリ暗号鍵を要求しているが、これに限らず、予め情報処理端末30に設けられているアプリケーションやファームウェア、さらには端末OS35等にこのMTA34の機能などを持たせるようにしても勿論良い。このようにすれば、セキュアデバイス10から情報処理端末30へのMTA34の発行処理が省略できるので、その分、暗号化済みの端末アプリ31を起動するまでの時間を短縮化することができる。ただし、この場合、情報処理端末30が正規のファームウェアやOSを搭載していることを、セキュアデバイスに機器認証を行うなどして示す必要がある。
(実施の形態4)
本発明の実施の形態4は、セキュアデバイスが端末アプリに認証情報として値そのものではなく、動的メソッド、すなわちその値を計算するためのメソッド(関数)の形で動的に毎回異なるように生成した認証情報メソッドを埋め込んで発行し、端末アプリの第三者による解析を困難にすることで、安全性をさらに向上させたものである。
アプリ認証情報はできるかぎり安全な埋め込み方をすべきである。また、同時に、リソースの少ないカードアプリで実行可能でなければならない。その二つを満たす方式が必要とされる。
最善にはアプリ認証情報は端末アプリの認証処理プログラム以外には抽出不可能であることが望ましい。しかしながら、端末アプリが取りだされ解析されてしまうと、最終的にアプリ認証情報が抽出されることが懸念される。それゆえ、解析はされることを前提として対策を考えた方が安全性は遙かに高まる。
そこで、端末アプリが解析され抽出されても、次回利用時には再度解析が必要になり、抽出の自動化を困難とすることを考える。
そのため、実施の形態4では、以下で説明する動的メソッドの手法を採る。実施の形態4の基本的な動作は、実施の形態1と同様であり、主に端末アプリを発行する部分が異なる。そこで、以下では、端末アプリを発行する部分であるセキュアデバイスのアプリ発行部の動作を中心に説明する。
簡単に本実施の形態の動的メソッドの手法を説明すると、本実施の形態では、セキュアデバイスを情報処理端末に装着し、情報処理端末が端末アプリの起動を要求すると、セキュアデバイスによりランダムな計算式が生成され、その計算を行うプログラムコードが動的に生成される。
このプログラムコードがアプリ認証情報を計算する認証情報メソッドとして端末アプリに埋め込まれ、そのようなプログラムコードが埋め込まれた端末アプリが情報処理端末に発行され、情報処理端末が端末アプリを起動すると、端末アプリに埋め込まれた認証情報メソッドのプログラムコードがアプリ認証情報を計算して、セキュアデバイスと情報処理端末との間で、アプリ認証情報に基づいた認証が行われる。
図17は、本発明の実施の形態4におけるセキュアデバイス10の構成とその処理フローを示している。
図17において、実施の形態4のセキュアデバイス10のアプリ発行部101は、アプリ認証情報を埋め込む認証情報メソッド埋込部1011と、アプリ記憶部105に格納された指示書133を解釈してアプリ認証情報の埋め込み方を認証情報メソッド埋込部1011に伝える指示書解釈部1012と、アプリ認証情報を計算する演算手順をランダムに生成する認証情報演算手順生成部1013と、アプリ認証情報を計算する演算手順からアプリ認証情報の演算を実際に行う情報処理端末30用のプログラムコードである認証情報メソッドを生成する認証情報メソッド生成部1014と、ランダムに演算手順を生成するために用いる乱数を発生させる乱数発生部1015と、を備えている。さらに、実施の形態4のセキュアデバイス10は、実施の形態1に示した構成に加えて、認証情報メソッド生成部1014が認証情報メソッドを生成するために用いる命令情報を記憶する命令情報記憶部110を備えている。
次に図17における動作を説明すると、認証情報演算手順生成部1013は、乱数発生部1015からの乱数を利用して、アプリ認証情報を計算する演算手順を表す式をランダムに生成し、認証情報メソッド生成部1014に渡す。また、その演算手順を表す式を計算した結果を発行情報記憶部106に記憶する(図17の(1))。演算手順10131は、演算手順を例示しており、変数a,b,cに実施の形態1と同様の処理で、値を埋め込み、認証情報はa*b+cで演算する、という手順を示している。
認証情報メソッド生成部1014は、情報処理端末30が発行要求時に送信する当該情報処理端末30に関する機種情報に基づいて当該情報処理端末30の処理装置(CPU)の種類に応じた命令情報1101を命令情報記憶部110から取得し、命令情報1101に基づいて認証情報演算手順生成部1013からの演算手順10131を当該情報処理端末30の処理装置(CPU)が理解できる命令列に変換して認証情報メソッド10141を生成し、認証情報メソッド埋込部1011に渡す(図17の(2))。命令情報記憶部110に記憶された命令情報1101は、当該情報処理端末30の処理装置(CPU)が実行する命令情報を例示しており、アプリ認証情報を計算する演算手順を当該情報処理端末30で実行可能なプログラムコードに変換するための情報になっている。認証情報メソッド10141は、認証情報メソッドを例示しており、当該情報処理端末30の処理装置(CPU)が実行可能なプログラムコードである。
認証情報メソッド埋込部1011は、生成された認証情報メソッド10141を受け取り、指示書133の内容に従って、認証情報メソッド10141を端末アプリ31へ埋め込む。この時、命令列とは別に、式の変数に代入される値が変数領域に埋め込まれる(図17の(3))。
このため、端末アプリ31が情報処理端末30上で起動されると、認証情報メソッド10141が実行されて、アプリ認証情報が計算される。このアプリ認証情報に基づいた認証を行うために必要な値が、発行情報記憶部106に保存されており、セキュアデバイス10のアプリ認証部103はアプリ認証情報に基づいた認証処理を行う。
次に、本実施の形態における具体的な処理について図4を用いて説明する。以下では、実施の形態1の場合の動作と異なる部分についてのみ説明し、それ以外の動作は実施の形態1の場合と同様である。
まず、図4の動作(1)から(4)にあたる、セキュアデバイス10に端末アプリ31や指示書133を入れる準備について説明する。
まず、端末アプリの開発者が端末アプリ31を作成する。この時作成される端末アプリ31は、通常の端末アプリである。図18(a)は通常の端末アプリの物理イメージを表している。
次に、認証情報メソッド10141を埋め込むためのダミーメソッドをあらかじめ端末アプリに用意する。図18(b)はダミーメソッドが追加された端末アプリ31の物理イメージを表している。
ダミーメソッドはアプリ認証情報を表現するのに都合の良い変数型(例えば整数型であるint)の値を返すメソッドである。ダミーメソッドはバイナリ表現内に認証情報メソッド10141を埋め込む場所を確保するプレースホルダーとしての役割を果たす。ダミーメソッドは、単に0を返すメソッドでもよいし、発行時にメソッドの長さを長くするのが困難な場合、ある程度複雑なメソッドにして十分な長さを確保するようにしてもよい。
指示書133の生成時に、実施の形態1で行うことに加えて、メソッド情報を指示書133に入れる。端末アプリ31自身のバイナリ表現中に十分な情報が存在する場合は、その情報へのオフセットでもよい。メソッドの情報としては、実際のメソッドのオフセット(コードの開始位置)とメソッドの長さが必要となる。これらの情報の生成には、コンパイラのデバッグ情報などを利用する。
次に、図4の動作(5)にあたる、セキュアデバイスに端末アプリの発行要求を行う処理について説明する。この時、アプリIDに加え、情報処理端末30の機種、CPUの種類等、認証情報メソッド生成部1014がコードの生成に用いる命令情報を選択するための情報を送信する。
次に、図4の動作(6)にあたる、セキュアデバイス10内で実際に発行する処理について説明する。実施の形態4の場合、値を返す認証情報メソッドをランダムに生成し、ダミーメソッドと置きかえる処理を行う。図18(c)は生成されたメソッドが埋め込まれた端末アプリの物理イメージを表している。
具体的には、まず、演算手順10131を式の形でランダムに発生させ、情報処理端末30に合わせたプログラムコードに変換し、認証情報メソッド10141の生成を行う。認証情報メソッド10141の生成終了後、あるいは生成しながら、その認証情報メソッド10141が返す値を計算する。その値を記憶しておき、発行後の認証処理に用いる。指示書133の情報から認証情報メソッド10141の位置と長さの情報を得て、生成した認証情報メソッド10141をダミーメソッドと置きかえる。認証情報メソッド10141のサイズを長くすることが困難な場合は、もとのダミーメソッドのサイズを超えないように生成する。
図19(a),(b)は、それぞれ本実施の形態4における指示書テンプレートと、指示書の例である。実施の形態1と同様に、具体的な認証処理はアプリ認証情報からアプリ認証鍵を計算し、等しい鍵を持っていることを確認することによって行う。
一行目は、値を埋め込むことを指示している。この部分は、実施の形態1と同様である。
二行目は、動的メソッド、すなわち端末アプリ31へ埋め込むアプリ認証情報は値ではなく、メソッド(関数)の形での埋め込みを指示している。アプリ認証情報をメソッド(関数)の形で埋め込むことにより、外部から攻撃されても、アプリ認証情報の値の解析および抽出を困難化することができる。ここで、シンボルは、ダミーメソッドの名前を示しており、指示書を生成する際にそのメソッドのオフセットと長さに変換される。この例では、dm1, dm2 という名前のメソッドがダミーメソッドとして指定されている。[0x135,0x100] は、dm1 が 0x135(16進数表記)バイト目から始まり、0x100 バイト続くことを示している。[0x33f, 0x80] も同様に dm2 についての情報を示している。
三行目と四行目は、アプリ認証鍵をどう計算するかを示している。指示書133を生成する時に、シンボルに対して出現順に %1, %2, ... と番号が割り当てられ、その番号を用いて計算式が表現される。式の意味は実施の形態1と同様である。%6 には dm1 が返す値が、%7 には dm2 が返す値が入る。
ここで、発生させる演算手順が完全にランダムだと、0による除算等、エラーが発生するコードになるため、そのあたりを考慮にいれた生成を行う。例えば、除算を行う際に乱数によって発生させた除数が0の場合は再発生させる、除算を行わない、などの処理をする。
また、実行環境によっては、端末アプリ31が利用するリソースの情報がバイナリ表現に含まれていることがあり、実行前に検証したり、実行中に利用リソースが監査され、制限を越えてリソースを利用しないよう制限したりしている場合がある。このような環境下では、コードを変更することで利用するリソースが変更される場合、このような情報も変更し、制限に抵触しエラーが発生しないよう生成したメソッドにあわせて調整する。
このように、実施の形態4では、端末アプリ31へ埋め込むアプリ認証情報を値そのものではなく、その値を計算するプログラムコードを生成し、メソッド(関数)の形で埋め込むため、認証情報の解析および抽出の自動化を困難にでき、さらにメソッドの長さを変えられる場合には、メソッドの長さを変えることで比較攻撃に対しての耐性も得られる。
特に、この実施の形態4では、動的メソッドを採用することにより、認証情報演算手順生成部1013が乱数発生部1015からの乱数を利用して、アプリ認証情報を計算する演算手順を表す式をランダムに生成することにより、端末アプリの発行毎に認証情報メソッドの内容を毎回変更するようにしたため、より確実に認証情報の解析および抽出の自動化を困難にすることができる。
なお、本実施の形態においても、実施の形態1と同様に、端末アプリ31に対して発行アプリ12による署名が行われ、基本ローダ32あるいはアプリローダ33が端末アプリ31の署名の検証をしてから起動するようにしてもよい。このようにすれば、署名の検証により、不正な端末アプリ31を起動してしまうことを防止することが可能となる。
また、本実施の形態において、発行するアプリケーションは、情報処理端末30で起動する通常のアプリケーションとしたが、それに限らず、例えば情報処理端末30の端末OS35の一部や、JAVA(登録商標)のVMといった任意のプログラムを発行することが可能である。
また、本実施の形態は、前述したように、基本的な動作は実施の形態1と同様で、端末アプリ31を発行するセキュアデバイス10のアプリ発行部101に前述の動的メソッドを実行するための構成である認証情報演算手順生成部1013や認証情報メソッド生成部1014、認証情報メソッド埋込部1011等を設けて説明しているが、本発明では、これに限らず、MTA34を使用している前述の実施の形態2や実施の形態3に本実施の形態の動的メソッドを実行するための構成を適用するようにしても勿論良い。この場合、実施の形態2の場合は、アプリ発行部101はセキュアデバイス10内に設けられているので(図9,10参照)、実施の形態4の動的メソッドを実行するための認証情報メソッド埋込部1011等をこのアプリ発行部101に設ければよいが、実施の形態3の場合は、MTA34内の端末側アプリ発行部306(図13参照)に実施の形態4の動的メソッドを実行するための認証情報メソッド埋込部1011等またはその機能を持たせることになる。
(実施の形態5)
本発明の実施の形態5では、アプリ認証情報を埋め込んだ後に、実行内容が変化しない単位で端末アプリのバイナリ表現のバイト列を毎回異なるように並びかえて発行するファイルスクランブルを適用したセキュアデバイスについて説明する。
つまり、実施の形態5のセキュアデバイスを情報処理端末に装着し、情報処理端末が端末アプリの起動を要求すると、セキュアデバイスにより端末アプリのバイナリ表現のバイト列が実行内容が変化しない範囲で並びかえられたり、変更されたりする。
この並びかえられた端末アプリが発行され、情報処理端末が端末アプリを起動すると、セキュアデバイスと情報処理端末との間で、アプリ認証情報による認証が行われる。
基本的な動作は実施の形態1と同様であり、主に端末アプリを発行する部分が異なる。そこで、以下では、端末アプリを発行する部分であるセキュアデバイスのアプリ発行部の動作を中心に説明する。
図20は、本発明の実施の形態5におけるセキュアデバイスの構成とその処理フローを示している。
図20において、セキュアデバイス10のアプリ発行部101は、アプリ認証情報を埋め込む認証情報メソッド埋込部1011と、指示書133を解釈してアプリ認証情報の埋め込み方を認証情報メソッド埋込部1011に伝える指示書解釈部1012と、ランダムに値や並びかえ順序を生成するために用いる乱数を発生させる乱数発生部1015と、実際に認証に用いるアプリ認証情報を算出する認証情報算出部1016と、実行内容を変更しない単位で端末アプリのバイナリ表現のバイトの並びを並びかえるアプリスクランブル部1017と、を備えている。
次に図20における動作を説明する。認証情報算出部1016は、乱数発生部1015からの乱数を用いてアプリ認証情報を算出し、認証情報メソッド埋込部1011に渡す。また、アプリ認証情報を発行情報記憶部106に記憶する(図20の(1))。
認証情報メソッド埋込部1011は、算出されたアプリ認証情報を受け取って、指示書133にしたがい、アプリ認証情報を端末アプリ31に埋め込み、アプリ認証情報が埋め込まれた端末アプリ31をアプリスクランブル部1017へ出力する(図20の(2))。
アプリスクランブル部1017では、アプリ認証情報が埋め込まれた端末アプリ31を受け取って、指示書解釈部1012からの解釈に基づいて指示書133にしたがって、端末アプリ31の実行内容が変化しない範囲でアプリ認証情報が埋め込まれた端末アプリをスクランブルして発行する(図20の(3))。例えば、端末アプリがJAVA(登録商標)でプログラミングされている場合には、フィールドやメソッドといった単位でスクランブルすると、端末アプリ31の実行内容が変化しないことになる。
次に、本実施の形態における具体的な処理について図4を用いて説明する。以下では、実施の形態1の場合の動作と異なる部分についてのみ説明し、それ以外の動作は実施の形態1の場合と同様である。
まず、図4の動作(1)から(4)にあたる、セキュアデバイス10に端末アプリ31や指示書133を入れる準備について説明する。
実施の形態5のアプリスクランブル部1017では、端末アプリ31の実行内容が変化しない範囲で端末アプリ31をスクランブルするが、端末アプリ31の具体的なスクランブルは、端末アプリ31のメソッドを並びかえることで行う。そのために、指示書133の生成時に、実施の形態1で行うことに加えて、メソッド情報を指示書に入れる。端末アプリ31自身のバイナリ表現中に十分なメソッド情報が存在する場合は、そのメソッド情報へのオフセットでもよい。メソッドの情報としては、実際のメソッドのオフセット(コードの開始位置)とメソッドの長さが必要となる。
プログラムの記述に用いられる言語によっては、メソッドの位置を変化させると、アドレスが変化するため、そのままでは正しい呼び出しが行われなくなる場合がある。このような場合には、メソッドの呼び出し側の呼び出しアドレスを変更する等の処理が必要であるため、呼び出している位置等の情報が必要となる。
これらの情報が必要な場合には、その情報あるいはその情報へのオフセットを指示書133に入れる。なお、これらの情報の生成には、コンパイラ23のデバッグ情報などを利用する。
呼び出すメソッドをコード中、番号で識別している言語では、このような変更は必要ないが、メソッドの番号を変更し、呼び出す際に指定する番号も合わせて変更することで、処理内容を変えずにコードを変化させることができる。
また、呼び出すメソッドをコード中、名前で識別している言語でも、このような変更は必要ないが、メソッドの名前を変更し、呼び出す際に指定する名前も合わせて変更することで、処理内容を変えずにコードを変化させることができる。
次に、図4の(6)にあたる、セキュアデバイス10内で実際に端末アプリ31を発行する処理について説明する。例えば、端末アプリ31において複数あるメソッドのどの2つを入れかえるかを乱数で選択する。選んだメソッドの情報を利用して、選んだメソッドを入れ替える。呼び出し側の変更が必要な場合には、指示書133の情報を利用して呼び出し側の変更を行う。
図21(a),(b)は、それぞれファイルスクランブルの指示書テンプレートと指示書の例である。
一行目から三行目までは、実施の形態1と同様である。
四行目はメソッドのスクランブルを行うことを指示している。それぞれ、指示書を生成する際に、スクランブルの対象となるメソッドに関する情報が追加される。図21(b)の四行目において、[0x100,0x180] は1番目のメソッドが 0x100 バイト目から始まり、0x180 バイト続くことを意味している。
呼び出し側の変更について、図22(a),(b)を用いて説明する。メソッド名の横の括弧内はメソッドのオフセットを表わしている。図22(a)において、メソッドを呼び出している部分が、メソッドA,B,C,Dの順にオフセットを指定して呼び出している。この場合、入れかえただけでは見当違いの部分のコードを実行しようとするため正常に機能しない。
そこで、呼びだしている部分が指定しているメソッドのオフセットを入れかえ後のオフセットに変更する必要がある。これを行ったのが図22(b)であり、こちらは正常に機能する。
このように、実施の形態5では、アプリ発行部101は、アプリ認証情報を端末アプリ31に埋め込んだ後に、実行内容が変化しない範囲、例えば、JAVA(登録商標)で端末アプリ31をプログラミングしている場合にはフィールドやメソッド等の単位で端末アプリ31のバイナリ表現のバイト列を毎回異なるように並びかえて発行するため、情報処理端末30に発行された端末アプリ31におけるアプリ認証情報の位置は、スクランブルにより端末アプリ31の発行毎に毎回異なることになり、情報処理端末30に発行された端末アプリ31を複数比較しても、アプリ認証情報の位置や、その解析の手掛かりが容易に得られなくなり、アプリ認証情報の抽出の自動化を困難にした上で端末アプリ31の認証が可能である。
さらに、別方面への応用として、本実施の形態で説明した手法を用いると、ソフトウェアをインストールする機器毎に、インストールされてホストの記憶媒体上にあるバイナリ表現が異なるようにすることが可能になる。
バイナリ表現が機器毎に異なると、例えば、バイナリ表現を直接改変することで、ライセンス認証コードを回避する等の違法なパッチに対する耐性を獲得することが可能になる。
なお、実施の形態1と同様に端末アプリ31に対して発行アプリ12による署名が行い、基本ローダ32によって署名の検証をしてから起動するようにしてもよい。
また、本実施の形態において、発行するアプリケーションは情報処理端末10で起動する通常のアプリケーションとしたが、それに限らず、例えば情報処理端末30の端末OS35の一部や、JAVA(登録商標)(のVMといった任意のプログラムを発行することが可能である。
また、実施の形態4で説明した認証情報として値そのものではなく、その値を計算する認証情報メソッドを埋め込む動的メソッドの手法と、実施の形態5で説明したアプリ認証情報を端末アプリ31に埋め込んだ後に、実行内容が変化しない範囲で端末アプリ31のバイナリ表現のバイト列を毎回異なるように並びかえて発行するファイルスクランブルの二つの手法を併用するようにすれば、情報処理端末に発行された端末アプリ31を複数比較しても、アプリ認証情報の抽出の自動化をより困難化することができる。
(実施の形態6)
本発明の実施の形態6では、実施の形態1における情報処理端末30の構成要素の一部を典型的には集積回路であるLSIとして実現した場合について説明する。
図23は、実施の形態6における情報処理端末30とセキュアデバイス10のブロック構成を示している。
情報処理端末30は、セキュアデバイス10に対して端末アプリを要求し、受信した端末アプリを実行するアプリ実行LSI2300を備える。
アプリ実行LSI2300は、セキュアデバイスから受信した端末アプリを実行するアプリ実行部2301と、実施の形態1におけるアプリ発行要求送信部301とアプリ受信部302とを備える。これらは個々に1チップ化されていても良いし、一部又は全てを含むように1チップ化されていても良い。
動作は、セキュアデバイスから受信した端末アプリのコードが、情報処理端末30の端末OSではなくアプリ実行LSI2300のアプリ実行部2301によって実行される以外は、実施の形態1の場合と全く同じである。
この場合のアプリ実行LSI2300の実現方法としては、CPUコアをベースにカスタムLSIとして実現する方法もあれば、汎用DSPにソフトウェアを搭載することによって実現する方法、さらには、ハードワイヤードの専用のLSIとして実現する方法など各種の方法がある。
図24は、アプリ実行LSI2300の内部構成の一例、特に、CPUコアをベースにカスタムLSIとして実現した場合の一例を示している。
図24において、アプリ実行LSI2300は、CPU2400と、CPU2400が実行する基本プログラムを格納するROM2401と、CPU2400が処理したデータ及びCPU2400が実行する端末アプリを格納するRAM2402と、外部との入出力信号を制御する入出力信号制御部2403と、これらを結ぶバス2404とによって構成される。
この場合、CPU2400とROM2401とRAM2402とバス2404の部分がアプリ実行部2301に相当する。また、この場合、ROM2401とRAM2402は、EEPROMやFeRAM等の不揮発性メモリによって構成されていても良い。
ROM2401には、実施の形態1における基本ローダのプログラムコードである基本ローダプログラムコード2412と、セキュアデバイスから受信した端末アプリのコードを実行するアプリ実行部2301のプログラムコードであるアプリ実行部プログラムコード2411とが格納されている。例えば、端末アプリがJAVA(登録商標)アプリケーションの場合には、アプリ実行部プログラムコード2411は、JAVA(登録商標)アプリケーションのバイトコードを解釈して実行するJAVA(登録商標)バーチャルマシンのプログラムコードとなる。
CPU2400は、入出力信号制御部2403を介して受信した端末OS35からの要求に基づいて、基本ローダプログラムコード2412を実行し、セキュアデバイス10から端末アプリ31を受信してRAM2402に格納し、さらに、アプリ実行部プログラムコード2411を実行し、受信した端末アプリ31を実行する。この後、実施の形態1の場合と同じように、端末アプリ31とセキュアデバイス10との間で、端末アプリ31に埋め込まれたアプリ認証情報を用いて認証処理を行う。図24では、セキュアデバイス10から受信した端末アプリ31がRAM2402に格納されている状態を示している。
このように、実施の形態6によれば、実施の形態1における情報処理端末30の構成要素の一部をLSIとして実現した場合にも、実施の形態1と同様の効果が得れる。
(実施の形態7)
本発明の実施の形態7では、実施の形態2における情報処理端末30の構成要素の一部を典型的には集積回路であるLSIとして実現した場合につて説明する。
図25は、実施の形態7における情報処理端末30とセキュアデバイス10のブロック構成を示している。
情報処理端末30は、セキュアデバイス10に対して端末アプリ31を要求し、受信した端末アプリ31を実行するアプリ実行LSI2500を備える。
アプリ実行LSI2500は、セキュアデバイスから受信した端末アプリ31を実行するアプリ実行部2501と、実施の形態2におけるアプリ発行要求送信部301とを備える。これらは個々に1チップ化されていても良いし、一部又は全てを含むように1チップ化されていても良い。
動作は、セキュアデバイス10から受信したMTAのコードと端末アプリ31のコードが、情報処理端末30の端末OSではなくアプリ実行LSI2500のアプリ実行部2301によって実行される以外は、実施の形態2の場合と全く同じである。
この場合のアプリ実行LSI2500の実現方法としては、CPUコアをベースにカスタムLSIとして実現する方法もあれば、汎用DSPにソフトウェアを搭載することによって実現する方法、さらには、ハードワイヤードの専用のLSIとして実現する方法など各種の方法がある。
図26は、アプリ実行LSI2500の内部構成の一例、特に、CPUコアをベースにカスタムLSIとして実現した場合の一例を示している。ハードウェア構成は、実施の形態6のアプリ実行LSI2300の場合と同じである。
図26において、アプリ実行LSI2500は、CPU2400と、CPU2400が実行する基本プログラムを格納するROM2401と、CPU2400が処理したデータ及びCPU2400が実行する端末アプリを格納するRAM2402と、外部との入出力信号を制御する入出力信号制御部2403と、これらを結ぶバス2404とによって構成される。
この場合、CPU2400とROM2401とRAM2402とバス2404の部分がアプリ実行部2501に相当する。またこの場合、ROM2401とRAM2402は、EEPROMやFeRAM等の不揮発性メモリによって構成されていても良い。
ROM2401には、実施の形態2における基本ローダのプログラムコードである基本ローダプログラムコード2612と、セキュアデバイスから受信した端末アプリのコードを実行するアプリ実行部2501のプログラムコードであるアプリ実行部プログラムコード2611とが格納されている。例えば、端末アプリがJAVA(登録商標)アプリケーションの場合には、アプリ実行部プログラムコード2611は、JAVA(登録商標)アプリケーションのバイトコードを解釈して実行するJAVA(登録商標)バーチャルマシンのプログラムコードとなる。
CPU2400は、入出力信号制御部2403を介して受信した端末OS35からの要求に基づいて、基本ローダプログラムコード2612を実行し、まず、セキュアデバイス10からMTA34を受信してRAM2402に格納し、さらに、アプリ実行部プログラムコード2611を実行し、MTA34を実行する。MTA34とセキュアデバイス10との間で、MTA34に埋め込まれたアプリ認証情報を用いて認証処理を行い、次に、アプリ実行部2501が実行するMTA34は、セキュアデバイス10から端末アプリ31を受信してRAM2402に格納し、さらに、アプリ実行部2501が受信した端末アプリ31を実行する。
この後、実施の形態2の場合と同じように、端末アプリ31とセキュアデバイス10との間で、端末アプリ31に埋め込まれたアプリ認証情報を用いて認証処理を行う。図26では、セキュアデバイス10から受信したMTA34と端末アプリ31がRAM2402に格納されている状態を示している。
このように、実施の形態7によれば、実施の形態2における情報処理端末30の構成要素の一部をLSIとして実現した場合にも、実施の形態2と同様の効果が得れる。
(実施の形態8)
本発明の実施の形態8では、実施の形態3における情報処理端末30の構成要素の一部を典型的には集積回路であるLSIとして実現した場合につて説明する。
図27は、実施の形態8における情報処理端末30とセキュアデバイス10のブロック構成を示している。
情報処理端末30は、セキュアデバイス10に対して端末アプリを要求し、受信した端末アプリを実行するアプリ実行LSI2700を備える。
アプリ実行LSI2700は、セキュアデバイスから受信した端末アプリを実行するアプリ実行部2701と、実施の形態3におけるアプリ発行要求送信部301とを備える。これらは個々に1チップ化されていても良いし、一部又は全てを含むように1チップ化されていても良い。
動作は、セキュアデバイスから受信したMTAのコードと端末アプリのコードが、情報処理端末30の端末OSではなくアプリ実行LSI2700のアプリ実行部2701によって実行される以外は、実施の形態3の場合と全く同じである。
この場合のアプリ実行LSI2700の実現方法としては、CPUコアをベースにカスタムLSIとして実現する方法もあれば、汎用DSPにソフトウェアを搭載することによって実現する方法、さらには、ハードワイヤードの専用のLSIとして実現する方法など各種の方法がある。
図28は、アプリ実行LSI2700の内部構成の一例、特に、CPUコアをベースにカスタムLSIとして実現した場合の一例を示している。ハードウェア構成は、実施の形態6のアプリ実行LSI2300の場合と同じである。
図28において、アプリ実行LSI2700は、CPU2400と、CPU2400が実行する基本プログラムを格納するROM2401と、CPU2400が処理したデータ及びCPU2400が実行する端末アプリを格納するRAM2402と、外部との入出力信号を制御する入出力信号制御部2403と、これらを結ぶバス2404とによって構成される。
この場合、CPU2400とROM2401とRAM2402とバス2404の部分がアプリ実行部2701に相当する。またこの場合、ROM2401とRAM2402は、EEPROMやFeRAM等の不揮発性メモリによって構成されていても良い。
ROM2401には、実施の形態3における基本ローダのプログラムコードである基本ローダプログラムコード2812と、セキュアデバイスから受信した端末アプリのコードを実行するアプリ実行部2701のプログラムコードであるアプリ実行部プログラムコード2811とが格納されている。例えば、端末アプリがJAVA(登録商標)アプリケーションの場合には、アプリ実行部プログラムコード2811は、JAVA(登録商標)アプリケーションのバイトコードを解釈して実行するJAVA(登録商標)バーチャルマシンのプログラムコードとなる。
CPU2400は、入出力信号制御部2403を介して受信した端末OS35からの要求に基づいて、基本ローダプログラムコード2812を実行し、まず、セキュアデバイス10からMTA34を受信してRAM2402に格納し、さらに、アプリ実行部プログラムコード2811を実行し、MTA34を実行する。MTA34とセキュアデバイス10との間で、MTA34に埋め込まれたアプリ認証情報を用いて認証処理を行う。
次に、アプリ実行部2701が実行するMTA34は、セキュアデバイス10から起動する端末アプリ31のアプリ暗号鍵を受信し、暗号化済アプリ記憶部304に格納されている端末アプリの暗号を復号化し、ハッシュ値を計算し、改竄されていないことを検証した後、RAM2402に格納する。
アプリ実行部2701が実行するMTA34は、暗号の復号化処理毎に毎回異なるアプリ認証情報を生成し、アプリIDと共に発行アプリ発行部101に送信し、さらに、復号化された端末アプリ31にアプリ認証情報を渡して端末アプリ31をアプリ実行部2701上で起動する。この後、実施の形態3の場合と同じように、端末アプリ31とセキュアデバイス10との間でアプリ認証情報を用いて認証処理を行う。図28では、セキュアデバイス10から受信したMTA34と端末アプリ31がRAM2402に格納されている状態を示している。
このように、実施の形態8によれば、実施の形態3における情報処理端末30の構成要素の一部をLSIとして実現した場合にも、実施の形態3と同様の効果が得れる。
なお、実施の形態6、実施の形態7、及び実施の形態8では、アプリ実行LSIをLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
このように、本発明のセキュアデバイスは、端末アプリに当該端末アプリを認証するための情報を埋め込んで情報処理端末に発行することにより、セキュアデバイスと情報処理端末との間で端末アプリの認証を行うことが可能であり、例えば、携帯電話、携帯情報端末(PDA)、パーソナルコンピュータ、音楽再生(および録音)装置、カメラ、ビデオカメラ、自動預金預払機、街頭端末、決済端末等、各種の情報処理装置で使用される種々のセキュアデバイスに適用することができる。また、本発明の情報処理端末は、上述する各種の情報処理装置への適用が可能である。
本発明の実施の形態1に係る情報処理端末とセキュアデバイスとを示す機能ブロック図 (a)図1の情報処理端末の構成図、(b)図1のセキュアデバイスの構成図 本発明の実施の形態1におけるシーケンス図 本発明の実施の形態1における具体的なシステムを説明する図 (a)指示書テンプレートの具体例、(b)指示書の具体例、(c)指示書の数値の意味を説明する図 発行情報の具体例を示す図 (a)ダミーがある場合の指示書テンプレートの具体例、(b)ダミーがある場合の指示書の具体例を示す図 (a)カードアプリに計算させる場合の指示書テンプレートの具体例、(b)カードアプリに計算させる場合の指示書の具体例を示す図 本発明の実施の形態2に係る情報処理端末とセキュアデバイスとを示す機能ブロック図 (a)図9の情報処理端末の構成図、(b)図9のセキュアデバイスの構成図 本発明の実施の形態2におけるシーケンス図 本発明の実施の形態3に係る情報処理端末とセキュアデバイスとを示す機能ブロック図 (a)図12の情報処理端末の構成図、(b)図12のセキュアデバイスの構成図 本発明の実施の形態3におけるシーケンス図 本発明の実施の形態3における暗号化済アプリをインストールするシーケンス図 アプリ暗号鍵記憶部に記憶されるデータの具体例を示す図 本発明の実施の形態4に係る情報処理端末とセキュアデバイスとを示す機能ブロック図 (a)通常の端末アプリ、(b)ダミーメソッドが追加された端末アプリ、(c)生成されたメソッドが埋め込まれた端末アプリを示す図 (a)指示書テンプレートの具体例、(b)指示書の具体例を示す図 本発明の実施の形態5に係る情報処理端末とセキュアデバイスとを示す機能ブロック図 (a)指示書テンプレートの具体例、(b)指示書の具体例を示す図 (a)スクランブル前の端末アプリの具体例、(b)スクランブル後の端末アプリの具体例を示す図 本発明の実施の形態6に係る情報処理端末のアプリ実行LSIと、セキュアデバイスとを示す機能ブロック図 本発明の実施の形態6に係る情報処理端末のアプリ実行LSIの構成の一例を示すブロック図 本発明の実施の形態7に係る情報処理端末のアプリ実行LSIと、セキュアデバイスとを示す機能ブロック図 本発明の実施の形態7に係る情報処理端末のアプリ実行LSIの構成の一例を示すブロック図 本発明の実施の形態8に係る情報処理端末のアプリ実行LSIと、セキュアデバイスとを示す機能ブロック図 本発明の実施の形態8に係る情報処理端末のアプリ実行LSIの構成の一例を示すブロック図
符号の説明
10 セキュアデバイス
101 アプリ発行部
102 アプリ送信部
103 アプリ認証部
104 通信部
105 アプリ記憶部
106 発行情報記憶部
107 アプリ暗号鍵送信部
108 アプリ暗号鍵記憶部
109 サービス提供部
11 カードアプリ
12 発行アプリ
13 記憶装置
20 端末アプリ生成装置
21 ソースコード
22 埋め込み準備部
23 コンパイラ
24 指示書生成部
30 情報処理端末
301 アプリ発行要求送信部
302 アプリ受信部
304 暗号化済アプリ記憶部
305 端末側アプリ復号部
306 端末側アプリ発行部
307 アプリ発行依頼部
31 端末アプリ
311 アプリ認証部
312 通信部
313 サービス部
32 基本ローダ
33 アプリローダ
34 MTA
40 サーバ
2300、2500、2700 アプリ実行LSI

Claims (9)

  1. 情報処理端末に処理させる種々のアプリケーションを記憶したセキュアデバイスであって、
    前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行手段
    前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶手段と、
    前記アプリ発行手段により発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行手段により発行した前記MTAに対して送信する送信手段と、
    を有し、
    前記MTAは、埋め込まれた前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記情報処理端末上で当該セキュアデバイスの処理を代行する機能により、前記送信手段により送信された前記アプリ暗号鍵を用いて、前記情報処理端末に記憶された暗号化済の前記MTA以外の前記アプリケーションを復号するセキュアデバイス。
  2. 前記MTAは、前記復号により、復号された暗号化済の前記MTA以外のアプリケーションと、当該セキュアデバイスとの間で認証情報を共有させる請求項記載のセキュアデバイス。
  3. 前記MTAは、当該セキュアデバイスと前記MTA以外の前記アプリケーションに前記認証情報を渡すことにより当該セキュアデバイスと前記MTA以外の前記アプリケーションとの間で前記認証情報を共有させる、
    請求項記載のセキュアデバイス。
  4. 前記MTAは、当該セキュアデバイスに前記認証情報を渡すとともに前記MTA以外の前記アプリケーションに前記認証情報を埋め込むことにより当該セキュアデバイスと前記MTA以外の前記アプリケーションとの間で前記認証情報を共有させる、
    請求項記載のセキュアデバイス。
  5. 前記MTAは、前記認証情報を当該キュアデバイスから受け取り、受け取った前記認証情報を前記MTA以外の前記アプリケーションに渡すことにより、当該セキュアデバイスと前記MTA以外の前記アプリケーションとの間で前記認証情報を共有させる、
    請求項記載のセキュアデバイス。
  6. セキュアデバイスが発行した種々のアプリケーションを処理する情報処理端末であって、
    前記アプリケーションの1つであるMTA(Master Trusted Agent)を起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信手段と、
    前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信手段と、
    を有し、
    前記MTAは、前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する情報処理端末。
  7. 種々のアプリケーションを記憶したセキュアデバイスと、前記セキュアデバイスが発行した前記アプリケーションを処理する情報処理端末と、を有する通信システムであって、
    前記セキュアデバイスは、
    前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行手段と、
    前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶手段と、
    前記アプリ発行手段により発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行手段により発行した前記MTAに対して送信する送信手段と、
    を有し、
    前記情報処理端末は、
    前記MTAを起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信手段と、
    前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信手段と、
    を有し、
    前記MTAは、
    前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する通信システム。
  8. 情報処理端末に処理させる種々のアプリケーションを記憶したセキュアデバイスにおける通信方法であって、
    前記アプリケーションの1つであるMTA(Master Trusted Agent)を認証するための情報を埋め込んだ前記MTAを、前記情報処理端末に対して発行するアプリ発行ステップと、
    前記MTA以外の前記アプリケーションの識別情報であるアプリIDと、前記MTA以外の前記アプリケーションに対応するアプリ暗号鍵とを対応づけて記憶する暗号鍵記憶ステップと、
    前記アプリ発行ステップにより発行した前記MTAから前記アプリIDを受けとった場合に、受け取った前記アプリIDに対応する前記アプリ暗号鍵を前記アプリ発行ステップにより発行した前記MTAに対して送信する送信ステップと、
    を有し、
    前記MTAは、埋め込まれた前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記情報処理端末上で前記セキュアデバイスの処理を代行する機能により、前記送信ステップにより送信された前記アプリ暗号鍵を用いて、前記情報処理端末に記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する通信方法。
  9. セキュアデバイスが発行した種々のアプリケーションを処理する情報処理端末における通信方法であって、
    前記アプリケーションの1つであるMTA(Master Trusted Agent)を起動する際に、前記MTAを認証するための情報を埋め込んだ前記MTAの発行を前記セキュアデバイスに対して要求するアプリ発行要求送信ステップと、
    前記セキュアデバイスから発行された前記MTAを認証するための情報を埋め込んだ前記MTAを受信するアプリ受信ステップと、
    を有し、
    前記MTAは、前記MTAを認証するための情報を用いた認証の結果が真正である場合に、前記MTA以外の前記アプリケーションの識別情報であるアプリIDを前記情報処理端末に送信するとともに、送信した前記アプリIDに対応する、前記MTA以外の前記アプリケーションのアプリ暗号鍵を取得し、取得した前記アプリ暗号鍵を用いて、記憶された暗号化済の前記MTA以外の前記アプリケーションを復号する通信方法。
JP2004201930A 2003-08-06 2004-07-08 セキュアデバイス、情報処理端末、通信システム及び通信方法 Expired - Fee Related JP4744106B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004201930A JP4744106B2 (ja) 2003-08-06 2004-07-08 セキュアデバイス、情報処理端末、通信システム及び通信方法
US10/910,808 US8572386B2 (en) 2003-08-06 2004-08-04 Secure device, information processing terminal, integrated circuit, terminal application generation apparatus, application authentication method
TW093123457A TW200511097A (en) 2003-08-06 2004-08-05 Security device, data processing terminal, integrated circuit, terminal application program generation device and application program authentication method
CN2004100562753A CN1581118B (zh) 2003-08-06 2004-08-06 安全设备、信息处理终端、集成电路、应用装置及方法
EP04018737A EP1505470A3 (en) 2003-08-06 2004-08-06 Terminal application generation apparatus and application authentication method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003288271 2003-08-06
JP2003288271 2003-08-06
JP2004201930A JP4744106B2 (ja) 2003-08-06 2004-07-08 セキュアデバイス、情報処理端末、通信システム及び通信方法

Publications (2)

Publication Number Publication Date
JP2005071328A JP2005071328A (ja) 2005-03-17
JP4744106B2 true JP4744106B2 (ja) 2011-08-10

Family

ID=33554532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004201930A Expired - Fee Related JP4744106B2 (ja) 2003-08-06 2004-07-08 セキュアデバイス、情報処理端末、通信システム及び通信方法

Country Status (5)

Country Link
US (1) US8572386B2 (ja)
EP (1) EP1505470A3 (ja)
JP (1) JP4744106B2 (ja)
CN (1) CN1581118B (ja)
TW (1) TW200511097A (ja)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4641843B2 (ja) * 2005-03-25 2011-03-02 富士通株式会社 認証サービス提供方法
JP4840782B2 (ja) * 2005-03-25 2011-12-21 パナソニック株式会社 プログラム変換装置、セキュア処理装置、コンピュータプログラム及び記録媒体
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
EP1959370A1 (en) * 2005-12-07 2008-08-20 Matsushita Electric Industrial Co., Ltd. Secure device, information processing terminal, server, and authentication method
NL1030639C2 (nl) * 2005-12-09 2007-06-12 Antonius Theodorus Ceci Hauzer Ventilatiesysteem voor tunneltraject of overdekte weg.
JP4840000B2 (ja) * 2006-07-19 2011-12-21 株式会社日立製作所 認証情報管理システムおよび認証情報登録システム
US20100153746A1 (en) * 2006-08-10 2010-06-17 Matsushita Electric Industrial Co., Ltd. Memory controller, secure memory card, and secure memory card system
US8325889B2 (en) * 2006-12-22 2012-12-04 Mobileaxept As Efficient authentication of a user for conduct of a transaction initiated via mobile telephone
GB0714622D0 (en) * 2007-07-26 2007-09-05 Affle Ltd Application generation system and method
US8762736B1 (en) * 2008-04-04 2014-06-24 Massachusetts Institute Of Technology One-time programs
JP2010198139A (ja) * 2009-02-23 2010-09-09 Dainippon Printing Co Ltd プラットフォーム完全性検証システム及び方法,並びに,セキュリティトークン
JP5212913B2 (ja) 2009-03-02 2013-06-19 日本電気株式会社 Vpn接続システム、及びvpn接続方法
WO2011000906A1 (en) 2009-07-03 2011-01-06 Thomson Licensing Method for acquisition of software applications
KR101012872B1 (ko) * 2009-09-16 2011-02-08 주식회사 팬택 플랫폼 보안 장치 및 방법
KR20110110565A (ko) * 2010-04-01 2011-10-07 한국전자통신연구원 단말 장치간 페어링 방법 및 이를 위한 단말 장치
EP2388728A1 (en) * 2010-05-17 2011-11-23 Gemalto SA Security token for securely executing an application on a host computer
US9645992B2 (en) 2010-08-21 2017-05-09 Oracle International Corporation Methods and apparatuses for interaction with web applications and web application data
WO2013039304A1 (ko) * 2011-09-14 2013-03-21 에스케이플래닛 주식회사 전자 결제를 위한 회원 등록 방법과 그를 위한 시스템, 장치 및 단말기
US20130157639A1 (en) * 2011-12-16 2013-06-20 SRC Computers, LLC Mobile electronic devices utilizing reconfigurable processing techniques to enable higher speed applications with lowered power consumption
US9722972B2 (en) 2012-02-26 2017-08-01 Oracle International Corporation Methods and apparatuses for secure communication
JP6036845B2 (ja) 2012-12-05 2016-11-30 トヨタ自動車株式会社 車両用ネットワークの認証システム及び車両用ネットワークの認証方法
US9594896B2 (en) * 2012-12-21 2017-03-14 Blackberry Limited Two factor authentication using near field communications
US20140237239A1 (en) * 2012-12-31 2014-08-21 Safelylocked, Llc Techniques for validating cryptographic applications
US9129112B2 (en) 2013-03-15 2015-09-08 Oracle International Corporation Methods, systems and machine-readable media for providing security services
JP6479758B2 (ja) 2013-03-15 2019-03-06 オラクル・インターナショナル・コーポレイション コンピュータ上におけるアプリケーション間の信頼性の確立
US9344422B2 (en) * 2013-03-15 2016-05-17 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
CN105359090A (zh) 2013-04-26 2016-02-24 纽约市哥伦比亚大学理事会 用于移动应用的系统和方法
GB2515289A (en) * 2013-06-17 2014-12-24 Mastercard International Inc Display card with user interface
JP6322976B2 (ja) * 2013-11-29 2018-05-16 富士通株式会社 情報処理装置及びユーザ認証方法
TW201530344A (zh) * 2014-01-21 2015-08-01 hong-jian Zhou 應用程式存取保護方法及應用程式存取保護裝置
KR102263913B1 (ko) * 2014-09-24 2021-06-14 오라클 인터내셔날 코포레이션 컨테이너화된 작업공간 환경에서 그것의 실행을 제어하기 위하여 안드로이드 애플리케이션 라이프 사이클을 수정하기 위한 방법
JP6331031B2 (ja) * 2015-03-26 2018-05-30 パナソニックIpマネジメント株式会社 認証方法、認証システム及び通信機器
US11315114B2 (en) 2016-12-28 2022-04-26 Capital One Services, Llc Dynamic transaction card protected by multi-factor authentication
US11303627B2 (en) 2018-05-31 2022-04-12 Oracle International Corporation Single Sign-On enabled OAuth token
US10546444B2 (en) 2018-06-21 2020-01-28 Capital One Services, Llc Systems and methods for secure read-only authentication
US11216806B2 (en) 2018-09-19 2022-01-04 Capital One Services, Llc Systems and methods for providing card interactions
US10489781B1 (en) 2018-10-02 2019-11-26 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771253B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10511443B1 (en) 2018-10-02 2019-12-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10860814B2 (en) 2018-10-02 2020-12-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
SG11202101171VA (en) 2018-10-02 2021-03-30 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US10554411B1 (en) 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10607214B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10733645B2 (en) 2018-10-02 2020-08-04 Capital One Services, Llc Systems and methods for establishing identity for order pick up
CA3115252A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10579998B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10505738B1 (en) 2018-10-02 2019-12-10 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10841091B2 (en) 2018-10-02 2020-11-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
KR20210065961A (ko) 2018-10-02 2021-06-04 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
US10565587B1 (en) 2018-10-02 2020-02-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10542036B1 (en) 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
BR112021004710A2 (pt) 2018-10-02 2021-06-08 Capital One Services, Llc sistema e método para transmitir dados
US10771254B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for email-based card activation
US10949520B2 (en) 2018-10-02 2021-03-16 Capital One Services, Llc Systems and methods for cross coupling risk analytics and one-time-passcodes
MX2021003138A (es) 2018-10-02 2021-05-14 Capital One Services Llc Sistemas y metodos para autentificacion criptografica de tarjetas sin contacto.
US10909527B2 (en) 2018-10-02 2021-02-02 Capital One Services, Llc Systems and methods for performing a reissue of a contactless card
WO2020072670A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072694A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072440A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11210664B2 (en) 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
CA3110521A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10685350B2 (en) 2018-10-02 2020-06-16 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072537A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10582386B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10819586B2 (en) 2018-10-17 2020-10-27 Servicenow, Inc. Functional discovery and mapping of serverless resources
US10664830B1 (en) 2018-12-18 2020-05-26 Capital One Services, Llc Devices and methods for selective contactless communication
US20200226581A1 (en) 2019-01-11 2020-07-16 Capital One Services, Llc Systems and methods for touch screen interface interaction using a card overlay
US11037136B2 (en) 2019-01-24 2021-06-15 Capital One Services, Llc Tap to autofill card data
US10510074B1 (en) 2019-02-01 2019-12-17 Capital One Services, Llc One-tap payment using a contactless card
US11120453B2 (en) 2019-02-01 2021-09-14 Capital One Services, Llc Tap card to securely generate card data to copy to clipboard
US10523708B1 (en) 2019-03-18 2019-12-31 Capital One Services, Llc System and method for second factor authentication of customer support calls
US11082229B2 (en) 2019-03-18 2021-08-03 Capital One Services, Llc System and method for pre-authentication of customer support calls
US10984416B2 (en) 2019-03-20 2021-04-20 Capital One Services, Llc NFC mobile currency transfer
US10535062B1 (en) 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US10643420B1 (en) 2019-03-20 2020-05-05 Capital One Services, Llc Contextual tapping engine
US10970712B2 (en) 2019-03-21 2021-04-06 Capital One Services, Llc Delegated administration of permissions using a contactless card
US11468158B2 (en) 2019-04-10 2022-10-11 At&T Intellectual Property I, L.P. Authentication for functions as a service
US11521262B2 (en) 2019-05-28 2022-12-06 Capital One Services, Llc NFC enhanced augmented reality information overlays
US10516447B1 (en) 2019-06-17 2019-12-24 Capital One Services, Llc Dynamic power levels in NFC card communications
US10887345B1 (en) * 2019-06-26 2021-01-05 Paypal, Inc. Protecting users from phishing attempts
US10871958B1 (en) 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
US11392933B2 (en) 2019-07-03 2022-07-19 Capital One Services, Llc Systems and methods for providing online and hybridcard interactions
US11694187B2 (en) 2019-07-03 2023-07-04 Capital One Services, Llc Constraining transactional capabilities for contactless cards
US12086852B2 (en) 2019-07-08 2024-09-10 Capital One Services, Llc Authenticating voice transactions with payment card
US10713649B1 (en) 2019-07-09 2020-07-14 Capital One Services, Llc System and method enabling mobile near-field communication to update display on a payment card
US10885514B1 (en) 2019-07-15 2021-01-05 Capital One Services, Llc System and method for using image data to trigger contactless card transactions
US11182771B2 (en) 2019-07-17 2021-11-23 Capital One Services, Llc System for value loading onto in-vehicle device
US10733601B1 (en) 2019-07-17 2020-08-04 Capital One Services, Llc Body area network facilitated authentication or payment authorization
US10832271B1 (en) 2019-07-17 2020-11-10 Capital One Services, Llc Verified reviews using a contactless card
US11521213B2 (en) 2019-07-18 2022-12-06 Capital One Services, Llc Continuous authentication for digital services based on contactless card positioning
US10506426B1 (en) 2019-07-19 2019-12-10 Capital One Services, Llc Techniques for call authentication
US10541995B1 (en) 2019-07-23 2020-01-21 Capital One Services, Llc First factor contactless card authentication system and method
US10701560B1 (en) 2019-10-02 2020-06-30 Capital One Services, Llc Client device authentication using contactless legacy magnetic stripe data
US10733283B1 (en) 2019-12-23 2020-08-04 Capital One Services, Llc Secure password generation and management using NFC and contactless smart cards
US10862540B1 (en) 2019-12-23 2020-12-08 Capital One Services, Llc Method for mapping NFC field strength and location on mobile devices
US11113685B2 (en) 2019-12-23 2021-09-07 Capital One Services, Llc Card issuing with restricted virtual numbers
US10885410B1 (en) 2019-12-23 2021-01-05 Capital One Services, Llc Generating barcodes utilizing cryptographic techniques
US11651361B2 (en) 2019-12-23 2023-05-16 Capital One Services, Llc Secure authentication based on passport data stored in a contactless card
US11615395B2 (en) 2019-12-23 2023-03-28 Capital One Services, Llc Authentication for third party digital wallet provisioning
US10657754B1 (en) 2019-12-23 2020-05-19 Capital One Services, Llc Contactless card and personal identification system
US11200563B2 (en) 2019-12-24 2021-12-14 Capital One Services, Llc Account registration using a contactless card
US10664941B1 (en) 2019-12-24 2020-05-26 Capital One Services, Llc Steganographic image encoding of biometric template information on a card
US10853795B1 (en) 2019-12-24 2020-12-01 Capital One Services, Llc Secure authentication based on identity data stored in a contactless card
US10757574B1 (en) 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US10909544B1 (en) 2019-12-26 2021-02-02 Capital One Services, Llc Accessing and utilizing multiple loyalty point accounts
US11038688B1 (en) 2019-12-30 2021-06-15 Capital One Services, Llc Techniques to control applets for contactless cards
US10860914B1 (en) 2019-12-31 2020-12-08 Capital One Services, Llc Contactless card and method of assembly
US11455620B2 (en) 2019-12-31 2022-09-27 Capital One Services, Llc Tapping a contactless card to a computing device to provision a virtual number
US11210656B2 (en) 2020-04-13 2021-12-28 Capital One Services, Llc Determining specific terms for contactless card activation
US10915888B1 (en) 2020-04-30 2021-02-09 Capital One Services, Llc Contactless card with multiple rotating security keys
US11222342B2 (en) 2020-04-30 2022-01-11 Capital One Services, Llc Accurate images in graphical user interfaces to enable data transfer
US10861006B1 (en) 2020-04-30 2020-12-08 Capital One Services, Llc Systems and methods for data access control using a short-range transceiver
US11030339B1 (en) 2020-04-30 2021-06-08 Capital One Services, Llc Systems and methods for data access control of personal user data using a short-range transceiver
US11823175B2 (en) 2020-04-30 2023-11-21 Capital One Services, Llc Intelligent card unlock
US10963865B1 (en) 2020-05-12 2021-03-30 Capital One Services, Llc Augmented reality card activation experience
US11100511B1 (en) 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
US11063979B1 (en) 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
CN114065140B (zh) * 2020-08-04 2025-01-14 富泰华工业(深圳)有限公司 软件程序验证方法、电子装置及存储介质
US11062098B1 (en) 2020-08-11 2021-07-13 Capital One Services, Llc Augmented reality information display and interaction via NFC based authentication
US12165149B2 (en) 2020-08-12 2024-12-10 Capital One Services, Llc Systems and methods for user verification via short-range transceiver
US11482312B2 (en) 2020-10-30 2022-10-25 Capital One Services, Llc Secure verification of medical status using a contactless card
US11165586B1 (en) 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
US11373169B2 (en) 2020-11-03 2022-06-28 Capital One Services, Llc Web-based activation of contactless cards
US11216799B1 (en) 2021-01-04 2022-01-04 Capital One Services, Llc Secure generation of one-time passcodes using a contactless card
US11682012B2 (en) 2021-01-27 2023-06-20 Capital One Services, Llc Contactless delivery systems and methods
US11792001B2 (en) 2021-01-28 2023-10-17 Capital One Services, Llc Systems and methods for secure reprovisioning
US11562358B2 (en) 2021-01-28 2023-01-24 Capital One Services, Llc Systems and methods for near field contactless card communication and cryptographic authentication
US11687930B2 (en) 2021-01-28 2023-06-27 Capital One Services, Llc Systems and methods for authentication of access tokens
US11438329B2 (en) 2021-01-29 2022-09-06 Capital One Services, Llc Systems and methods for authenticated peer-to-peer data transfer using resource locators
US11777933B2 (en) 2021-02-03 2023-10-03 Capital One Services, Llc URL-based authentication for payment cards
US11637826B2 (en) 2021-02-24 2023-04-25 Capital One Services, Llc Establishing authentication persistence
US12143515B2 (en) 2021-03-26 2024-11-12 Capital One Services, Llc Systems and methods for transaction card-based authentication
US11245438B1 (en) 2021-03-26 2022-02-08 Capital One Services, Llc Network-enabled smart apparatus and systems and methods for activating and provisioning same
US12160419B2 (en) 2021-04-15 2024-12-03 Capital One Services, Llc Authenticated messaging session with contactless card authentication
US11935035B2 (en) 2021-04-20 2024-03-19 Capital One Services, Llc Techniques to utilize resource locators by a contactless card to perform a sequence of operations
US11961089B2 (en) 2021-04-20 2024-04-16 Capital One Services, Llc On-demand applications to extend web services
US11902442B2 (en) 2021-04-22 2024-02-13 Capital One Services, Llc Secure management of accounts on display devices using a contactless card
US11354555B1 (en) 2021-05-04 2022-06-07 Capital One Services, Llc Methods, mediums, and systems for applying a display to a transaction card
US12041172B2 (en) 2021-06-25 2024-07-16 Capital One Services, Llc Cryptographic authentication to control access to storage devices
US12061682B2 (en) 2021-07-19 2024-08-13 Capital One Services, Llc System and method to perform digital authentication using multiple channels of communication
US12062258B2 (en) 2021-09-16 2024-08-13 Capital One Services, Llc Use of a payment card to unlock a lock
US12069173B2 (en) 2021-12-15 2024-08-20 Capital One Services, Llc Key recovery based on contactless card authentication
US12166750B2 (en) 2022-02-08 2024-12-10 Capital One Services, Llc Systems and methods for secure access of storage
US12147983B2 (en) 2023-01-13 2024-11-19 Capital One Services, Llc Systems and methods for multi-factor authentication using device tracking and identity verification
US12248832B2 (en) 2023-03-07 2025-03-11 Capital One Services, Llc Systems and methods for steganographic image encoding and identity verification using same
US12248928B2 (en) 2023-03-13 2025-03-11 Capital One Services, Llc Systems and methods of secure merchant payment over messaging platform using a contactless card
US12124903B2 (en) 2023-03-16 2024-10-22 Capital One Services, Llc Card with a time-sensitive element and systems and methods for implementing the same
US12200135B2 (en) 2023-06-13 2025-01-14 Capital One Services, Llc Contactless card-based authentication via web-browser

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459046A1 (en) 1990-05-31 1991-12-04 International Business Machines Corporation Computer software protection
US5646997A (en) * 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5721781A (en) * 1995-09-13 1998-02-24 Microsoft Corporation Authentication system and method for smart card transactions
TW347498B (en) 1996-09-30 1998-12-11 Casio Computer Co Ltd Information supply system
AUPO474997A0 (en) 1997-01-23 1997-02-20 Commonwealth Bank Of Australia Distribution system with authentication
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
EP1125262A1 (en) * 1998-10-27 2001-08-22 Visa International Service Association Delegated management of smart card applications
US7127605B1 (en) * 1999-05-10 2006-10-24 Axalto, Inc. Secure sharing of application methods on a microcontroller
AU5470600A (en) 1999-06-20 2001-01-09 Thinkpulse, Inc. Method and system of performing a security check of a smart device description file
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
GB9923804D0 (en) * 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
US6351817B1 (en) * 1999-10-27 2002-02-26 Terence T. Flyntz Multi-level secure computer with token-based access control
JP4608749B2 (ja) 2000-07-24 2011-01-12 ソニー株式会社 データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体
US6857067B2 (en) * 2000-09-01 2005-02-15 Martin S. Edelman System and method for preventing unauthorized access to electronic data
EP1211587A1 (en) 2000-11-30 2002-06-05 Pentap Technologies AG Distributing programming language code
JP4188571B2 (ja) * 2001-03-30 2008-11-26 株式会社日立製作所 情報処理装置の演算方法および耐タンパ演算攪乱実装方式
JP4793673B2 (ja) * 2001-07-24 2011-10-12 大日本印刷株式会社 マルチアプリケーションicカード
JP3797195B2 (ja) 2001-10-31 2006-07-12 ソニー株式会社 情報処理端末又はその制御方法
US20030163694A1 (en) * 2002-02-25 2003-08-28 Chaing Chen Method and system to deliver authentication authority web services using non-reusable and non-reversible one-time identity codes
FR2841997B1 (fr) * 2002-07-08 2005-11-11 Gemplus Card Int Securisation d'application telechargee notamment dans une carte a puce

Also Published As

Publication number Publication date
TW200511097A (en) 2005-03-16
JP2005071328A (ja) 2005-03-17
US8572386B2 (en) 2013-10-29
EP1505470A3 (en) 2012-07-25
CN1581118B (zh) 2010-05-12
US20050033983A1 (en) 2005-02-10
CN1581118A (zh) 2005-02-16
EP1505470A2 (en) 2005-02-09

Similar Documents

Publication Publication Date Title
JP4744106B2 (ja) セキュアデバイス、情報処理端末、通信システム及び通信方法
JP6888011B2 (ja) 信頼できる実行環境を有するモバイル装置
US10009173B2 (en) System, device, and method of secure entry and handling of passwords
JP4689945B2 (ja) リソースアクセス方法
JP4689946B2 (ja) 安全なデータを使用して情報処理を実行するシステム
JP4067985B2 (ja) アプリケーション認証システムと装置
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
JPH10171648A (ja) アプリケーションを認証する装置
CN109598104B (zh) 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法
CN107832589B (zh) 软件版权保护方法及其系统
JP2012506584A (ja) セキュアソフトウェアプラフォームアクセスのための方法及び装置
JP6387908B2 (ja) 認証システム
US20150047001A1 (en) Application program execution device
KR101504647B1 (ko) 가상 머신 활성화를 갖는 휴대용 대량 저장장치
EP2232397A1 (en) Secure data utilization
KR102519828B1 (ko) 회로 칩 및 그 동작 방법
JP2010117995A (ja) アプリケーション発行システム、装置及び方法
KR20150072007A (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN113297563B (zh) 访问片上系统特权资源的方法、装置及片上系统
CN112507302B (zh) 基于密码模块执行的调用方身份鉴别方法及装置
CN105913348A (zh) 版权登记方法及系统
JP2006092281A (ja) 認証機能を備えたセキュリティデバイス
CN108259182A (zh) 一种Android应用重打包检测方法及装置
JP2004118433A (ja) 外部プログラムの動作制御方法、動作制御プログラム、動作制御装置、及び、動作制御プログラム提供装置
US9058484B2 (en) Method for checking whether program instructions have been executed by a portable end device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101203

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: 20110419

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110510

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4744106

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees