본문 바로가기

JAVA

자바의 스마트카드 이론

출처 : http://blog.paran.com/innercase01/45479237

자바가 다양한 컴퓨팅 환경에 적용되면서 그 영역을 넓혀가고 있다. 특히 엔터프라이즈 환경에서 자바의 위치는 이제 확고한 지위를 보장받고 있다. 그렇지만 자바는 원래 태생이 임베디드 시스템이라는 사실은 잘 알려진 이야기이다. 이러한 근본과 맞물려 새롭게 변하고 있는 스마트 카드 환경에서 자바는 매우 유연한 솔루션으로 급부상하고 있다. 다소 부담스러운 스마트 카드 분야는 이제 자바의 향기를 맡으면서 부드러워지고 있다. 앞으로 새롭게 부상할 자바 카드의 모든 것을 4회에 걸쳐 낱낱이 파헤쳐 보고자 한다.


일상생활에서 자바를 접할 수 있는 예를 들자면 어떤 분야가 있을까? 요즘은 엔터프라이즈 환경에서 J2EE를 많이 사용하고 있기 때문에 인터넷을 접하는 환경이라면 자바를 이미 접하고 있다고 생각해도 무방할 것 같다. 그리고 휴대전화의 수많은 애플리케이션 중에서도 특히 모바일 게임들은 자바로 개발되는 경우가 많다.
이러한 적용 분야보다 좀 더 실생활에 밀접한 환경을 살펴보자면 현재 대부분의 사람들이 일반 경제활동에서 신용카드를 사용하고 있다. 하지만 이러한 신용카드에 자바가 사용되고 있다는 사실을 알고 있는 사람들은 과연 얼마나 될까. 신용카드 중에서도 작은 칩이 들어가 있는 스마트 카드가 있다. 이 경우 자바 VM(Java Virtual Machine)을 탑재하여 자바로 스마트 카드 애플리케이션을 작성하는 자바 카드 기술이 사용되고 있다.


스마트 카드에 대해
스마트 카드는 1968년 Jergen Dethloff가 마이크로프로세서를 개인 휴대 수단으로 IC 카드에 대한 개념을 제안한 이래 1974년 프랑스의 Roland Moreno가 최초로 형상화하여 프랑스 전기통신공사에서 처음 도입하여 사용한 역사가 매우 오래된 하드웨어 플랫폼이다.
스마트 카드는 작은 컴퓨터와 같아서 8, 16, 32비트 마이크로프로세서, EEPROM(Electrically Erasable Programmable Read-Only Memory), RAM, ROM, RSA(Ron Rivest, Adi Shamir, and Leonard Adleman), DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등과 같은 보안 관련 프로세서 그리고 작지만 운영체제까지 탑재하고 있다. 이러한 스마트 카드는 30여년 전부터 유럽에서 소개되어 실생활에서 많이 사용되고 있는데 전자화페 분야는 물론 근래에는 휴대전화에 이 스마트 카드를 탑재하여 사용하기도 한다.

스마트 카드의 응용분야
스마트 카드는 이미 많은 분야에서 활용되고 있는데 대표적인 분야로서 모바일과 금융권 환경을 들 수 있다. 특히 국내는 올해부터 은행에서 사용하는 현금카드가 스마트 카드로 대체되는 시점에 있고 이미 휴대폰에 스마트 카드가 탑재되어 금융거래와 부가서비스를 진행하고 있다.
◆ 휴대전화 사용시 보안이 요구되는 사용자 인증 서비스 분야
◆ 휴대전화 로밍 서비스 분야
◆ 금융권 지불 및 포인트 적립 서비스 분야
◆ 사원증 및 출입증과 같은 출입통제 서비스 분야
◆ 전자화폐와 같은 현금 가치 저장 서비스 분야
◆ 전자 주민증과 같은 ID(Identification) 서비스 분야
◆ 비행기표나 영화표와 같은 티켓 서비스 분야
◆ 주차 및 교통비 지불 서비스 분야
특히 유럽 및 중국은 GSM(Global System for Mobile communi cation) 규격의 휴대전화를 사용하는데 이 휴대전화에는 SIM (Subscribe Identity Module) 타입의 스마트 카드가 탑재되어 사용자 정보를 관리해 여러 지역에서 휴대전화를 사용할 수 있도록 하거나 SMS(Short Message Service)를 주고받을 수 있도록 해준다. 국내는 교통카드와 전자화폐 분야에서 스마트 카드를 많이 사용하고 있다. 이렇게 우리는 실생활에서 스마트 카드를 자연스럽게 접하고 있는 셈이다. 물론 스마트 카드를 사용한다는 것은 단순히 스마트 카드에 있는 메모리에 데이터를 저장하는 수단으로서가 아니라 스마트 카드의 특징인 우수한 보안 능력을 활용한다는 측면이 더 강하다.
스마트 카드는 단말기(terminal)와 카드리더(card reader)를 통해 서로 정보를 주고받기 위한 방법으로 일반적으로 접촉식(Contact)과 비접촉식(Contactless)으로 구분한다

