200 likes | 325 Views
JSR-177 Security and Trust Services API for J2ME (SATSA). 02k0036 守屋志保. CONTENTS ・目的 ・機能・利点 ・公式ページの記述 仕様・ platform ・依存関係 ・ JRS -177 構成 定義されているパッケージ. 目的. J2ME を動かすことが可能なデバイスをセキュリティ面でサポートをする API 集を定義する
E N D
JSR-177Security and Trust ServicesAPI for J2ME(SATSA)JSR-177Security and Trust ServicesAPI 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/LegalPage:~:com.sun.sunit.sdlc.content.LegalWebPageInfo;jsessionid=378DA33777BA5D4B2341C49074FE4E4E;jsessionid=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-PKIoptional 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 { JavaCardRMIConnectionconnection = (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-PKIoptional package • 秘密鍵 をあつかう (CMSMessageSignatureServiceクラス ) • 証明書を操作する (UserCredentialManagerクラス )
SATSA-CRYPTO optional package • 署名照合、暗号化、および復号化 をあつかう -MessageDigest クラス -Signature クラス -Cipher クラス -KeyFactory クラス -SecretKeySpe クラス などのメソッドを通じて操作する
まとめ • JSR-177を使うことで携帯電話においてのセキュリティホールが少なくなる 理由 ・仕様が統一されるため、プログラムのノウ ハウが確立されやすい ・アクセス法が一律になったため