KR101502032B1 - 보안 기능을 갖는 프로세서 장치 - Google Patents

보안 기능을 갖는 프로세서 장치 Download PDF

Info

Publication number
KR101502032B1
KR101502032B1 KR1020080021031A KR20080021031A KR101502032B1 KR 101502032 B1 KR101502032 B1 KR 101502032B1 KR 1020080021031 A KR1020080021031 A KR 1020080021031A KR 20080021031 A KR20080021031 A KR 20080021031A KR 101502032 B1 KR101502032 B1 KR 101502032B1
Authority
KR
South Korea
Prior art keywords
hash value
boot code
boot
security
control unit
Prior art date
Application number
KR1020080021031A
Other languages
English (en)
Other versions
KR20090095843A (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 KR1020080021031A priority Critical patent/KR101502032B1/ko
Priority to US12/381,114 priority patent/US8489888B2/en
Publication of KR20090095843A publication Critical patent/KR20090095843A/ko
Application granted granted Critical
Publication of KR101502032B1 publication Critical patent/KR101502032B1/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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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/2113Multi-level security, e.g. mandatory access control
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

보안 모드 동작이 가능한 프로세서 장치가 개시된다. 본 발명의 일 실시예에 따른 프로세서 장치는 해쉬 값 저장부 및 보안 제어부를 구비한다. 해쉬 값 저장부는 사용자 인증 해쉬 값 및 다수개의 접근 인증 해쉬 값들을 포함하는 다수개의 해쉬 값들을 저장한다. 보안 제어부는 부트 메모리로부터 전송되는 부트 코드와 상기 해쉬 값들 중 상기 부트 코드에 대응되는 해쉬 값의 일치 여부를 판단하고, 부트 동작의 수행, 상기 프로세서 장치의 디버깅 수행 또는 외부 사용자가 특정 IP 블록으로 접근하는 것의 허용 여부를 결정한다. 본 발명의 일 실시예에 따른 프로세서 장치는 프로세서 장치의 디버깅에 대한 보안, 프로세서 자체의 부트 보안, 또는 프로세서 장치 내의 특정 IP 블록에 대한 보안을 유지할 수 있다.

Description

보안 기능을 갖는 프로세서 장치{Processor apparatus having secure performance}
본 발명은 프로세서 장치에 관한 것으로, 특히 디버깅 동작, 특정 IP 블록 접근, 프로세서 장치 자체에 대하여 보안 기능을 갖는 프로세서 장치에 관한 것이다.
메모리 장치, 상기 메모리 장치를 사용하는 프로세서, 및 상기 프로세서를 사용하는 시스템 장치에 있어서, 저장되어 있는 데이터의 보안(security) 및 보호(protection)가 중요해지고 있다. 또한 상기 프로세서 자체의 접근 및 노출을 막아서 상기 프로세서 자체가 보안을 유지할 수 있도록 하는 것이 중요해지고 있다. 여기서, 보안(security)이란, 특정 데이터 또는 프로세서(또는 프로세서 내부에 구비되는 특정 블록)를 허락되지 않은 일반인이 접근하지 못하도록 하는 것이다.
그러나, 종래의 메모리 장치, 상기 메모리 장치를 사용하는 프로세서, 및 상기 프로세서를 사용하는 시스템 장치는 악의적인 사용자에게 많은 취약점을 가지고 있다. 여기서, 악의적인 사용자란, 상기 메모리 장치, 프로세서, 또는 시스템 장치의 정당한 사용자의 허락 없이 상기 메모리 장치 등을 이용, 및 위 변조하려 하는 불특정 다수를 뜻한다. 즉, 악의적인 사용자는 상기 메모리 장치에 저장된 데이터를 악의적으로 위조 또는 변조하려고 하는 자, 또는 프로세서의 동작을 변경시키려 하거나 프로세서 내부의 보호되어야 할 정보 또는 구조를 유출시키려는 자 등이 되는 것이다.
예를 들어, 바운더리 스캔(boundary scan) 방법을 이용할 경우, 프로세서 장치 또는 메모리 장치의 데이터를 모두 읽어낼 수 있으며, 저장된 데이터의 변조가 가능하다. 바운더리 스캔 방법이란, 메모리 장치의 핀들과 일대일로 연결시킨 핀들을 이용하여, 상기 메모리 장치가 할 수 있는 모든 동작을 인위적으로 수행하거나, 해당 장치의 성능 등을 테스트 할 수 있도록 하는 방법이다. 이러한 바운더리 스캔 방법의 정의 및 구체적인 구성은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어서 자명한 것이라 할 수 있다.
즉, 악의적인 사용자는 바운더리 스캔 방법을 이용함으로써, 프로세서 장치 또는 메모리 장치의 데이터를 유출 및 위조 또는 변조시킬 수 있다. 이러한 경우, 상기 프로세서 장치 또는 메모리 장치의 보안은 유지되지 못한다.
또 다른 예로, 합동 시험 활동 그룹(JTAG: Joint Test Action Group) 포트(JTAG port)를 이용하여 프로세서의 디버깅(debugging) 동작을 수행하는 경우이다. 프로세서의 디버깅 동작 수행 시, 악의적 사용자는 프로세서의 정당 사용자의 허락 없이 프로세서의 동작 변경 또는 프로세서 내부의 보호되어야 할 정보를 유출할 수 있다. 여기서, 합동 시험 활동 그룹 포트(JTAG port)란 디버깅할 때 쓰는 포트로써, 디버깅을 위하여 프로세서 내부에 별도로 만들어놓은 포트를 뜻한다. 합동 시험 활동 그룹 포트(JTAG port)의 정의 및 구성은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이라 할 수 있다.
최근에는 합동 시험 활동 그룹 포트가 악의적으로 이용되는 것을 방지하기 위하여, 최근에는 합동 시험 활동 그룹 포트(JTAG port)의 사용을 영구적으로 불가능하게 하는 방법이 제안되었다. 그러나, 이러한 방법은 프로세서에 문제가 발생하였을 경우, 디버깅 동작 수행을 불가능하게 하며, 별도의 디버깅 동작 수행 방법을 제시하지 못하는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는 보안 기능을 갖는 프로세서 장치를 제공하는데 있다.
본 발명의 일 실시예에 따른 프로세서 장치는 해쉬 값 저장부 및 보안 제어부를 구비한다.
해쉬 값 저장부는 사용자 인증 해쉬 값 및 다수개의 접근 인증 해쉬 값들을 포함하는 다수개의 해쉬 값들을 저장한다.
보안 제어부는 부트 메모리로부터 전송되는 부트 코드와 상기 해쉬 값들 중 상기 부트 코드에 대응되는 해쉬 값의 일치 여부를 판단하고, 부트 동작의 수행, 상기 프로세서 장치의 디버깅 수행 또는 외부 사용자가 특정 IP 블록으로 접근하는 것의 허용 여부를 결정한다.
접근 인증 해쉬 값들은 상기 프로세서 장치의 외부로 출력되지 않고, 상기 보안 제어부에 의하여 독출되는 값이다.
바람직하게, 보안 제어부는 상기 프로세서 장치의 부트가 요청된 경우 전송되는 제1 부트 코드의 위 변조 여부를, 상기 사용자 인증 해쉬 값을 이용하여 판단한다.
바람직하게, 제1 부트 코드는 중앙 처리 장치가 상기 프로세서 장치의 부트 동작을 요청한 경우, 상기 중앙 처리 장치의 제어에 응답하여 상기 부트 메모리에 서 출력되는 부트 코드이다.
바람직하게, 사용자 인증 해쉬 값은 위 변조 되지 않은 상기 제1 부트 코드에 대응되는 해쉬 값이다.
바람직하게, 보안 제어부는 상기 제1 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용해 변환한 값과 상기 사용자 인증 해쉬 값의 동일성 여부를 판단하고, 상기 제1 부트 코드를 변환한 값과 상기 사용자 인증 해쉬 값이 동일하면 상기 부트 동작을 수행한다.
바람직하게, 보안 제어부는 상기 제1 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용해 변환한 값과 상기 사용자 인증 해쉬 값이 동일하지 않으면, 상기 프로세서 장치의 전체 동작이 정지되도록 한다.
바람직하게, 프로세서 장치는 중앙 처리 장치, 및 상기 프로세서 장치의 디버깅 동작을 수행하는 합동 시험 활동 그룹(JTAG) 포트를 더 구비할 수 있다.
바람직하게, 보안 제어부는 상기 접근 인증 해쉬값들 중 제1 접근 인증 해쉬 값을 이용하여, 상기 합동 시험 활동 그룹 포트가 상기 중앙 처리 장치와 연결되는 것을 허용할지 여부를 결정한다.
바람직하게, 보안 제어부는 상기 제1 접근 인증 해쉬 값과 디버깅 동작이 요청된 경우 전송되는 제2 부트 코드의 동일성을 판단하여, 상기 연결의 허용 여부를 결정한다.
바람직하게, 제2 부트 코드는 상기 중앙 처리 장치가 상기 디버깅 동작을 요청받은 경우, 상기 중앙 처리 장치의 제어에 응답하여 상기 부트 메모리에서 출력 되는 부트 코드이다.
바람직하게, 보안 제어부는 상기 제1 접근 인증 해쉬 값과 상기 제2 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용하여 변환한 값이 동일한 것으로 판단하면, 상기 합동 시험 활동 그룹(JTAG) 포트와 상기 중앙 처리 장치를 연결한다.
바람직하게, 프로세서 장치는 각각 독립적인 특정 기능을 갖도록 설계된 다수개의 IP 블록들을 더 구비할 수 있다. 상기 특정 IP 블록은 상기 다수개의 IP 블록들 중 보안 동작이 요청되는 하나 이상의 IP 블록이 된다.
바람직하게, 보안 제어부는 상기 접근 인증 해쉬 값들 중 제2 접근 인증 해쉬 값을 이용하여, 상기 외부 사용자가 상기 특정 IP 블록으로 접근하는 것을 허용할지 여부를 결정한다.
바람직하게, 프로세서 장치는 상기 중앙 처리 장치, 상기 하나 이상의 특정 IP 블록, 및 상기 보안 제어부를 상호 연결하는 버스 인터커넥터, 및 상기 버스 인터커넥터와 상기 하나 이상의 특정 IP 블록을 각각 연결하는 하나 이상의 스위치를 더 구비할 수 있다. 상기 보안 제어부는 상기 제2 접근 인증 해쉬 값과 상기 제3 부트 코드를 변환한 값이 동일하면, 상기 하나 이상의 스위치가 턴 온 되도록 한다.
바람직하게, 보안 제어부는 하드웨어에 내장된 형태로 구성되는 암호화 알고리즘을 저장하고 있는 암호화 알고리즘 부, 상기 부트 코드와 상기 해쉬 값들 중 상기 부트 코드와 대응되는 해쉬 값의 동일성 여부를 판단하는 보안 등급 제어부, 및 상기 보안 등급 제어부의 동일성 판단 결과에 따라서, 상기 부트 코드에 상응하 는 동작의 수행을 허용할지 여부를 결정하고, 그에 따라서 상기 부트 코드에 상응하는 동작 수행을 조절 및 제어하는 보안 등급 인증부를 포함할 수 있다.
본 발명의 일 실시예에 따른 프로세서 장치는 부트 메모리에 저장된 부트 코드들에 각각 대응되는 해쉬 값들을 내부적으로 저장하고, 부트 동작, 디버깅 동작 또는 특정 IP 블록으로의 접근 동작 등이 요청된 경우 상기 일 부트 코드와 그에 대응되는 해쉬 값을 비교하여 상기 동작들의 허용 여부를 결정한다. 따라서, 프로세서 장치의 자체 보안, 디버깅에 대한 보안, 또는 프로세서 장치 내의 특정 IP 블록에 대한 보안을 유지할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 프로세서 장치를 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 프로세서 장치(110)는 해쉬 값 저장부(133), 및 보안 제어부(131)를 구비한다. 프로세서 장치(110)는 JTAG 포트(JTAG port: Joint Test Action Group port)(112), 중앙 처리 장치(CPU)(114), 또는 다수개의 IP 블록(Intellectual Property block)들(IP1, IP2, IP3)(141, 142, 143)을 더 구비할 수 있다. 또한, 프로세서 장치(110)는 버스 인터커넥터(bus interconnector)(120)를 더 구비할 수 있다. 도 1에서는 100은 시스템 보드(system board) 나타내며, 프로세서 장치(110)의 외부에 부트 메모리(boot memory)(160)가 구비될 수 있다.
해쉬 값 저장부(133)는 사용자 인증 해쉬 값(h1), 및 다수개의 접근 인증 해쉬 값들(h2, h3, ```)들을 포함하는 다수개의 해쉬 값(Hash value)들을 저장한다. 여기서, 다수개의 해쉬 값들은 부트 메모리(160)에 저장되어 있는 다수개의 부트 코드들에 각각 대응되는 해쉬 값들이 된다.
접근 인증 해쉬 값들(h2, h3 ``)은 프로세서 장치(110)의 외부로 출력되지 않고, 보안 제어부(130)에 의하여 독출되는 값이 된다.
보안 제어부(131)는 부트 메모리(160)로부터 전송되는 부트 코드(boot code)와 특정 해쉬 값의 일치 여부를 판단한다. 그리고, 상기 일치 여부 판단 결과에 따라서, 부트 동작의 수행, 프로세서 장치(110)의 디버깅(debugging) 수행, 또는 외부 사용자가 프로세서 장치(110) 내의 특정 IP 블록으로 접근하는 동작 등을 허용할지 여부를 결정한다. 여기서, '특정 해쉬 값'이란, 부트 메모리(160)로부터 전송되는 부트 코드에 대응되는 해쉬 값을 뜻한다.
바람직하게, 보안 제어부(131)는 부트 메모리(160)에서 전송된 부트 코드의 위 변조 여부를, 특정 해쉬 값을 이용한 상술한 일치 여부 판단을 통하여 확인하는 것이다.
본 발명의 일 실시예에 따른 프로세서 장치(110)는 해쉬 값 저장부(133)를 구비하고, 특정 동작을 수행하도록 하는 부트 코드들에 각각 대응되는 해쉬 값들을 내부적으로 저장한다. 여기서, 특정 동작이란 사용자 인증에 따른 부트 동작의 수행, 프로세서 장치(110)의 디버깅 수행, 또는 외부 사용자가 특정 IP 블록으로 접근하는 동작 등이 될 수 있다.
예시적으로, 프로세서 장치(110)는 이하와 같은 동작을 함으로써 보안 동작을 수행할 수 있다.
프로세서 장치(110)의 부팅이 이뤄지기 위해서, 부트 메모리(160)는 중앙 처리 장치(114)의 제어에 응답하여 제1 부트 코드를 170 신호선을 통하여 보안 제어부(133)로 전송한다. 해쉬 값 저장부(133)는 위조 또는 변조되지 않은 제1 부트 코드에 대응되는 사용자 인증 해쉬 값(즉, 위 변조 되지 않은 제1 부트 코드를, 해쉬 엔진(hash engine)을 이용하여 변환시킨 값)을 저장하고 있다.
보안 제어부(131)는 제1 부트 코드와 사용자 인증 해쉬 값의 동일성을 확인하고, 상기 두 값이 동일하면 부트 동작을 실행한다. 그리고, 상기 두 값이 동일하지 않으면 부트 동작을 실행하지 않는다. 여기서, 동일성의 확인은 전송된 제1 부트 코드를 보안 제어부(131)의 내부에 구비된 해쉬 엔진(hash engine)을 이용하여 변환시킨 값이 상기 사용자 인증 해쉬 값과 동일한지 판단하는 것에 의하여 이루어진다.
IP 블록(141, 142, 또는 143)은 각각 독립적인 특정 기능을 갖도록 설계된 회로 블록이다. IP 블록은 사용자 또는 제작자의 의도에 따라서 독립적인 특정 기 능을 갖도록 설계된다. 다수개의 IP 블록들(141, 142, 143) 중 보안이 필요한 특정 IP 블록에 대하여는 보안 제어부(133)의 제어에 의하여 외부 사용자의 접근이 허용 또는 차단된다.
JTAG 포트(112)는 전술한 바와 같이, 프로세서 장치(110)의 디버깅 동작 수행시 이용되는 포트이다. JTAG 포트(112)와 중앙 처리 장치(114)가 연결되는 것은 보안 제어부(133)의 제어에 의하여 허용 또는 불허 된다.
부트 메모리(160)는 프로세서 장치(110)의 외부에 구비된다. 부트 메모리(160)는 프로세서 장치의 부트 또는 특정 동작 수행에 필요한 부트 코드들을 저장한다. 그리고, 중앙 처리 장치(114)의 제어에 응답하여, 일 부트 코드를 선택하여 출력한다. 부트 메모리(160)는 암호화되지 않은 데이터를 저장하고 있을 수 있다. 따라서, 부트 메모리(160)는 전술한 바운더리 스캔 방법 등을 통하여 내부에 저장된 데이터가 위 변조 될 수 있는 위험에 상시 노출되어 있다.
종래의 프로세서 장치는 부트 메모리에서 출력된 부트 코드를 직접적으로 수행하여 부팅 동작을 실행하였다. 따라서, 부트 코드가 위조 또는 변조되었을 경우, 프로세서 장치의 보안은 유지될 수 없게 된다.
본원에서는 부트 메모리의 무결성(integrity)을 보장하기 위하여, 안전한 해쉬 알고리즘(secure hash algorithm) 및 해쉬 값들을 이용한다. 여기서, 해쉬 알고리즘 이란, 크기가 일정하지 않은 입력 데이터를 모두 같은 일정량의 데이터 크기로 변환하여 출력하는 암호화 알고리즘이다. 해쉬 값이란, 해쉬 엔진을 통과하여 출력된 데이터를 뜻한다.
구체적으로, 본원에서는 위조 또는 변조되지 않은 부트 코드들에 대응하는 해쉬 값들을 해쉬 값 저장부(133)에서 저장하고, 저장된 해쉬값들을 이용하여 부트 코드의 무결성을 확인함으로써, 프로세서 장치(110)의 보안을 유지할 수 있다.
이하에서는, 본 발명의 일 실시예에 따른 프로세서 장치(110)를 도 2 내지 도 4를 참조하여 상세히 설명하도록 한다.
도 2는 도 1의 보안 제어부 및 해쉬 값 저장부를 상세히 나타내는 도면이다.
이하에서, 도 1 및 도 2를 참조하여, 보안 제어부(131)의 동작 및 구성을 상세히 설명한다.
도 2를 참조하면, 보안 제어부(131)는 보안 등급 제어부(210), 암호화 알고리즘 저장부(220), 및 보안 등급 인증부(230)를 구비할 수 있다.
암호화 알고리즘 부(Security Algorithm unit)(220)는 하드웨어에 내장된(hardwired) 형태로 구성되는 암호화 알고리즘을 저장하고 있다. 저장된 암호화 알고리즘은 데이터의 무결성(integrity)을 확인하기 위한 암호화 알고리즘으로, 예시적으로 해쉬 엔진(hash engine)이 될 수 있다.
암호화 알고리즘 부(220)는 외부 부트 메모리(160)에서 출력되는 부트 코드를 입력받고 암호화 연산을 수행하여 암호화된 값을 출력한다. 예를 들어, 내장된 암호화 알고리즘이 해쉬 엔진일 경우, 암호화 알고리즘 부(220)는 부트 코드를 입력받고 이를 해쉬값으로 변환하여 부트 코드 변환값으로써 출력하는 것이다.
바람직하게, 부트 코드의 무결성을 확인하기 위한 해쉬 알고리즘으로는 SHA 알고리즘, MDS 알고리즘 등이 있다.
보안 등급 제어부(Protection level Control unit)(210)는 해쉬 값 저장부(133)에 저장되어 있는 일 해쉬값을 선택적으로 독출하고, 상기 독출된 값과 부트 코드 변환값이 동일한지 여부를 판단한다. 여기서, 선택적으로 독출된 일 해쉬값은 부트 메모리(160)에서 출력되는 부트 코드에 대응되는 값이 된다. 바람직하게, 상기 일 해쉬 값은 위조 또는 변조되지 않은 부트 코드를 해쉬 엔진을 이용해 변환한 값과 동일한 값을 갖는다.
보안 등급 인증부(Protection level Authentication unit)(230)는 보안 등급 제어부(210)의 동일성 판단 결과에 따라서, 외부 부트 메모리(160)에서 출력된 부트 코드에 상응하는 동작의 수행을 허용할 것인지 여부를 결정한다. 그리고, 상기 결정에 따라서 상기 부트 코드에 상응하는 동작 수행을 조절 및 제어한다.
보안 등급 인증부(230)는 보안 등급 제어부(210)의 동일성 판단 결과, 부트 코드 변환 값과 상기 부트 코드에 대응되는 해쉬값이 동일할 경우, 부트 코드에 상응하는 특정 동작의 수행을 허용한다. 나아가, 부트 코드가 실행될 수 있도록 한다. 예를 들어, 부트 코드가 프로세서 장치(110)의 부트를 수행하기 위한 코드이면, 보안 등급 인증부(230)는 프로세서 장치(110)의 사용자가 정당 사용자인 것으로 판단하여 부팅 동작을 실행한다. 다른 예로, 부트 코드가 프로세서 장치(110)의 디버깅을 수행하기 위한 코드이면, 보안 등급 인증부(230)는 디버깅이 이뤄질 수 있도록 JTAG 포트(112)와 중앙 처리 장치(114)가 연결되도록 제어한다.
도 3은 도 1의 프로세서 장치를 상세히 나타내는 도면이다.
도 4는 도 3의 프로세서 장치의 동작을 설명하기 위한 플로우차트이다.
이하에서는, 도 3 및 도 4를 참조하여, 도 2의 프로세서 장치의 구성 및 동작을 상세히 설명하도록 한다.
도 3에 있어서, JTAG 포트(112), 중앙 처리 장치(114), 다수개의 IP 블록들(IP1, IP2, IP3)(141, 142, 143), 버스 인터커넥터(120), 보안 제어부(130), 부트 메모리(160)의 구성은 도 1 및 도 2에서 설명한 바와 동일하다. 그러므로, 상세 설명은 생략하도록 한다. 참고로, 보안 등급 인증부(320), 보안 등급 제어부(321), 암호화 알고리즘 부(323), 및 해쉬 값 저장부(325)는 각각 도 2의 보안 등급 인증부(230), 보안 등급 제어부(210), 암호화 알고리즘 부(220), 및 해쉬 값 저장부(133)와 동일 대응된다.
도 3을 참조하면, 프로세서 장치(110)는 다수개의 스위치들(S11, S1, S2, S3, S4)을 더 구비할 수 있다. 스위치들 S1, S2, 및 S3 각각은 버스 인터커넥터(120)와 보안 동작이 요구되는 각각의 IP 블록들(141, 142, 143) 사이에 구비된다. 또한, 스위치 S4는 보안 제어부(130)와 버스 인터커넥터(120) 사이에 구비된다.
또한, 스위치 S5 및 S6을 더 구비할 수 있다. S5 및 S6는 각각 버스 인터커넥터(120)와 난수 발생기 및 보안키 부(333)의 사이에 구비된다.
스위치들 S11, S2, S3, S3, S4는 보안 등급 인증부(320)의 제어에 응답하여 온 또는 오프된다. 또한, 스위치들 S5 및 S6은 보안 등급 인증부(320)의 제어에 응답하여 온 또는 오프될 수 있다.
프로세서 장치(110)는 인터페이스(interface)(310)를 더 구비할 수 있다. 인 터페이스는 프로세서 장치(110)와 외부 사용자 사이의 각종 데이터 송수신을 담당한다.
난수 발생기(random number generator)(331)는 암호화 알고리즘 수행에 필요한 난수(random number)를 발생시킨다.
보안키 부(333)는 암호화 알고리즘 부(323)와 별도로 구비되는 암호화 알고리즘 부(미도시)에서 이용되는 보안키들을 저장한다. 여기서, 별도로 구비되는 암호화 알고리즘 부(미도시)는 하드웨어에 내장된 형태로 구성되는 암호화 알고리즘을 저장하고 있다. 여기서, 암호화 알고리즘은 전술한 해쉬 알고리즘을 포함하여, 비밀키 기반 알고리즘, 또는 공개키 기반 알고리즘 등이 될 수 있다. 비밀키 기반 알고리즘으로는 DES 알고리즘, 3DES 알고리즘, AES 알고리즘 등이 있다. 공개키 기반 알고리즘으로는 RSA 알고리즘, ECC 알고리즘 등이 있다.
일반적인 보안 동작을 수행하기 위해서는 비주기성 및 비결정성을 갖는 데이터(즉, 난수)를 발생시키는 것이 필요하며, 보안키의 저장이 요구된다. 또한, 별도로 구비되는 암호화 알고리즘(미도시)은 보안키 부(333)에 저장된 보안키를 이용하여 암호화 알고리즘 기반의 일반적인 데이터 보안 동작을 수행할 수 있다.
도 4를 참조하면, 중앙 처리 장치(114)의 제어에 응답하여 부트 메모리(160)가 특정 부트 코드를 출력한다(405 단계). 부트 메모리(160)는 특정 부트 코드를 출력하여 보안 제어부(130)로 전송하는 것이다.
보안 제어부(130)는 전송되는 특정 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용하여 변환한다. 그리고, 변환된 해쉬 값을 해쉬값 저장 부(325)에 저장된 특정 해쉬 값과 비교 평가한다(410 단계). 보안 제어부(130)는 상기 특정 부트 코드를 내부적으로 구비되는 해쉬 엔진을 이용하여 변환한 값과, 해쉬값 저장부(325)에서 출력되는 특정 해쉬값의 동일성을 판단하는 것이다. 여기서, 전송된 부트 코드는 암호화 알고리즘 부(도 2의 220)에서 변환된다. 410 단계의 동작은 구체적으로, 보안 등급 제어부(도 2의 210)에서 이루어질 수 있다.
410 단계의 동일성 평가 결과에 따라서, 사용자 인증 또는 권한 인증이 정당한 것인지 판단한다(415 단계). 415 단계의 동작은 보안 등급 인증부(320)에서 이루어 질 수 있다.
405 단계에서 출력된 특정 부트 코드가 프로세서 장치(110)의 부팅 수행과 관련된 부트 코드(이하, '제1 부트 코드')이고, 410 단계의 해쉬 값(제1 부트 코드를 암호화 알고리즘 부(323)를 통과시켜 변환한 값)이 해쉬 값 저장부(325)에 저장된 사용자 인증 해쉬 값(h1)과 동일한 것으로 평가되었다면, 415 단계에서는 부트 동작을 요한 사용자가 정당 사용자인 것으로 판단한다.
그에 따라서, 제1 부트 코드에 대응되는 프로세서 장치(110)의 정상적인 부팅 동작을 개시된다(420 단계).
상세하게, 제1 부트 코드는 중앙 처리 장치가 프로세서 장치(110)의 부트 동작을 요청한 경우, 중앙 처리 장치의 제어에 응답하여 부트 메모리(160)에서 출력되는 부트 코드가 된다. 또한, 사용자 인증 해쉬 값은 위 변조 되지 않은 제1 부트 코드에 대응되는 해쉬 값이 된다. 해쉬 값 저장부(325)는 중앙 처리 장치에서 출력되는 부팅 명령에 응답하여 사용자 인증 해쉬 값을 보안 등급 제어부(321)로 출력 하게 된다.
410 단계의 평가 결과 제1 부트 코드와 사용자 인증 해쉬 값이 동일하지 않은 것으로 판단되면, 415 단계에서는, 부팅 동작을 요청한 사용자가 정당한 사용자가 아닌 것으로 판단한다. 그에 따라서, 부트 실패로 판단한다. 여기서, 부트 실패로 판단된 경우, 보안 제어부(131)(구체적으로, 보안 등급 인증부(320))는 프로세서 장치(110)의 전체 동작을 정지시킬 수 있다.
405 단계에서 출력되는 부트 코드가 프로세서 장치(110)의 디버깅 동작 실행을 위한 부트 코드(이하, '제2 부트 코드')인 경우에는, 프로세서 장치(110)는 이하와 같이 동작한다.
410 단계의 해쉬 값(제2 부트 코드를 암호화 알고리즘 부(323)를 통과시켜 변환한 값)이 해쉬 값 저장부(325)에 저장된 제1 접근 인증 해쉬 값(h2)과 동일한 것으로 평가되었다면, 415 단계에서는 디버깅 요청이 정당한 것으로 판단한다.
그에 따라서, 보안 등급 인증부(320)는 JTAG 포트를 활성화시키고, JTAG 포트와 중앙 처리 장치(114)가 연결되도록 한다(425 단계). 바람직하게, 보안 등급 인증부(320)는 스위치 S11이 턴 온 되도록 제어하게 된다.
상세하게, 제2 부트 코드는 외부 사용자가 프로세서 장치(110)의 디버깅(debugging)을 요청한 경우, 중앙 처리 장치의 제어에 응답하여 부트 메모리(160)에서 출력되는 부트 코드가 된다. 또한, 제1 접근 인증 해쉬 값(h2)은 위 변조 되지 않은 제2 부트 코드에 대응되는 해쉬 값이 된다. 해쉬 값 저장부(325)는 중앙 처리 장치에서 출력되는 디버깅 요청 명령에 응답하여, 제1 접근 인증 해쉬 값을 보안 등급 제어부(321)로 출력하게 된다.
410 단계의 평가 결과 제2 부트 코드와 제1 접근 인증 해쉬 값이 동일하지 않은 것으로 판단되면, JTAG 포트(112)와 중앙 처리 장치(114)가 연결되지 않도록 한다. 바람직하게, 스위치 S11이 더 구비될 때, 스위치 S11이 턴 오프 되도록 제어하는 것이다.
구체적으로, 보안 등급 인증부(230)는 해쉬값 평가(410 단계)의 결과에 따라서 JTAG 포트와 중앙 처리 장치(114)의 연결을 허용 또는 해제시킨다. 따라서, JTAG 포트를 이용한 디버깅 동작 시, 악의적 사용자가 프로세서 장치 내부 구성을 변경하는 것 또는 저장된 데이터 조작하는 것을 방지할 수 있다.
405 단계에서 출력되는 부트 코드가 외부 사용자가 특정 IP 블록에 접근하는 것을 요청하는 부트 코드(이하, '제3 부트 코드')인 경우에는, 프로세서 장치(110)는 이하와 같이 동작한다.
410 단계의 해쉬 값(제3 부트 코드를 암호화 알고리즘 부(323)를 통과시켜 변환한 값)이 해쉬 값 저장부(325)에 저장된 제2 접근 인증 해쉬 값(h3)과 동일한 것으로 평가되었다면, 415 단계에서는 특정 IP 블록으로의 접근 요청이 정당한 것으로 판단한다. 이하에서, '특정 IP 블록'이 제2 IP 블록(142)인 경우를 예로 들어 설명한다.
그에 따라서, 보안 등급 인정부(320)는 버스 인터커넥터(120)와 제2 IP 블록(142)을 연결시킨다. 즉, 접근 요청이 정당한 것으로 판단하여, 특정 IP 블록에 대한 접근을 허용하는 것이다(430 단계). 바람직하게, 스위치 S2가 더 구비될 때, 스위치 S2가 턴 온 되도록 제어하는 것이다. 그에 따라서, 특정 IP 블록의 접근을 요청한 사용자는 상기 특정 IP 블록에 접근할 수 있게 된다.
상세하게, 제3 부트 코드는 중앙 처리 장치(114)가 외부 사용자로부터 특정 IP 블록에 대한 접근을 요청받은 경우, 중앙 처리 장치(114)의 제어에 응답하여 부트 메모리(160)에서 출력되는 부트 코드가 된다. 또한, 제2 접근 인증 해쉬 값(h3)은 위 변조 되지 않은 제3 부트 코드에 대응되는 해쉬 값이 된다. 해쉬 값 저장부(325)는 중앙 처리 장치(114)에 응답하여 제2 접근 인증 해쉬 값(h3)을 보안 등급 제어부(321)로 출력하게 되다.
410 단계의 평가 결과, 제3 부트 코드와 제2 접근 인증 해쉬 값(h3)이 동일하지 않은 것으로 판단되면, 415 단계에서는 사용자의 접근 요청이 정당하지 않은 것으로 판단한다. 그에 따라서, 보안 등급 인증부(320)는 사용자가 특정 IP 블록으로 접근하지 못하도록 제어한다(435 단계). 바람직하게, 보안 등급 인증부(320)는 스위치 S2가 더 구비될 때, 스위치 S2가 턴 오프 되도록 제어하는 것이다.
여기서, 특정 IP 블록에 대한 보안은 디버깅 동작에 따른 프로세서 장치(110)의 보안보다 우선될 수 있다. 예를 들어, 디버깅 동작의 요청이 정당한 것으로 판단되어, 425 단계에 진입하였다고 하더라도, 435 단계에서 특정 IP 블록(예를 들어, 제2 IP 블록(142))의 접근을 불허하였다고 하자. 그러면, 제2 IP 블록에 대한 디버깅 동작은 수행될 수 없다.
또한, 해쉬 값 저장부(325)는 다양한 권한 인증을 요청하는 부트 코드들 각각에 대응되는 해쉬값들을 저장할 수 있다. 예를 들어, IP 블록들에 대한 테스트를 요청하는 부트 코드, 칩 전체에 테스트를 요청하는 부트 코드, 하나 이상의 IP 블록에 접근 인증을 요청하는 부트 코드들 등이 더 있을 수 있는 경우, 상기 부트 코드들 각각에 대응되는 해쉬값들을 저장할 수 있는 것이다. 그에 따라서, 보안 등급 인증부(320)는 사용자에게 각기 다른 권한의 인증을 수행할 수 있다.
전술한 바와 같이, 본 발명의 일 실시예에 따른 프로세서 장치(110)는 해쉬 값 저장부(325)를 별도 구비하고, 상기 해쉬 값 저장부(325)에 다수개의 부트 코드들에 각각 대응되는 해쉬값들을 저장시켜 놓는다. 그리고, 해쉬 값 저장부(325)는 프로세서 장치(110)의 외부로 노출되지 않는다. 본원에서는 특정 부트 코드가 출력 되었을 때, 해쉬 값 저장부(3250에 저장된 해쉬값들 중 상기 특정 부트 코드에 대응되는 해쉬 값을 이용하여, 사용자 인증 또는 특정 권한 인증(특정 접근 요청 허용 또는 특정 동작 요청 허용)을 수행하게 되는 것이다. 따라서, 본 발명에 따른 프로세서 장치는 프로세서 장치의 디버깅에 대한 보안 및 프로세서 장치의 중요 모듈(IP 블록들)에 대한 보안을 모두 유지할 수 있다.
도 5는 부트 메모리의 인터페이스 타이밍을 설명하기 위한 도면이다.
도 5를 참조하면, 부트 메모리에 저장된 데이터 값을 바꿔가면서 저장하는데 필요한 블록 지움 시간(Block Erase Time), 프로그램 시간(4KB Program Time), 빠른 독출 접근 시간(Fast Read Access Time), 독출 접근 시간(4KB Read Access Time), 지움/프로그램 내구성(Erase/Program Endurance)이 각각 나타나있다.
본 발명의 일 실시예에 따른 프로세서 장치(110)는 해쉬 값 저장부(325)를 별도 구비하고 있다. 따라서, 악의적 사용자가 프로세서 장치의 특정 IP 블록에 접 근 또는 특정 기능을 수행(디버깅 동작, 부트 동작, 테스트 동작 등)을 하기 위해서는 해쉬 값 저장부(325)에 저장되어 있는 특정 해쉬 값과 대응되는 부트 코드를 찾아내어야만 한다.
특정 해쉬 값과 대응되는 부트 코드를 찾기 위해서는, 부트 메모리에 있는 부트 코드를 계속하여 바꿔가면서 부트 코드를 저장 및 독출하고, 저장한 부트 코드에 대해서 부팅을 시도해 보아야 한다. 이렇게, 부트 코드 변경 저장 및 부팅 시도에 걸리는 시간은 도 5에 도시된 각각의 시간의 총 합과 같다. 도 5에서는, 부트 코드의 길이가 4KB인 경우를 예로 들어 도시하였다.
먼저, 새로운 부트 코드를 저장하기 위해서는 해당 블록의 데이터를 삭제하야여 하므로, 블록 지움 시간(Block Erase Time)인 700ms(milli-second)가 소요된다. 그리고, 새로운 부트 코드의 값을 프로그램 하여야 하므로, 프로그램 시간(4KB Program Time)으로 9ms가 소요된다. 계속하여, 프로그램 된 값을 부팅을 위하여 독출하는데 빠른 독출 접근 시간(Fast Read Access Time), 독출 접근 시간(4KB Read Access Time)이 필요하다. 따라서, 1개의 부트 코드 값을 변경 및 출력하는데 대략 718ms 가 소요된다.
여기서, 계산된 718ms는 사용되는 메모리에서 필요로 하는 최소 타이밍 스펙이며, 실제로 메모리 인터페이스를 위해 사용되는 시간은 훨씬 더 길어진다. 또한, 추가적으로, 부트 메모리에 수행한 부트 값의 프로그램이 정상적으로 완료되었는지 확인하는데 소요되는 시간이 더 소요된다.
그리고, 4KB의 부트 코드를 160bit 의 해쉬 값으로 변환하게 된다고 한다면, 특정 해쉬 값과 대응되는 부트 코드는 160승에 한번씩 존재하게 된다. 즉, 본원의 프로세서 장치 내부에 저장되어 있는 특정 해쉬값을 찾아내기 위해서는, 확률적으로 718mn 이 시간이 160 승 번만큼 반복 소요되어야 하는 것이다.
따라서, 본원에서와 같이 부트 코드에 대응되는 해쉬 값을 프로세서 장치 내부적으로 저장하고, 외부로 유출되지 못하게 할 경우, 악의의 사용자가 부트 코드를 위 변조하여 프로세서 장치에 접근하는 것은 현실적으로 불가능하게 된다. 왜냐하면, 부트 코드를 변경시켜가며, 프로세서 장치의 접근 허용을 받아내는 데에는 너무 오랜 시간이 소요되기 때문이다.
또한, 현재 사용되는 부트 메모리는 지움/프로그램 내구성이 10만 번으로 제한되어 있다. 즉, 10만 번 데이터를 지우고 재 기록하고 나면, 해당 부트 메모리는 이용이 불가능한 것이다. 따라서, 1회의 프로세서 장치의 해킹에 수십 개 이상의 부트 메모리가 이용되어야 하며, 고비용으로 인하여 해킹 자체가 어렵게 된다.
그러므로, 본 발명에 따른 프로세서 장치는 악의적인 사용자에 대하여 높은 보안 성능을 가질 수 있는 것이다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 프로세서 장치를 나타내는 도면이다.
도 2는 도 1의 보안 제어부 및 해쉬 값 저장부를 상세히 나타내는 도면이다.
도 3은 도 1의 프로세서 장치를 상세히 나타내는 도면이다.
도 4는 도 3의 프로세서 장치의 동작을 설명하기 위한 플로우차트이다.
도 5는 부트 메모리의 인터페이스 타이밍을 설명하기 위한 도면이다.

Claims (20)

  1. 보안 모드 동작 가능한 프로세서 장치에 있어서,
    사용자 인증 해쉬 값 및 다수개의 접근 인증 해쉬 값들을 포함하는 다수개의 해쉬 값들을 저장하는 해쉬 값 저장부;
    부트 메모리로부터 전송되는 부트 코드와 상기 해쉬 값들 중 상기 부트 코드에 대응되는 해쉬 값의 일치 여부를 판단하고, 부트 동작의 수행, 상기 프로세서 장치의 디버깅 수행 또는 외부 사용자가 특정 IP 블록으로 접근하는 것의 허용 여부를 결정하는 보안 제어부를 구비하며,
    상기 접근 인증 해쉬 값들은
    상기 프로세서 장치의 외부로 출력되지 않고, 상기 보안 제어부에 의하여 독출되는 값이고,
    상기 보안 제어부는 상기 프로세서 장치의 부트가 요청된 경우 전송되는 제1 부트 코드의 위 변조 여부를, 상기 사용자 인증 해쉬 값을 이용하여 판단하는 것을 특징으로 하는 프로세서 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 제1 부트 코드는
    중앙 처리 장치가 상기 프로세서 장치의 부트 동작을 요청한 경우, 상기 중앙 처리 장치의 제어에 응답하여 상기 부트 메모리에서 출력되는 부트 코드인 것을 특징으로 하는 프로세서 장치.
  4. 제3항에 있어서, 상기 사용자 인증 해쉬 값은
    위 변조 되지 않은 상기 제1 부트 코드에 대응되는 해쉬 값인 것을 특징으로 하는 프로세서 장치.
  5. 제1항에 있어서, 상기 보안 제어부는
    상기 제1 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용해 변환한 값과 상기 사용자 인증 해쉬 값의 동일성 여부를 판단하고, 상기 제1 부트 코드를 변환한 값과 상기 사용자 인증 해쉬 값이 동일하면 상기 부트 동작을 수행하는 것을 특징으로 하는 프로세서 장치.
  6. 제1항에 있어서, 상기 보안 제어부는
    상기 제1 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용해 변환한 값과 상기 사용자 인증 해쉬 값이 동일하지 않으면, 상기 프로세서 장치의 전체 동작이 정지되도록 하는 것을 특징으로 하는 프로세서 장치.
  7. 제1항에 있어서, 상기 프로세서 장치는
    중앙 처리 장치; 및
    상기 프로세서 장치의 디버깅 동작을 수행하는 합동 시험 활동 그룹(JTAG) 포트를 더 구비하는 것을 특징으로 하는 프로세서 장치.
  8. 제7항에 있어서, 상기 보안 제어부는
    상기 접근 인증 해쉬값들 중 제1 접근 인증 해쉬 값을 이용하여, 상기 합동 시험 활동 그룹 포트가 상기 중앙 처리 장치와 연결되는 것을 허용할지 여부를 결정하는 것을 특징으로 하는 프로세서 장치.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서, 상기 보안 제어부는
    상기 제1 접근 인증 해쉬 값과 디버깅 동작이 요청된 경우 전송되는 제2 부트 코드의 동일성을 판단하여, 상기 연결의 허용 여부를 결정하는 것을 특징으로 하는 특징으로 하는 프로세서 장치.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서, 상기 제2 부트 코드는
    상기 중앙 처리 장치가 상기 디버깅 동작을 요청받은 경우, 상기 중앙 처리 장치의 제어에 응답하여 상기 부트 메모리에서 출력되는 부트 코드인 것을 특징으로 하는 프로세서 장치.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제10항에 있어서, 상기 제1 접근 인증 해쉬 값은
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서, 상기 보안 제어부는
    상기 제1 접근 인증 해쉬 값과 상기 제2 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용하여 변환한 값이 동일한 것으로 판단하면, 상기 합동 시험 활동 그룹(JTAG) 포트와 상기 중앙 처리 장치를 연결하는 것을 특징으로 하는 프로세서 장치.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서, 상기 보안 제어부는
    상기 제1 접근 인증 해쉬 값과 상기 제2 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용하여 변환한 값이 동일하지 않은 것으로 판단되면, 상기 합동 시험 활동 그룹 포트와 상기 중앙 처리 장치를 분리시키는 것을 특징으로 하는 프로세서 장치.
  14. 제1항에 있어서, 상기 프로세서 장치는
    각각 독립적인 특정 기능을 갖도록 설계된 다수개의 IP 블록들을 더 구비하며,
    상기 특정 IP 블록은
    상기 다수개의 IP 블록들 중 보안 동작이 요청되는 하나 이상의 IP 블록인 것을 특징으로 하는 프로세서 장치.
  15. 제14항에 있어서, 상기 보안 제어부는
    상기 접근 인증 해쉬 값들 중 제2 접근 인증 해쉬 값을 이용하여, 상기 외부 사용자가 상기 특정 IP 블록으로 접근하는 것을 허용할지를 결정하는 것을 특징으로 하는 프로세서 장치.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서, 상기 보안 제어부는
    상기 제2 접근 인증 해쉬 값과 상기 특정 IP 블록으로의 접근이 요청된 경우 상기 부트 메모리로부터 출력되는 제3 부트 코드와의 동일성을 판단하고, 상기 동일성 판단 결과에 따라서 상기 접근 허용 여부를 결정하는 것을 특징으로 프로세서 장치.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제16항에 있어서, 상기 제2 접근 인증 해쉬 값은
    위 변조 되지 않은 상기 제3 부트 코드에 대응되는 해쉬 값인 것을 특징으로 하는 프로세서 장치.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제16항에 있어서, 상기 보안 제어부는
    상기 제2 접근 인증 해쉬 값과 상기 제3 부트 코드를 내부적으로 구비된 해쉬 엔진을 이용해 변환한 값이 동일하면, 상기 외부 사용자가 상기 특정 IP 블록에 접근하는 것을 허용하는 것을 특징으로 하는 프로세서 장치.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제18항에 있어서, 상기 프로세서 장치는
    중앙 처리 장치, 상기 하나 이상의 특정 IP 블록, 및 상기 보안 제어부를 상호 연결하는 버스 인터커넥터; 및
    상기 버스 인터커넥터와 상기 하나 이상의 특정 IP 블록을 각각 연결하는 하나 이상의 스위치를 더 구비하며,
    상기 보안 제어부는
    상기 제2 접근 인증 해쉬 값과 상기 제3 부트 코드를 변환한 값이 동일하면, 상기 하나 이상의 스위치가 턴 온 되도록 하는 것을 특징으로 하는 프로세서 장치.
  20. 청구항 제1항에 있어서, 상기 보안 제어부는
    하드웨어에 내장된 형태로 구성되는 암호화 알고리즘을 저장하고 있는 암호화 알고리즘 부;
    상기 부트 코드와 상기 해쉬 값들 중 상기 부트 코드와 대응되는 해쉬 값의 동일성 여부를 판단하는 보안 등급 제어부; 및
    상기 보안 등급 제어부의 동일성 판단 결과에 따라서, 상기 부트 코드에 상응하는 동작의 수행을 허용할지 여부를 결정하고, 그에 따라서 상기 부트 코드에 상응하는 동작 수행을 조절 및 제어하는 보안 등급 인증부를 포함하는 것을 특징으로 하는 프로세서 장치.
KR1020080021031A 2008-03-06 2008-03-06 보안 기능을 갖는 프로세서 장치 KR101502032B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080021031A KR101502032B1 (ko) 2008-03-06 2008-03-06 보안 기능을 갖는 프로세서 장치
US12/381,114 US8489888B2 (en) 2008-03-06 2009-03-06 Processor apparatus having a security function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080021031A KR101502032B1 (ko) 2008-03-06 2008-03-06 보안 기능을 갖는 프로세서 장치

Publications (2)

Publication Number Publication Date
KR20090095843A KR20090095843A (ko) 2009-09-10
KR101502032B1 true KR101502032B1 (ko) 2015-03-12

Family

ID=41054829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080021031A KR101502032B1 (ko) 2008-03-06 2008-03-06 보안 기능을 갖는 프로세서 장치

Country Status (2)

Country Link
US (1) US8489888B2 (ko)
KR (1) KR101502032B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532363B1 (ko) * 2009-06-25 2015-06-30 삼성전자주식회사 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법
KR101301022B1 (ko) 2011-12-23 2013-08-28 한국전자통신연구원 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
CN104335220B (zh) 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
US9390278B2 (en) 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
WO2014080248A1 (en) * 2012-11-23 2014-05-30 Freescale Semiconductor, Inc. System on chip
KR102068485B1 (ko) 2012-11-30 2020-01-21 삼성전자주식회사 불 휘발성 메모리 모듈 및 그것의 동작 방법
KR20150094178A (ko) 2014-02-10 2015-08-19 삼성전자주식회사 보안 장치 및 보안 장치의 제어 방법
KR102228454B1 (ko) 2014-02-24 2021-03-16 삼성전자주식회사 보안 디버깅 회로를 갖는 디바이스 및 그것에 대한 디버깅 방법
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
CN105468996A (zh) * 2014-09-05 2016-04-06 深圳市同盛绿色科技有限公司 计算机
KR102251812B1 (ko) * 2015-01-26 2021-05-13 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US20160261412A1 (en) * 2015-03-04 2016-09-08 Avaya Inc. Two-Step Authentication And Activation of Quad Small Form Factor Pluggable (QFSP+) Transceivers
KR102415388B1 (ko) 2015-11-13 2022-07-01 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
US11068600B2 (en) * 2018-05-21 2021-07-20 Kct Holdings, Llc Apparatus and method for secure router with layered encryption
EP3839730B1 (en) * 2019-12-18 2023-11-29 Ams Ag Method for starting a system-on-a-chip without read only memory, system-on-a-chip without read only memory and headphone

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007156A (ja) * 2000-06-21 2002-01-11 Nec Corp マイクロプロセッサ
KR20030095301A (ko) * 2002-06-07 2003-12-18 마이크로소프트 코포레이션 보안 부트 로더에서의 해싱의 사용
KR20060064883A (ko) * 2004-12-09 2006-06-14 삼성전자주식회사 보안 부팅 장치 및 방법
JP2006221632A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサ内にセキュアな起動シーケンスを提供する方法および装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0432333B1 (en) * 1989-12-13 1996-02-14 International Business Machines Corporation Computer system security device
JPH06243016A (ja) 1993-02-16 1994-09-02 Nippon Denki Computer Syst Kk ファイル機密保護方法
JP4260984B2 (ja) * 1999-06-04 2009-04-30 株式会社東芝 情報処理装置および情報処理方法
US7073064B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Method and apparatus to provide enhanced computer protection
KR100463842B1 (ko) 2001-12-27 2004-12-29 한국전자통신연구원 파일 보안 시스템의 키 관리 장치와 암호키 관리방법
KR20030087874A (ko) 2002-05-10 2003-11-15 주식회사 마이엔진 컴퓨팅 장치의 등급별 데이터 보안 방법
FR2843624A1 (fr) * 2002-08-13 2004-02-20 Valeo Embrayages Dispositif de branchement d'alimentation pour un systeme a pression de fluide
US7689819B2 (en) * 2005-07-29 2010-03-30 Broadcom Corporation Method and system for a self-booting Ethernet controller
US20070094507A1 (en) * 2005-10-21 2007-04-26 Rush Frederick A Method and system for securing a wireless communication apparatus
US8214630B2 (en) * 2009-02-24 2012-07-03 General Instrument Corporation Method and apparatus for controlling enablement of JTAG interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007156A (ja) * 2000-06-21 2002-01-11 Nec Corp マイクロプロセッサ
KR20030095301A (ko) * 2002-06-07 2003-12-18 마이크로소프트 코포레이션 보안 부트 로더에서의 해싱의 사용
KR20060064883A (ko) * 2004-12-09 2006-06-14 삼성전자주식회사 보안 부팅 장치 및 방법
JP2006221632A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサ内にセキュアな起動シーケンスを提供する方法および装置

Also Published As

Publication number Publication date
US8489888B2 (en) 2013-07-16
US20090228711A1 (en) 2009-09-10
KR20090095843A (ko) 2009-09-10

Similar Documents

Publication Publication Date Title
KR101502032B1 (ko) 보안 기능을 갖는 프로세서 장치
US7500098B2 (en) Secure mode controlled memory
US8332653B2 (en) Secure processing environment
US7376974B2 (en) Apparatus and method for creating a trusted environment
CN110502932B (zh) 处理系统、相关集成电路和方法
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
JP5607546B2 (ja) 保護された動作モードの間にシステムアクセスを制御するための方法および装置
US7810002B2 (en) Providing trusted access to a JTAG scan interface in a microprocessor
US8041947B2 (en) Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
EP1754126B1 (en) Enhancing trusted platform module performance
US20030196100A1 (en) Protection against memory attacks following reset
US20040128523A1 (en) Information security microcomputer having an information securtiy function and authenticating an external device
EP1429224A1 (en) Firmware run-time authentication
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
JP2002092221A (ja) コンピューティングプラットフォームにおけるサービスの実行
Streit et al. Secure boot from non-volatile memory for programmable SoC architectures
Lee et al. A brief review on jtag security
US20240187231A1 (en) Forensics Module and Integrated System
US20240193564A1 (en) Forensics Module and Embedded System
KR20100026775A (ko) 디버깅 포트를 구비하는 임베디드 시스템 및 그 구동 방법
JP5460133B2 (ja) マイクロコントローラ装置
Ekberg et al. External authenticated non-volatile memory with lifecycle management for state protection in trusted computing
DG et al. 7 TOE summary specification
RU2007148810A (ru) Способ доверенной загрузки операционной системы программно-аппаратного комплекса
CN103119553A (zh) 平台固件铠装技术

Legal Events

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

Payment date: 20180228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 6