향기로운 자바를 스마트 카드에 담자-2
출판일 : 2004년 2월호

접촉식 스마트 카드
카드를 수용하는 인터페이스 장치(IFD : Interface device)에 삽입되었을 때 카드의 IFD 접점에 접촉됨으로써 전원이 공급되어 카드가 활성화되는 형태이다. 이러한 형태의 카드는 고도의 보안을 요구하면서 카드 내의 특정 암호화 알고리즘을 수행할 필요가 있는 분야에서 주로 사용된다.
접촉식 IC 카드는 주로 금융권의 필요에 의해 발전되었는데 대표적인 규격이 EMV(Europay, Master, Visa)이다. 참고로 세계 3대 카드사인 유로페이, 마스터, 비자가 2006년부터 신규로 발급되는 신용카드에 대해 기존 M/S(Magnetic Stripe)에 신용정보를 넣지 않고 IC 칩에 개인의 정보를 넣기로 결정한바 있다.

자바가 다양한 컴퓨팅 환경에 적용되면서 그 영역을 넓혀가고 있다. 특히 엔터프라이즈 환경에서 자바의 위치는 이제 확고한 지위를 보장받고 있다. 그렇지만 자바는 원래 태생이 임베디드 시스템이라는 사실은 잘 알려진 이야기이다. 이러한 근본과 맞물려 새롭게 변하고 있는 스마트 카드 환경에서 자바는 매우 유연한 솔루션으로 급부상하고 있다. 다소 부담스러운 스마트 카드 분야는 이제 자바의 향기를 맡으면서 부드러워지고 있다. 앞으로 새롭게 부상할 자바 카드의 모든 것을 4회에 걸쳐 낱낱이 파헤쳐 보고자 한다.


일상생활에서 자바를 접할 수 있는 예를 들자면 어떤 분야가 있을까? 요즘은 엔터프라이즈 환경에서 J2EE를 많이 사용하고 있기 때문에 인터넷을 접하는 환경이라면 자바를 이미 접하고 있다고 생각해도 무방할 것 같다. 그리고 휴대전화의 수많은 애플리케이션 중에서도 특히 모바일 게임들은 자바로 개발되는 경우가 많다.
이러한 적용 분야보다 좀 더 실생활에 밀접한 환경을 살펴보자면 현재 대부분의 사람들이 일반 경제활동에서 신용카드를 사용하고 있다. 하지만 이러한 신용카드에 자바가 사용되고 있다는 사실을 알고 있는 사람들은 과연 얼마나 될까. 신용카드 중에서도 작은 칩이 들어가 있는 스마트 카드가 있다. 이 경우 자바 VM(Java Virtual Machine)을 탑재하여 자바로 스마트 카드 애플리케이션을 작성하는 자바 카드 기술이 사용되고 있다.


스마트 카드에 대해
스마트 카드는 1968년 Jergen Dethloff가 마이크로프로세서를 개인 휴대 수단으로 IC 카드에 대한 개념을 제안한 이래 1974년 프랑스의 Roland Moreno가 최초로 형상화하여 프랑스 전기통신공사에서 처음 도입하여 사용한 역사가 매우 오래된 하드웨어 플랫폼이다.
스마트 카드는 작은 컴퓨터와 같아서 8, 16, 32비트 마이크로프로세서, EEPROM(Electrically Erasable Programmable Read-Only Memory), RAM, ROM, RSA(Ron Rivest, Adi Shamir, and Leonard Adleman), DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등과 같은 보안 관련 프로세서 그리고 작지만 운영체제까지 탑재하고 있다. 이러한 스마트 카드는 30여년 전부터 유럽에서 소개되어 실생활에서 많이 사용되고 있는데 전자화페 분야는 물론 근래에는 휴대전화에 이 스마트 카드를 탑재하여 사용하기도 한다.

