[JavaCard/자바카드] What is JAVA Card? (자바 카드 정의)

2014. 9. 5. 13:07Programing/Android / Java

1. Java Card

Java Card 기술은 Java언어로 개발된 프로그램이 스마트카드나 메모리가 제한적인 디바이스 내에서 실행 될 수 있도록 만드는 기술이다.
Java Card 기술은 스펙에 따라서 다음과 같이 크게 세가지 구성요소로 나눌 수 있다.
1) Java Card Virtual Machine
2) Java Card Runtime Environment
3) Java Card API

Java Card 플랫폼은 Application(Applet)을 카드 공급사들의 고유 기술과 분리시킴으로써 독립적이며, 표준화 된 시스템과 API를 제공한다.
Java Card API를 이용하여 보다 손쉽게 애플릿을 개발하고 다양한 스마트카드 아키텍처에 적용할 수 있다.
Java Card 기술은 기존의 스마트카드 기술과의 호환이 가능하다.
스마트카드 메모리 관리, 통신 프로토콜 , 응용 애플리케이션 실행 등에 대해서 국제표준 ISO 7816을 따른다.
Java Card는 ISO 7816 APDU 프로토콜을 사용하는 단말기와 통신함으로써 기존의 단말기 관련 기술과도 또한 호환이 가능하다.
기능 : 애플릿의 Post Issuance, 애플릿 호환


Java card Structure(source: http://www.javaworld.com/)



2. Visa Open Platform

Open Platform은 개방형 플랫폼으로 특정한 개발사의 숨겨진 구조가 아닌 여러 회사에서 공유해서 사용할 수 있는 공개된 플랫폼을 의미한다.
개방형 플랫폼 이전에는 각 개발사에서 독자적으로 정의한 방식에 의해서 구동하는 폐쇄형 구조의 스마트카드가 개발되었다. 그러나 이 방식은 여러 회사에서 개발된 서로 다른 제품들간의 상호 호환성을 부족하게 만들었다. 이것은 처음에 스마트카드 시스템이 구축되면 추후에 특정 회사의 특정 제품에 의존하는 구조가 만들어진다.

이와는 다르게 개방형 플랫폼은 공개된 규격에 의해서 여러 회사에서 동일한 방식으로 스마트카드 제품을 개발하여 공급할 수 있다. 플랫폼이라는 단어가 의미하듯이 각 개발사들은 응용 프로그램들이 동작될 수 있는 스마트카드의 기반 구조를 제공한다. 사용자들은 원하는 응용 프로그램을 개발하여 플랫폼에 탑재하여 사용한다. 동일한 규격에 따라서 개발된 플랫폼이기 때문에 여러 회사에서 개발된 플랫폼은 호환성을 제공하여 특정 제품에 의존하지 않도록 한다.

개방형 플랫폼의 또 다른 특징으로 여러 개의 응용 프로그램을 사용할 수 있도록 하는 Multi-Application 지원이다. 이것은 플랫폼이 지원하는 기능 한도 내에서 규격에 맞추어 개발된 여러 가지 응용 프로그램이 하나의 스마트카드에서 동작할 수 있도록 하는 것이다.

대표적인 개방형 플랫폼으로는 자바카드와 MULTOS가 있다. 또한 자바카드와 MULTOS플랫폼에서의 응용 프로그램의 관리를 위한 표준으로 Global Platform 규격이 마련되어 있다. 이 규격은 GLOBAL PLATFORM, Inc. 에서 관리되고 있으며, 개방형 플랫폼 기반의 스마트카드를 관리하기 위한 표준이다. Global Platform 규격은 카드 부문의 표준뿐만 아니라 스마트카드 단말기와 지원할 인프라 구축까지 포함되어 있다. 각 부분들이 통합적으로 안전성, 융통성 및 편리성 있는 스마트카드 환경을 제공한다. 





Open Platform의 장점 

Open Platform은 융통성 있는 기술 표준으로, 전세계 스마트카드 산업 분야에서 많은 참여자들의 개방형 플랫폼에 참여하도록 유도하고 있다. 스마트카드 부분을 포함하여 단말기, 시스템을 포함한 전체 통합 시스템의 구축에 대해 전반적으로 정의함으로써 전세계로 호환성이 보장되는 Multi-Application 스마트카드의 개발을 가능하게 하고 있다.

- 개발자 선택권 

발급사에서는 보편화된 개발 플랫폼의 사용으로 스마트카드 시장에서의 문제점 중에 하나인 개발자 확보 문제 및 적기 출시 문제를 해결할 수 있다. 초기 스마트카드 시장에서는 소수의 특급 개발자들만이 스마트카드를 다룰 수가 있었다. 하지만 Java와 같은 아주 보편화된 개발 언어를 사용하여 응용 프로그램을 개발할 수 있게 됨으로 인해서 수 천명 이상의 개발자들을 손쉽게 확보할 수 있게 되었다. 또한 특정한 개발 Tool이 아닌 다양하게 개발된 개발 Tool을 사용함으로써 개발자들도 빠르고 편안하게 스마트카드 제품을 개발할 수 있게 되었다.

- 다목적 어플리케이션 지원 

오픈 플랫폼은 보안성이 검증된 관리 방법이 정의되어 있기 때문에, 하나의 스마트카드에 여러 개의 응용 프로그램을 탑재할 수 있게 되었다. 이것은 기존 스마트카드 제품들이 하나의 응용 프로그램만 지원하는 것에 비해서 많은 장점을 제공한다. 카드 발급사들은 하나의 카드에 여러 가지 응용 프로그램을 탑재할 수 있기 때문에 고객의 요구 사항에 맞추어 맞춤형 제품의 발급이 가능하다. 또한 다양한 기능을 지원하도록 하는 오픈 플랫폼의 단말기 규격 덕분에 다양한 서비스들을 카드 소지자에게 제공할 수 있다.

- 개방형 플랫폼 

오픈 플랫폼은 다양한 종류의 스마트 카드 또는 단말기 기술을 지원하기 위해 설계되었다. 이것은 스마트카드 인프라를 개발하는데 투자한 것이 결코 손실이 되지 않음을 의미한다. 만약 새로운 스마트카드 플랫폼을 도입하더라도 기존에 개발된 스마트카드 인프라는 다시 활용될 수 있다. 즉 오픈 플랫폼의 구조와 디자인, 스마트카드와 단말기 사이의 명령/응답 형식은 일정하게 유지하고, 변경 될 필요가 없다. 이것은 새로운 기능을 가진 신규 제품이 자주 도입되는 스마트카드 시장에서 아주 의미있는 장점이다.

 

3. Combi card
하나의 카드 내에서 접촉/비접촉식 카드가 공유할 수 있는 부분들을 상호 공유하는 화학적 결합형태의 카드로써, 내부 자원공유를 통한 이질적 어플리케이션 (예 : 칩운영체계, 동일키나 패스워드) 의 통합 효과를 가져올 수 있다. 
  


 Refer : http://www.sp-tek.com/korea/card/card02.asp