Tuesday, February 10, 2015

Standard untuk Single Wire Protocol (SWP)

Beberapa standard ETSI yang digunakan untuk Single Wire Protocol (SWP), yaitu :
  1. ETSI TS 101 220; Smart Cards; ETSI numbering system for telecommunication application providers
  2. ETSI TS 102 221; Smart Cards; UICC-Terminal interface; Physical & logical characteristics
  3. ETSI TS 102 222; Integrated Circuit Cards (ICC); Administrative commands for telecommunications applications
  4. ETSI TS 102 223; Smart Cards; Card Application Toolkit (CAT)
  5. ETSI TS 102 225; Smart Cards; Secured packed structure for UICC based applications
  6. ETSI TS 102 226; Smart Cards; Remote APDU structure for UICC based applications
  7. ETSI TS 102 230; Smart Cards; UICC-Terminal interface; Physical, electrical, and logical test specification
  8. ETSI TS 102 240; Smart Cards; UICC Application Programming Interface and Loader Requirements; Service description
  9. ETSI TS 102 241; Smart Cards; UICC Application Programming Interface (UICC API) for Java Card (TM)
  10. ETSI TS 102 267; Smart Cards; Connection Oriented Service API for the Java Card (TM) platform
  11. ETSI TS 102 268; Smart Card; Test specification for the UICC Application Programming Interface (API) for Java Card (TM)
  12. ETSI TS 102 412; Smart Cards; Smart Card Platform Requirements Stage 1
  13. ETSI TS 102 127; Smart Cards; Transport protocol for CAT applications; Stage 2
  14. ETSI TS 102 483; Smart Cards; UICC-Terminal interface; Internet Protocol connectivity between UICC and terminal
  15. ETSI TS 102 484; Smart Cards; Secure channel between a UICC and an end-point terminal
  16. ETSI TS 102 600; Smart Cards; UICC-Terminal interface; Characteristics of the USB interface
  17. ETSI TS 102 613; Smart Cards; UICC-Contactless Frond-end (CLF) Interface; Part 1: Physical and data link layer characteristic
  18. ETSI TS 102 622; Smart Cards; UICC-Contactless Frond-End (CLF) Interface; Host Controller Interface (HCI)
  19. ETSI TS 102 694-1; Smart Cards; Test speficication for the Single Wire Protocol (SWP) interface; Part 1: Terminal features
  20. ETSI TS 102 694-2; Smart Cards; Test specification for the Single Wire Protocol (SWP) interface; Part 2: UICC features
  21. ETSI TS 102 695-1; Smart Cards; Test specification for the Host Controller Interface (HCI); Part 1: Terminal features
  22. ETSI TS 102 695-2; Smart Cards; Test specification for the Host Controller Interface (HCI); Part 2: UICC features
  23. ETSI TS 102 695-3; Smart Card; Test specification for the Host Contrller Interface (HCI); Part 3: Host Controller features
  24. ETSI TS 102 705; Smart Card; UICC Application Programming Interface for Java Card for Contactless Applications
  25. ETSI TS 103 115; Smart Cards; Test specification for UICC Application Programming Interface for Java Card for Contactless Applications; Test Environment and Annexes
  26. ETSI TS 103 383; Smart Cards; Embedded UICC; Requirements Specification
  27. ETSI TS 103 484-1; Smart Cards; Test specification for the Secure Channel Interface; Part 1: Terminal Features
  28. ETSI TS 103 484-2; Smart Cards; Test specification for the Secure Channel Interface; Part 2: UICC features

Untuk standard ISO :
  1. ISO/IEC 14443-2 : "Identification cards - Contactless integrated circuit(s) cards - Proximity cards - Part 2 : Radio frequency power and signal interface"
  2. ISO/IEC 14443-3 : "Identification cards - Contactless integrated circuit(s) cards - Proximity cards - Part 3 : Initialization and anticollision"
  3. ISO/IEC 14443-4 : "Identification cards - Contactless integrated circuit(s) cards - Proximity cards - Part 4 : Transmission protocol"
  4. ISO/IEC 7810 : "Identification cards - Physical characteristics"
  5. ISO/IEC 7811-1 : "Identification cards - Recording technique - Part 1 : Embossing"
  6. ISO/IEC 7816-1 : "Identification cards - Integrated circuit(s) cards with contacts - Part 1: Physical characteristics"
  7. ISO/IEC 7816-2 : "Identification cards - Integrated circuit cards - Part 2 : Cards with contacts - Dimensions and location of the contacts"
  8. ISO/IEC 7816-3 : "Identification cards - Integrated circuit cards - Part 3 : Cards with contacts - Electrical interface and transmission protocols"
  9. ISO/IEC 7816-4 : "Identification cards - Integrated circuit cards - Part 4: Organization, security and commands for interchange"