스마트 카드의 응용분야
스마트 카드는 이미 많은 분야에서 활용되고 있는데 대표적인 분야로서 모바일과 금융권 환경을 들 수 있다. 특히 국내는 올해부터 은행에서 사용하는 현금카드가 스마트 카드로 대체되는 시점에 있고 이미 휴대폰에 스마트 카드가 탑재되어 금융거래와 부가서비스를 진행하고 있다.
◆ 휴대전화 사용시 보안이 요구되는 사용자 인증 서비스 분야
◆ 휴대전화 로밍 서비스 분야
◆ 금융권 지불 및 포인트 적립 서비스 분야
◆ 사원증 및 출입증과 같은 출입통제 서비스 분야
◆ 전자화폐와 같은 현금 가치 저장 서비스 분야
◆ 전자 주민증과 같은 ID(Identification) 서비스 분야
◆ 비행기표나 영화표와 같은 티켓 서비스 분야
◆ 주차 및 교통비 지불 서비스 분야
특히 유럽 및 중국은 GSM(Global System for Mobile communi cation) 규격의 휴대전화를 사용하는데 이 휴대전화에는 SIM (Subscribe Identity Module) 타입의 스마트 카드가 탑재되어 사용자 정보를 관리해 여러 지역에서 휴대전화를 사용할 수 있도록 하거나 SMS(Short Message Service)를 주고받을 수 있도록 해준다. 국내는 교통카드와 전자화폐 분야에서 스마트 카드를 많이 사용하고 있다. 이렇게 우리는 실생활에서 스마트 카드를 자연스럽게 접하고 있는 셈이다. 물론 스마트 카드를 사용한다는 것은 단순히 스마트 카드에 있는 메모리에 데이터를 저장하는 수단으로서가 아니라 스마트 카드의 특징인 우수한 보안 능력을 활용한다는 측면이 더 강하다.
스마트 카드는 단말기(terminal)와 카드리더(card reader)를 통해 서로 정보를 주고받기 위한 방법으로 일반적으로 접촉식(Contact)과 비접촉식(Contactless)으로 구분한다

향기로운 자바를 스마트 카드에 담자-2
출판일 : 2004년 2월호

접촉식 스마트 카드
카드를 수용하는 인터페이스 장치(IFD : Interface device)에 삽입되었을 때 카드의 IFD 접점에 접촉됨으로써 전원이 공급되어 카드가 활성화되는 형태이다. 이러한 형태의 카드는 고도의 보안을 요구하면서 카드 내의 특정 암호화 알고리즘을 수행할 필요가 있는 분야에서 주로 사용된다.
접촉식 IC 카드는 주로 금융권의 필요에 의해 발전되었는데 대표적인 규격이 EMV(Europay, Master, Visa)이다. 참고로 세계 3대 카드사인 유로페이, 마스터, 비자가 2006년부터 신규로 발급되는 신용카드에 대해 기존 M/S(Magnetic Stripe)에 신용정보를 넣지 않고 IC 칩에 개인의 정보를 넣기로 결정한바 있다.


<그림1> 스마트 카드 칩 내부 구성도


<그림2> 접촉식 스마트 카드 내부 구성도


<그림3> 비접촉식 스마트 카드 내부 구성도

비접촉식 스마트 카드
정보처리 기능에 필요한 연산소자와 기억소자는 접촉식 카드와 동일하지만 카드 내의 칩을 구동하기 위한 전원공급이 카드 내의 안테나를 통해 유도 전류를 발생해 이뤄지는 형태의 카드를 의미한다. 비접촉식 카드는 통신 범위에 따라 몇 가지로 분류되기도 한다. 외부와의 직접적인 접촉이 없기 때문에 높은 수준의 보안성이 요구되는 분야보다는 신속한 정보 처리가 요구되는 분야에서 많이 활용되고 있다. 현재 국내에서 사용되고 있는 교통카드가 가장 대표적인 형태이다.


<그림4> 스마트 카드의 다양한 형태


<그림5> SM 타입과 USB 타입의 스마트 카드


<그림6> 단추(button) 형태의 스마트 카드

콤비 스마트 카드
콤비 형태의 카드는 접촉식 카드와 비접촉식 카드를 물리적으로 한 개의 칩으로 통합한 형태의 카드이다. 이 카드는 접촉식 및 비접촉식 카드의 장점을 모두 활용할 수 있으므로 매우 진보적인 형태라고 할 수 있다.

