Transcript JSR-177
JSR-177
Security and Trust Services
API for J2ME
(SATSA)
02k0036
守屋志保
CONTENTS
・目的
・機能・利点
・公式ページの記述
仕様・platform・依存関係
・JRS-177
構成
定義されているパッケージ
目的
J2MEを動かすことが可能なデバイスをセキュリティ
面でサポートをするAPI集を定義する
具体的にはさまざまなアプリケーション、例えば法
人のネットワーク、モバイルコマース、およびデジタ
ル権管理へのアクセスなどの広い種類のアプリ
ケーションをサポートするためのセキュリティメカニ
ズムを提供するAPI
http://jcp.org/en/jsr/detail?id=177
JSR177の機能・利点
• 端末上で動くJavaアプリとSIMを連携させる
•
•
(SIMカードへのアクセスをjavaで記述することがで
きる)
個人情報の保護
今までは端末に入っていたがカードに入ることで
差し替えた時(機種変更時)に全ての設定がイン
ポートされる
機種に依存しない
仕様が決められたことにより、携帯メーカ間によ
るコーディングの差異が生じない
これが公式ページ
公式ページより抜粋
• Specification
(JSR-177のおおまかな仕様)
• platform
(これらが動くプラットホーム)
• dependencies
(依存関係)
について
Specification
(仕様)
• ユーザの秘密鍵、公開鍵、証明書、資格証明書、個
人情報などの機密のデータを保護
• 支払いプロトコルをサポートする暗号の操作や、
データ保全や、データ秘密性などの保障
• J2MEが稼働できるデバイスにおいて、カードに保存
されたデータ、アプリケーションにJAVA言語によって
アクセスできるようにする
platform
• CDC、またはCLDC上で動作
J2SEなどの大きい環境では不適切
• スマートカードコミュニケーションAPIは
Generic Connection Framework(GCF)に基く。
(GCFはCLDC1.0仕様)
dependencies
• 仕様統一のため機種依存はなし。
• さまざまなデバイスの上で動く
(とされている)
JSR-177 ドキュメント
↑ここからダウンロードしてください
https://jsecom15k.sun.com/ECom/EComActionServlet/Legal
Page:~:com.sun.sunit.sdlc.content.LegalWebPageInfo;js
essionid=378DA33777BA5D4B2341C49074FE4E4E;jsessi
onid=378DA33777BA5D4B2341C49074FE4E4E)
ドキュメントの構成
Chapter 1: Overview (p1-p6)
Chapter 2: Package Summary (p7-p10)
Chapter 3-17: JavadocTM API documentation
(p1-146p)
Appendix A ~ F (p147-p181)
・大半がAPIのドキュメンテーション
・他の部分は使用に際しての注意
定義されるパッケージ
• SATSA-APDU optional package
• SATSA-JCRMI optional package
• SATSA-PKI optional package
• SATSA-CRYPTO optional package
※ SATSA:Security and Trust Services API
SATSA-APDU optional package
• スマートカード上にあるアプリケーションと接
続するためにAPDUConnection を生成す
る
• 同時に複数個のAPDUConnectionを生成
することが可能
• javax.microedition.apdu 中で定義
SATSA-APDU optional package(cont.)
コーディング例
APDUConnection acn = null;
try{
// Create an APDUConnection object
acn = (APDUConnection)
Connector.open(“apdu:0;target=A0.0.0.67.4.7.1F.3.2C.3”);
// Send a command APDU and receive response APDU
responseAPDU = acn.exchangeAPDU(commandAPDU);
...
} catch (IOException e) {
...
} finally {
...
if(acn != null) {
// Close connection
acn.close();
}
...
}
...
SATSA-JCRMI optional package
• カード内のデータにアクセスできる
• JAVAアプリケーションは、カードのリモート・オ
ブジェクトのメソッドを呼び出して、参照を他の
リモート・オブジェクトとして得ることができま
す。
• javax.microedition.jcrmi 中で定義
SATSA-JCRMI optional package(cont.)
コーディング例
try {
JavaCardRMIConnection connection = (JavaCardRMIConnection)
Connector.open(“jcrmi:0;AID=A0.0.0.67.4.7.1F.3.2C.3”);
Counter counter = (Counter) connection.getInitialReference();
...
currentValue = counter.add(50);
...
connection.close();
} catch (Exception e) {
...
}
SATSA-JCRMI optional package(cont.)
JavaCardRMIConnection
インターフェースのメソッド
changePin(int)
disablePin(int)
など、PINの操作などができる
SATSA-PKI optional package
• 秘密鍵 をあつかう
(CMSMessageSignatureServiceクラス )
• 証明書を操作する
(UserCredentialManagerクラス )
SATSA-CRYPTO optional package
• 署名照合、暗号化、および復号化 をあつかう
-MessageDigest クラス
-Signature クラス
-Cipher クラス
-KeyFactory クラス
-SecretKeySpe クラス
などのメソッドを通じて操作する
まとめ
• JSR-177を使うことで携帯電話においてのセ
キュリティホールが少なくなる
理由
・仕様が統一されるため、プログラムのノウ
ハウが確立されやすい
・アクセス法が一律になったため