Standard lain :
  1. GlobalPlatform : "Java Card API and Export File for Card Specification", see https://www.globalplatform.org
  2. GlobalPlatform : "Security Upgrade for Card Content Management - GlobalPlatform Card Specification v2.2 - Amendment E", see https://www.globalplatform.org
  3. GlobalPlatform : "Card Specification Version 2.2, Amendment B & C: Contactless Services", see https://www.globalplatform.org
  4. GlobalPlatform : "Card UICC Configuration"
  5. GlobalPlatform : "Confidental Card Content Management Card Specification v2.2 - Amendment A V1.0.1"
  6. NIST Special Publication 800-38A (2001) : "Recommendation for Block Cipher Modes of Operation - Methods and Tecniques"
  7. NIST Special Publication 800-38B (2001) : "Recommendation for Blcok Cipher Modes of Operation : The CMAC Mode For Authentication"
  8. FIPS-197 (2001) : "Advanced Encryption Standard (AES)", see http://csrc.nist.gov/publications/fips/index.html

Friday, February 6, 2015

Pengantar Java Native Inteface (JNI)

Postingan ini akan memberikan beberapa patah kalimat untuk pengenalan mengenai Java Native Interface (JNI). JNI adalah sebuah native programming interface buat java. Dengan JNI ini, program-program dalam bahasa java yang berjalan pada Java Virtual Machine (JVM) dapat berinteraksi dengan program yang ditulis dengan bahasa programming lain, misalnya C, C++, dan assembly. Keuntungan utama dari JNI yaitu tidak ada batasan untuk implementasi JVM, sehingga vendor-vendor JVM dapat menambahkan fitur-fitur baru pada JVM tanpa mempengaruhi part lain dalam JVM yang telah dibuat oleh programmer java ataupun vendor-vendor JVM lainnya.

Eeem... Mungkin selama ini kita dapat membuat aplikasi dengan hanya menggunakan bahasa java saja, tetapi pada kondisi tertentu bahasa java tidak dapat memenuhi aplikasi yang akan kita buat karena mungkin harus mengakses hardware dari suatu perangkat. Nah disini kan berarti kita butuh bahasa C atau assembly untuk pengaksesan hardware yang menggunakan JNI untuk berinteraksi dengan bahasa java. Selain itu, boleh jadi kita telah membuat suatu program dalam bentuk dll, dan terlihat membutuhkan waktu untuk menulis kembali program tersebut dalam bahasa java, nah disini juga JNI dapat digunakan. So secara ringkas, dengan membuat JNI kita dapat menggunakan native methods untuk beberapa hal yaitu :
  • Membuat, mengamati, dan mengupdate object-object java termasuk array dan string-nya
  • Memanggil methods java
  • Catch dan throws beberapa eksepsi
  • Meload kelas dan mengambil informasi dari kelas tersebut
  • Melakukan runtime checking
Beberapa hal yang perlu diperhatikan untuk membuat native method yaitu:
  1. Binary compatibility. Maksudnya para programmer harus menjaga hanya satu versi saja native method yang digunakan untuk suatu platform. Nah karena cuma satu versi saja berarti native methodnya menjadi jelas. Tentunya dibutuhkan diskusi oleh semua pihak untuk membuat native method seperti ini.
  2. Efisiensy.
  3. Functionality. Paling tidak native method dapat menggunakan beberapa fitur internal dari JVM untuk menyelesaikan task tertentu.
Saat ini ada beberapa native method interface yang sering digunakan yaitu
  • JDK 1.0 Native Method Inteface
  • Java Runtime Interface
  • Jaw Native Interface and Java/COM Inteface
  • Netscape JRI