KR101301022B1 - 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 - Google Patents
암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 Download PDFInfo
- Publication number
- KR101301022B1 KR101301022B1 KR1020110141332A KR20110141332A KR101301022B1 KR 101301022 B1 KR101301022 B1 KR 101301022B1 KR 1020110141332 A KR1020110141332 A KR 1020110141332A KR 20110141332 A KR20110141332 A KR 20110141332A KR 101301022 B1 KR101301022 B1 KR 101301022B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- external attack
- register
- control signal
- jtag
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000002265 prevention Effects 0.000 claims abstract description 44
- 238000004891 communication Methods 0.000 claims abstract description 21
- 230000007123 defense Effects 0.000 claims abstract description 21
- 206010028980 Neoplasm Diseases 0.000 claims abstract description 20
- 201000011510 cancer Diseases 0.000 claims abstract description 20
- 230000000903 blocking effect Effects 0.000 claims abstract description 19
- 238000012360 testing method Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000003888 boundary cell Anatomy 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012019 product validation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2123—Dummy operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법이 개시된다. 본 발명에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법은, 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정하는 단계; 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성하는 단계; 및 상기 외부 공격 방지 제어 신호에 기반하여 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단하는 단계를 포함한다.
Description
본 발명은 마이크로 프로세서에 관한 것으로, 특히 암 코어(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은 본 발명의 일실시예에 따른 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법을 나타낸 동작 흐름도이다.
도 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 인터페이스 차단 단계
S320: 레지스터 설정 단계
S330: 외부 공격 방지 제어 신호 생성 단계
S350: JTAG 인터페이스 차단 단계
Claims (14)
- 삭제
- JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스;
외부 공격 방지 제어 신호를 생성하는 제어 신호 생성부;
상기 외부 공격 방지 제어 신호에 기반하여 상기 JTAG 인터페이스를 차단하는 차단부; 및
부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 상기 JTAG 통신의 연결 설정보다 먼저 설정되는 레지스터를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 청구항 2에 있어서,
상기 제어 신호 생성부는 외부 디버그 요청 신호 및 상기 레지스터의 제1 출력 신호를 입력으로 하고 상기 레지스터의 제2 출력 신호를 선택 신호로 하는 제1 멀티플렉서를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 청구항 3에 있어서,
상기 JTAG 인터페이스는
테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자; 및
상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 청구항 3에 있어서,
상기 차단부는
상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 제2 멀티플렉서를 포함하고, 상기 외부 공격 방지 제어 신호가 활성화되는 경우 상기 더미 신호를 선택하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 청구항 3에 있어서,
상기 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 청구항 6에 있어서,
상기 레지스터는
시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고,
기설정된 시간이 지나면 상기 JTAG 인터페이스가 연결되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치. - 삭제
- 부트 이미지 안에서 처음으로 실행되는 리셋 핸들러(reset handler)에 의하여 레지스터를 설정하는 단계;
외부 디버그 요청 신호 및 상기 레지스터의 출력 신호 중 어느 하나에 의하여 외부 공격 방지 제어 신호를 생성하는 단계; 및
상기 외부 공격 방지 제어 신호에 기반하여 JTAG 통신을 위해 암 코어 기반의 프로세서와 연결되는 JTAG 인터페이스를 차단하는 단계를 포함하고,
상기 레지스터 값은
상기 JTAG 통신의 연결 설정보다 먼저 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법. - 청구항 9에 있어서,
상기 외부 공격 방지 제어 신호는
상기 외부 디버그 요청 신호 및 상기 레지스터의 출력 신호를 두 개의 입력들로 하고 상기 레지스터에 의해 생성되는 선택 신호에 의해 상기 두 개의 입력들 중 하나를 선택하는 제1 멀티플렉서에 의하여 생성되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법. - 청구항 10에 있어서,
상기 JTAG 인터페이스는
테스트 클럭 신호를 상기 프로세서에 인가하기 위한 테스트 클럭 단자; 및
상기 프로세서로부터 데이터 신호를 출력하기 위한 데이터 출력 단자를 포함하는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법. - 청구항 10에 있어서,
상기 JTAG 인터페이스를 차단하는 단계는
상기 외부 공격 방지 제어 신호에 따라 상기 JTAG 인터페이스 및 상기 프로세서 중 어느 하나로부터 제공되는 신호와 더미 신호 중 하나를 선택하는 제2 멀티플렉서에 의하여 수행되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법. - 청구항 10에 있어서,
상기 레지스터는 상기 부트 이미지의 업데이트에 따라서 다른 값으로 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법. - 청구항 13에 있어서,
상기 레지스터는
시스템 동작 초기에 상기 JTAG 인터페이스가 차단되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되고,
기설정된 시간이 지나면 상기 JTAG 인터페이스가 연결되도록 하는 상기 외부 공격 방지 제어 신호가 생성되도록 설정되는 것을 특징으로 하는 암 코어 기반의 프로세서를 위한 외부 공격 방어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110141332A KR101301022B1 (ko) | 2011-12-23 | 2011-12-23 | 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 |
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 |
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 |
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 KR20130093710A (ko) | 2013-08-23 |
KR101301022B1 true 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)
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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090017858A (ko) * | 2007-08-16 | 2009-02-19 | 삼성전자주식회사 | Jtag 포드 해킹 방지 시스템/방법 |
KR20090095843A (ko) * | 2008-03-06 | 2009-09-10 | 삼성전자주식회사 | 보안 기능을 갖는 프로세서 장치 |
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 |
KR20100070027A (ko) * | 2008-12-17 | 2010-06-25 | 삼성전자주식회사 | 제이태그 인증 기능을 구비하는 장치 및 제이태그 인증방법 |
Family Cites Families (7)
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 |
WO2007023457A2 (en) * | 2005-08-22 | 2007-03-01 | Nxp B.V. | Embedded memory protection |
JP2007304972A (ja) * | 2006-05-12 | 2007-11-22 | Matsushita Electric Ind Co Ltd | マイクロプロセッサシステム |
US8842836B2 (en) * | 2007-11-26 | 2014-09-23 | Koolspan, Inc. | System for and method of cryptographic provisioning |
-
2011
- 2011-12-23 KR KR1020110141332A patent/KR101301022B1/ko active IP Right Grant
-
2012
- 2012-06-01 EP EP12170496.9A patent/EP2608102A1/en not_active Withdrawn
- 2012-06-01 US US13/486,009 patent/US8621298B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 포드 해킹 방지 시스템/방법 |
KR20090095843A (ko) * | 2008-03-06 | 2009-09-10 | 삼성전자주식회사 | 보안 기능을 갖는 프로세서 장치 |
KR20100070027A (ko) * | 2008-12-17 | 2010-06-25 | 삼성전자주식회사 | 제이태그 인증 기능을 구비하는 장치 및 제이태그 인증방법 |
Also Published As
Publication number | Publication date |
---|---|
US8621298B2 (en) | 2013-12-31 |
US20130166975A1 (en) | 2013-06-27 |
EP2608102A1 (en) | 2013-06-26 |
KR20130093710A (ko) | 2013-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101301022B1 (ko) | 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 | |
Sun et al. | OAT: Attesting operation integrity of embedded devices | |
Ender et al. | The unpatchable silicon: a full break of the bitstream encryption of xilinx 7-series {FPGAs} | |
EP3287800B1 (en) | Jtag debug apparatus and jtag debug method | |
TWI521378B (zh) | 偵測錯誤注入的裝置與方法 | |
US8495758B2 (en) | Method and apparatus for providing scan chain security | |
JP6433198B2 (ja) | 安全なブートromパッチのためのシステム及び方法 | |
US8156317B2 (en) | Integrated circuit with secure boot from a debug access port and method therefor | |
TW201928677A (zh) | 處理故障注入攻擊的安全系統和方法 | |
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 | |
US9977682B2 (en) | System management mode disabling and verification techniques | |
CN106682497A (zh) | 在管理程序模式下安全执行代码的***和方法 | |
US20070180269A1 (en) | I/O address translation blocking in a secure system during power-on-reset | |
TWI801468B (zh) | 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器 | |
Kataria et al. | Defeating cisco trust anchor: A {Case-Study} of recent advancements in direct {FPGA} bitstream manipulation | |
WO2013102521A1 (en) | Method for secure self-booting of an electronic device | |
CN109901793B (zh) | 存储器安全装置及其方法 | |
KR20160144921A (ko) | Ios 소프트웨어 모듈들의 보호를 위한 디바이스 및 방법 | |
US10169177B1 (en) | Non-destructive online testing for safety critical applications | |
Sanders | Secure boot of zynq-7000 all programmable soc | |
Gravellier et al. | Faultline: Software-based fault injection on memory transfers | |
JP7383750B2 (ja) | 故障注入攻撃を検出する改善されたシステムと方法 | |
Gruhn | Forensic limbo: Towards subverting hard disk firmware bootkits | |
US11734457B2 (en) | Technology for controlling access to processor debug features |
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 |