하이브리드 스마트 카드
접촉식 카드와 비접촉식 카드가 물리적으로 분리된 상태로 카드에 탑재된다. 이 카드는 접촉식 카드와 비접촉식 카드의 과도기적인 형태로서 독립된 카드 애플리케이션을 따로 개발하고 이를 관리해야 하는 불편함이 뒤따른다.
이러한 형태로 스마트 카드가 사용되는 것 이외에도 USB 기기에 연결하거나 휴대폰에 스마트 카드 칩을 탑재되는 형태로도 활용하기도 한다.

향기로운 자바를 스마트 카드에 담자 -4
저 자 : 김태선

출판일 : 2004년 2월호

자바 카드 애플리케이션 구성
자바 카드가 제시하고 있는 시스템 구성은 기존 스마트 카드와 비슷한 구성을 갖지만 전체 시스템에서 구동할 수 있는 자바 카드 애플리케이션 구성 요소를 보면 다소 차이가 존재한다. 결국 전체 스마트 카드 시스템을 자바 카드 솔루션으로 제공하여 엔드투엔드(End-to-End) 환경으로 보면 크게 스마트 카드를 인식하는 구성 부분(reader-side)에 존재하는 애플리케이션과 스마트 카드(card-side)에 탑재된 애플리케이션으로 구분할 수 있다. 그러므로
자바 카드 애플리케이션을 통칭할 때에는 스마트 카드에 탑재되는 자바 카드 애플릿을 의미하지만 보다 구체적인 구분을 한다면 스마트 카드를 수용하는 측(reader-side)에 존재하는 자바 카드의 호스트 애플리케이션도 포함할 수 있다.
스마트 카드는 어떠한 외부 기기와 통신을 할 때에는 APDU (Application Protocol Data Unit)를 사용한다. 그러므로 기본적으로 자바 카드 애플릿은 물론 스마트 카드 외부의 애플리케이션 역시 APDU를 통해 서로 정보를 주고 받는다. 정리하자면 자바 카드 애플릿과 호스트 애플리케이션이 서로 APDU를 통해 통신하고 호스트 애플리케이션은 백엔드(back-end) 시스템과 연계하여 어떠한 작업 흐름을 보이고 있는 것이다.
카드 측(card-side) ?堧?기본적으로 COS를 기반하고 VM과 API를 제공하여 자바 카드 애플릿이 구동하도록 구성된다. 그리고 CAD(Card Acceptance Device)를 통해 카드와 통신하는 리더 측(reaer-side)에 존재한 호스트 애플리케이션에는 일반적으로 C 언어로 구현되는 경우가 많으므로 반드시 자바 환경이 구축될 필요는 없지만 J2ME 환경에 기반한 환경을 가질 수 있으며 오픈카드 프레임워크(OpenCard Famework, www.opencard.org)가 존재하여 자바 카드를 위한 API를 제공하고 있기도 하다. 특히 자바 카드는 APDU에 기반한 통신 방법 이외에도 자바의 RMI(Remote Method Invocation) 기반 통신도 가능한데 이 경우에는 호스트 애플리케이션이 자바 환경을 수용하여 RMI를 사용할 수 있어야 한다.

메시지 전달 모델, APDU
자바 카드는 기존 스마트 카드 표준을 지원하고 수용한다. 그러므로 전통적인 스마트 카드가 통신하는 방법이 다르지는 않다. 자바 카드 애플릿을 개발함에 있어 기본적으로 스마트 카드가 어떠한 방식으로 호스트 애플리케이션과 통신하는지를 알아둘 필요가 있다. 이 통신을 위한 스마트 카드의 통신 언어가 바로 APDU이며 ISO 7816에 정의되어 있다. 참고로 스마트 카드에 대한 전반적인 정의 명세는 ISO 7816에 서술되어 있으며 http://www.ttfn.net/techno/ smart cards/standards.html를 참고하기 바란다.
자바 카드 애플릿은 호스트 애플리케이션과 통신할 때 수동적인 입장에 있음을 항상 기억하고 있는 것이 좋다. 즉 스마트 카드는 호스트 애플리케이션이 주는 명령(Command APDU)를 기준하여 동작하고 이에 반응하여 응답(Response APDU)을 전송한다. 그러므로 명령과 응답이 각각 다른 형태로 프로토콜이 정의되어 있다. 또한 이 프로토콜은 T=0/1 그리고 USB 등으로 해당 통신 방법에 따라 정의가 구분되는데 여기에서는 T=0 기준으로 설명을 진행하며 추후 자바 카드 애플릿 개발에 대한 내용을 언급할 때 해당 내용을 정리하도록 한다.

