KR20170095163A - 하드웨어 디바이스 및 그 인증 방법 - Google Patents

하드웨어 디바이스 및 그 인증 방법 Download PDF

Info

Publication number
KR20170095163A
KR20170095163A KR1020170019497A KR20170019497A KR20170095163A KR 20170095163 A KR20170095163 A KR 20170095163A KR 1020170019497 A KR1020170019497 A KR 1020170019497A KR 20170019497 A KR20170019497 A KR 20170019497A KR 20170095163 A KR20170095163 A KR 20170095163A
Authority
KR
South Korea
Prior art keywords
authentication
group
secure
chip
bus
Prior art date
Application number
KR1020170019497A
Other languages
English (en)
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 PCT/KR2017/001560 priority Critical patent/WO2017138799A1/ko
Priority to US16/075,951 priority patent/US20190253417A1/en
Publication of KR20170095163A publication Critical patent/KR20170095163A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7853Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) including a ROM
    • 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/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • 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
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07372Means for preventing undesired reading or writing from or onto record carriers by detecting tampering with the circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)
  • Static Random-Access Memory (AREA)

Abstract

보안 반도체 칩이 제시된다. 반도체 칩은 이를 테면 시스템 온 칩이다. 시스템 온 칩에 포함되는 프로세서 코어에는 시스템 버스를 통해 통상의 IP들이 연결되어 동작한다. 상기 시스템 버스와 물리적으로 구분되는 히든 버스인 보안 버스가 별도로 제공된다. 보안 버스에는 보안 기능을 수행하거나 보안 데이터를 취급하는 보안 IP들이 연결된다. 보안 반도체 칩은 일반 모드와 보안 모드를 바꾸어 가며 필요한 인증을 수행할 수 있다.

Description

