KR100689223B1 - 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법 - Google Patents

스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법 Download PDF

Info

Publication number
KR100689223B1
KR100689223B1 KR1020050031926A KR20050031926A KR100689223B1 KR 100689223 B1 KR100689223 B1 KR 100689223B1 KR 1020050031926 A KR1020050031926 A KR 1020050031926A KR 20050031926 A KR20050031926 A KR 20050031926A KR 100689223 B1 KR100689223 B1 KR 100689223B1
Authority
KR
South Korea
Prior art keywords
patch
smart card
operating system
code
function
Prior art date
Application number
KR1020050031926A
Other languages
English (en)
Other versions
KR20060109679A (ko
Inventor
이호상
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020050031926A priority Critical patent/KR100689223B1/ko
Publication of KR20060109679A publication Critical patent/KR20060109679A/ko
Application granted granted Critical
Publication of KR100689223B1 publication Critical patent/KR100689223B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings

Abstract

본 발명은 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치 방법에 관한 것으로, 스마트 카드 운영체제의 패치 방법에 있어서, (a) 스마트 카드에 구현되어야 하는 서브 함수들 각각에 대하여 패치할 필요가 있는 패치 대상 함수에 해당하는지 판단하는 단계; (b) 상기 (a)단계에서 패치 대상 함수에 해당한다고 판단되는 경우에, 상기 패치 대상 함수들을 호출 빈도가 높고 처리 속도가 중요한 순서대로 나열하는 단계; (c) 상기 스마트 카드 운영체제의 메모리의 크기에 따라 상기 패치 대상 함수와 패치 코드가 일대일로 연결되는 매치형 패치 알고리즘으로 구현할 개수를 결정하는 단계; (d) 상기 (b)단계에서 나열된 패치 대상 함수들 각각에 대하여 상기 (c)단계에서 매치형 패치 알고리즘으로 구현할 개수 이내에 해당하는지 판단하는 단계; 및 (e) 상기 (d)단계에서 매치형 패치 알고리즘으로 구현할 개수 이내에 해당한다고 판단되는 경우에, 상기 패치 대상 함수들을 상기 매치형 패치 알고리즘으로 구현하는 단계;로 구성된다. 따라서, 스마트 카드에서 패치 알고리즘을 최적화하여 보다 많은 영역을 패치할 수 있게 된다.

Description

스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치 방법{Method for optimizing patch and for security patch of smart card operating system}
도 1은 종래의 스마트 카드 운영체제의 매치형 패치 알고리즘의 개략 흐름도이다.
도 2는 도 1의 스마트 카드 운영체제의 매치형 패치 알고리즘의 패치 실행 단계를 나타낸 흐름도이다.
도 3은 종래의 스마트 카드 운영체제의 서치형 패치 알고리즘의 개략 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 스마트 카드 운영체제의 최적화 패치 방법에 대한 흐름도이다.
도 5a와 도 5b는 도 4에서 패치 코드 및 상기 패치 코드의 위치 정보를 전송하기 위한 프로토콜인 명령 APDU의 구조도이다.
도 6은 본 발명의 일 실시예에 따른 스마트 카드 운영체제의 보안 패치 방법에 대한 흐름도이다.
본 발명은 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치 방법에 관한 것으로서, 보다 상세하게는 스마트 카드 운영체제중 보완이 필요한 함수만을 이이피롬(EEPROM)에 패치 하는 경우 속도와 메모리 용량을 고려하여 이를 최적화 하도록 하고, 이러한 패치로 인하여 발생하는 보안상 취약성을 해결하기 위한 보안 대책을 가지는 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치 방법에 관한 것이다.
스마트 카드(smart card)는 일반적인 신용카드(credit card)와 그 크기와 모양이 매우 유사하나, 카드 자체에 프로세서(processor)를 내장하고 있어서 일정 수준의 정보 저장 능력과 정보 처리 능력을 갖는다. 이러한 스마트 카드는 독립적인 전원공급장치, 출력장치, 입력장치 등을 가지지 않으므로, 외부 세계와의 통신을 위해서는 CAD(Card Acceptance Device)나 카드 리더라 불리는 장치를 이용한다.
이러한 스마트 카드는 연산 능력에 따라 메모리 카드, 마이크로프로세서 카드, CAD 장치와의 접속 방법에 따라 접촉식, 비접촉식 등으로 구분된다. 스마트 카드의 대표적인 2가지 응용분야는 비밀 정보의 저장과 인증 작업의 수행이라 할 수 있다. 스마트 카드는 자체적인 정보의 저장 능력과 카드 자체의 휴대성으로 인하여 효과적인 비밀정보의 저장 매체로 사용될 수 있으며, 자체적인 계산 능력으로 인하여 인증 작업을 수행할 수 있다.
스마트 카드는 CPU, 롬(ROM), 이이피롬(EEPROM), 램(RAM), 시리얼 포트 등을 내장하는 단일 반도체 칩에 의해서 동작한다. 운영체제가 저장되는 롬은 칩 내부의 하나의 구성요소로서, 운용체제 보완이 필요할 경우에는 스마트 카드의 칩은 다시 제작되어야 하는 바, 이에 따른 시간, 비용, 기회 손실이 매우 크다.
스마트 카드 운영체제를 카드로 제작하여 사용자에게 배포하는데 개략적인 과정은 다음과 같다. 우선, 스마트 카드 운영체제를 개발하고, 스마트 카드 반도체 칩을 제작하며, 제작된 반도체 칩을 패키징하게 되며, 그리고 나서, 카드에 내장된 운용체제와 응용 프로그램 인터페이스(API: Application Prigram Interface)를 이용하여 카드 응용 서비스 제공업자가 다양한 분야에서 적합한 형태로 프로그래밍이 가능한 환경을 제공하기 위한 "화이트 카드" 형태로 제작한 후, 인증 작업을 실시하게 된다.
만약, 운영체제 패치가 없을 경우에는, 카드 제작 완료 후 운영체제 보완이 필요한 경우에, 상기에서 살펴본 스마트 카드 제작과정을 다시 반복해야 하는 바, 추가 비용 및 기회 손실이 발생하고, 또한, 종래의 스마트 카드는 사용자의 요구로 새로운 기능의 추가가 필요한 경우 롬 코드의 수정이 불가능하고 새로운 롬 마스킹을 해야 함으로써 소비자의 요구 변화에 따른 대응이 늦어진다는 문제점이 있다. 따라서, 이와 같은 문제점을 해결하기 위하여 스마트 카드 운영체제의 패치 방법이 소개되고 있는데, 보다 구체적으로는 매치형(match type) 패치 알고리즘과 서치형(search type) 패치 알고리즘이 있다.
도 1은 종래의 스마트 카드 운영체제의 매치형 패치 알고리즘의 개략 흐름도이다. 도 1을 살펴보면, 먼저, 스마트 카드를 초기화하는 과정을 수행한다(S110). 스마트 카드의 초기화 과정은 레지스터 초기화, 스택 포인터(Stack Pointer) 초기화, 롬 초기화, 시리얼 포트의 오픈 등의 과정들을 통하여 이루어진다.
다음으로, 패치 대상 함수의 위치 정보를 매핑시킨 패치 함수 테이블을 구성하는 과정을 수행한다(S120). 상기 패치 함수 테이블을 초기화하는 과정은 우선, 상기 패치 함수 테이블이 스마트 카드의 이이피롬상에 초기화 되었는지 확인하고, 만약 초기화 되어 있지 않다면 스마트 카드의 롬상의 기본 패치 함수 테이블을 이이피롬으로 복사한다. 이 후 패치 대상 함수는 상기 이이피롬상의 패치 함수 테이블에 의해 간접적으로 호출된다.
이렇게 구성된 패치 함수 테이블의 위치 정보를 참조하여 상기 패치 대상 함수가 간접 호출된다.
다음으로, 스마트 카드가 패치 허용 상태에 놓여 있는지를 판단하게 된다(S130). 판단 결과, 스마트 카드가 패치 불허용 상태에 있는 경우에는, 상기 스마트 카드를 패치 허용 상태로 전환시키는 과정을 수행한다(S140). 여기에서, 스마트 카드의 패치 허용 상태는 스마트 카드 프레임워크가 디스에이블(disable)인 상태를 의미하며, 만약 스마트 카드가 자바 카드라면, JCRE(Java Card Runtime Environment; 자바 카드 수행환경)이 초기화되지 않은 상태를 의미한다.
만약, 스마트 카드가 패치 허용 상태에 있는 경우라면, 보완된 패치 코드 및 상기 패치 코드의 위치 정보를 다운로드하여 패치를 실행하는 과정을 수행한다(S150). 이와 같이, 패치를 실행하는 보다 구체적인 과정은 도 2에서 상세히 언급하기로 한다.
패치 실행이 완료되면, 스마트 카드를 패치 불허용 상태로 전환시키는 과정을 수행하여(S160), 패치로 인하여 취약하게 된 보안을 강화하게 된다.
여기에서, 상기 스마트 카드의 패치 불허용 상태는 스마트 카드 프레임워크가 인에이블(enable) 상태를 의미하며, 이러한 패치 불허용 상태는 스마트 카드의 패치 허용 상태로의 전환이 가능 상태 및 전환이 불가능한 상태를 선택적으로 설정할 수 있게 된다. 그 결과, 패치로 인하여 취약하게 된 보안이 강화된다.
도 2는 도 1의 스마트 카드 운영체제의 매치형 패치 알고리즘의 패치 실행 단계를 구체적으로 나타낸 흐름도이다.
보완된 패치 코드 및 상기 패치 코드의 위치 정보를 다운로드하는 과정을 수행한다(S151). 여기에서, 상기 패치 대상 함수를 보완한 패치 코드 및 상기 패치 코드의 위치 정보는 스마트 카드의 통신 언어인 APDU(Application Protocol Data Unit)를 통하여 다운로드된다. 그러나, 여기에서 APDU만으로 한정되는 것은 아니다.
상기 다운로드된 패치 코드 및 위치 정보를 스마트 카드의 이이피롬에 저장하는 과정을 수행한다(S152). 여기에서, 상기 선정된 패치 대상 함수의 해당 위치 정보 또는 상기 패치 코드의 위치 정보는 상기 스마트 카드의 메모리 어드레스를 의미하나, 이에 한정되지 않는다.
그리고 나서, 기 설정된 패치 함수 테이블의 데이터를 갱신하는 과정 즉, 패치 함수 테이블에 매핑된 위치 정보를 다운로드된 패치 코드의 위치 정보로 갱신하는 과정을 수행한다(S153).
상기 단계S153과정에서 갱신된 패치 함수 테이블의 위치 정보를 참조하여, 종래의 함수가 아닌 다운로드 되어 이이피롬에 저장되어 있는 보완된 패치 코드를 간접 호출하는 과정을 수행한다(S154). 그리고 나서, 상기의 과정들을 통하여 패치 수행이 완료된다(S155).
도 3은 종래의 스마트 카드 운영체제의 서치형 패치 알고리즘의 개략 흐름도이다.
여기에서, 패치가 이루어지기 위해서는 스마트 카드의 롬과 이이피롬에 같은 형태의 명령 핸들러 테이블을 가지고 있어야 한다.
도 3을 살펴보면, 먼저, 단말기로부터 명령 APDU(Command APDU)를 수신받는다(S300).
다음으로, INS를 인덱스(Index)로 하여 명령 서치 모듈(command Search Module)이 가지고 있는 명령 핸들러 테이블(command Handler Table)에서 해당하는 명령 핸들러(command Handler)를 검색한다(S310).
다음으로, 명령 서치 모듈이 해당 명령 핸들러를 검색한 경우에, 이이피롬에 로드되어 있는 명령 핸들러 테이블을 찾아 해당하는 명령 핸들러가 있는지 여부를 판단한다(S320).
단계S320에서의 판단결과, 해당하는 명령 핸들러가 있다고 판단되는 경우에는 단계S340으로 진행한다. 한편, 단계S320에서의 판단결과, 해당하는 명령 핸들러가 없다고 판단되는 경우에는 단계S330으로 진행한다.
단계S330에서는, 명령 서치 모듈이 해당 명령 핸들러를 검색한 경우에, 롬에 로드되어 있는 명령 핸들러 테이블을 찾아 해당하는 명령 핸들러가 있는지 여부를 판단한다.
단계S330에서의 판단결과, 해당하는 명령 핸들러가 없다고 판단되는 경우에는 종료한다. 한편, 단계S330에서의 판단결과, 해당하는 명령 핸들러가 있다고 판단되는 경우에는 단계S340으로 진행한다.
다음으로, 단계S340에서는 해당하는 패치 코드를 실행한다.
상기에서 살펴본 바와 같이, 패치에 대한 알고리즘으로는 패치 대상에 따라 매치형(match) 패치 알고리즘과 서치형(search) 패치 알고리즘으로 나뉘어진다. 패치 대상 함수가 독립적인 것이어서 패치 코드와 일대일(1:1)인 경우를 매치형 패치 알고리즘이라 하고, 패치 대상 함수가 일정한 형태의 그룹 중 한 멤버이어서 그 중에서 하나를 찾아 패치하는 경우를 서치형 패치 알고리즘이라 한다.
그러나, 종래에는 스마트 카드 운영체제의 패치 방법에 있어서 매치형 패치 알고리즘과 서치형 패치 알고리즘 각각에 대하여만 사용하였다. 그럼으로써, 매치형에 의한 스마트 카드 운영체제의 경우에는 속도가 빠른 장점이 있으나 메모리 소모가 크다는 문제점을 해결하지 못하고, 서치형에 의한 스마트 카드 운영체제의 경우에는 메모리 소모가 적다는 장점이 있으나 속도가 빠르지 못하다는 문제점을 해결하지 못한다.
즉, 패치가 가능한 코드의 범위를 넓힐수록 메모리 소모는 커지고, 메모리 소모를 줄이기 위해서는 그 만큼 패치 범위가 줄어들기 때문이다. 따라서, 메모리는 적게 소모하면서도 최대한 많은 코드를 패치할 수 있는 패치 알고리즘이 필요하게 된다.
상기에서 살펴본 종래 기술의 문제점을 해결하기 위한 본 발명은 스마트 카드 운영체제의 요구 사항 변경, 인증 요건 미흡 또는 결함 등으로 인하여 스마트 카드 운영체제의 보완이 필요한 경우에, 스마트 카드 운영체제중 보완이 필요한 함수를 이이피롬에 패치함에 있어 매치형과 서치형으로 분류하여 최적화 시키도록 하고, 이러한 패치로 인하여 발생하는 보안상 취약성을 해결하기 위하여 보안 대책을 가지는 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치 방법을 제공한다.
상기 발명이 이루고자 하는 기술적 과제를 해결하기 위한 본 발명의 스마트 카드 운영체제의 최적화 패치 방법은, 스마트 카드 운영체제의 패치 방법에 있어서, (a) 스마트 카드에 구현되어야 하는 서브 함수들 각각에 대하여 패치할 필요가 있는 패치 대상 함수에 해당하는지 판단하는 단계; (b) 상기 (a)단계에서 패치 대상 함수에 해당한다고 판단되는 경우에, 상기 패치 대상 함수들을 호출 빈도가 높고 처리 속도가 중요한 순서대로 나열하는 단계; (c) 상기 스마트 카드 운영체제의 메모리의 크기에 따라 상기 패치 대상 함수와 패치 코드가 일대일로 연결되는 매치형 패치 알고리즘으로 구현할 개수를 결정하는 단계; (d) 상기 (b)단계에서 나열된 패치 대상 함수들 각각에 대하여 상기 (c)단계에서 매치형 패치 알고리즘으로 구현할 개수 이내에 해당하는지 판단하는 단계; 및 (e) 상기 (d)단계에서 매치형 패치 알고리즘으로 구현할 개수 이내에 해당한다고 판단되는 경우에, 상기 패치 대상 함수들을 상기 매치형 패치 알고리즘으로 구현하는 단계;를 포함하는 것을 특징으로 가진다.
상기 발명이 이루고자 하는 기술적 과제를 해결하기 위한 본 발명의 스마트 카드 운영체제의 보안 패치 방법은, 스마트 카드 운영체제의 패치 방법에 있어서, (a) 스마트 카드의 이이피롬에 다운로드된 패치 코드에 대한 보안 인증 정보를 계산하여 저장하는 단계; (b) 상기 (a)단계에서 다운로드된 패치 코드를 실행하기 이전에 상기 다운로드된 패치 코드에 대한 보안 인증 정보를 계산하는 단계; (c) 상기 (b)단계에서 계산된 보안 인증 정보와 단계 (a)단계에서 저장된 보안 인증 정보를 비교하여 매칭 여부를 판단하는 단계; 및 (d) 상기 (c)단계에서 매칭이 이루어지는 경우에, 상기 다운로드된 패치 코드를 실행하는 단계;를 포함하는 것을 특징으로 가진다.
본 발명에 의한 스마트 카드 운영체제의 최적화 패치 방법에 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함하는 것을 특징으로 가진다.
또한, 본 발명에 의한 스마트 카드 운영체제의 보안 패치 방법에 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함하는 것을 특징으로 가진다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 스마트 카드 운영체제의 최적화 패치 방법에 대한 흐름도이다.
패치 알고리즘으로는 패치 대상에 따라 매치형(match) 패치 알고리즘과 서치 형(search) 패치 알고리즘으로 나뉘어 진다. 패치 대상이 독립적인 것이어서 패치 코드와 1대 1인 경우를 매치형 패치 알고리즘이라 하고, 패치 대상이 일정한 형태의 그룹 중 한 멤버이어서 그 중에서 하나를 찾아 패치하는 경우를 서치형 패치 알고리즘이라 한다.
먼저, 매치형 패치 알고리즘에서 A 함수와 B 함수를 호출하는 경우를 살펴보면 다음과 같다. 매치형 패치 알고리즘은 스마트 카드 프로그램에서 초기화 루틴, 암호화 루틴 및 통신 루틴 등에 주로 사용된다.
Call A Function : 직접 원하는 A 함수를 호출한다.
Call B Function : 직접 원하는 B 함수를 호출한다.
다음으로, 서치형 패치 알고리즘에서 A 함수와 B 함수를 호출하는 경우를 살펴보면 다음과 같다. 서치형 패치 알고리즘은 스마트 카드 프로그램에서 명령 APDU를 받아서 명령 핸들러(Commaand Handler)를 호출할 때 주로 사용된다.
Call Search_Function(A Function) : A 함수의 인덱스를 인자로 하여 서치 함수를 호출한다.
Call Search_Function(B Function) : B 함수의 인덱스를 인자로 하여 서치 함수를 호출한다.
여기에서, Search_Function의 Function Pointer를 테이블로 가지고 있으며, 해당 인덱스와 일치하는 Function Pointer를 찾아 다음과 같이 호출한다.
Call [Function Pointer]
이하에서는 스마트 카드 운영체제의 패치 방법에 있어서 매치형 패치 알고리 즘과 서치형 패치 알고리즘에 대한 상호 장단점을 살펴보기로 한다.
매치형 패치 알고리즘은 해당 함수를 찾을 필요 없이 바로 호출하므로 실제 코드 실행시간이 줄어들게 되고, 구현 방법이 간단하여 종래의 프로그램에 쉽게 적용할 수 있다. 그러나, 패치 대상이 되는 코드가 많을수록 롬과 이이피롬에 저장해야 할 정보가 많아지므로 메모리 소모가 크고, 실제로 패치하지 않더라도 디폴트(Default)값을 가지고 있어야 하므로 메모리 소모가 크며, 패치 대상이 되는 코드를 미리 정해서 패치 가능하도록 롬코드를 넣어야 하므로 그 이외의 것은 패치를 할 수 없다는 문제점이 있다.
한편, 서치형 패치 알고리즘은 실제로 패치하지 않는 부분에 대해서는 이이피롬에 패치정보를 가지고 있을 필요가 없으므로 메모리 소모를 줄일 수 있고, 롬상에 구현되지 않은 추가 기능이 필요할 때 이이피롬의 테이블에 포인터를 추가하고 해당 코드를 이이피롬에 구현하면 추가 기능을 부가적으로 넣을 수 있다. 그러나, 해당 함수를 실행할 때마다 테이블에서 인덱스를 이용하여 검색하여야 하므로 실제 코드의 실행 시간이 길어지고, 종래의 프로그램에 적용하기 위해서 함수 처리 형태를 서치형으로 변경하여야 하므로 구현이 어렵다는 문제점이 있다.
먼저, 스마트 카드에 구현되어야 하는 서브 함수들 각각에 대하여 패치할 필요가 있는 패치 대상 함수에 해당하는지를 여부를 판단한다(S400). 여기에서, 패치할 필요가 없다고 판단되는 서브 함수는 검증이 충분히 이루어져 패치할 필요가 전혀 없다고 판단되는 함수를 말한다. 따라서, 서브 함수에 대하여 검증이 충분히 이루어지지 않아 패치할 필요 여부가 불명확한 경우에는 패치할 필요가 있는 패치 대 상 함수에 해당하는 것으로 판단한다.
단계S400에서 패치 대상 함수에 해당하는지 여부에 대한 판단결과, 패치 대상 함수에 해당하지 않는다고 판단되는 경우에는 종료한다.
한편, 단계S400에서 패치 대상 함수에 해당하는지 여부에 대한 판단결과, 패치 대상 함수에 해당한다고 판단되는 경우에, 패치 대상 함수들을 호출 빈도가 높고 처리 속도가 중요한 순서대로 나열한다(S410). 여기에서, 호출 빈도가 높고 처리 속도가 중요한 순서대로 나열하는 이유는 중요도가 높은 패치 대상 함수를 매치형 패치 알고리즘으로 구현하기 위한 것이다. 보다 구체적으로, 호출 빈도가 높고 처리 속도가 중요한 패치 대상 함수로는 통신 모듈 함수, 암호화 모듈 함수 및 초기화 함수를 포함할 수 있다.
단계S410 다음으로, 상기 스마트 카드 운영체제의 롬(ROM)과 이이피롬(EEPROM)의 크기에 따라 매치형 패치 알고리즘으로 구현할 개수를 결정한다(S420). 여기에서, 스마트 카드 운영체제의 롬과 이이피롬의 크기에 따라 매치형 패치 알고리즘으로 구현할 개수를 결정하는 것은 스마트 카드의 메모리가 일정한 한계가 있기 때문이다. 즉, 매치형 패치 알고리즘으로 구현되는 경우에 스마트 카드의 메모리 소모가 많아지므로 그 개수를 일정하게 한정하기 위한 것이다.
다음으로, 상기 단계S410에서 나열된 패치 대상 함수들 각각에 대하여 상기 단계S420에서 매치형 패치 알고리즘으로 구현할 개수 이내에 해당하는지 여부를 판단한다(S430).
단계S430에서의 판단결과, 매치형 패치 알고리즘으로 구현할 개수 이내에 해 당되는 않는다고 판단되는 경우에는 단계S440으로 진행한다. 한편, 단계S430에서의 판단결과, 매치형 패치 알고리즘으로 구현할 개수 이내에 해당된다고 판단되는 경우에는 단계S450으로 진행한다.
단계S440에서는 패치 대상 함수들을 서치형 패치 알고리즘으로 구현한다. 여기에서, 패치 대상 함수들을 서치형 패치 알고리즘으로 구현함에 있어서, 단계S410에서 호출 빈도가 높고 처리 속도가 중요한 순서대로 스마트 카드에서 검색이 빨리 이루어지는 위치에 구현되도록 한다.
단계S450에서는 패치 대상 함수들을 매치형 패치 알고리즘으로 구현한다.
도 5a와 도 5b는 도 4에서 패치 코드 및 상기 패치 코드의 위치 정보를 전송하기 위한 프로토콜인 명령 APDU(Application Protocol Data Unit)의 구조도이다.
스마트 카드의 통신 언어인 APDU는 ISO 7816에 정의되어 있으며, 스마트 카드는 호스트 애플리케이션이 주는 명령 APDU(command APDU)을 기준으로 동작하고, 이에 반응하는 응답 APDU(Response APDU)를 전송한다.
이러한 명령 APDU(command APDU)는 상기 도 5a 및 도 5b와 같은 구조를 가진다. 기본적으로 헤더(Header)와 몸체(Body)로 구분하는데 반드시 헤더에 명령어와 해당 명령어의 입력값(parameter)을 정의한다. 또한 각 값들은 16진수로 구성되어 있으며, 참고로 각 값들이 의미하는 내용은 다음과 같다.
클래스 바이트 - 1바이트
CLA(Class Byte)는 스마트 카드에 전송하는 명령어 집합을 정의하고 있으며 ISO 7816-4에 자세하게 서술되어 있다.
명령어 바이트 - 1바이트
CLA에 의해 분류된 명령어는 명령어 바이트(Instruction byte : INS)에서 정의한다. 이 명령어 바이트는 클래스 바이트에서 ISO 7816에 정의한 표준안에 따라 사용자가 특정 애플리케이션을 위해 정의할 수 있으며 자바 카드 애플릿 역시 이 표준안을 준수하여 원하는 명령어를 구성할 수 있다.
P1 - 1바이트와 P2 - 1바이트
P1과 P2는 INS에서 사용하는 입력값이다. 명령어에 입력값을 주어서 특정 명령어를 실행하도록 한다.
Lc(Length of command data): 전송할 데이터 크기
명령을 스마트 카드에 보낼 때 보낼 데이터의 크기를 의미하며 이 크기만큼 데이터 필드(Data field)에 값을 넣는다.
Data : Lc 값
명령을 실행할 때 필요한 데이터 내용이 포함된다.
상기 도 5a에서 보완된 패치 코드는 Data에 포함되며, 상기 도 5b에서 상기 패치 코드의 위치 정보인 인덱스 및 어드레스는 Data에 포함된다.
보다 구체적으로, 패치 코드 다운 방법에 대하여 예를 들면 특정한 명령 APDU(구체적으로, CLA=90, INS=16)를 사용하여 패치 코드를 이이피롬에 로드하고 패치 정보를 업데이트한다. 여기에서, 명령 APDU(CLA=90, INS=16)는 기본적으로 헤더(Header)와 몸체(Body)로 구분되는데 헤더에 명령어와 해당 명령어의 입력값(parameter)을 정의한다. 상기에서 살펴본 바와 같이 명령 APDU는 CLA, INS, P1, P2, P3 및 DATA로 구성된 카드와 단말기의 통신단위이다.
도 6은 본 발명의 일 실시예에 따른 스마트 카드 운영체제의 보안 패치 방법에 대한 흐름도이다.
패치 코드는 쓰기가 가능한 스마트 카드의 이이피롬에 저장되므로, 외부의 공격이나 기타 요인들에 의해 오염될 가능성이 있어, 보안성 측면에서 취약성을 가진다. 그러므로, 이에 대한 대책이 필요한데 이하에서는 이에 대하여 살펴보기로 한다.
도 6을 살펴보면, 먼저, 스마트 카드의 이이피롬에 패치 코드 다운로드가 완료되면 다운로드된 패치 코드 전체에 대하여 보안 인증 정보를 계산하여 저장한다(S600). 보안 인증 정보가 저장되는 위치는 스마트 카드 이이피롬에서 미리 설정된 소정의 영역이다. 여기에서, 보안 인증 정보로는 체크섬(Checksum)값 또는 해쉬 함수(Hash Function)값을 이용한다.
다음으로, 패치 코드를 실행하기 이전에 다운로드된 패치 코드 전체에 대하여 보안 인증 정보를 계산한다(S610).
다음으로, 단계S610에서 계산된 보안 인증 정보와 단계S600에서 저장된 보안 인증 정보를 서로 비교하여 매칭이 이루어지는 여부를 판단한다(S620).
단계S620에서의 판단결과, 매칭이 이루어지지 않는 경우에는 패치 코드를 실행하지 않고 스마트 카드 자체를 보호하기 위하여 외부 시스템과 블록(Block)한다(S630). 한편, 단계S620에서의 판단결과, 매칭이 이루어지는 경우에는 패치 코드를 실행한다(S640).
이와 같은 과정을 통하여 패치 코드에 대한 무결성을 확보할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기에서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이, 본 발명의 스마트 카드 운영체제의 최적화 패치 방법에 따르면, 스마트 카드 운영체제의 요구 사항 변경, 인증 요건 미흡 또는 결함 등으로 인하여 스마트 카드 운영체제의 보완이 필요한 경우에도 스마트 카드의 재제작 없이 기존 카드의 운영체제를 패치하여 재활용할 수 있게 되고, 나아가 매치형 패치 알고리즘과 서치형 패치 알고리즘을 최적화하여 보다 많은 영역을 패치할 수 있게 된다.
또한, 상술한 바와 같이 본 발명의 스마트 카드 운영체제의 보안 패치 방법에 따르면, 스마트 카드 운영체제의 패치를 수행함에 있어서 패치 코드의 무결성을 확보하여 외부의 공격으로부터 방어할 수 있게 된다.

Claims (12)

  1. 스마트 카드의 운영체제 중 보완이 필요한 함수를 상기 스카트 카드의 메모리에 패치하는 방법에 있어서,
    상기 패치 대상 함수들을 호출 빈도가 높고 처리 속도가 중요한 순서대로 나열하는 단계;
    상기 메모리의 크기에 따라, 상기 패치 대상 함수와 패치 코드가 일대일로 연결되는 매치형 패치 알고리즘으로 구현할 개수를 결정하는 단계;
    상기 패치 대상 함수들의 나열 순서에 따라, 상기 각 패치 대상 함수가 상기 매치형 패치 알고리즘으로 구현할 개수 이내에 해당하면 상기 해당하는 패치 대상 함수들은 상기 매치형 패치 알고리즘으로 구현하고,
    상기 개수 이내에 해당되지 않는 패치 대상 함수들은 인덱스를 통하여 패치 코드와 연결되는 서치형 패치 알고리즘으로 구현하는 단계;를 포함하는 것을 특징으로 하는 스마트 카드 운영체제의 최적화 패치 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 패치 대상 함수의 나열의 우선 순서에 통신 모듈 함수가 포함되는 것을 특징으로 하는 스마트 카드 운영체제의 최적화 패치 방법.
  5. 제 1 항에 있어서,
    상기 패치 대상 함수의 나열의 우선 순서에 초기화 함수가 포함되는 것을 특징으로 하는 스마트 카드 운영체제의 최적화 패치 방법.
  6. 제 1 항에 있어서,
    상기 패치 대상 함수의 나열의 우선 순서에 암호화 모듈 함수가 포함되는 것을 특징으로 하는 스마트 카드 운영체제의 최적화 패치 방법.
  7. 제 1 항에 있어서,
    상기 메모리의 크기는 상기 스마트 카드의 롬과 이이피롬의 크기에 따르는 것을 특징으로 하는 스마트 카드 운영체제의 최적화 패치 방법.
  8. 스마트 카드 운영체제의 패치 방법에 있어서,
    (a) 스마트 카드의 이이피롬에 다운로드된 패치 코드에 대한 보안 인증 정보를 계산하여 저장하는 단계;
    (b) 상기 (a)단계에서 다운로드된 패치 코드를 실행하기 이전에 상기 다운로드된 패치 코드에 대한 보안 인증 정보를 계산하는 단계;
    (c) 상기 (b)단계에서 계산된 보안 인증 정보와 단계 (a)단계에서 저장된 보안 인증 정보를 비교하여 매칭 여부를 판단하는 단계; 및
    (d) 상기 (c)단계에서 매칭이 이루어지는 경우에, 상기 다운로드된 패치 코드를 실행하는 단계;를 포함하는 것을 특징으로 하는 스마트 카드 운영체제의 보안 패치 방법.
  9. 제 8 항에 있어서,
    (e) 상기 (c)단계에서 매칭이 이루어지지 않는 경우에, 상기 다운로드된 패치 코드를 실행하지 않고 스마트 카드 자체를 보호하도록 외부 시스템과 블록하는 단계;를 더 포함하는 것을 특징으로 하는 스마트 카드 운영체제의 보안 패치 방법.
  10. 제 8 항에 있어서,
    상기 다운로드된 패치 코드에 대한 보안 인증 정보는 상기 다운로드된 패치 코드에 대한 체크섬(Checksum)값인 것을 특징으로 하는 스마트 카드 운영체제의 보안 패치 방법.
  11. 제 8 항에 있어서,
    상기 다운로드된 패치 코드에 대한 보안 인증 정보는 상기 다운로드된 패치 코드에 대한 해쉬 함수(Hash Function)값인 것을 특징으로 하는 스마트 카드 운영체제의 보안 패치 방법.
  12. 제 1 항 및 제 4 내지 11 항 중 어느 한 청구항에 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050031926A 2005-04-18 2005-04-18 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법 KR100689223B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050031926A KR100689223B1 (ko) 2005-04-18 2005-04-18 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050031926A KR100689223B1 (ko) 2005-04-18 2005-04-18 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법

Publications (2)

Publication Number Publication Date
KR20060109679A KR20060109679A (ko) 2006-10-23
KR100689223B1 true KR100689223B1 (ko) 2007-03-02

Family

ID=37615872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050031926A KR100689223B1 (ko) 2005-04-18 2005-04-18 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법

Country Status (1)

Country Link
KR (1) KR100689223B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001283160A (ja) 2000-03-30 2001-10-12 Dainippon Printing Co Ltd Icカードおよびicカードの更新装置とその方法
US6338435B1 (en) 1999-01-15 2002-01-15 Todd Carper Smart card patch manager
US20030088868A1 (en) 2001-11-06 2003-05-08 Chang Robert C. Implementation of in system programming to update firmware on memory cards
KR20030035171A (ko) * 2001-10-30 2003-05-09 한국전자통신연구원 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
JP2003216431A (ja) 2002-01-18 2003-07-31 Cec:Kk Icカードのオペレーティングシステム更新システムおよび当該システムに使用するicカード
KR20040076589A (ko) * 2003-02-26 2004-09-01 가부시끼가이샤 르네사스 테크놀로지 메모리 카드

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338435B1 (en) 1999-01-15 2002-01-15 Todd Carper Smart card patch manager
JP2001283160A (ja) 2000-03-30 2001-10-12 Dainippon Printing Co Ltd Icカードおよびicカードの更新装置とその方法
KR20030035171A (ko) * 2001-10-30 2003-05-09 한국전자통신연구원 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
US20030088868A1 (en) 2001-11-06 2003-05-08 Chang Robert C. Implementation of in system programming to update firmware on memory cards
JP2003216431A (ja) 2002-01-18 2003-07-31 Cec:Kk Icカードのオペレーティングシステム更新システムおよび当該システムに使用するicカード
KR20040076589A (ko) * 2003-02-26 2004-09-01 가부시끼가이샤 르네사스 테크놀로지 메모리 카드

Also Published As

Publication number Publication date
KR20060109679A (ko) 2006-10-23

Similar Documents

Publication Publication Date Title
KR101060549B1 (ko) 스마트 카드 전력 관리 시스템
TWI581099B (zh) 積體電路裝置及控制積體電路裝置上記憶體存取的方法
US10089470B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US8656146B2 (en) Computer system comprising a secure boot mechanism
EP2874091B1 (en) Partition-based apparatus and method for securing bios in a trusted computing system during execution
CN109784007B (zh) 一种字节码加密的方法、字节码解密的方法及终端
EP2874092B1 (en) Recurrent BIOS verification with embedded encrypted hash
WO2008022000A1 (en) Embedded software camouflage against code reverse engineering
EP2228988B1 (en) Circuit for restricting data access
AU2020287873B2 (en) Systems and methods for processor virtualization
KR100505106B1 (ko) 강화된 보안 기능을 갖춘 스마트 카드
US10049217B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US8010773B2 (en) Hardware constrained software execution
US11921655B2 (en) Dynamic memory protection device system and method
US8006058B2 (en) Method and securing electronic device data processing
JP2008009650A (ja) プログラム実行制御回路、コンピュータシステム、及び、icカード
KR100689223B1 (ko) 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법
US10055588B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
KR100615890B1 (ko) 스마트 카드 운영체제의 패치 방법
WO2022135686A1 (en) Method for securing a computing device from memory corruption and computing device
US9927995B2 (en) Method and an integrated circuit for executing a trusted application within a trusted runtime environment
CN110069261A (zh) 一种嵌入式软件的可配置分区方法及系统
US11847203B2 (en) Method, system and device for managing an execution of a program relating to part or all of a first application
KR20060014600A (ko) 외부 메모리에 저장된 데이터의 변경유무를 체크하는 장치및 방법
US10095868B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130108

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee