KR101711926B1 - 보안기능을 가지는 SoC 및 SoC의 보안방법 - Google Patents

보안기능을 가지는 SoC 및 SoC의 보안방법 Download PDF

Info

Publication number
KR101711926B1
KR101711926B1 KR1020150096606A KR20150096606A KR101711926B1 KR 101711926 B1 KR101711926 B1 KR 101711926B1 KR 1020150096606 A KR1020150096606 A KR 1020150096606A KR 20150096606 A KR20150096606 A KR 20150096606A KR 101711926 B1 KR101711926 B1 KR 101711926B1
Authority
KR
South Korea
Prior art keywords
security
soc
cpu
code
cpu code
Prior art date
Application number
KR1020150096606A
Other languages
English (en)
Other versions
KR20170006334A (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 KR1020150096606A priority Critical patent/KR101711926B1/ko
Publication of KR20170006334A publication Critical patent/KR20170006334A/ko
Application granted granted Critical
Publication of KR101711926B1 publication Critical patent/KR101711926B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/76Protecting 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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/72Protecting 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 in cryptographic circuits
    • 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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers

Landscapes

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

Abstract

본 발명의 보안기능을 가지는 SoC는, CPU코드를 실행하는 메인CPU를 내부에 포함하는 SoC에 있어서, 상기 CPU코드에 미리 내장된 암호코드가 SoC 내부에 저장된 보안키 값으로부터 생성된 암호코드와 일치하는 경우에만 상기 메인CPU가 부트되도록 하는 시큐리티CPU코드를 실행하는 시큐리티CPU가 포함됨을 특징으로 한다.

Description

보안기능을 가지는 SoC 및 SoC의 보안방법 {SoC having security features, and security method for SoC}
본 발명은, 보안기능을 가지는 SoC 및 SoC의 보안방법에 관한 것이다.
IoT(Internet of Things)분야의 성장에 따라, 인터넷을 통해 주고받는 데이터의 양이 기하급수적으로 늘어나고 있다. 그리고 이에 따른 데이터보안(security)이 주요 이슈가 되고 있다.
특히 개인정보나 대외비 등의 외부유출은 큰 문제이므로, 철저한 데이터보안에 대한 요구가 증가하고 있다. 이에 대응하기 위해 초기에는 보안 소프트웨어를 이용한 소프트웨어적인 방법이 제시되어 있다.
하지만, 소프트웨어적 방법은 하드웨어가 이미 형성된 이후에 부가하는 것이므로, 이 부가시 또는 그 후에 변조될 가능성이 상존하였다. 그래서, 데이터보안의 근본적인 해결을 위해서는, 데이터를 처리할 하드웨어의 설계 시작시부터 데이터보안을 고려한 설계가 되어야 한다.
일반적으로 데이터의 처리를 위한 하드웨어의 하나로서, 하나의 칩에 CPU와 메모리를 모두 갖춘 SoC(시스템 온 칩: system on chip)가 알려져 있다. 도 4와 같이, 종래의 SoC(1)에 있어서는, 시스템버스에 메인(main)CPU(10), 시스템메모리(system memory: 11), SPI(Serial Peripheral Interface)컨트롤러(12), 부트롬(boot ROM: 13) 등이 연결되어 있고, SPI컨트롤러(12)에는 CPU코드(15a)를 가지는 SPI롬(15)이 SoC(1) 외부에서 연결되어 있다.
여기서 메인CPU(10)는, 어플리케이션 프로그램을 동작시키는 CPU이다. 시스템메모리(11)는, 메인CPU에 필요한 프로그램, 데이터를 저장할 수 있는 내부메모리이다. SPI컨트롤러(12)는, SoC(1) 외부에 있는 SPI롬(15)을 제어하여, 필요한 어플리케이션 프로그램 코드를 읽어서 시스템메모리(11)에 저장하는 제어수단이다. 부트롬(13)은, 메인CPU(10)의 부팅시 필요한 코드를 저장한 롬이다.
한편, 종래의 SoC(1)는, 시큐어엔진(Secure Engine: 20)과 시큐어키(Secure key: 21) 메모리 및 TRNG(True Random Number Generator: 22)를 더 구비한다.
여기서 시큐어엔진(20)은, 데이터보안을 위한 미리 정해진 시큐어 알고리즘을 구현하는 하드웨어이다. 시큐어키(21) 메모리는, 시큐어엔진(20)에서 사용할 키(key)값을 저장하는 장소로, 플랫폼키(Platform key), 디바이스 유니크 키(Device Unique Key), 디바이스ID를 가지고 있다. TRNG(22)는, 시큐어엔진(20)에서 사용할 난수를 생성하는 난수발생기이다.
그리고 이 종래의 SoC(1)에 있어서는 기본적으로, SoC(1)의 외부에 구비된 JTAG(Joint Test Action Group) 디버거(14)와 연결되도록 하여, SoC(1)가 정상적으로 동작하는지를 확인이 가능하고, 정상적인 동작에 문제 발생시 SoC(1) 내부 레지스터와 메모리의 내용을 확인하여 문제의 원인을 분석할 수 있는 수단을 제공하고 있다. 이 JTAG 디버거(14) 인터페이스를 통하면, SoC(1) 내부의 시스템메모리(11)를 포함한 전체 영역을 외부에서 억세스할 수 있도록 되어 있다.
이러한 하드웨어 구성을 가지는 종래의 SoC(1)에 있어서는, 도 5와 같이, 전원이 파워 온(power on)(S41) 되면, SoC(1) 내부의 메인CPU(10)가 부트롬(13)에서 롬 부트코드(ROM boot code)를 읽어와서(S42), 초기 롬 부트(ROM boot)(S43)를 한다. 다음으로, 메인CPU(10)는 SPI컨트롤러(12)를 제어하여, SoC(1) 외부의 SPI롬(15)에서 어플리케이션 프로그램 코드를 읽어와서(S44), SoC(1) 내부의 시스템메모리(11)(프로그램메모리)에 저장(S45)한다. 그리고 메인CPU(10)가 어플리케이션 프로그램 코드가 있는 시스템메모리(11)의 시작 어드레스(대개 주소 '0')부터 동작(S46)을 시작해서, 어플리케이션에 따라 메인CPU(10)가 실행(S47)을 하게 된다.
특허공개 10-2015-0026202
그런데 종래에는, 이미 CPU가 롬 부트하면서, JTAG 디버거(14) 인터페이스도 동시에 이네이블(S43)되고, 그 후 계속 동작을 하게 되어 있다. 그래서 이 JTAG 디버거(14) 인터페이스를 통하여 외부에서 SoC(1) 내부 및 프로그램 코드 및 중요 데이터에 전부 억세스할 수 있었다. 이런 상태에서는 SoC(1) 내부 데이터를 보호할 수 있는 장치가 없기 때문이다.
한편, 시큐어엔진(20)이 시큐어키(21) 메모리로부터의 키와 TRNG(22)로부터의 랜덤ID를 이용하여 데이터보안을 위한 동작을 한다. 하지만, 이들 시큐어키(21) 메모리와 TRNG(22)는 모두 SoC(1) 내부에 구비되어 있어서, JTAG 디버거(14)를 통한 외부로부터의 접근에 의하여 그 동작이나 값이 변경될 수도 있고, 시큐어엔진(20)의 동작 자체가 정지될 여지도 있다. 따라서 JTAG 디버거(14)가 이네이블되어 있는 한, 실질적인 의미의 보안은 불가능하다는 문제가 있었다.
그리고, SPI롬(15)이 SoC(1) 외부에 구비되므로, SoC(1) 내부의 시큐어엔진(20)이 제대로 작동된다고 하더라도, SPI롬(15)에 저장되는 어플리케이션 프로그램 코드가 변조될 위험도 상존한다는 문제가 있었다.
본 발명은 상기 종래기술의 문제를 해소하기 위한 것으로서, 보안기능을 가지는 SoC, 및 데이터보안 강화를 위한 목적으로 SoC에 대한 내부 시스템메모리 억세스 제한 및 어플리케이션 프로그램의 변조가 검출되는 경우에는 부팅을 못하도록 작동 제한하는 SoC의 보안방법을 제공하고자 하는 것이다.
상기 과제를 달성하기 위한 본 발명의 보안기능을 가지는 SoC는, CPU코드를 실행하는 메인CPU를 내부에 포함하고, 외부에 JTAG 디버거가 연결되는 SoC에 있어서, SoC 내의 하드웨어 핀 설정에 따라서 단절신호를 생성하는 시큐리티 이네이블 회로와, 상기 단절신호를 받아서 상기 JTAG 디버거와 SoC 사이의 연결을 끊는 디버그 인터 페이스 회로가 포함됨을 특징으로 한다.
또한, 본 발명의 보안기능을 가지는 SoC는, CPU코드를 실행하는 메인CPU를 내부에 포함하는 SoC에 있어서, 상기 CPU코드에 미리 내장된 암호코드가 SoC 내부에 저장된 보안키 값으로부터 생성된 암호코드와 일치하는 경우에만 상기 메인CPU가 부트되도록 하는 시큐리티CPU코드를 실행하는 시큐리티CPU가 포함됨을 특징으로 한다.
여기서, 상기 시큐리티CPU코드가 로드되어 실행되도록 상기 시큐리티CPU 내에 구비되는 보안메모리가 더 포함됨이 바람직하다.
그리고, 상기 시큐리티CPU코드는 암호화된 채 저장되어 있다가, 미리 정해진 난수와 복호화키에 의하여 복호화되고, 복호화된 상기 시큐리티CPU코드가 실행됨이 바람직하다.
그리고, SoC의 외부에 구비되어 SoC에 연결되고, 상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나를 저장하는 SPI롬이 더 포함됨이 바람직하다.
여기서, 상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, DMA를 통하여 로드됨이 바람직하다.
한편, 상기 과제를 달성하기 위한 본 발명의 SoC의 보안방법은, CPU코드를 실행하는 메인CPU를 내부에 포함하고, 외부에 JTAG 디버거가 연결되는 SoC의 보안방법에 있어서, SoC의 제조시에 SoC 내의 하드웨어 핀 설정을 내장하는 단계와, SoC의 부팅시에 상기 핀 설정에 따라서 단절신호를 생성하는 단계와, 상기 단절신호를 받아서 상기 JTAG 디버거와 SoC 사이의 연결을 끊는 단계를 포함함을 특징으로 한다.
한편, 본 발명의 SoC의 보안방법은, CPU코드를 실행하는 메인CPU를 내부에 포함하는 SoC의 보안방법에 있어서, 시큐리티CPU에서 실행되는 시큐리티CPU코드 동작을 개시하여, 상기 CPU코드에 미리 내장된 암호코드를 검출하는 단계와, SoC 내부에 저장된 보안키 값으로부터 암호코드를 생성하는 단계와, 양 암호코드가 일치하는 경우에만 상기 메인CPU가 부트되도록 하는 단계를 포함함을 특징으로 한다.
여기서, 상기 시큐리티CPU코드는, 상기 시큐리티CPU 내에 구비되는 보안메모리에 로드되어 실행됨이 바람직하다.
그리고, 상기 시큐리티CPU코드는 암호화된 채 저장되어 있다가, 미리 정해진 난수와 복호화키에 의하여 복호화되고, 복호화된 상기 시큐리티CPU코드가 실행됨이 바람직하다.
그리고, 상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, SoC의 외부에 구비되어 SoC에 연결되는 SPI롬에 저장됨이 바람직하다.
여기서, 상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, DMA를 통하여 로드됨이 바람직하다.
본 발명에 의하면, 보안기능을 가지는 SoC, 및 데이터보안 강화를 위한 목적으로 SoC에 대한 내부 시스템메모리 및 내부 레지스터 억세스 제한 및 어플리케이션 프로그램의 변조가 검출되는 경우에는 부팅을 못하도록 작동 제한하는 SoC의 보안방법이 제공된다.
도 1은, 본 발명의 보안기능을 가지는 SoC의 블록구성도이다.
도 2는, 본 발명의 SoC의 보안방법의 부팅과정의 전체 흐름을 나타낸 흐름도이다.
도 3은, 내부 시스템메모리 접근 제한을 위한 블록구성도이다.
도 4는, 종래의 SoC의 블록구성도이다.
도 5는, 종래의 SoC의 부팅과정의 흐름도이다.
이하, 첨부도면을 참조하여, 본 발명의 보안기능을 가지는 SoC 및 SoC의 보안방법에 대하여 상세히 설명한다. 다만, 동일구성에 의하여 동일기능을 가지는 부분에 대해서는, 도면이 달라지더라도 동일부호를 유지함으로써 상세한 설명을 생략하는 경우가 있다.
<내부 억세스 통로의 봉쇄>
본 발명의 보안기능을 가지는 SoC는, 도 1과 같이, CPU코드(15a)를 실행하는 메인CPU(10)를 내부에 포함하고, 외부에 JTAG 디버거(14)가 연결되는 SoC(2)에 관한 것이다. 여기서 CPU코드(15a)는, 본 SoC(2)가 실행할 어플리케이션 프로그램의 코드를 말한다. 메인CPU(10)는, 본 SoC(2)가 실행할 어플리케이션 프로그램, 즉 CPU코드를 실행할 CPU이다. 상기 JTAG 디버거(14)는, 메인CPU(10)의 내부 동작상태를 확인할 수 있고, 시스템메모리(System Memory, 11)의 내용을 읽어 볼 수 있는 통로로서, SoC 운영 소프트웨어 개발시 사용되어, SoC(1)가 정상적으로 동작하는지를 확인하는 수단이다.
본 발명의 상기 SoC(2)는, 시큐리티 이네이블 회로(32)와, 디버그 인터페이스 회로(33)를 포함함을 특징으로 한다.
상기 시큐리티 이네이블 회로(32)는, SoC(2) 내의 하드웨어 핀 설정에 따라서 단절신호, 즉 시큐리티 이네이블(Security enable) 신호를 생성하는 회로이다. 시큐리티 이네이블 신호에 의해서 디버그 인터페이스 회로가 오프(off)가 된다.
상기 디버그 인터페이스(Debug interface) 회로(33)는, 상기 단절신호를 받아서 상기 JTAG 디버거(14)와 SoC(2) 사이의 연결을 끊는 회로이다.
<동작 및 효과>
본 발명에서는 시큐리티를 강화하기 위해서 SoC(2)를 제작시 데이터를 보호하는 목적에 맞도록 JTAG 디버거(14)를 사용하지 못하는 방법을 제안하고 있다.
상기 본 발명의 SoC(2)에 의하면, SoC(2)의 제조시에 미리 SoC(2) 내의 하드웨어 핀 설정을 내장하는 단계를 포함한다. 핀 설정에 대한 정보가 시큐리티 엔진의 하드웨어 회로를 통해서 확인되면, 도 1, 도 3에서 나타난 디버그 시큐어키(Debug Secure key)로 표현된다. 따라서 외부에서 핀 설정을 해킹할 수 없다. 디버그 시큐어키는, 시큐리티 이네이블 회로(32)에서 사용하는 키값이다.
그리고 SoC(2)의 부팅시에, 상기 시큐리티 이네이블 회로(32)로 상기 디버그 시큐어키 값이 전달되면, 이 키값에 의해서 단절신호를 생성하는 단계를 포함한다. 따라서 단절신호 생성에 대한 외부에서의 임의적인 제어가 불가능하여, 보안이 확실히 보장된다.
그리고 상기 디버그 인터페이스 회로(33)가 상기 단절신호를 받아서 상기 JTAG 디버거(14)와 SoC(2) 사이의 연결을 끊는 단계를 포함한다. 따라서 도 3과 같이, 연결이 끊어지므로, 외부에서 JTAG 디버거(14)를 통하여 SoC(2) 내부의 정보를 해킹할 수가 없다.
이처럼 JTAG 디버거(14)의 연결을 하드웨어적으로 끊어줌으로써, SoC(2) 내부영역을 외부에서 억세스하지 못하도록 하여 보안을 강화한다.
<프로그램 변형시 부트 방지>
본 발명의 다른 실시형태의 보안기능을 가지는 SoC(2)는, CPU코드(15a)를 실행하는 메인CPU(10)를 내부에 포함하는 SoC(2)에 관한 것이고, 이 SoC(2)에는, 시큐리티CPU코드(15b)를 실행하는 시큐리티CPU(30)가 포함됨을 특징으로 한다. 시큐리티(Security)CPU(30)는, 보호되어야 할 데이터를 처리하는 CPU이다.
도 1과 같이, 시큐리티CPU(30)에는, 시큐어엔진(Secure Engine: 20)이 더 포함될 수 있다. 시큐어엔진(20)은, 시큐어 알고리즘을 구현하는 하드웨어로서, 시큐리티CPU(30)의 컨트롤을 받아서 빠른 속도로 처리해야 하는 연산부분을 담당하는 회로이다.
상기 시큐리티CPU코드(15b)는, 상기 CPU코드(15a)에 미리 내장된 암호코드를 읽어내고, 이것이 SoC(2) 내부 임의의 위치에 저장된 보안키 값으로부터 생성된 암호코드와 일치하는지 판단하고, 일치하는 경우에만 상기 메인CPU(10)가 부트되도록 하는 코드이다.
<동작 및 효과>
본 발명에서는 어플리케이션 프로그램을 보호하는 장치를 마련하여, 해커가 CPU코드(15a)인 어플리케이션 프로그램을 변경하는 경우, SoC(2)가 부팅을 못하도록 만든다.
상기 SoC(2)에 의한 보안방법에 의하면, 시큐리티CPU(30)에서 실행되는 시큐리티CPU코드(15b)의 동작을 개시하여, 상기 CPU코드(15a)에 미리 내장된 암호코드를 검출하는 단계를 포함한다. 상기 CPU코드(15a)는, 상기 SoC(2)의 내부나 외부의 어느 곳에 저장되어 있어도 좋다. 상기 내장된 암호코드는, CPU코드의 프로그램 바디, 주석, 헤더 등 어느 부분에 내장되어 있어도 좋다.
그리고 SoC(2) 내부에 저장된 보안키 값으로부터 암호코드를 생성하는 단계를 포함한다. 상기 보안키는, 상기 SoC(2)의 제조시에 미리 SoC(2) 내부의 장소, 예컨대 시큐어키 저장소(21)에 저장되어 있는 키이므로, 변조가 불가능하다.
그리고 양 암호코드가 일치하는 경우에만 상기 메인CPU(10)가 부트되도록 하는 단계를 포함한다. 이로써, 메인CPU(10)보다 시큐리티CPU(30)가 먼저 작동되도록 하여, CPU코드(15a)가 해킹되지 않았음이 시큐리티CPU(30)에 의하여 확인되는 경우에만, 비로소 메인CPU(10)가 작동되도록 한다. 따라서 보안이 해킹된 CPU코드에 의한 2차 해킹이 방지된다.
<보안의 강화>
여기서 상기 시큐리티CPU(30) 내에는, 도 1과 같이, 상기 시큐리티CPU코드(15b)가 로드되어 실행되도록 구비되는 보안메모리(30b)가 더 포함됨이 바람직하다. 시큐리티CPU(30) 내부의 독립적인 보안메모리(30b)는, 메인CPU(10)에서는 억세스 불가능한 저장소이다. 그리고 상기 CPU코드를 검증하기 위한 암호코드의 생성은, 상기 보안메모리(30b) 내에서 이루어짐이 바람직하다.
그리고, 상기 시큐리티CPU코드(15b)는 암호화된 채 저장되어 있다가, 미리 정해진 난수와 복호화키에 의하여 복호화되고, 복호화된 상기 시큐리티CPU코드(15b)가 실행됨이 바람직하다. 상기 난수의 발생을 위해 TRNG(True Random Number Generator: 22)가 더 구비될 수 있다. 그리고 상기 복호화키의 생성을 위해 시큐어키 저장소(21)가 더 구비될 수 있다. 이처럼 암호화된 채 저장되는 시큐어CPU코드(15b)는, 해킹되기 어렵다. 그리고 상기 복호화는, 상기 보안메모리(30b) 내에서 이루어짐이 바람직하다.
그리고, SoC(2)의 외부에 구비되어 SoC(2)에 연결되고, 상기 CPU코드(15a) 및 상기 시큐리티CPU코드(15b) 중 적어도 하나를 저장하는 SPI롬(15)이 더 포함됨이 바람직하다. 상기 SPI롬(15)은, 예컨대 플래시메모리로 구현될 수 있고, SPI컨트롤러(12)를 통해 시스템버스에 연결될 수 있다. 그리고, 메인CPU(10)의 부팅시 필요한 코드를 저장하는 부트롬(boot ROM: 13)에 의해, SoC(2) 외부에 있는 SPI롬(15)에 저장된 암호화된 시큐리티CPU코드(15b)를 SoC(2) 내부의 보안메모리(30b)에 로드할 수 있다.
여기서, 상기 CPU코드(15a) 및 상기 시큐리티CPU코드(15b) 중 적어도 하나는, DMA(31)를 통하여 로드됨이 바람직하다. DMA(Direct Memory Access)는, 보호되어야 할 데이터를 주고받을 수 있는 데이터통로로서, 메인CPU(10)는 억세스 불가능하고, 상기 시큐리티CPU(30)로부터의 DMA 시큐어키를 받으면 데이터를 처리를 행한다. DMA 시큐어키(secure key)는, DMA 블록에서 사용하는 키값이다.
이상, 본 발명을 특정 실시예를 중심으로 설명하였으나, 본 발명은 이에 한정되는 것이 아니다. 청구범위에 기재된 범위 내에서 당업자에 의하여 이루어진 변형, 개량, 변경은 모두, 본 발명의 범위에 속하는 것으로 해석되어야 한다.
본 발명은, 보안기능을 가지는 SoC 및 SoC의 보안방법에 이용될 수 있다.
1, 2: SoC(System on Chip)
10: 메인CPU
11: 시스템메모리
12: SPI(Serial Peripheral Interface)컨트롤러
13: 부트롬(boot ROM)
14: JTAG(Joint Test Action Group) 디버거
15: SPI롬
15a: CPU코드
15b: 시큐리티(Security)CPU코드
20: 시큐어엔진(Secure Engine)
21: 시큐어키(Secure Key) 저장소
22: TRNG(True Random Number Generator)
30: 시큐리티CPU
30b: 내부 보안메모리
31: DMA(Direct Memory Access)
32: 시큐리티 이네이블(Security Enable) 회로
33: 디버그(Debug) 인터페이스

Claims (12)

  1. CPU코드를 실행하는 메인CPU를 내부에 포함하고, 외부에 JTAG 디버거가 연결되는 SoC에 있어서,
    SoC의 제조시에 미리 내장되는 SoC 내의 하드웨어 핀 설정에 따라서 단절신호를 생성하는 시큐리티 이네이블 회로와,
    상기 단절신호를 받아서 상기 JTAG 디버거와 SoC 사이의 연결을 하드웨어적으로 끊는 디버그 인터페이스 회로
    가 포함됨을 특징으로 하는 보안기능을 가지는 SoC.
  2. CPU코드를 실행하는 메인CPU를 내부에 포함하는 SoC에 있어서,
    상기 CPU코드에 미리 내장된 내장암호코드가 SoC 내부에 저장된 보안키 값으로부터 생성된 생성암호코드와 일치하는 경우에만 상기 메인CPU가 부트되도록 하는 시큐리티CPU코드를 실행하는 시큐리티CPU
    가 포함됨을 특징으로 하는 보안기능을 가지는 SoC.
  3. 청구항 2에 있어서,
    상기 시큐리티CPU코드가 로드되어 실행되도록 상기 시큐리티CPU 내에 구비되는 보안메모리
    가 더 포함됨을 특징으로 하는 보안기능을 가지는 SoC.
  4. 청구항 2 또는 청구항 3에 있어서,
    상기 시큐리티CPU코드는 암호화된 채 저장되어 있다가, 미리 정해진 난수와 복호화키에 의하여 복호화되고, 복호화된 상기 시큐리티CPU코드가 실행됨
    을 특징으로 하는 보안기능을 가지는 SoC.
  5. 청구항 2 또는 청구항 3에 있어서,
    SoC의 외부에 구비되어 SoC에 연결되고, 상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나를 저장하는 SPI롬
    이 더 포함됨을 특징으로 하는 보안기능을 가지는 SoC.
  6. 청구항 5에 있어서,
    상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, DMA를 통하여 로드됨
    을 특징으로 하는 보안기능을 가지는 SoC.
  7. CPU코드를 실행하는 메인CPU를 내부에 포함하고, 외부에 JTAG 디버거가 연결되는 SoC의 보안방법에 있어서,
    SoC의 제조시에 SoC 내의 하드웨어 핀 설정을 내장하는 단계와,
    SoC의 부팅시에 상기 핀 설정에 따라서 단절신호를 생성하는 단계와,
    상기 단절신호를 받아서 상기 JTAG 디버거와 SoC 사이의 연결을 하드웨어적으로 끊는 단계
    를 포함함을 특징으로 하는 SoC의 보안방법.
  8. CPU코드를 실행하는 메인CPU를 내부에 포함하는 SoC의 보안방법에 있어서,
    시큐리티CPU에서 실행되는 시큐리티CPU코드 동작을 개시하여, 상기 CPU코드에 미리 내장된 내장암호코드를 검출하는 단계와,
    SoC 내부에 저장된 보안키 값으로부터 생성암호코드를 생성하는 단계와,
    상기 내장암호코드와 상기 생성암호코드가 일치하는 경우에만 상기 메인CPU가 부트되도록 하는 단계
    를 포함함을 특징으로 하는 SoC의 보안방법.
  9. 청구항 8에 있어서,
    상기 시큐리티CPU코드는, 상기 시큐리티CPU 내에 구비되는 보안메모리에 로드되어 실행됨
    을 특징으로 하는 SoC의 보안방법.
  10. 청구항 8 또는 청구항 9에 있어서,
    상기 시큐리티CPU코드는 암호화된 채 저장되어 있다가, 미리 정해진 난수와 복호화키에 의하여 복호화되고, 복호화된 상기 시큐리티CPU코드가 실행됨
    을 특징으로 하는 SoC의 보안방법.
  11. 청구항 8 또는 청구항 9에 있어서,
    상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, SoC의 외부에 구비되어 SoC에 연결되는 SPI롬에 저장됨
    을 특징으로 하는 SoC의 보안방법.
  12. 청구항 11에 있어서,
    상기 CPU코드 및 상기 시큐리티CPU코드 중 적어도 하나는, DMA를 통하여 로드됨
    을 특징으로 하는 SoC의 보안방법.
KR1020150096606A 2015-07-07 2015-07-07 보안기능을 가지는 SoC 및 SoC의 보안방법 KR101711926B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150096606A KR101711926B1 (ko) 2015-07-07 2015-07-07 보안기능을 가지는 SoC 및 SoC의 보안방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150096606A KR101711926B1 (ko) 2015-07-07 2015-07-07 보안기능을 가지는 SoC 및 SoC의 보안방법

Publications (2)

Publication Number Publication Date
KR20170006334A KR20170006334A (ko) 2017-01-18
KR101711926B1 true KR101711926B1 (ko) 2017-03-06

Family

ID=57992531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150096606A KR101711926B1 (ko) 2015-07-07 2015-07-07 보안기능을 가지는 SoC 및 SoC의 보안방법

Country Status (1)

Country Link
KR (1) KR101711926B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625639A (zh) * 2022-03-03 2022-06-14 上海先楫半导体科技有限公司 一种基于片上系统的调试方法、系统以及芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447554B1 (ko) 2013-11-08 2014-10-08 한국전자통신연구원 암호화된 파일을 복호화하는 장치 및 그 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266848B2 (en) * 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
KR20090131696A (ko) * 2008-06-19 2009-12-30 삼성전자주식회사 암/복호화 장치 및 이를 포함하는 보안 저장 장치
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
KR102066661B1 (ko) 2013-09-02 2020-01-15 삼성전자 주식회사 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447554B1 (ko) 2013-11-08 2014-10-08 한국전자통신연구원 암호화된 파일을 복호화하는 장치 및 그 방법

Also Published As

Publication number Publication date
KR20170006334A (ko) 2017-01-18

Similar Documents

Publication Publication Date Title
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US11003781B2 (en) Root key processing method and associated device
US20230020278A1 (en) Secure boot assist for devices, and related systems, methods and devices
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
TWI489308B (zh) 未知安全金鑰下開機影像之安全更新
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
WO2020037612A1 (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
US20080205651A1 (en) Secure processor system without need for manufacturer and user to know encryption information of each other
RU2541196C2 (ru) Способ обеспечения целостности программного обеспечения
US20210334381A1 (en) Method and electronic device capable of securely storing and loading firmware
JPWO2009013825A1 (ja) 情報処理装置、及び改竄検証方法
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
CN111901117A (zh) 基于jtag接口的安全认证方法及系统
JP2007310688A (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
JP2007141044A (ja) 情報処理装置、及びプログラム実行制御方法
US11366911B2 (en) Cryptography module and method for operating same
KR101988404B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
KR102324328B1 (ko) 보안 요소
TWI393006B (zh) 用於碼傾印保護之安全系統及安全方法
KR101954439B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
WO2019059148A1 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体
KR101711926B1 (ko) 보안기능을 가지는 SoC 및 SoC의 보안방법
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN111095213B (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
WO2011050655A1 (zh) 移动终端及其系统数据防克隆方法

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

Year of fee payment: 4