명령 APDU
Command APDU는 <그림 13>과 같은 구조를 가진다. 기본적으로 헤더(Header)와 몸체(Body)로 구분하는데 반드시 헤더에 명령어와 해당 명령어의 입력 값(parameter)을 정의한다. 또한 각 값들은 16진수로 구성되어 있으므로 각 값들이 의미하는 내용에 주의하기 바란다.
클래스 바이트-1바이트
CLA(Class Byte)는 카드에 전송하는 명령어 집합을 정의하고 있으며 ISO 7816-4에 자세하게 서술되어 있다. 이에 대한 각각의 내용은 <표 2>와 같다.
참고로 니블 X값에 대한 개략적인 구성은 <표 3>과 같다. 스마트 카드에서 APDU를 이해하는데 있어 세부적인 부분은 추후 자바 카드 애플릿을 개발하면서 세부적으로 언급하기로 하고 개략적인 형태를 숙지하는 차원에서 살펴보기 바란다. 특히 논리 채널(logical channel)의 경우는 명령어에 포함되는 경우가 있으므로 해당 값에 의미를 확인하는 차원에서 애플릿 개발 내용을 언급하면서 다루기로 한다.
명령어 바이트-1바이트
CLA에 의해 분류된 명령어는 명령어 바이트(Instruction byte : INS)에서 정의한다. 이 명령어 바이트는 클래스 바이트에서 ISO 7816에 정의한 표준안에 따라 사용자가 특정 애플리케이션을 위해 정의할 수 있으며 자바 카드 애플릿 역시 이 표준안을 준수하여 원하는 명령어를 구성할 수 있다. <표 4>는 CLA = 0X인 경우의 ISO 7816에서 정의한 INS 값을 정리한 것이다.
이 INS에서 앞으로 자주 접하게 되는 명령어 값은 A4(SELECT FILE)이다. 이 명령어 바이트는 자바 카드 애플릿을 처음 시작하게 될 때 항상 접할 것이며 기타 다른 명령어들은 특정 상황에서 사용하게 되는데 이에 대한 부분은 자바 카드 애플릿을 상세히 설명하는 시점에서 언급하기로 한다.
P1-1바이트와 P2-1바이트
이 값은 INS에서 사용하는 입력 값이다. 앞서 살펴본 명령어에 입력 값을 주어서 특정 명령어를 실행하도록 한다.
Lc(Length of Command data)-전송할 데이터 크기
명령을 카드에 보낼 때 보낼 데이터의 크기를 의미하며 이 크기만큼 데이터 필드(Data field)에 값을 넣는다.
Data-Lc 값
명령을 실행할 때 필요한 데이터 내용이 포함된다.
Le(Length of Expected response data)-카드가 보낼 응답 데이터의 크기
카드가 명령을 실행하고 보낼 응답 데이터의 크기를 정한다.
앞서 이야기한 T=0 기준인 경우에 명령 APDU는 기본적으로 4가지 형태가 존재한다. 이 경우를 숙지하고 있어야 어떠한 방식으로 자바 카드와 호스트 애플리케이션 간에 통신을 진행하는지를 알 수 있으므로 반드시 기억하기 바란다. 다음은 APDU를 전송함에 있어 사용되는 4가지 형태의 명령 APDU 구성이다.
응답 APDU
스마트 카드에 명령이 전달되면 해당 명령어에 대한 데이터를 호스트 애플리케이션에게 응답해야 한다. 이러한 응답(Response)은 <그림 15>와 같은 형태로 구성된다.
데이터는 명령 APDU에서 정의한 Le 값만큼 크기를 가진다. 데이터가 없는 경우도 있는데 앞서 살펴본 4가지 유형의 명령 APDU 형태에서 Case 1이나 Case 3인 경우에는 카드는 단순히 SW(Status Word, 상태 코드 정보)만을 호스트 애플리케이션에게 전달한다. 이 정보는 자바 카드 API에도 정의되어 있는데 <표 5>는 대략적인 SW 값을 정리한 것이다.
내용을 살펴보면 처리(Processing)와 오류(Error)의 경우로 크게 나누어 볼 수 있는데 처리가 끝난 후에 나오는 메시지 성격인 SW가 있는 반면 실제 처리 중에 오류가 발생하여 곧바로 카드가 호스트 애플리케이션에게 전달하는 경우도 있다. 이러한 SW 성격을 정리하면 다음과 같은 구조로 파악할 수 있다.

