KR20130093710A - 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 - Google Patents

암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 Download PDF

Info

Publication number
KR20130093710A
KR20130093710A KR1020110141332A KR20110141332A KR20130093710A KR 20130093710 A KR20130093710 A KR 20130093710A KR 1020110141332 A KR1020110141332 A KR 1020110141332A KR 20110141332 A KR20110141332 A KR 20110141332A KR 20130093710 A KR20130093710 A KR 20130093710A
Authority
KR
South Korea
Prior art keywords
external attack
signal
control signal
jtag
register
Prior art date
Application number
KR1020110141332A
Other languages
English (en)
Other versions
KR101301022B1 (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 KR1020110141332A priority Critical patent/KR101301022B1/ko
Priority to US13/486,009 priority patent/US8621298B2/en
Priority to EP12170496.9A priority patent/EP2608102A1/en
Publication of KR20130093710A publication Critical patent/KR20130093710A/ko
Application granted granted Critical
Publication of KR101301022B1 publication Critical patent/KR101301022B1/ko

Links

Images

Classifications

    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31719Security aspects, e.g. preventing unauthorised access during test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation

Abstract

암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법이 개시된다. 본 발명에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은, 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정하는 단계; 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성하는 단계; 및 상기 외부 공격 방지 제어 신호에 기반하여 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단하는 단계를 포함한다.

Description

암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 {APPARATUS FOR PROTECTING AGAINST EXTERNAL ATTACK FOR PROCESSOR BASED ON ARM CORE AND METHOD USING THE SAME}
본 발명은 마이크로 프로세서에 관한 것으로, 특히 암 코어(ARM Core) 계열의 시스템에서 디버그 인터페이스를 통한 외부 공격에 대응하는 기술에 관한 것이다.
ARM 코어(core) 계열의 마이크로프로세서 시스템은 스마트폰, 태블릿 PC, 하드디스크 드라이브(HDD)와 같은 저장장치, 각종 통신기기, 무선 마우스, 가전 제품 및 전자기기 및 각종 센서 등 다양한 기술 제품 전반에 걸쳐 이용되고 있다.
이와 같은 ARM 코어 계열을 이용한 제품은 제품의 개발 및 검증을 위해 일반적으로 JTAG(Joint Test Action Group)을 사용하는 경우가 많다. 즉, 마이크로프로세서를 사용하는 많은 시스템에서 디버깅을 위한 디버그 포트(debug port)로 JTAG(Joint Test Action Group)을 사용하여 개발 및 검증을 수행한다.
ARM 코어 계열의 프로세서에서 외부 디버그 요청 신호(external debug request signal; EDBGRQ)는 프로세서가 디버그 상태로 들어가도록 하는 정지 디버그 이벤트(halting debug event)를 발생시킨다.
JTAG 또는 EDBGRQ 등의 외부 신호는 프로세서를 장악하거나 레지스터나 메모리에 접근하는 등 보안성을 위협할 수 있는 신호들이다. 즉, JTAG을 통해 시스템에 접근하여 중요 정보를 얻어 내거나 데이터를 변조하는 시도가 빈번하게 발생하여 문제가 되고 있다.
따라서, 이와 같은 신호들을 사용하는 시스템은 보안상 취약성을 가질 수 밖에 없으며 이를 막기 위한 다양한 노력이 있어 왔다.
미국등록특허 제7,117,352에는 원 타임 프로그래머블 (One-Time-Programmable; OTP) 메모리를 제공하고 내부 롬(ROM)을 이용하여 JTAG 디버그 인터페이스에 대한 디버그 포트 비활성화 기법이 소개된 바 있다. 그러나, 이 기법은 OTP 사용이 제조단가를 올리고, OTP 레지스터를 이용하여 JTAG을 비활성화 시키면 다시는 JTAG을 사용할 수 없다는 한계가 있다.
즉, 현재 JTAG은 업계에서 필수적인 것으로 인식되며 널리 사용되고 있지만, 항상 보안성, 경제성 및 활용성이라는 세 가지 이슈로 문제가 되어 왔고, 간단하면서도 확실하게 JTAG에 대한 보안성을 개선하기 위한 새로운 기술의 필요성이 절실하게 대두된다.
본 발명의 목적은 JTAG을 사용한 디버깅 기능을 제공하는 암 코어(ARM core) 계열 시스템에서, JTAG을 사용함에도 불구하고 간단한 방법으로 보안성을 확보하는 것을 목적으로 한다.
또한, 본 발명의 목적은 원 타임 프로그래머블 메모리 등 복잡한 기법을 사용하지 않고도 JTAG에 의한 공격을 효과적으로 방어하는 것이다.
또한, 본 발명의 목적은 강제적 디버깅을 가능하게 하는 외부 디버그 요청 신호(EDBGRQ)로 인한 보안 취약성을 보완하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방지 장치는, JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스; 외부 공격 방지 제어 신호를 생성하는 제어 신호 생성부; 및 상기 외부 공격 방지 제어 신호에 기반하여 상기 JTAG 인터페이스를 차단하는 차단부를 포함한다.
이 때, 상기 외부 공격 방지 장치는 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 상기 JTAG 통신의 연결 설정보다 먼저 설정되는 레지스터를 더 포함할 수 있다.
이 때, 상기 제어 신호 생성부는 상기 외부 디버그 요청 신호 및 상기 레지스터의 제1 출력 신호를 입력으로 하고 상기 레지스터의 제2 출력 신호를 선택 신호로 하는 제1 멀티플렉서를 포함할 수 있다.
이 때, 상기 JTAG 인터페이스는 테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자; 및 상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함할 수 있다.
이 때, 상기 차단부는 상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 제2 멀티플렉서를 포함하고, 상기 외부 공격 방지 제어 신호가 활성화되는 경우 상기 더미 신호를 선택할 수 있다.
이 때, 상기 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정될 수 있다.
이 때, 상기 레지스터는 시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고, 기설정된 시간이 지나면 상기 JTAG 인터페이스가 연결되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 할 수 있다.
또한, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은, 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정하는 단계; 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성하는 단계; 및 상기 외부 공격 방지 제어 신호에 기반하여 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단하는 단계를 포함한다.
본 발명에 따르면, JTAG을 사용한 디버깅 기능을 제공하는 암 코어(ARM core) 계열 시스템에서, JTAG을 사용함에도 불구하고 간단한 방법으로 보안성을 확보할 수 있다.
또한, 본 발명은 원 타임 프로그래머블 메모리 등 복잡한 기법을 사용하지 않고도 JTAG에 의한 공격을 효과적으로 방어할 수 있다.
또한, 본 발명은 강제적 디버깅을 가능하게 하는 외부 디버그 요청 신호(EDBGRQ)로 인한 보안 취약성을 보완할 수 있다.
도 1은 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치를 나타낸 도면이다.
도 2는 JTAG 인터페이스의 차단/연결을 결정하는 레지스터 설정 순서를 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법을 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치는 JTAG 인터페이스(110), 제어 신호 생성부(120), 차단부(130) 및 레지스터(180)를 포함한다.
도 1에 도시된 예에서 프로세서(140)가 외부 공격 방어 장치의 일부분인 것처럼 도시되었으나, 외부 공격 방어 장치는 프로세서(140)와 일체로 또는 별개로 구현될 수 있다.
JTAG 인터페이스(110)는 JTAG 통신을 위해 암 코어 기반의 프로세서(140)와 연결된다.
JTAG의 작동방식은 칩 내부에 바운더리 셀(boundary cell)을 만들어 이것이 외부의 핀과 일대 일로 연결되어, 프로세서가 할 수 있는 동작을 중간의 셀(cell)을 통해 인위적으로 수행할 수 있도록 하는 것이다. 이와 같은 방식으로 JTAG은 다양한 하드웨어의 테스트나 연결 상태 등을 체크할 수 있다.
JTAG 인터페이스는 테스트 클럭 신호(TCK)를 프로세서(140)에 인가하기 위한 테스트 클럭 단자(109) 및 프로세서(140)로부터 데이터 신호(TDO)를 출력하기 위한 데이터 출력 단자(110)를 포함할 수 있다. 도 1에는 도시되지 아니하였으나 JTAG 인터페이스는 테스트를 위한 데이터 입력을 위한 TDI(데이터 입력) 단자, 테스트 모드를 전환하기 위한 제어 신호를 인가하는 TMS(테스트 모드) 단자 및 TRST(리셋) 단자 등을 더 포함할 수 있다.
제어 신호 생성부(120)는 외부 공격 방지 제어 신호(EDBGRQ_mux)를 생성한다.
제어 신호 생성부(120)는 외부 디버그 요청 신호(EDBGRQ) 및 레지스터(180)의 출력 신호(EDBGRQ_REQ)를 입력 받아서 레지스터(180)의 출력 신호(EDBGRQ_REG_DIR)에 의해 두 개의 입력 중 하나를 선택하는 멀티플렉서(102)를 포함할 수 있다.
레지스터(180)는 부트 이미지(boot image) 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 상기 JTAG 통신의 연결 설정보다 먼저 설정(setting)된다.
차단부(130)는 외부 공격 방지 제어 신호(EDBGRQ_mux)에 기반하여 JTAG 인터페이스(110)를 프로세서(140)로부터 차단하거나 연결한다.
차단부(130)는 프로세서(140)로부터 출력되는 데이터 신호(TDO) 및 접지 신호(GND)를 입력 받아서, 외부 공격 방지 제어 신호(EDBGRQ_mux)에 의해 두 입력 중 하나를 선택하는 멀티플렉서(106) 및 JTAG 인터페이스(110)로부터 입력되는 테스트 클럭 신호(TCK) 및 접지 신호(GND)를 입력 받아서, 외부 공격 방지 제어 신호(EDBGRQ_mux)에 의해 두 입력 중 하나를 선택하는 멀티플렉서(104)를 포함한다.
멀티플렉서들(104, 106)은 모두 외부 공격 방지 제어 신호(EDBGRQ_mux)가 활성화될 경우 두 입력 중 접지 신호(GND)를 선택하여 JTAG 인터페이스(110)가 프로세서(140)와 차단되도록 한다.
즉, 도 1에 도시된 예에서 레지스터(180)의 설정값에 따라 외부 공격 방지 제어 신호(EDBGRQ_mux)가 활성화될 수 있다. 외부 공격 방지 제어 신호(EDBGRQ_mux)가 활성화되는 경우 차단부(130)의 멀티플렉서들(104, 106)은 모두 더미 신호(dummy signal)인 접지 신호(GND)를 선택함으로써 JTAG 인터페이스(110)를 통한 보안상의 문제가 발생하지 않도록 한다.
암 코어 계열의 프로세서(또는 CPU)에서 외부 디버그 요청 신호(EDBGRQ)에 의한 강제적 디버깅 기능 제공이 가능하다. 외부 디버그 요청 신호(EDBGRQ)에 의해 코어(core)를 정지 모드(halt mode)로 만들고 나서 JTAG 통신을 통한 공격이 가능하다.
이와 같은 공격에 대응하기 위해 본 발명은 외부 디버그 요청 신호(EDBGRQ)가 활성화되는 순간 JTAG 연결을 불가능하게 할 수 있다.
도 1에 도시된 예에서, 멀티플렉서(102)의 제어신호가 '0'인 경우, 외부 디버그 요청 신호(EDBGRQ)가 활성화되면 외부 공격 방지 제어 신호(EDBGRQ_mux)가 활성화된다. 외부 공격 방지 제어 신호(EDBGRQ_mux)는 멀티플렉서들(104, 106)의 선택신호이므로, 외부 공격 방지 제어 신호(EDBGRQ_mux)가 활성화되면 프로세서(140)로 입력되는 테스트 클럭 신호(TCK)로는 접지 신호(GND)가 입력되고, 프로세서(140)로부터 출력되는 데이터 신호(TDO)로는 접지 신호(GND)가 출력된다. 결과적으로, 프로세서(140)로 들어가는 테스트 클럭(TCK) 및 프로세서로부터 나오는 데이터 출력(TDO) 인터페이스가 차단되어 JTAG 통신이 불가능해진다.
개발된 플랫폼에서는 펌웨어 이미지를 플래시(flash)에 저장하여 원하는 기능을 활성화 시킨다.
이 때, 이미지를 플래시에 다운로드 하는 경우 JTAG이 많이 이용되며, 개발된 플랫폼의 디버깅 시에도 JTAG이 많이 이용된다.
따라서, 시스템 개발자가 예상치 못한 공격자가 JTAG 연결을 시도하여 성공하는 경우 치명적인 공격이 가능하다. 이와 같은 공격을 방지하기 위해 원 타임 프로그래머블 메모리를 사용하기도 하나, 경제적 비용 부담이 크고 원 타임 프로그래머블 메모리를 한 번 설정하면 JTAG의 활용이 영구적으로 불가능해진다.
반면, 본 발명은 일반적인 레지스터를 통하여 JTAG 인터페이스의 차단/연결을 제어할 수 있도록 함으로써 JTAG 인터페이스를 통한 공격을 효과적으로 차단할 수 있다.
도 2는 JTAG 인터페이스의 차단/연결을 결정하는 레지스터 설정 순서를 나타낸 도면이다.
도 2를 참조하면, 개발된 플랫폼에서 처음 전원이 인가되거나 리셋(reset)이 발생하게 되면 부트 이미지(boot image)를 플래시에서 가져와서 실행하게 된다(210).
부트 이미지 안에서 처음 실행되는 리셋 핸들러(reset handler)에서 제일 먼저 본 발명에 의해 구비된 레지스터를 설정한다(220).
즉, 도 1에 도시된 레지스터(180)의 출력 신호들(EDBGRQ_REG, EDBGRQ_REG_DIR)은 각각 멀티플렉서(102)의 입력 신호 및 선택 신호로 이용되는 바, 이 출력 신호들(EDBGRQ_REG, EDBGRQ_REG_DIR)의 설정에 따라 원하는 외부 공격 방지 제어 신호(EDBGRQ_mux)를 발생시킬 수 있다.
외부 디버그 요청 신호(EDBGRQ)가 활성화되고 멀티플렉서(102)의 선택신호가 '0'이거나, 레지스터(180)의 출력 신호(EDBGRQ_REG)가 활성화되고 멀티플렉서(102)의 선택신호가 '1'인 경우, 이미 설명한 바와 같이 JTAG 통신이 불가능해진다.
이 때, 레지스터(180)의 출력 신호(EDBGRQ_REG_DIR)는 외부 디버그 요청 신호(EDBGRQ)를 선택하여 출력할 것인지 아니면 레지스터(180)의 출력 신호(EDBGRQ_REG)를 선택하여 출력할 것인지 선택하는 선택신호로 이용된다. 레지스터(180)의 출력 신호(EDBGRQ_REG)를 선택하는 경우 외부 디버그 요청 신호(EDBGRQ)의 영향 자체를 봉쇄하는 효과도 가질 수 있다.
개발된 플랫폼에서 원하는 레지스터에 설정 작업을 수행하기 전에 JTAG 연결이 성공하면 코어가 정지 모드(halt mode)로 되고 이후 JTAG을 통한 디버깅 작업 수행이 가능하기 때문에 외부 공격에 취약하다.
그러나, 도 2에 도시된 바와 같이 부팅시 가장 먼저 JTAG 인터페이스 차단을 위한 레지스터 설정이 이루어지면 JTAG 통신 연결을 시도하는 속도보다 항상 빠르게 JTAG 통신을 차단하도록 설정할 수 있다. 따라서, JTAG을 통한 공격이 원천적으로 차단된다. 특히, 이와 같은 방식은 일반적인 레지스터를 이용하고 원 타임 프로그래머블 메모리를 사용하지 않기 때문에 비용 부담이 적고 언제든지 레지스터를 다시 설정함으로써 차단된 JTAG 인터페이스를 복구할 수 있으므로 재사용성이 우수하다.
이와 같은 레지스터의 재설정은 부트 이미지 수행시 순차적으로 이루어질 수도 있고(230), 아예 부트이미지를 업데이트하여 부트 이미지 실행 직후의 레지스터 설정 과정(220)을 삭제함으로써 수행될 수도 있다.
프로세서가 동작하는 기설정된 클록 동안 보안성을 위협하는 신호들을 비활성화시키고, 부트코드에서 이 클록 시간 안에 보안성을 위협하는 신호들을 활성화/비활성화 할 수 있는 시스템을 통하여 JTAG 공격에 다한 보안성을 보완할 수 있다.
하드웨어적으로 처음 시스템이 부팅될 때 JTAG 인터페이스를 차단하여 JTAG 통신이 불가능하게 할 수 있다. 이후, 기설정된 클록이 지나면 JTAG 인터페이스를 연결하여 JTAG 통신이 가능해지도록 할 수 있다.
이와 같은 구조에서 기설정된 클록 시간 안에 보안성을 위협하는 신호들을 비활성화하는 부트코드를 이용하면 외부 공격이 효과적으로 방지되고, 활성화하는 부트코드를 이용하면 JTAG을 다시 사용할 수 있다.
도 3은 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 처음 전원이 인가되거나 리셋이 발생하는 경우 부트 이미지를 플래시에서 가져온다(S310).
또한, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정한다(S320).
이 때, 레지스터는 JTAG 통신의 연결 설정보다 먼저 설정되어 JTAG 연결을 통한 외부 공격이 원천적으로 차단될 수 있도록 한다. 예를 들어, 단계(S320)의 레지스터 설정은 리셋 핸들러에서 다른 어떤 작업보다도 우선하여 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성한다(S330).
이 때, 외부 공격 방지 제어 신호는 상기 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호를 두 개의 입력으로 하고, 상기 레지스터에 의해 생성되는 선택 신호에 의해 상기 두 개의 입력들 중 하나를 선택하는 멀티플렉서에 의하여 생성될 수 있다.
또한, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 단계(S330)에서 생성된 외부 공격 방지 제어 신호가 '차단'에 상응하는 것인지 여부를 판단한다(S340).
단계(S340)의 판단 결과, 외부 공격 방지 제어 신호가 '차단'에 상응하는 것인 경우, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단한다(S350).
이 때, JTAG 인터페이스는 테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자 및 상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함할 수 있다.
이 때, 단계(S350)는 상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 멀티플렉서에 의하여 수행될 수 있다. 예를 들어, 더미 신호는 접지 신호일 수 있다.
단계(S340)의 판단 결과, 외부 공격 방지 제어 신호가 '차단'에 상응하는 것이 아닌 경우, 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 연결한다(S360).
단계(S320)에 의하여 설정되는 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정될 수도 있다. 나아가, 단계(S320)에 의하여 설정되는 레지스터는 시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고, 기설정된 시간이 지나면 JTAG 인터페이스가 연결되도록 하는 외부 공격 방지 제어 신호가 생성되도록 설정될 수도 있다.
이상에서와 같이 본 발명에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
S310: 부트 이미지 로드 단계
S320: 레지스터 설정 단계
S330: 외부 공격 방지 제어 신호 생성 단계
S350: JTAG 인터페이스 차단 단계

Claims (14)

  1. JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스;
    외부 공격 방지 제어 신호를 생성하는 제어 신호 생성부; 및
    상기 외부 공격 방지 제어 신호에 기반하여 상기 JTAG 인터페이스를 차단하는 차단부
    를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방지 장치.
  2. 청구항 1에 있어서,
    상기 외부 공격 방지 장치는
    부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 상기 JTAG 통신의 연결 설정보다 먼저 설정되는 레지스터를 더 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  3. 청구항 2에 있어서,
    상기 제어 신호 생성부는 외부 디버그 요청 신호 및 상기 레지스터의 제1 출력 신호를 입력으로 하고 상기 레지스터의 제2 출력 신호를 선택 신호로 하는 제1 멀티플렉서를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  4. 청구항 3에 있어서,
    상기 JTAG 인터페이스는
    테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자; 및
    상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  5. 청구항 3에 있어서,
    상기 차단부는
    상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 제2 멀티플렉서를 포함하고, 상기 외부 공격 방지 제어 신호가 활성화되는 경우 상기 더미 신호를 선택하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  6. 청구항 3에 있어서,
    상기 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  7. 청구항 6에 있어서,
    상기 레지스터는
    시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고,
    기설정된 시간이 지나면 상기 JTAG 인터페이스가 연결되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치.
  8. 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정하는 단계;
    외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성하는 단계; 및
    상기 외부 공격 방지 제어 신호에 기반하여 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단하는 단계
    를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  9. 청구항 8에 있어서,
    상기 레지스터 값은
    상기 JTAG 통신의 연결 설정보다 먼저 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  10. 청구항 2에 있어서,
    상기 외부 공격 방지 제어 신호는
    상기 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호를 두 개의 입력들로 하고 상기 레지스터에 의해 생성되는 선택 신호에 의해 상기 두 개의 입력들 중 하나를 선택하는 제1 멀티플렉서에 의하여 생성되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  11. 청구항 10에 있어서,
    상기 JTAG 인터페이스는
    테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자; 및
    상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  12. 청구항 10에 있어서,
    상기 JTAG 인터페이스를 차단하는 단계는
    상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 제2 멀티플렉서에 의하여 수행되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  13. 청구항 10에 있어서,
    상기 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
  14. 청구항 13에 있어서,
    상기 레지스터는
    시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고,
    기설정된 시간이 지나면 상기 JTAG 인터페이스가 연결되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
KR1020110141332A 2011-12-23 2011-12-23 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 KR101301022B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110141332A KR101301022B1 (ko) 2011-12-23 2011-12-23 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
US13/486,009 US8621298B2 (en) 2011-12-23 2012-06-01 Apparatus for protecting against external attack for processor based on arm core and method using the same
EP12170496.9A EP2608102A1 (en) 2011-12-23 2012-06-01 Appparatus for protecting against external attack for processor based on arm core and method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110141332A KR101301022B1 (ko) 2011-12-23 2011-12-23 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법

Publications (2)

Publication Number Publication Date
KR20130093710A true KR20130093710A (ko) 2013-08-23
KR101301022B1 KR101301022B1 (ko) 2013-08-28

Family

ID=46317173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110141332A KR101301022B1 (ko) 2011-12-23 2011-12-23 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법

Country Status (3)

Country Link
US (1) US8621298B2 (ko)
EP (1) EP2608102A1 (ko)
KR (1) KR101301022B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015542B2 (en) * 2011-10-01 2015-04-21 Intel Corporation Packetizing JTAG across industry standard interfaces
JP2015157967A (ja) * 2014-02-21 2015-09-03 株式会社神戸製鋼所 アルミニウム合金板、接合体及び自動車用部材
DE102015110729A1 (de) * 2014-07-21 2016-01-21 Dspace Digital Signal Processing And Control Engineering Gmbh Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
KR102251812B1 (ko) 2015-01-26 2021-05-13 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US10095891B2 (en) * 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
CN107229405A (zh) * 2016-03-25 2017-10-03 广州市动景计算机科技有限公司 用于提供网页内容的方法、设备、浏览器及电子设备
CN109800172B (zh) * 2019-01-25 2022-05-24 上海创景信息科技有限公司 基于ejtag接口定位嵌入式处理器死机的系统和方法
US11436315B2 (en) 2019-08-15 2022-09-06 Nuvoton Technology Corporation Forced self authentication
US11520940B2 (en) 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154857A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Microprocessor-based device incorporating a cache for capturing software performance profiling data
US6961791B2 (en) * 2001-10-17 2005-11-01 Hewlett-Packard Development Company, L.P. Method for expansion and integration of option ROM support utilities for run-time/boot-time usage
KR100432886B1 (ko) * 2002-01-30 2004-05-22 삼성전자주식회사 높은 주파수의 웨이퍼 테스트 동작을 수행하는 반도체메모리 장치
US7117352B1 (en) 2002-02-13 2006-10-03 Lsi Logic Corporation Debug port disable mechanism
US8065512B2 (en) * 2005-08-22 2011-11-22 Nxp B.V. Embedded memory protection
JP2007304972A (ja) * 2006-05-12 2007-11-22 Matsushita Electric Ind Co Ltd マイクロプロセッサシステム
US7657722B1 (en) * 2007-06-30 2010-02-02 Cirrus Logic, Inc. Method and apparatus for automatically securing non-volatile (NV) storage in an integrated circuit
KR20090017858A (ko) * 2007-08-16 2009-02-19 삼성전자주식회사 Jtag 포드 해킹 방지 시스템/방법
US8842836B2 (en) * 2007-11-26 2014-09-23 Koolspan, Inc. System for and method of cryptographic provisioning
KR101502032B1 (ko) 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치
KR20100070027A (ko) 2008-12-17 2010-06-25 삼성전자주식회사 제이태그 인증 기능을 구비하는 장치 및 제이태그 인증방법

Also Published As

Publication number Publication date
US20130166975A1 (en) 2013-06-27
KR101301022B1 (ko) 2013-08-28
EP2608102A1 (en) 2013-06-26
US8621298B2 (en) 2013-12-31

Similar Documents

Publication Publication Date Title
KR101301022B1 (ko) 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
Sun et al. OAT: Attesting operation integrity of embedded devices
Dessouky et al. {HardFails}: Insights into {Software-Exploitable} Hardware Bugs
EP3287800B1 (en) Jtag debug apparatus and jtag debug method
US9218489B2 (en) Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor contest, rootkit detection/prevention, and/or other features
TWI521378B (zh) 偵測錯誤注入的裝置與方法
US9600291B1 (en) Secure boot using a field programmable gate array (FPGA)
US8156317B2 (en) Integrated circuit with secure boot from a debug access port and method therefor
US8495758B2 (en) Method and apparatus for providing scan chain security
US10289577B2 (en) System, method and computer-accessible medium for low-overhead security wrapper for memory access control of embedded systems
US20190347417A1 (en) Hardware trojan detection through information flow security verification
TW201928677A (zh) 處理故障注入攻擊的安全系統和方法
US9977682B2 (en) System management mode disabling and verification techniques
US20070180269A1 (en) I/O address translation blocking in a secure system during power-on-reset
JP2011070654A (ja) アンチマルウェアを有するコンピュータシステムおよび方法
US20190236276A1 (en) Secured master-mediated transactions between slave devices using bus monitoring
Kataria et al. Defeating cisco trust anchor: A {Case-Study} of recent advancements in direct {FPGA} bitstream manipulation
TWI801468B (zh) 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器
CN109901793B (zh) 存储器安全装置及其方法
KR20160144921A (ko) Ios 소프트웨어 모듈들의 보호를 위한 디바이스 및 방법
Saß et al. Oops..! I Glitched It Again! How to {Multi-Glitch} the {Glitching-Protections} on {ARM}{TrustZone-M}
Gravellier et al. Faultline: Software-based fault injection on memory transfers
JP7383750B2 (ja) 故障注入攻撃を検出する改善されたシステムと方法
Nath et al. ArtiFact: Architecture and CAD flow for efficient formal verification of SoC security policies
Gruhn Forensic limbo: Towards subverting hard disk firmware bootkits

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: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 7