하드웨어 디바이스 및 그 인증 방법{HARDWARE DEVICE AND AUTHENTICATING METHOD THEREOF}
하드웨어 및 그 인증 방법에 연관되며, 보다 특정하게는 반도체 칩이나 전자 장비 등의 하드웨어 디바이스가 정품인지, 변조되거나 손상되지 않았는지 등을 인증하는 방법에 연관된다.
소프트웨어 기반 보안 기술에서는 OS(Operation System) 등의 취약점을 이용한 공격이 새로 나올 때마다 이에 대해 지속적으로 보안 업데이트를 해야 했다. 따라서 보안 공격을 방지하기 위해서 하드웨어 모듈 차원의 보안 공격 방지 설계와 운용이 제시되었다. 이러한 하드웨어 모듈 차원의 보안 방법으로, ARM 사의 TrustZone 기술이 사용되고 있다.
TrustZone 기술과 같은 하드웨어 기반 보안 기술에서는 부팅 단계에서 OS 이미지의 무결성을 검증 후 읽어 들이기 때문에 플랫폼의 무결성을 시스템 시작 단계에서부터 스탭 바이 스탭으로 보장할 수 있게 된다. 이는 하드웨어가 OS를 비롯한 소프트웨어의 무결성을 검증하는 방식이다. 그러나, 소프트웨어의 시점에서 하드웨어의 무결성을 검증하는 것은 아니다.
미국 등록 특허공보 US8,468,342호 (공고일 2013년6월18일)에는 시스템 부팅 시 OS 무결성 체크를 수행하여 안전한 부팅을 수행하는 컴퓨팅 장치가 제시되었다.
기술문헌 "ARM Security Technology: Building a Secure System using TrustZone® Technology" (ARM Limited, White-Paper PRD29-GENC-009492C, April 2009)은 ARM사의 TrustZone 하드웨어 구조, 그리고 그 운용에 있어서의 Secure booting 등을 제시한다.
본 발명은 하드웨어 디바이스의 인증을 위한 하드웨어 디바이스 및 그 인증 방법을 제공하기 위한 것이다.
일측에 따르면, 반도체 칩에 있어서, 프로세서 코어; 및 외부 신뢰 기관과 상호 인증을 수행하여 상기 반도체 칩 및 상기 외부 신뢰 기관 사이의 인증을 수행하는 인증부를 포함하는 반도체 칩이 제공된다.
일실시예에 따르면 반도체 칩은, 상기 프로세서 코어에 제1 버스를 통해 연결되는 엘리먼트들을 포함하는 제1 그룹; 및 상기 프로세서 코어에 제2 버스를 통해 연결되며 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹을 더 포함한다. 이 경우, 상기 인증부가 상기 인증에 성공한 경우에만 상기 제2 그룹을 사용 가능하도록 활성화 한다. 예시적으로, 그러나 한정되지 않게, 상기 제2 그룹은 Cryptographic IP, secure SRAM, secure DMA 및 boot ROM 중 적어도 하나를 포함한다.
일실시예에 따르면 반도체 칩은, 상기 인증부가 상기 외부 신뢰 기관과 상기 상호 인증을 수행하는 데에 이용되는 키를 제공하는 PUF를 더 포함할 수 있다. 일실시예에 따르면 상기 제2 그룹은 상기 제1 그룹과 상이한 메모리 어드레스를 이용하여 데이터를 처리한다.
예시적으로, 그러나 한정되지 않게, 상기 프로세서 코어는 32 비트 RISC(Reduced Instruction Set Computing) 타입의 임베디드 프로세서인 Core-A 프로세서를 포함한다. 이 실시예에서, 상기 제2 버스는 상기 Core-A 프로세서의 ASR (Application Specific Register)을 상기 제2 그룹에 포함되는 엘리먼트를 제어하는 주소 공간으로 사용하여 구현되는 히든 버스(hidden bus)를 포함한다. 이 경우, 상기 제2 그룹은 상기 보안 모드에서 상기 ASR에 대한 데이터 처리 명령인 MTA(Move to ASR) 명령과 MFA(Move from ASR) 명령어를 보안 명령어(secure instruction) 처리에 이용할 수 있다. 이는 ASR 인터페이스를 이용하여 상기 제2 그룹에 포함되는 보안(secure) IP들을 위한 히든 버스를 구현하는 것으로 이해될 수 있다. 다른 일실시예에 따르면 상기 프로세서 코어는 RISC V ISA 적용 CPU core일 수도 있다.
일실시예에 따르면 상기 인증부는 하드웨어 로직이며, 기존의 컴퓨팅 언어와 상이한 독자 언어로 구동되어 상기 인증 절차를 수행한다. 또한, 상기 인증부는 기존의 컴퓨팅 언어와 상이한 독자 언어로 구성되는 인증 절차를 수행할 수 있다. 일실시예에 따르면 상기 인증부는 ROM이나 상기 반도체 칩 내의 IP와 다르게 일반 셀로 구성되어 PnR(Place and Route) 시 외부에 노출되거나 보안적으로 공격받지 않는다.
다른 일측에 따르면, 소프트웨어를 임베드한 하드웨어 장치에 있어서, 상기 소프트웨어를 구동하는 프로세서 코어; 및 상기 하드웨어 장치를 통해 상기 소프트웨어를 구동하기 위해 외부 신뢰 기관과 상호 인증을 수행하여 상기 반도체 칩 및 상기 외부 신뢰 기관 사이의 인증을 수행하는 인증부를 포함하는 장치가 제공된다. 일실시예에 따르면 상기 장치는 상기 프로세서 코어에 노말 모드에서 동작하는 엘리먼트들을 포함하는 제1 그룹을 연결하는 제1 버스; 및 상기 프로세서 코어에 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹을 연결하는 제2 버스를 더 포함할 수 있다. 일실시예에 따르면 상기 인증부가 상기 인증에 성공한 경우에만 상기 제2 그룹을 사용 가능하도록 제2 버스로의 접근이 활성화된다.
일실시예에 따르면 상기 장치는 상기 인증부가 상기 외부 신뢰 기관과 상기 상호 인증을 수행하는 데에 이용되는 키를 제공하는 PUF를 더 포함할 수 있다.
또 다른 일측에 따르면, 반도체 칩의 동작 방법에 있어서, 인증부가 외부 신뢰 기관과 상호 인증을 수행하는 단계; 및 상기 인증이 성공하는 경우에 상기 반도체 칩의 보안 모드를 활성화하는 단계를 포함하는 방법이 제공된다. 여기서 상기 반도체 칩은 상기 프로세서 코어에 노말 모드에서 동작하는 엘리먼트들을 포함하는 제1 그룹을 연결하는 제1 버스; 및 상기 프로세서 코어에 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹을 연결하는 제2 버스를 포함하는 것일 수 있다. 이 경우, 상기 방법은 상기 인증이 성공하는 경우에 상기 제2 그룹 및 상기 제2 버스를 활성화 하고, 상기 인증이 실패하는 경우에 상기 제2 그룹 및 상기 제2 버스를 비활성화 하고 상기 제1 그룹 및 상기 제1 버스를 활성화 할 수 있다. 일실시예에 따르면 상기 제2 그룹은 Cryptographic IP, secure SRAM, secure DMA 및 boot ROM 중 적어도 하나를 포함한다.
본 발명에 따르면, 하드웨어 디바이스를 인증할 수 있다.
도 1은 일실시예에 따른 SoC 장치의 블록도이다.
도 2는 일실시예에 따른 SoC를 구현한 구조를 도시한다.
도 3a 내지 3f는 일실시예에 따라 Pre-authentication이 수행되는 과정과 프로토콜을 설명하기 위한 도면이다.
도 4는 일실시예에 따르면 보안 부팅(secure booting)의 흐름을 설명하기 위한 흐름도이다.
도 5는 일실시예에 따른 PUF의 구현을 설명하기 위한 개요도이다.
도 6은 일실시예에 따라 물리적 공격으로부터 근본적으로 보호되는 보안 SoC 플랫폼을 도시한다.
도 7 내지 도 8은 일실시예에 따라 시큐어 부팅을 수행하는 흐름도이다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
하드웨어와 소프트웨어의 상호 인증
위에서 언급한 바와 같이 하드웨어 기반의 보안 기술 중 secure booting과 같은 절차로 하드웨어가 소프트웨어의 무결성을 검증하는 기술이 보편적이다. 만약 스마트폰이나 핸드헬드 디바이스의 OS가 무결한 이미지가 아니라 손상되거나 해킹 등으로 보안 기능이 변조된 것이 발견되는 경우, 하드웨어가 이를 부팅 단계에서 발견하거나, 및/또는 특정 어플리케이션의 시행 단계에서 발견하여 보안 위험을 막는 것 등이다. 해커에 의해 변조된 OS가 설치된 스마트폰에서 모바일 뱅킹이나 패이먼트 어플리케이션을 실행할 때 해킹된 OS가 아닌지 검증하여 절차 진행이 중지되는 것과 같은 일은 이제 흔하다.
그런데 반대로 OS나 어플리케이션 소프트웨어가 하드웨어를 인증하는 것은 제시된 바 없다. 요즈음과 같이 스마트폰의 모바일 OS부터, 전자 장비의 펌웨어, 임베디드 소프트웨어 및 각종 어플리케이션이 온-에어 배포(distribution on air)되는 경우, 개발자 또는 매뉴팩처 입장에서 이들이 설치되어 운용될 장비가 정품이고 변조/손상되지 않은 무결한 것임을 보장받는 것은 충분히 필요한 기술이다. 이하에서 제시되는 여러 실시예들에서는, 불법 모조 하드웨어, 계약에 의한 사용 기간이 만료된 하드웨어, 원래의 기기에서는 보안에 의해 막혀 있는 기능이나 정보에 접근하기 위해 변조된 하드웨어 등을 방지하기 위해 소프트웨어 스스로 하드웨어를 인증하는 기술이 제시된다. 물론 하드웨어가 소프트웨어를 인증하는 내용을 함께 포함하므로, 이러한 면에서는 하드웨어와 소프트웨어의 상호 인증을 통한 안전성이 보장되는 시스템으로 이해되어도 좋다.
이하의 실시예에서는 시스템 온 칩 레벨의 장치에서 하드웨어와 소프트웨어의 상호 인증 기술이 예시적으로 설명되나, 반드시 이러한 예에 국한되는 것은 아니다. 따라서 핸드 핼드 장비의 하드웨어와 그 OS 또는 펌웨어의 상호 인증, 나아가 자동차나 항공기와 그 운영 소프트웨어의 상호 인증 등 발명의 사상을 벗어나지 않는 범위에서의 유사한 응용은 얼마든지 있을 수 있다.
시스템 온 칩의 소프트웨어에 대한 보안 공격
SoC에 대한 공격은 물리적 공격과 소프트웨어 공격을 포함한다. 물리적 공격이 무력화되고 소프트웨어 시스템이 보안 SoC 플랫폼에 의해 보호된다면, 개발자들은 보안 이슈들에 대하여 신경 쓸 필요 없이 자신의 일에만 집중할 수 있다. 여기서 제시되는 실시예들은 소프트웨어에 대한 보안 공격을 방지하여 안전한 환경에서 운영되는 SoC 플랫폼을 제공한다.
소프트웨어 공격은 소프트웨어 모듈만으로는 방어하기가 어려운 경우가 있어서, 하드웨어 모듈 차원에서 소프트웨어 보안 공격을 방어하는 것이 바람직하다. 예시적으로 ARM 사의 TrustZone과 같은 환경이 될 수 있다. TrustZone을 이용하기 위해서는 TEE(Trusted Execution Environment) 표준에 의해 정의된 보안 OS(Operation System)나 보안 라이브러리가 필요하다. 그러나 TEE의 성능 요구사항은 작은 CPU 코어와 실시간 OS(Real Time OS: RTOS)가 사용되는 IoT(Internet of Things)의 말단 SoC들이 충족하기 어려운 수준일 수 있다. 실시예들에 따르면 큰 오버헤드를 야기하는 secure OS나 보안 라이브러리 대신, 직접 TEE를 지원할 수 있는 보안 ISA(Instruction Set Architecture)를 갖춘 SoC가 제시된다. 그리고 이러한 보안 ISA를 수행할 수 있는 CPU 코어 및 그 동작 방법의 실시예들이 제시된다. 도면을 참고하여 다양한 실시예들을 설명하기로 한다.
시스템의 구성
도 1은 일실시예에 따른 반도체 시스템 온 칩(100)의 블록도이다. 칩은 프로세서 코어(101)을 포함한다. 코어(101)에는 제1 버스(111)와 제2 버스(121)이 별도로 연결된다. 제1 버스(111)는 일반 모드(normal mode)에서 동작하는 범용 컴퓨팅 그룹인 제1 그룹(112)에 제공된다. '그룹'은 개별 컴퓨팅 자산(intellectual property: IP)나 메모리, 캐시 등의 집합으로 이해될 수 있다. 이하에서 별다른 언급이 없더라도 엘리먼트, IP, 기능 요소, 컴퓨팅 자산 등은 혼용되어 사용될 수 있다.
제2 버스(121)은 보안 모드(secure mode)에서만 동작하는 엘리먼트들을 포함하는 제2 그룹(122)에 제공된다. 제2 버스(121)는 제1 버스(111)와는 물리적으로 완전히 분리되어 있다. 이러한 물리적 고립이 normal world(110)와 secure world(120)의 구분을 만들 수 있으며, 이 구분이 소프트웨어에 대한 보안 공격에 강인한 SoC를 제공한다. 물리적인 고립은 normal world(110)의 제1 그룹(112)이 secure world(120)의 제2 그룹(122)와는 완전히 다른 메모리 어드레스 체계를 가지고 데이터를 처리한다는 것으로도 이해될 수 있다.
SoC(100)에는 시스템 파워-온 시 및/또는 필요에 의해 보안 모드가 실행될 필요가 있을 때 secure world(120)에 대해 외부 인증 기관(미도시)과 상호 인증을 수행하는 인증부(102)가 포함될 수 있다. 인증부(102)는 외부 인증 기관에 대해 이 SoC(100), 제2 그룹(122) 및 그 개별 IP들, 나아가 이에 임베드된 소프트웨어가 정당한 것이며 무결한 것임을 입증하여 인증을 받을 수 있다. 또한 인증부(102)는 현재 트랜잭션의 대상이 되는 외부 터미널이 신뢰할 수 있는 상기 외부 인증 기관이 맞다는 점을 상호 인증하기도 한다. 인증부(102)가 Pre-authentication 외부 인증 기관으로부터 공개키를 받아 등록하고 인증서를 발급받는 발급 프로토콜과 필요에 따라 기존의 공개키를 새 공개키로 교체하는 등 소프트웨어의 하드웨어 인증에 대해서는 도 3을 참조하여 상세히 후술한다.
일반 모드와 보안 모드의 전환
일실시예에 따른 SoC(100)는 일반 모드(normal mode)와 보안 모드(secure mode)를 가질 수 있다. 상술한 인증부(102)의 인증이 성공하는 경우에만 제2 그룹(122)이 부팅되고 신뢰 수행환경(Trusted Execution Environment, TEE))에 연관되는 secure world(120)가 활성화된다. 물론 이 경우에는 제1 그룹(112)도 부팅되고 normal world(110)가 활성화 된다. 그러나 상기 인증이 안 되는 경우에는, 일반 수행 환경(Rich Execution Environment, REE)에 연관되는 제1 그룹(112)만 부팅되어 normal world(110)는 활성화되지만 secure world(120)가 활성화되지 않는다.
secure world(120)가 활성화된 경우라도 제2 그룹(122)이 항시 동작하는 것은 아닐 수 있으며 대기상태에 있을 수 있다. REE 환경의 컴퓨팅, 이를테면 안드로이드 운영체제와 어플리케이션이 실행되는 중에, 보안 위반 이벤트(event of secure violation)가 발생하거나 또는 금용 결제가 필요한 등의 이유로 상승된 보안 취급이 처리되어야 하는 호출이 있는 경우 상기 보안 모드가 수행될 수 있다. 다시 말해, Normal world에서는 모바일 폰의 안드로이드와 같은 REE(Rich Execution Environment)가 일반적인 하드웨어 IP들과 함께 ARM 기반의 SoC에서 동작한다. 그러다가 보안 자원, 이를테면 Cryptographic IP나 secure SRAM이 필요할 때에는 보안 OS와 보안 하드웨어 IP로 이루어진 TEE가 동작하여 REE에게 결과를 전송한다. ARM 사의 TrustZone은 SoC 플랫폼의 보안 IP에 접근하기 위한 제어 신호로, AMBA AXI에 1 비트 버스 신호를 추가로 제공한다. 그러나 보통의 작은 CPU 코어와 RTOS(Real Time OS)가 사용되는 IoT(Internet of Things) 말단 SoC에서 TEE에서의 성능 요구사항들을 충족시키기는 어려울 수 있는데 실시예들에 따르면 이것이 가능하다.
인증의 수단
일실시예에 따르면 반도체 SoC(100)는 인증부(102)가 상기 외부 신뢰 기관과 상호 인증을 수행하는 데에 이용되는 근원 키(root key)를 제공하는 PUF(Physical unclonable function)(103)를 더 포함할 수 있다. 이러한 근원 키를 이용한 RSA, AES 등의 다양한 인증 알고리즘 중 적어도 하나가 상기 인증에 사용될 수 있다. 예시적으로, 그러나 한정되지 않게, PUF는 반도체 제조 공정상의 공정 편차를 이용하여 상기 반도체 칩 내에 내재적으로(intrinsic) 포함될 수 있다. 하나의 예시적인 구현에서, 상기 PUF는 반도체의 전도성 레이어 간에 래이이웃 된 비아(via)나 인터-레이어 컨택이 공정에서 정상적으로 패터닝 되어 상기 전도성 레이어 사이를 단락하는지에 따라 디지털 값을 제공하는 것일 수 있다. PUF의 구현과 역할에 대해서는 도 5와 6을 참조하여 보다 상세히 후술한다.
시큐어 메모리
일실시예에 따르면 시큐어 메모리(130)는 일반 모드에서 활용하는 영역과 보안 모드에서 활용하는 영역을 포함한다. 시큐어 메모리(130)는 예시적으로 비휘발성 메모리(NVM)을 포함한다. 보안 모드에서 활용하는 영역은 데이터를 그대로 저장하지 않고 PUF(103)이 제공하는 근원 키를 이용하여 암호화 해서 저장할 수 있다. 따라서 물리적으로 시큐어 메모리(130)의 데이터가 추출되더라도 PUF(103)과 직접 연결(direct wired)되어 복호화되지 않으면 이는 의미 없다.
예시적 시스템 구현 - Core A 플랫폼의 이용
도 2는 일실시예에 따른 SoC를 Core-A 환경에서 구현한 구조를 도시한다. 예시적으로, 그러나 한정되지 않게, 상기 프로세서 코어는 32 비트 RISC(Reduced Instruction Set Computing) 타입의 임베디드 프로세서인 Core-A 프로세서(201)를 포함한다. 다른 일실시예에 따르면 상기 프로세서 코어는 RISC V ISA를 적용한 CPU core일 수도 있다. 이하에서 '프로세서', '프로세서 코어', '시큐어 코어', '시큐어 프로세서' 등은 경우에 따라 상호간에 바뀌어 쓰일 수 있는 용어들로 이해되어야 한다. 예시적인 구현으로 'Core-A'를 이용한 구현에 대해 주로 설명하지만 RISC V ISA를 적용한 CPU 코어 등 다른 타입의 구현이 얼마든지 가능함은 이 분야의 기술자에게 자명하다.
일반 버스(210)에 REE 환경의 제1 그룹 엘리먼트들인 SRAM(211), Peripheral IP들(212), 디버깅 포트(213)가 연결되어 있다. 그리고 보안 버스(220)에 TEE 환경에서 동작해야 하는 Cryptographic IP들(221), boot ROM(222), secure SRAM(223) 및 secure DMA(224)가 연결되어 있다. 도 1을 참조하여 설명한 바와 같이, 인증부(202) 및 적어도 하나의 PUF들(203)이 존재하여 인증을 수행할 수 있다. PUF들(203)은 인증을 위해 코어(201)에 직접 연결되어 있으며, 또한 Cryptographic IP 중 AES/SEED IP, ECC/RSA IP에 직접 연결되어 있을 수 있다. 나아가 시큐어 NVM(230)도 PUF(203)에 직접 연결되어 있어 데이터를 암호화하여 안전하게 저장하는 것이 가능하다.
일실시예에 따른 보안 버스(220)는 상기 Core-A 프로세서의 ASR (Application Specific Register)을 상기 secure world의 제2 그룹 엘리먼트들의 제어를 위한 주소 공간으로 사용하여 구현되는 히든 버스일 수 있다. 이 응용에서, 상기 제2 그룹은 상기 보안 모드에서 상기 ASR에 대한 데이터 처리 명령인 MTA(Move to ASR) 명령과 MFA(Move from ASR) 명령어를 보안 명령어(secure instruction) 처리에 이용할 수 있다. 이는 ASR 인터페이스를 이용하여 상기 제2 그룹에 포함되는 보안(secure) IP들을 위한 히든 버스를 구현하는 것으로도 이해될 수 있다.
이러한 구현에 따르면, 큰 오버헤드를 갖는 secure OS나 라이브러리 대신 직접 TEE를 지원할 수 있는 보안 ISA(secure Instruction Set Architecture)가 구현된다. 따라서 ARM의 TrustZone을 이용하는 것에 비해 작은 CPU를 갖는 디바이스들에 적합하다. 실시예들에 따르면 일반 모드와 구분되는 보안 모드 관리 및 하드웨어와 소프트웨어 상호 인증을 위해 인증부인 pre-authentication 하드웨어가 제공된다. 또한 신뢰성, 안정성, 랜덤성이 이미 검증된 VIA-PUF(Physical Unclonable Function)을 이용한 상호 인증 하드웨어 IP들이 제공되므로, 강화된 secure world를 갖는 '보안 SoC 플랫폼'이 제공된다. 제시된 실시예에 따르면, 보안 ISA가 제시된다. 일반적인 ISA와 달리 별도로 구현되는 secure world 버전의 ISA이다. 기존의 ARM사 TrustZone 기술에 따른 방법으로 secure world 내 자원을 접근하기 위해서는 보안 OS나 복잡한 라이브러리가 필요하다. 그러나 제안하는 실시예에서는 보안 ISA에 기반하여 secure world 내 자원을 명령어(instruction) 수준에서 바로 접근할 수 있다.
또한, Pre-authentication IP를 사용하여 보안 ISA에 대한 보안 모드 관리를 함으로써 안전한 상호 인증을 수행하고 비인가된 사용자의 내부 접근, 이를테면 소프트웨어 공격을 막는다. 실시예에 따라 제안되는 보안 코어는 secure world에 대한 숨겨진 통로를 제공하며, 이는 주 메모리 인터페이스와 물리적으로 분리되어 있다. 또한 소프트웨어를 읽어들일 때 secure DMA를 이용하여 하드웨어에 의해 자동으로 무결성이 확인되도록 하며, 인증을 위해서 내부 PUF가 보안 저장 공간이나 보안 IP들을 위한 키를 제공한다. 각각을 보다 상세히 설명한다.
보안 ISA (Instruction Set Architecture)
기존의 방법에 따라 secure world 내에서 자원을 사용하거나 보안 함수를 호출하기 위해서는 보안 OS나 라이브러리가 범용 CPU core에서 동작하기 위해 필요하다. 그러나 실시예에 따르면 secure world에서의 요구사항과 secure OS 및 라이브러리의 특징적 기능을 제공하면서도 오버헤드가 없는 보안 ISA가 제시되며 이는 종전의 Core-A를 기능적으로 확장한다. 이는 보안 시스템이 보안 OS나 라이브러리의 도움 또는 어플리케이션 개발의 어려움 없이 TrustZone을 직접 접근할 수 있도록 해주며 관리를 위한 노력도 줄어들 수 있다. 실시예에 따른 보안 ISA의 예시적 특징은 다음과 같다.
- 제어 흐름 무결성: 효율을 위해 하나의 명령어로 제어 흐름의 무결성을 보호하는 코드 대체
- 키 관리: 공개키 암호를 위한 랜덤 수 및 키 쌍 생성 포함
- 메모리 보안 레벨 관리: 각 페이지와 세그먼트별로 다양한 보안 레벨 제공
- 보안 엔진: 보안 하드웨어 엔진과 밀접하게 동작하는 ISA 확장
- Secure Booting / 인증: 보안 디버깅과 부팅을 위한 인증 지원
- 보안 모드 관리: 보안 모드를 위한 마이크로구조의 관리 지원
- 레지스터 내용 보호: VIA-PUF로 보안 레지스터의 내용 암호화
Pre-authentication 수행
도 3a 내지 3f는 일실시예에 따라 Pre-authentication이 수행되는 과정과 프로토콜을 설명하기 위한 도면이다. 도 3a를 참조하면 하드웨어 SoC(300) 내에는 인증을 처리하고 보안 모드에서 동작하는 부분(310)이 존재한다. 보안 ISA가 사용될 수 있기 위해서는 pre-authentication IP(301)가 전원이 켜졌을 때나 리셋된 이후 말단간 상호인증을 통해 외부 인증서 서버, 이를테면 상업 네트워크에서 터미널의 보안을 관리하는 TSM (Terminal Security Management) System 서버(301)와 통신할 수 있다. 도시된 바와 같이 예시적으로, 그러나 한정되지 않게 이러한 상호 인증은 PUF(303)가 만들어 내는 근원 키를 이용한 공개키 암호화 방식에 의할 수 있다.
일실시예에 따르면 상기 상호 인증에 사용되는 pre-authentication IP(301) 내 인증 프로토콜은 일반적인 언어(예를 들어, C 등의 고급 언어나, 특정 Core용 어셈블리어)가 아니다. Pre-authentication IP(301) 내에서는 인증 프로토콜의 수행만을 위해 설계한 전용 언어로 구현되어 있기 때문에 분석이 어렵고 실질적으로 분석이 불가능하다. 또한 pre-authentication IP(301)가 하드웨어 로직으로 구현됨으로써 수정이 불가능(무결성 보장)할 뿐만 아니라 ROM 등의 물리적으로 분리된 IP 형태가 아닌 기본 셀들의 조합으로 구현함으로써 PnR(Place and Route) 과정에서 다른 셀들과 섞이게 하는 것이 가능해 역공학 등의 물리적 공격으로부터도 강인하다.
서버(301)와 제안한 플랫폼(300)은 각자의 개인키로 서명을 생성하고 인증서 내에는 자신의 공개키가 포함되어 있다. 상호 인증은 인증서와 서명을 교환함으로써 수행된다. Pre-authentication IP(302)는 VIA-PUF(303)로부터 개인키를 얻고 이를 이용해 생성한 서명을 인증서 서버에게 전달한다. 그리고 저장하고 있던 외부 인증서 서버의 공개키로 수신한 서명을 검증한다. 이 때 서명 알고리즘은 공개키 암호 알고리즘으로 ECC나 RSA일 수 있다. 성공적인 상호인증으로 시스템이 보안 모드에 진입하면 보안 코어가 secure booting을 제어한다. 또한 디버깅 포트는 오직 보안 모드일 때에만 열려, 인증된 사용자만 디버깅을 수행할 수 있게 된다. 인증이 성공하는 경우에는 보안 모드가 허가될 수 있으며, secure world의 IP 자원들(311 및 312 등)이 동작할 수 있다.
한편, 상호 인증에서 교환했던 공유 키는 향후 보안 목적으로 데이터를 주고 받을 때 암호화 키나 MAC(Message Authentication Code)용 키, 그리고 암호화 또는 MAC에 사용되는 IV(Initial Vector)로 사용하여 통신 시 기밀성 및 무결성 확보에 사용될 수 있다. 이하에서는 상호 인증을 위한 자세한 프로토콜을 설명한다.
Pre-authentication 프로토콜
Pre-authentication 프로토콜은 사용에 앞서 공개키를 등록하고 인증서를 발급받는 '발급 프로토콜'과 필요에 따라 기존의 공개키를 새 공개키로 교체하고 새 공개키에 대한 인증서를 재발급할 수 있는 '재발급 및 갱신 프로토콜'을 포함하고 있다. 발급 이후 칩은 TSM (Terminal Security Management) System 에게 사용을 요청하는 것으로 시작하며, 유효 기간이 남은 경우 그대로 사용 프로토콜이, 유효 기간이 만료된 경우 갱신 프로토콜이 온라인상에서 수행된다. 만약 유효 기간이 만료된지 오랜 시간 지났거나 해당 칩의 기존 키 쌍이 공격 등으로 인해 더 이상 유효하지 않다고 TSM에서 판단된 경우 온라인상에서의 사용 프로토콜과 갱신 프로토콜은 사용할 수 없으며, 발급 기관에서 발급 프로토콜과 비슷한 방식으로 재발급을 받아야 한다. 이 때 재발급 프로토콜은 ID 발급 부분만 생략되므로 이를 제외하면 발급 프로토콜과 거의 동일하다. 그리고 안전하다고 가정된 발급기관에서 키와 인증서를 변경할 뿐만 아니라 기존 키는 더 이상 유효하지 않으므로 공개키 전달 시 서명이 필요 없다. 다시 말해 갱신 프로토콜에선 칩에서 새로 생성한 공개키를 TSM에게 전달할 때 변경 전 개인키로 서명하여 전달한다. 각 단계의 프로토콜을 도면을 참조하면서 상세히 설명한다.
발급 프로토콜
도 3b에서 제시된 흐름은 발급 프로토콜을 제시한다. 기기에서 생성한 공개키 쌍 중 공개키를 등록하고 공개키에 대한 인증서를 발급 받는 과정이다. 공개키 쌍 생성 및 전달, 인증서 발급 부분은 재발급 프로토콜에서도 동일하게 수행될 것이다.
먼저 칩 및 일련번호 목록 전달과정이 수행된다. 유효한 기기들에 대한 일련번호 목록(SN-list)은 제조자로부터 TSM에게로 전달되어 있다(3202).
ⓐ 칩 삽입(3201) : 발급기기에 인증 칩 또는 인증 칩이 삽입된 기기가 삽입된다. 이 때 발급자(예를 들어 은행 또는 신용카드회사)가 구동하는 발급기기는 신뢰되는 것으로 간주한다.
ⓑ SN 요청 : 그러면 발급기기는 칩에게 SN을 요청하여 전달받는다.
ⓒ ID 요청 : 발급기기는 TSM에게 해당 칩에 대한 ID를 요청하면서 칩으로부터 받은 SN을 전달한다. TSM은 ID를 생성(3203)하고, 전달 받은 SN 확인(3204) 후 자신의 공개키(QTSM)를 ID와 함께 발급기기에 전달한다.
* 오류 처리(유효하지 않은 SN으로 판단되는 경우) : TSM에게 유효하지 않은 SN이 전달된 경우라면, 상기 단계에서 ID를 전달하는 대신 오류 메시지(ERR_ID)로 응답하고 폐기(Disuse)하고 종료할 수 있다(3205). 선택적으로 발급기기는 칩에게 유효한 SN을 달라고 다시 요청할 수 있고 ⓑ 과정부터가 반복될 수 있다.
ⓓ 공개키 요청 : 오류가 없다면 발급기기는 칩에게 공개키를 요청하면서 TSM으로부터 받은 ID, TSM의 공개키를 전달한다.
* 오류 처리(CRC 오류) : 발급기기가 TSM으로 받은 메시지에 CRC 오류가 있을 경우 ID 요청(REQ_ID, ⓒ)을 다시 하여 ID, TSM의 공개키를 다시 받는다.
ⓔ 공개키 생성 준비 : 칩은 CRC 검사(3206), TSM의 공개키의 유효성 검사(3207)를 수행한다. 그리고 공개키 생성에 사용될 갱신 정보(UpNumECC)를 초기화한다(3208).
* 오류 처리(CRC오류) : 칩이 발급기기로부터 받은 메시지에 CRC 오류가 있을 경우 오류 메시지(ERR_PUK)을 송신하여 ID, TSM의 공개키를 다시 받는다.
* 오류 처리(공개키 오류) : 칩이 TSM으로부터 받은 TSM의 공개키(QTSM)가 유효하지 않을 경우 오류 메시지(ERR_PUK)로 응답하여 TSM의 공개키를 재요청한다. 발급기기는 이를 수신하여 TSM에게 ID를 요청(REQ_ID, ⓒ)을 다시하여 ID, TSM의 공개키를 다시 받는다.
상기 초기화(3208) 후 단계(3209)에서 도 3c가 수행된다. 도 3c를 참조하여 설명될 ⓕ 내지 ⓗ는 발급과 재발급에 공통되는 부분으로, 발급에 관한 도 3b에서는 단계(3209)로, 재발급에 관한 도 3e에서는 단계(3508)로 지칭된다. 후술할 도 3e의 단계(3508) 과정에서 여기의 ⓕ 내지 ⓗ가 다시 참조된다.
ⓕ 공개키 생성 및 전달(3301) : ID, PUF, 갱신 정보를 바탕으로 공개키 쌍을 생성하여 그 중 공개키는 발급기기로 전달하고 발급기기는 이를 TSM으로 전달한다. 이 구간은 신뢰되는 것으로 간주하며 통신상의 오류를 배제할 수 있도록 CRC 코드를 덧붙인다.
* 오류 처리(CRC 오류) : 발급기기가 칩으로부터 받은 메시지에서 CRC 오류 발생 시(3302) 오류 메시지(ERR_PUK)를 송신하여 칩의 공개키를 다시 전송 받는다. 오류 반복 시 칩을 폐기(Disuse)(3303) 시킬 수 있다.
ⓖ 인증서 발급 : TSM은 CRC 검사(3304), 칩의 공개키의 유효성 검사(3305)를 수행한다. 그리고 수신한 공개키에 자신의 개인키로 서명한 인증서를 생성(3307)하여 발급기기로 전달하고 발급기기는 이를 칩에게 전달한다. 참고로 도 3b 내지 3d에 표시된 인증서에는 칩의 ID와 공개키, 그리고 이들에 대한 서명만 포함되어 있지만, 필요한 경우 서명하는 대상 및 인증서 내용에 ID 및 칩의 공개키 외에도 발급 기관, 유효 기간 등의 추가 정보가 더 포함될 수 있다.
* 오류 처리(CRC 오류) : TSM이 발급기기로부터 받은 메시지에서 CRC 오류 발생 시 발급기기는 칩에게 CRC 오류 메시지(ERR_CERT)로 응답하여 재전송을 요청한다.
* 오류 처리(공개키 오류) : TSM이 발급기기로부터 받은 칩의 공개키(QChip)가 유효하지 않을 경우 오류 메시지(ERR_CERT)로 응답하여 칩의 공개키를 재요청한다. 발급기기는 이를 받아 오류 메시지(ERR_PUK)를 칩에게 전달한다. 오류 반복 시 칩을 폐기(Disuse)(3306) 시킬 수 있다.
* 오류 처리(CRC 오류) : 발급기기가 TSM으로부터 받은 메시지에서 CRC 오류 발생 시(3308) 발급기기는 TSM에게 인증서 요청 메시지(REQ_CERT)를 다시 전송한다.
ⓗ 인증서 검증 : 칩은 CRC를 검사하고(3309) 인증서에 포함된 ID와 공개키가 자신의 것과 동일한지 확인한다. 그리고 ID와 공개키에 대한 인증서의 서명을 확인한다(3310). 서명이 확인되면 갱신 정보(UpNumECC)와 TSM으로부터 받았던 인증서를 비휘발성 메모리에 저장한다(3313).
* 오류 처리(CRC 오류) : 칩이 발급기기로부터 받은 메시지에서 CRC 오류 발생 시(3311) 칩은 발급기기에 CRC 오류 메시지(ERR_REG_CERT)로 응답하여 재전송을 요청한다. 재전송 후 에러처리이면 폐기(3312) 가능하다.
* 오류 처리(인증서 오류) : 인증서 오류(ID, 공개키, 서명 오류) 발생 시 칩은 인증서 오류 메시지(ERR_REG_CERT)를 발급기기에게 보내고 발급기기는 TSM에게 보내 인증서를 재요청(REQ_CERT)하고 이 후 과정을 반복한다.
이상이 발급과 재발급에 공통되는 도 3c 부분이며, 다시 발급 과정인 도 3b의 ID, QTSM를 저장하는 단계(3210) 직전으로 돌아가서 단계(3210)이 수행된다.
발급이 끝나면 각 칩은 발급받은 ID와 초기화한 갱신 정보(UpNumECC), TSM의 공개키(QTSM), 그리고 자신의 공개키에 대한 TSM의 인증서(TSM의 개인키로 칩의 공개키를 서명한 것)를 비휘발성 메모리에 가지고 있게 된다. 발급 후 TSM은 발급된 칩들에 대한 SN-ID-공개키 목록을 보유하게 된다. 칩과 발급자(발급기기), TSM, 제조사 간의 연결은 안전하다고 가정한다. 즉 발급 단계에서는 공격자의 개입이 불가능하다고 가정한다.
갱신 프로토콜
발급이 끝난 칩에 전원이 켜져 칩이 TSM에게 사용 요청을 하였을 때 TSM에서 해당 ID의 칩의 유효 기간을 확인한 결과 유효 기간이 남아 있지 않은 경우 칩 사용을 불허하며, 칩에게 공개키 갱신을 요청한다. 안전하지 않은 통신 환경이기에 새로 생성한 칩의 공개키를 전달할 때 기존의 개인키(갱신 전 개인키)로 서명하여 전달함으로써 해당 칩으로부터 온 새 공개키임을 보장한다. 자세한 프로토콜은 도 3d를 참고하여 설명한다.
ⓐ 유효 기간 확인 요청 : ID와 랜덤 수(RN)을 TSM에게 전달한다(3401).
ⓑ 유효 기간 확인 및 갱신 요청 : TSM이 유효 기간을 확인한다(3402). 유효 기간이 남아 있지 않은 경우 갱신을 요청한다. 공격자가 임의로 기기를 갱신시킬 수 없도록 ID와 수신한 랜덤 수, 그리고 갱신 코드(RENEWAL)를 TSM의 개인키로 서명하여 갱신 요청 메시지에 덧붙인다.
ⓒ 공개키 쌍 갱신 및 전달 : 칩은 수신한 갱신 요청 메시지의 ID와 서명을 확인(3403 및 3404)한 후, 1 증가시킨 UpNumECC를 이용하여 새로 공개키쌍(d'Chip, Q'Chip)을 생성한다(3405). 그리고 그 중 공개키를 ID와 함께 갱신 전 개인키(dChip)로 서명하여 TSM에게 전달한다(3406).
* 오류 처리(ID 오류) : 칩이 TSM으로부터 받은 ID가 자신의 것이 아니라면 오류 메시지(ERR_RENEWAL)로 응답한다. TSM은 ID를 확인하고 맞다면 갱신 요청 메시지(REQ_RENEWAL)부터 반복한다.
* 오류 처리(서명 오류) : 칩이 TSM으로부터 받은 서명이 유효하지 않을 경우, 오류 메시지(ERR_RENEWAL)로 응답한다. TSM은 기존 갱신 요청 메시지(REQ_RENEWAL)을 재전송하거나 서명 생성부터 반복한다.
ⓓ 인증서 발급 : TSM은 칩의 공개키의 유효성 검사와 서명의 유효성 검사를 수행한다(3407 내지 3409). 그리고 수신한 공개키에 자신의 개인키로 서명한 인증서를 생성하여 칩에게 전달한다. 상술한 바와 같이 인증서를 재생성할 때에도 공개키 외에 추가 정보가 함께 붙을 수 있다.
* 오류 처리(공개키 오류) : TSM이 칩으로부터 받은 칩의 공개키(Q'Chip)가 유효하지 않을 경우 오류 메시지(ERR_RENEWAL)로 응답하여 칩의 공개키를 재요청한다.* 오류 처리(서명 오류) : TSM이 칩으로부터 받은 메시지의 서명이 유효하지 않을 경우 칩에게 오류 메시지(ERR_RENEWAL)로 응답하여 재전송을 요청한다. 칩은 서명 생성부터 반복한다.
ⓔ 인증서 검증 : 칩은 인증서에 포함된 ID와 공개키가 자신의 것과 동일한지 확인한다(3410). 그리고 ID와 공개키에 대한 인증서의 서명을 확인한다(3411). 서명이 확인되면 UpNumECC와 TSM으로부터 받은 인증서를 비휘발성 메모리에 저장한다(3413).
* 오류 처리(인증서 오류) : 인증서 오류(ID, 공개키, 서명 오류) 발생 시 폐기(3412)가 있을 수도 있지만, 칩은 인증서 오류 메시지(ERR_REG_CERT)를 TSM에게 보내 인증서를 재요청하여 과정을 반복할 수도 있다. 갱신이 끝나면 칩은 공개키 갱신에 사용된 1증가된 UpNumECC와 새로 갱신한 공개키에 대한 TSM의 인증서를 비휘발성 메모리에 가지고 있게 된다. 그리고 단계(3414)와 단계(3415)를 거쳐 갱신 프로토콜을 마무리된다.
재발급 프로토콜
갱신 시엔 새 공개키를 기존의 개인키로 서명함으로써 새 공개키가 칩의 것임을 보장하였다. 그러나 유효 기간 만료가 한참 지난 경우엔 기존의 개인키를 더 이상 사용할 수 없으므로 발급 기관에서 칩을 다시 재발급 받아야 하며, 자세한 프로토콜은 다음과 같다.
ⓐ 유효 기간 확인 요청 : 카드 삽입(3501) 후 칩은 재발급 상태인지 모르므로 갱신과 마찬가지로 ID와 랜덤 수(RN)를 생성(3502)하여 함께 송신하는 명령을 발급기기로 전달한다. 발급기기는 이를 받아 TSM에게 재발급 명령을 요청한다.
ⓑ 재발급 요청 : TSM은 갱신 요청과 비슷한 방식으로 ID와 수신한 랜덤 수, 그리고 재발급 코드(ISSUE)를 TSM의 개인키로 서명(3503)하여 재발급 요청 메시지에 덧붙인다.
ⓒ 재발급 요청 확인 : 칩은 CRC와 ID, 서명을 확인한 후(3504 내지 3506) UpNumECC를 1증가시킨다(3507).
* 오류 처리(CRC오류) : 칩이 발급기기로부터 받은 메시지에 CRC 오류가 있을 경우 오류 메시지(ERR_REPUK)을 송신하여 ID, 서명을 다시 받는다.
* 오류 처리(ID 오류) : 칩이 TSM으로부터 받은 ID가 자신의 것이 아니라면 오류 메시지(ERR_REPUK)로 응답한다. TSM은 ID를 확인하고 맞다면 재발급 요청 메시지(REQ_REPUK)부터 반복한다.
* 오류 처리(서명 오류) : 칩이 TSM으로부터 받은 서명이 유효하지 않을 경우 오류 메시지(ERR_REPUK)로 응답한다. TSM은 기존 갱신 요청 메시지(REQ_REPUK)를 재전송하거나 서명 생성부터 반복한다.
그리고 여기서 상술한 도 3c로 설명한 발급 프로토콜의 ⓕ 내지 ⓗ가 반복된다.
ⓓ (발급의 ⓕ) 공개키 생성 및 전달(3301) : ID, PUF, 갱신 정보를 바탕으로 공개키 쌍을 생성하여 그 중 공개키는 발급기기로 전달하고 발급기기는 이를 TSM으로 전달한다. 이 구간은 신뢰되는 것으로 간주하며 통신상의 오류를 배제할 수 있도록 CRC 코드를 덧붙인다.
* 오류 처리(CRC 오류) : 발급기기가 칩으로부터 받은 메시지에서 CRC 오류 발생 시(3302) 오류 메시지(ERR_PUK)를 송신하여 칩의 공개키를 다시 전송 받는다. 오류 반복 시 칩을 폐기(Disuse)(3303) 시킬 수 있다.
ⓔ (발급의 ⓖ) 인증서 발급 : TSM은 CRC 검사(3304), 칩의 공개키의 유효성 검사(3305)를 수행한다. 그리고 수신한 공개키에 자신의 개인키로 서명한 인증서를 생성(3307)하여 발급기기로 전달하고 발급기기는 이를 칩에게 전달한다. 이 경우에도 발급 시와 마찬가지로 필요에 따라 다양한 추가 정보(이를테면, 발급기관, 유효기간)들이 함께 추가될 수 있다.* 오류 처리(CRC 오류) : TSM이 발급기기로부터 받은 메시지에서 CRC 오류 발생 시 발급기기는 칩에게 CRC 오류 메시지(ERR_CERT)로 응답하여 재전송을 요청한다.
* 오류 처리(공개키 오류) : TSM이 발급기기로부터 받은 칩의 공개키(QChip)가 유효하지 않을 경우 오류 메시지(ERR_CERT)로 응답하여 칩의 공개키를 재요청한다. 발급기기는 이를 받아 오류 메시지(ERR_PUK)를 칩에게 전달한다. 오류 반복 시 칩을 폐기(Disuse)(3306) 시킬 수 있다.
* 오류 처리(CRC 오류) : 발급기기가 TSM으로부터 받은 메시지에서 CRC 오류 발생 시(3308) 발급기기는 TSM에게 인증서 요청 메시지(REQ_CERT)를 다시 전송한다.
ⓕ (발급의 ⓗ) 인증서 검증 : 칩은 CRC를 검사하고(3309) 인증서에 포함된 ID와 공개키가 자신의 것과 동일한지 확인한다. 그리고 ID와 공개키에 대한 인증서의 서명을 확인한다(3310). 서명이 확인되면 UpNumECC와 TSM으로부터 받았던 새 인증서를 비휘발성 메모리에 저장한다(3313).
* 오류 처리(CRC 오류) : 칩이 발급기기로부터 받은 메시지에서 CRC 오류 발생 시(3311) 칩은 발급기기에 CRC 오류 메시지(ERR_REG_CERT)로 응답하여 재전송을 요청한다. 재전송 후 에러처리이면 폐기(3312) 가능하다.
* 오류 처리(인증서 오류) : 인증서 오류(ID, 공개키, 서명 오류) 발생 시 칩은 인증서 오류 메시지(ERR_REG_CERT)를 발급기기에게 보내고 발급기기는 TSM에게 보내 인증서를 재요청(REQ_CERT)하고 이 후에 단계(3508)에서 도 3c에서 설명한 내용이 수행된다. 이것은 도 3c를 참조하여 설명한 발급 과정의 ⓕ 내지 ⓗ이다. 이 부분이 수행된 이후 다시 도 3e의 마무리 단계로 돌아간다. 재발급 결과 1증가한 UpNumECC와 새로 발급받은 인증서(R’, S’)가 새롭게 저장된다(3507). 발급 프로토콜과 마찬가지로 발급 단계에서는 공격자의 개입이 불가능하다고 가정한다.
사용 프로토콜
도 3f를 참조하여 설명한다. 사용 프로토콜은 TSM과 상호 인증을 수행하여 core로 하여금 secure mode의 권한을 수여하는 프로토콜이다. 도 3a에서 설명되는 인증 과정을 수행하는 예시적 프로토콜이다.
ⓐ 유효 기간 확인 요청 : 갱신, 재발급 프로토콜과 동일하게 ID와 랜덤 수(RN)를 생성(3601)하여 TSM에게 전달하며 프로토콜이 시작한다.
ⓑ 유효 기간 확인 및 세션 요청 : TSM이 유효 기간을 확인한다(3602). 유효 기간이 남아 있는 경우 칩과 키를 공유하기 위한 ECDH 과정으로 임시 키 쌍(a, A)를 생성한다. 그리고 이를 TSM의 개인키로 서명하여 칩에게 전달한다.
ⓒ 공유키 생성 : 칩은 수신한 ID를 확인하고(3603), 수신한 공개키(A)의 유효성, 그리고 서명의 유효성을 확인한다(3604 및 3605). 그리고 ECDH 과정으로 칩의 임시 키 쌍(b, B)를 생성한다. 그리고 TSM으로 받은 임시 공개키(A)와 칩이 생성한 임시 개인키(b)를 이용하여 공유 비밀정보(W)를 만들고 이를 키 유도 함수(Key derivation function)로 확장하여 공유 비밀키(K1, K2, IV)를 생성한다(3606). 생성한 공개키와 이에 대해 칩의 개인키로 서명한 서명, 그리고 hand shake를 위해 공유 비밀키로 암호화한 정보(C1)를 TSM에게 전달한다(3607 내지 3608).
* 오류 처리(ID 오류) : 칩이 TSM으로부터 받은 ID가 자신의 것이 아니라면 오류 메시지(ERR_SESSION)로 응답한다. TSM은 ID를 확인하고 맞다면 세션 요청 메시지(REQ_SESSION)부터 반복한다.
* 오류 처리(공개키 오류) : 칩이 TSM으로부터 받은 공개키가 유효하지 않은 경우 오류 메시지(ERR_SESSION)로 응답한다. TSM은 세션 요청 메시지(REQ_SESSION)부터 반복한다.
* 오류 처리(서명 오류) : 칩이 TSM으로부터 받은 서명이 유효하지 않은 경우 오류 메시지(ERR_SESSION)로 응답한다. TSM은 서명 생성을 다시 하거나 세션 요청 메시지(REQ_SESSION)부터 반복한다.
ⓓ Hand shake : TSM은 수신한 공개키(B)의 유효성과 서명의 유효성을 확인한다(3609 및 3610). 그리고 전달받은 칩의 공개키(B)와 TSM에서 생성하였던 임시 개인키(a)를 이용하여 공유 비밀정보(W)를 만들고 이를 키 유도 함수(Key derivation function)으로 확장하여 공유 비밀키(K1, K2, IV)를 생성한다(3611). 이를 이용하여 C1을 복호화함으로써 칩이 동일한 공유 비밀키들을 생성하였음을 확인한다. TSM 또한 공유 비밀키로 암호화한 정보(C2)를 칩에게 전달한다(3612).
* 오류 처리(공개키 오류) : TSM이 칩으로부터 받은 공개키가 유효하지 않은 경우 오류 메시지(ERR_HS)로 응답한다. 칩은 hand shake 요청 메시지(REQ_HS)부터 반복한다.
* 오류 처리(서명 오류) : TSM이 칩으로부터 받은 서명이 유효하지 않은 경우 오류 메시지(ERR_HS)로 응답한다. 칩은 서명 생성을 다시 하거나 hand shake 요청 메시지(REQ_SESSION)부터 반복한다. 만약 서명 오류가 반복될 경우 hand shake 과정을 멈추고 인증 실패를 위한 오류 메시지(ERR_HS)를 인증 실패 코드(ER_AUTH)와 함께 보내 인증 결과를 실패(FAuth = Fasle)로 설정하도록 한다.
* 오류 처리(Hand shake 오류) : TSM이 칩으로부터 받은 C1의 확인 결과 실패할 경우 오류 메시지(ERR_HS)로 응답한다. 비밀키 생성이나 C1 생성부터 다시 수행한다.
ⓔ Hand shake2 : 칩은 수신한 C2를 복호화하여 확인함으로써 TSM 또한 동일한 공유 비밀키들을 생성하였음을 확인한다(3613).
* 오류 처리(Hand shake 오류) : 칩이 TSM으로부터 받은 C2의 확인 결과 실패할 경우 오류 메시지(ERR_HS)로 응답한다. 공유 비밀키 생성이나 C2 생성부터 다시 수행한다.
위 과정에서 서로 주고받은 서명을 통해 서로를 인증할 수 있으며, 공유된 비밀키(K1, K2, IV)는 향후 TSM과 통신 시 암호화 키, MAC용 키, initial vector로 각각 활용하게 된다. 인증이 성공적으로 수행된 경우 secure mode에 대한 권한을 부여한다(FAuth = True)(3614).
이상이 Pre-authentication의 수행, 발급, 갱신, 재발급, 사용 각각의 구체적 프로토콜이다. 이러한 과정을 통해 Pre-authentication 인증부가 장치와 TSM에 이르는 하드웨어를 인증하게 된다.
하드웨어의 소프트웨어 인증
기존의 TrustZone 등의 TEE(Trusted Execution Environment)에서 플랫폼의 무결성을 보장하기 위하여 secure booting 기능을 포함하고 있다. 이는 OS 이미지 자체가 오염된 상태로 시스템이 시작하는 것을 방지하기 위한 것으로, 부팅 시 OS 이미지의 무결성을 확인 후 실행함으로써 플랫폼이 무결한 상태에서 시작할 수 있도록 하는 기술이다.
도 4는 일실시예에 따르면 이러한 보안 부팅(secure booting)의 흐름을 설명하기 위한 흐름도이다. 디바이스가 파워-온(410)되면, ROM의 SoC 부트로더(420)가 가장 먼저 실행되어 권한을 가진다. bootloader는 on-SoC ROM에 저장되어 있어 수정이 불가능하므로 신뢰 근원(Root of trust)으로서 secure booting 절차의 근간이 된다. 또한 on-SoC 하드웨어는 TSM 인증기관의 공개키를 수정이 불가능한 OTP 형태 등으로 가지고 있다. 부트로더(420)는 이 공개키를 이용하여 플래시 디바이스 부트로더(flash device bootloader)(430)의 서명을 검증함으로써 무결함을 확인하게 되고, 그 후 플래시 디바이스 부트로더(430)에게 권한을 주어 실행될 수 있게 한다. 권한을 넘겨받은 플래시 디바이스 부트로더(430)는 secure world OS의 이미지의 서명을 검증함으로써 무결함을 확인하게 되고 이를 실행(시큐어 부팅)시키게 된다(440). 이러한 과정을 뒤에서도 반복하면서 normal world 부트로더(450)가 권한을 받아 normal world OS를 부팅하고(460) 시스템이 구동된다. 수정이 불가능하여 무결성이 보장된 하드웨어 차원의 신뢰 근원으로부터 스텝 바이 스텝으로 소프트웨어 인증을 수행하면서 앞으로 나아가는 이러한 과정을 신뢰 체인이라고 한다.
이러한 방식으로 하드웨어는 하드웨어에서 수행될 소프트웨어를 신뢰 체인으로 인증하고, 도 3a 내지 3f를 참고하여 설명한 것처럼 소프트웨어도 하드웨어를 인증하여 상호 인증이 수행되는 것이다.
PUF를 이용한 보안의 강화
실시예에 따른 PUF(Physical Unclonable Function)는 반도체 제조과정에서 발생하는 공정편차를 이용하여 칩 고유의 true random bit을 생성할 수 있다. 반도체 제조과정에서 발생하는 공정편차는 칩 마다 상이하므로, 칩의 대량 생산 시 PUF는 칩의 고유 ID로 활용될 수 있으며, 이를 이용하면 암호/복호화, 메모리 보호, 전자서명 등에 활용되는 근원 키(root key)가 제공될 수 있다.
이러한 PUF의 값은 칩 외부로 유출되기 어려워 신뢰-근원(Root-of-Trust)으로서 최상위 보안등급을 제공할 수 있다. 현재 대륙간탄도미사일(ICBM) 등 군사용 무기, 차량용 보안시스템(HSM), 스마트 폰의 AP, 스마트카드 등의 많은 응용분야에서 PUF를 보안에 이용하기 위한 표준화 및 상용화가 진행되고 있다.
도 5는 일실시예에 따른 PUF의 구현을 설명하기 위한 개요도이다. 예시적인 구현으로서, 이에 한정되는 것은 아님에 유의해야 한다. 일실시예에 따르면 PUF는 통상적인 디자인 룰(도시된 예에서는 250nm*250nm)에서 정한 via hole size보다 작은 via hole을 디자인하여 제조된 비아(또는 인터-레이어 컨택) 어래이를 갖는다. 이 경우 via hole 어래이에서 open과 short가 random하게 분포되며, 이는 무작위적(random)이고 실질적으로 시간 불변인 (invariant over time) 디지털 값을 제공할 수 있다. 제시된 실시예에 따라 제조된 VIA PUF는 공인평가기관에서 JEDEC 표준에 따른 다양한 테스트를 통과하여 Reliability가 검증되었고, 램덤성도 NIST 표준인 SP 800-90B의 true random number testing suite를 통과하였다.
추가적인 실시예의 설명
도 6은 일실시예에 따라 물리적 공격으로부터 근본적으로 보호되는 보안 SoC 플랫폼을 도시한다.
보안 코어(601)에 연결되어 REE 환경의 컴퓨팅을 수행하는 일반 버스(610) 외에 secure world를 위한 히든 버스(620)가 제공된다. SRAM(611)이나 Peripheral IP들(612)가 일반 모드에서 동작하는 중 보안 모드 실행이 필요한 경우에는 보안 ISA를 통해 명령어 수준에서 보안 IP들(621)이 동작할 수 있다.
일실시예에 따르면 보안 코어(601)는 메모리 영역을 코드 영역과 데이터 영역으로 분할한다. 분할되는 메모리 영역은 normal world의 것일 수도 있으나, 다른 실시예에서는 secure world의 것일 수도 있다. 보안 코어(601)는 상기 코드 영역에는 쓰기(write)를 금지하고, 데이터 영역에서는 실행(execution)을 금지시키는 메모리 보호 유닛(Memory Protection Unit, MPU) 을 포함할 수 있다. 여기서 상기 코드 영역과 상기 데이터 영역은 상기 Core-A 프로세서의 ASR에 대한 명령어를 이용하여 처리되는 보안 명령어에 의해 설정될 수 있다. 나아가, 상기 코드 영역과 상기 데이터 영역 외에 시스템 영역도 설정될 수 있다.
영역\모드 U/N U/S P/N P/S
코드 영역 RX RX RWX RWX
데이터 영역 RW RW RW RW
시스템 영역 - - RWX RWX
위 표에서 모드 "U"는 User mode를 의미하고, "P"는 Privilege mode를 의미한다. 그리고 "N"은 Normal mode를, "S"는 Secure mode를 의미한다. 코드 영역 별로 허용되는 동작이 제시되어 있다. 이를테면, 유저 모드이고 일반 모드일 때는 R인 읽기, 그리고 X인 실행(eXecution)은 가능하나, 쓰기 W는 허용되지 않는다.
한편, 일실시예에 따르면 상기 프로세서 코어는 코드 시퀀스에 포함되는 리턴 어드레스를 백업하는 하드웨어 기반 섀도우 스택을 포함할 수 있다. 이 경우, 상기 섀도우 스택은 기존의 메모리 상에 상주하는 스택과는 별도로 동일 또는 별도의 추가된 메모리, 또는 별도의 추가된 레지스터 등에 위치할 수 있다. 상기 섀도우 스택은 버스를 사용하지 않고, OS나 소프트웨어에 의해 접근되지 않으며, 추가된 하드웨어 기반 제어 회로에 의해 메모리 스택 관련 명령 수행 시 자동으로 수행되어 상기 리턴 어드레스를 이중으로 관리할 수 있다. 섀도우 스택을 이용한 리턴 어드레스의 이중 관리로, 소프트웨어 공격으로 인해 기존의 메모리 상에 상주하는 스택에 저장되어 있는 리턴 어드레스가 변경되는 것을 감지할 수 있다. 섀도우 스택은 하드웨어 회로로만 제어되고 소프트웨어로 접근 불가능하므로 섀도우 스택에 저장된 내용을 변경하려는 공격도 원천적으로 차단할 수 있다. 위에서 설명한 섀도우 스택은 리턴 어드레스를 이중으로 관리하는 예시적 구성이며, 리턴 어드레스를 주기적으로 백업해 이중으로 관리하는 스택이면 특정한 예시적 구현에 한정되는 것은 아니다.
시스템 부팅 시 동작
도 7 내지 도 8은 일실시예에 따른 SoC의 동작을 설명하기 위한 흐름도이다. 일실시예에 따르면 디바이스 파워-온 시 인증서 서버로부터 인증을 받는 절차(710)가 수행된다. 여기서 하드웨어 기반 인증부인 pre-authentication IP가 말단간 상호인증을 통해 외부 인증서 서버와 통신하는 내용은 도 3a를 통해 상술한 바와 같고, 이 과정에서 PUF가 이용되는 것은 도 5를 참조하여 설명하였다.
단계(720)에서 인증에 성공한 경우라면, Secure ISA가 사용 가능하도록 관리되고(730), 디버깅 포트 접근이 가능해지고 secure world OS가 부팅된다(740). 그리고 이어서 노말 모드 부팅을 통해 시스템은 구동 가능하게 된다(750).
그러나, 단계(720)에서 인증에 실패하는 경우라면, 도 8의 단계(810)에서 secure world는 접근 불가능하게 된다. 그리고 노말 월드만 부팅되어 REE 환경의 컴퓨팅 구동만 가능해질 수 있다. 이러한 과정에 대해서는 도 1, 도 2 및 도 4 등을 참조하여 상술한 바와 같다.
이상에서 설명된 장치는 메모리의 하드웨어 구성요소, 메모리를 제어 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 메모리 동작 제어 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. 반도체 칩에 있어서,
    프로세서 코어; 및
    외부 신뢰 기관과 상호 인증을 수행하여 상기 반도체 칩 및 상기 외부 신뢰 기관 사이의 인증을 수행하는 인증부
    를 포함하는 반도체 칩.
  2. 제1항에 있어서,
    상기 프로세서 코어에 제1 버스를 통해 연결되는 엘리먼트들을 포함하는 제1 그룹; 및
    상기 프로세서 코어에 제2 버스를 통해 연결되며 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹
    을 더 포함하는 반도체 칩.
  3. 제2항에 있어서,
    상기 인증부가 상기 인증에 성공한 경우에만 상기 제2 그룹을 사용 가능하도록 활성화 하는 반도체 칩.
  4. 제2항에 있어서,
    상기 제2 그룹은 Cryptographic IP, secure SRAM, secure DMA 및 boot ROM 중 적어도 하나를 포함하는 반도체 칩.
  5. 제1항에 있어서,
    상기 인증부가 상기 외부 신뢰 기관과 상기 상호 인증을 수행하는 데에 이용되는 키를 제공하는 PUF를 더 포함하는 반도체 칩.
  6. 제2항에 있어서,
    상기 제2 그룹은 상기 제1 그룹과 상이한 메모리 어드레스를 이용하여 데이터를 처리하는 반도체 칩.
  7. 제2항에 있어서,
    상기 프로세서 코어는 32 비트 RISC(Reduced Instruction Set Computing) 타입의 임베디드 프로세서인 Core-A 프로세서를 포함하는 반도체 칩.
  8. 제7항에 있어서,
    상기 제2 버스는 상기 Core-A 프로세서의 ASR (Application Specific Register)을 상기 제2 그룹에 포함되는 엘리먼트를 제어하는 주소 공간으로 사용하여 구현되는 히든 버스를 포함하는 반도체 칩.
  9. 제8항에 있어서,
    상기 제2 그룹은 상기 보안 모드에서 상기 ASR에 대한 데이터 처리 명령인 MTA(Move to ASR) 명령과 MFA(Move from ASR) 명령어를 보안 명령어(secure instruction) 처리에 이용하는 반도체 칩.
  10. 제1항에 있어서,
    상기 인증부는 하드웨어 로직이며, 기존의 컴퓨팅 언어와 상이한 독자 언어로 구동되어 상기 인증 절차를 수행하는 반도체 칩.
  11. 제10항에 있어서,
    상기 인증부는 기존의 컴퓨팅 언어와 상이한 독자 언어로 구성되는 인증 절차를 수행하는 반도체 칩.
  12. 제11항에 있어서,
    상기 인증부는 ROM이나 상기 반도체 칩 내의 IP와 다르게 일반 셀로 구성되는 반도체 칩.
  13. 소프트웨어를 임베드한 하드웨어 장치에 있어서,
    상기 소프트웨어를 구동하는 프로세서 코어; 및
    상기 하드웨어 장치를 통해 상기 소프트웨어를 구동하기 위해 외부 신뢰 기관과 상호 인증을 수행하여 상기 반도체 칩 및 상기 외부 신뢰 기관 사이의 인증을 수행하는 인증부
    를 포함하는 장치.
  14. 제13항에 있어서,
    상기 반도체 칩은 상기 프로세서 코어에 노말 모드에서 동작하는 엘리먼트들을 포함하는 제1 그룹을 연결하는 제1 버스; 및
    상기 프로세서 코어에 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹을 연결하는 제2 버스
    를 더 포함하는 장치.
  15. 제14항에 있어서,
    상기 인증부가 상기 인증에 성공한 경우에만 상기 제2 그룹을 사용 가능하도록 제2 버스로의 접근을 활성화 하는 장치.
  16. 제13항에 있어서,
    상기 인증부가 상기 외부 신뢰 기관과 상기 상호 인증을 수행하는 데에 이용되는 키를 제공하는 PUF를 더 포함하는 장치.
  17. 반도체 칩의 동작 방법에 있어서,
    인증부가 외부 신뢰 기관과 상호 인증을 수행하는 단계; 및
    상기 인증이 성공하는 경우에 상기 반도체 칩의 보안 모드를 활성화하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서,
    상기 반도체 칩은 상기 프로세서 코어에 노말 모드에서 동작하는 엘리먼트들을 포함하는 제1 그룹을 연결하는 제1 버스; 및 상기 프로세서 코어에 보안 모드에서 동작하는 엘리먼트들을 포함하는 제2 그룹을 연결하는 제2 버스를 더 포함하고,
    상기 방법은 상기 인증이 성공하는 경우에 상기 제2 그룹 및 상기 제2 버스를 활성화 하고, 상기 인증이 실패하는 경우에 상기 제2 그룹 및 상기 제2 버스를 비활성화 하고 상기 제1 그룹 및 상기 제1 버스를 활성화 하는 방법.
  19. 제18항에 있어서,
    상기 제2 그룹은 Cryptographic IP, secure SRAM, secure DMA 및 boot ROM 중 적어도 하나를 포함하는 방법.
KR1020170019497A 2016-02-12 2017-02-13 하드웨어 디바이스 및 그 인증 방법 KR20170095163A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2017/001560 WO2017138799A1 (ko) 2016-02-12 2017-02-13 하드웨어 디바이스 및 그 인증 방법
US16/075,951 US20190253417A1 (en) 2016-02-12 2017-02-13 Hardware device and authenticating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160016587 2016-02-12
KR1020160016587 2016-02-12

Publications (1)

Publication Number Publication Date
KR20170095163A true KR20170095163A (ko) 2017-08-22

Family

ID=59757767

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020170018693A KR102666955B1 (ko) 2016-02-12 2017-02-10 보안 반도체 칩 및 그 동작 방법
KR1020170018694A KR20170095156A (ko) 2016-02-12 2017-02-10 메모리 장치 및 그 동작 방법
KR1020170018692A KR102666954B1 (ko) 2016-02-12 2017-02-10 보안 반도체 칩 및 그 동작 방법
KR1020170019341A KR20170095161A (ko) 2016-02-12 2017-02-13 시큐어 시스템 온 칩
KR1020170019497A KR20170095163A (ko) 2016-02-12 2017-02-13 하드웨어 디바이스 및 그 인증 방법

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020170018693A KR102666955B1 (ko) 2016-02-12 2017-02-10 보안 반도체 칩 및 그 동작 방법
KR1020170018694A KR20170095156A (ko) 2016-02-12 2017-02-10 메모리 장치 및 그 동작 방법
KR1020170018692A KR102666954B1 (ko) 2016-02-12 2017-02-10 보안 반도체 칩 및 그 동작 방법
KR1020170019341A KR20170095161A (ko) 2016-02-12 2017-02-13 시큐어 시스템 온 칩

Country Status (3)

Country Link
US (4) US10972460B2 (ko)
KR (5) KR102666955B1 (ko)
CN (4) CN108701192B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861365B2 (en) 2018-12-10 2024-01-02 SiFive, Inc. Macro-op fusion

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949546B2 (en) * 2017-08-02 2021-03-16 Samsung Electronics Co., Ltd. Security devices, electronic devices and methods of operating electronic devices
KR102309347B1 (ko) * 2017-11-29 2021-10-05 재단법인대구경북과학기술원 네트워크공격검출시스템
KR102089085B1 (ko) * 2018-02-21 2020-03-16 주식회사 에이피씨테크 산업 제어 시스템을 위한 암호화 모듈 및 통신 모듈을 포함하는 보안 통신 장치
US20210319145A1 (en) * 2018-08-10 2021-10-14 Cryptography Research, Inc. Memory bus protection
CN109639757B (zh) * 2018-10-31 2021-07-06 深圳市元征科技股份有限公司 一种文件下载方法、终端及服务器
JP6832375B2 (ja) * 2019-02-25 2021-02-24 ウィンボンド エレクトロニクス コーポレーション 半導体集積回路をリバースエンジニアリングから保護する方法
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
WO2020205507A1 (en) * 2019-04-01 2020-10-08 Raytheon Company Adaptive, multi-layer enterprise data protection & resiliency platform
US11513698B2 (en) * 2019-04-01 2022-11-29 Raytheon Company Root of trust assisted access control of secure encrypted drives
US11177934B2 (en) * 2019-06-05 2021-11-16 Nec Corporation Of America Open processor for operation technology and internet of things
KR102245773B1 (ko) 2019-06-11 2021-04-27 연세대학교 산학협력단 침투 공격에 대해 검출 및 보호가 가능한 온칩 보안 회로
TWI716918B (zh) * 2019-06-27 2021-01-21 旺宏電子股份有限公司 電子裝置、記憶體裝置及其記憶資料的讀取方法
EP3798886A1 (en) * 2019-09-26 2021-03-31 General Electric Company Devices, systems, and methods for securely initializing an embedded system
CN112560118A (zh) * 2019-09-26 2021-03-26 杭州中天微系统有限公司 用于提供可重置的标识符的配置装置和配置方法
KR20210037314A (ko) * 2019-09-27 2021-04-06 삼성전자주식회사 보안 집적 회로를 이용하여 펌웨어를 갱신하기 위한 전자 장치 및 그의 동작 방법
US11336440B2 (en) * 2019-12-16 2022-05-17 The Toronto-Dominion Bank Secure management and regeneration of cryptographic keys within a computing environment using permissioned distributed ledgers
US11743058B2 (en) 2020-03-05 2023-08-29 International Business Machines Corporation NVDIMM security with physically unclonable functions
EP3907633B1 (en) * 2020-05-05 2022-12-14 Nxp B.V. System and method for obfuscating opcode commands in a semiconductor device
CN113742795A (zh) * 2020-05-27 2021-12-03 台湾积体电路制造股份有限公司 对集成电路中的半导体存储器的安全级别进行认证的方法
KR102591826B1 (ko) * 2020-06-10 2023-10-24 한국전자통신연구원 Puf를 이용한 인증서 기반 디바이스 인증 장치 및 방법
CN113965595A (zh) * 2020-07-02 2022-01-21 中国电信股份有限公司 物联网设备配置方法、服务器、设备、系统和存储介质
EP3979136A4 (en) * 2020-08-07 2022-06-15 Shenzhen Goodix Technology Co., Ltd. LASER ERRORS INJECTION ATTACK DETECTION CIRCUIT FOR A CHIP AND SECURITY CHIP
EP3989478B1 (en) * 2020-10-22 2023-10-18 Moxa Inc. Computing system and device for handling a chain of trust
KR102413790B1 (ko) * 2020-11-27 2022-06-28 연세대학교 산학협력단 칩의 보안 회로
EP4012689B1 (en) * 2020-12-11 2023-04-19 PUFsecurity Corporation Key management system providing secure management of cryptographic keys, and methods of operating the same
GB202107886D0 (en) * 2021-06-02 2021-07-14 Nordic Semiconductor Asa Device identity keys
US20220116206A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Systems and methods for device authentication in supply chain
KR102640110B1 (ko) * 2023-02-28 2024-02-23 전남대학교산학협력단 침투 공격 검출이 가능한 초소형 온칩 보안 회로 장치 및 그 방법
KR102668039B1 (ko) 2023-06-16 2024-05-21 전남대학교산학협력단 시스템 반도체에 대한 물리적 공격을 검출하기 위한 보안 회로

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6184054A (ja) * 1984-09-27 1986-04-28 シーメンス、アクチエンゲゼルシヤフト 集積mos回路
US5117457A (en) * 1986-11-05 1992-05-26 International Business Machines Corp. Tamper resistant packaging for information protection in electronic circuitry
US5053992A (en) 1990-10-04 1991-10-01 General Instrument Corporation Prevention of inspection of secret data stored in encapsulated integrated circuit chip
JP3209938B2 (ja) * 1997-01-10 2001-09-17 富士通株式会社 発光素子の保護装置及び発光素子の保護方法
DE19701166A1 (de) * 1997-01-15 1998-07-23 Siemens Ag Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen
CA2364506A1 (en) * 2001-12-07 2003-06-07 John W. Bogdan Integrated timing systems and circuits
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP2003296680A (ja) 2002-03-29 2003-10-17 Hitachi Ltd データ処理装置
KR100517554B1 (ko) 2002-12-05 2005-09-28 삼성전자주식회사 보안 기능을 갖는 반도체 집적 회로
US7219337B2 (en) * 2003-03-06 2007-05-15 Northrop Grumman Corporation Direct instructions rendering emulation computer technique
KR20050066558A (ko) 2003-12-26 2005-06-30 매그나칩 반도체 유한회사 광검출 회로를 이용하여 보안성을 강화한 반도체 소자
EP1612684B1 (en) * 2004-07-01 2009-09-30 Texas Instruments Incorporated System and method for secure mode for processors and memories on multiple semiconductor dies within a single semiconductor package
CN101171617A (zh) * 2005-05-06 2008-04-30 爱特梅尔公司 用于数据保护的安全方法
US8099783B2 (en) * 2005-05-06 2012-01-17 Atmel Corporation Security method for data protection
CN101292249A (zh) * 2005-10-24 2008-10-22 Nxp股份有限公司 半导体器件以及防止该半导体器件受到攻击的方法
US20090024890A1 (en) * 2006-02-09 2009-01-22 Nxp B.V. Circuit arrangement, data processing device comprising such circuit arrangement as well as method for identifying an attack on such circuit arrangement
EP2115652B1 (en) * 2007-02-20 2019-04-10 Nxp B.V. Semiconductor device with backside tamper protection
US7831873B1 (en) * 2007-03-07 2010-11-09 Xilinx, Inc. Method and apparatus for detecting sudden temperature/voltage changes in integrated circuits
KR101299602B1 (ko) 2007-03-27 2013-08-26 삼성전자주식회사 리버스 엔지니어링을 보호하는 집적회로
KR100929348B1 (ko) * 2007-06-22 2009-12-03 삼성전자주식회사 비정상 동작을 감시하기 위한 반도체 장치 및 방법
US8762687B2 (en) * 2008-05-24 2014-06-24 Via Technologies, Inc. Microprocessor providing isolated timers and counters for execution of secure code
US7989918B2 (en) * 2009-01-26 2011-08-02 International Business Machines Corporation Implementing tamper evident and resistant detection through modulation of capacitance
JP2012074674A (ja) * 2010-09-02 2012-04-12 Canon Inc 半導体集積回路装置
JP2012053788A (ja) * 2010-09-02 2012-03-15 Canon Inc 半導体集積回路装置
KR101118826B1 (ko) 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
CN107579828A (zh) * 2011-08-16 2018-01-12 Ictk有限公司 机对机通信中基于puf的装置间的安全认证装置及方法
US10678951B2 (en) * 2011-10-24 2020-06-09 Maxim Integrated Products, Inc. Tamper detection countermeasures to deter physical attack on a security ASIC
WO2013072897A2 (en) * 2011-11-18 2013-05-23 Tubitak Active shield with electrically configurable interconnections
EP2836956B1 (en) * 2012-04-13 2019-06-26 OLogN Technologies AG Secure zone for digital communications
KR20140114263A (ko) 2013-03-13 2014-09-26 삼성전자주식회사 어플리케이션 인증 방법 및 이를 구현하는 전자 장치
US9846656B2 (en) * 2013-04-17 2017-12-19 Laurence H. Cooke Secure computing
US9310862B2 (en) * 2013-05-20 2016-04-12 Advanced Micro Devices, Inc. Method and apparatus for monitoring performance for secure chip operation
CN103336930A (zh) * 2013-05-28 2013-10-02 戴葵 一种新型的puf电路体系结构
US8896086B1 (en) * 2013-05-30 2014-11-25 Freescale Semiconductor, Inc. System for preventing tampering with integrated circuit
CN103413106B (zh) * 2013-08-05 2016-04-20 大唐微电子技术有限公司 一种芯片顶层覆盖完整性保护方法和装置
US11349675B2 (en) * 2013-10-18 2022-05-31 Alcatel-Lucent Usa Inc. Tamper-resistant and scalable mutual authentication for machine-to-machine devices
CN103559459A (zh) * 2013-11-06 2014-02-05 北京昆腾微电子有限公司 用于安全芯片的动态遮蔽保护装置和方法
CN203535642U (zh) * 2013-11-06 2014-04-09 昆腾微电子股份有限公司 用于安全芯片的动态遮蔽保护装置
CN104850805B (zh) * 2015-05-29 2019-03-26 北京华大信安科技有限公司 一种保护芯片系统敏感信息的装置及方法
CN105184194A (zh) * 2015-10-13 2015-12-23 天津大学 在集成电路中探测光故障注入攻击的结构及其探测方法
US10394556B2 (en) * 2015-12-20 2019-08-27 Intel Corporation Hardware apparatuses and methods to switch shadow stack pointers
KR102444239B1 (ko) * 2016-01-21 2022-09-16 삼성전자주식회사 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법
EP3246845B1 (en) * 2016-05-17 2018-12-05 Inside Secure Secure asset management system
FR3082659A1 (fr) * 2018-06-14 2019-12-20 Stmicroelectronics (Research & Development) Limited Puce electronique protegee

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861365B2 (en) 2018-12-10 2024-01-02 SiFive, Inc. Macro-op fusion

Also Published As

Publication number Publication date
CN108701192A (zh) 2018-10-23
CN108604275A (zh) 2018-09-28
US20190114428A1 (en) 2019-04-18
CN108701192B (zh) 2022-05-31
US20190050702A1 (en) 2019-02-14
US20190253417A1 (en) 2019-08-15
CN108701193B (zh) 2022-08-30
CN108604274A (zh) 2018-09-28
KR20170095155A (ko) 2017-08-22
KR20170095161A (ko) 2017-08-22
KR102666955B1 (ko) 2024-05-17
KR102666954B1 (ko) 2024-05-17
US10972460B2 (en) 2021-04-06
KR20170095154A (ko) 2017-08-22
KR20170095156A (ko) 2017-08-22
US11089016B2 (en) 2021-08-10
US20190042532A1 (en) 2019-02-07
US10778679B2 (en) 2020-09-15
CN108701193A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
KR20170095163A (ko) 하드웨어 디바이스 및 그 인증 방법
CN109313690B (zh) 自包含的加密引导策略验证
US10885197B2 (en) Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
CN106168899B (zh) 用于更新嵌入式控制设备的方法和更新网关
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
JP4410821B2 (ja) 保護された処理システムへの初期トラステッド・デバイスのバインディングの検証
US10318765B2 (en) Protecting critical data structures in an embedded hypervisor system
US10498712B2 (en) Balancing public and personal security needs
US20130086385A1 (en) System and Method for Providing Hardware-Based Security
US20050283826A1 (en) Systems and methods for performing secure communications between an authorized computing platform and a hardware component
TW201732669A (zh) 受控的安全碼鑑認
AU2020244511B2 (en) Balancing public and personal security needs
JP2004265026A (ja) アプリケーション認証システムと装置
KR20090109589A (ko) 프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법
JP6735872B2 (ja) コンピュータシステム及びコンピュータシステムを初期化する方法
TW201502855A (zh) 使用安全加強晶片之用於資料之安全儲存之系統、方法及裝置
CN111199058B (zh) 用于确保数据的完整性和机密性的系统和方法
Buskey et al. Protected jtag
CN116566613A (zh) 使用平台密钥保护与安全处理器的通信
US10452565B2 (en) Secure electronic device
WO2017138799A1 (ko) 하드웨어 디바이스 및 그 인증 방법
US11405201B2 (en) Secure transfer of protected application storage keys with change of trusted computing base
EP2575068A1 (en) System and method for providing hardware-based security
Ferreira et al. Software-based security approach for networked embedded devices
AU2016429414B2 (en) Balancing public and personal security needs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application