향기로운 자바를 스마트 카드에 담자 - 5
저 자 : 김태선
출판일 : 2004년 2월호

명령어 바이트-1바이트
CLA에 의해 분류된 명령어는 명령어 바이트(Instruction byte : INS)에서 정의한다. 이 명령어 바이트는 클래스 바이트에서 ISO 7816에 정의한 표준안에 따라 사용자가 특정 애플리케이션을 위해 정의할 수 있으며 자바 카드 애플릿 역시 이 표준안을 준수하여 원하는 명령어를 구성할 수 있다. <표 4>는 CLA = 0X인 경우의 ISO 7816에서 정의한 INS 값을 정리한 것이다.
이 INS에서 앞으로 자주 접하게 되는 명령어 값은 A4(SELECT FILE)이다. 이 명령어 바이트는 자바 카드 애플릿을 처음 시작하게 될 때 항상 접할 것이며 기타 다른 명령어들은 특정 상황에서 사용하게 되는데 이에 대한 부분은 자바 카드 애플릿을 상세히 설명하는 시점에서 언급하기로 한다.

P1-1바이트와 P2-1바이트
이 값은 INS에서 사용하는 입력 값이다. 앞서 살펴본 명령어에 입력 값을 주어서 특정 명령어를 실행하도록 한다.

Lc(Length of Command data)-전송할 데이터 크기
명령을 카드에 보낼 때 보낼 데이터의 크기를 의미하며 이 크기만큼 데이터 필드(Data field)에 값을 넣는다.

Data-Lc 값
명령을 실행할 때 필요한 데이터 내용이 포함된다.
Le(Length of Expected response data)-카드가 보낼 응답 데이터의 크기
카드가 명령을 실행하고 보낼 응답 데이터의 크기를 정한다.
앞서 이야기한 T=0 기준인 경우에 명령 APDU는 기본적으로 4가지 형태가 존재한다. 이 경우를 숙지하고 있어야 어떠한 방식으로 자바 카드와 호스트 애플리케이션 간에 통신을 진행하는지를 알 수 있으므로 반드시 기억하기 바란다. 다음은 APDU를 전송함에 있어 사용되는 4가지 형태의 명령 APDU 구성이다.


응답 APDU
스마트 카드에 명령이 전달되면 해당 명령어에 대한 데이터를 호스트 애플리케이션에게 응답해야 한다. 이러한 응답(Response)은 <그림 15>와 같은 형태로 구성된다.
데이터는 명령 APDU에서 정의한 Le 값만큼 크기를 가진다. 데이터가 없는 경우도 있는데 앞서 살펴본 4가지 유형의 명령 APDU 형태에서 Case 1이나 Case 3인 경우에는 카드는 단순히 SW(Status Word, 상태 코드 정보)만을 호스트 애플리케이션에게 전달한다. 이 정보는 자바 카드 API에도 정의되어 있는데 <표 5>는 대략적인 SW 값을 정리한 것이다.
내용을 살펴보면 처리(Processing)와 오류(Error)의 경우로 크게 나누어 볼 수 있는데 처리가 끝난 후에 나오는 메시지 성격인 SW가 있는 반면 실제 처리 중에 오류가 발생하여 곧바로 카드가 호스트 애플리케이션에게 전달하는 경우도 있다. 이러한 SW 성격을 정리하면 다음과 같은 구조로 파악할 수 있다.


스마트 카드 분야의 첫걸음
이번 호에서는 간략히 스마트 카드와 자바 카드에 대한 전반적인 내용을 살펴보았다. 특히 스마트 카드에서 필수적으로 접할 수밖에 없는 APDU에 대한 내용을 잠시 살펴봤는데 앞으로 자바 카드 애플릿을 개발하면서 필요한 내용이므로 ISO 7816-4 내용을 숙지하는 것이 좋을 것이다. 다음 호에서는 자바 카드의 세부적인 구성 요소와 함께 기본적인 자바 카드 애플릿을 개발하는 과정을 다루도록 하겠다.




<그림14> T=0인 경우 명령 APDU 4가지 유형


<그림15> 응답 APDU 구조


<그림16> 상태 코드 구조도

'JAVA' 카테고리의 다른 글

이클립스에서 Spring + iBatis + Oracle 로 화면 출력하기  (0) 2012.03.22
이클립스 설정 정리  (0) 2012.02.29
iBatis 와 spring 연동  (0) 2012.02.17
java framework 링크  (0) 2011.06.30
[java] file copy or move  (1) 2010.07.08