본문 바로가기
C++ 200제/코딩 IT 정보

FPGA와 TCM를 이용한 임베디드 보안 시스템 개요 (TPM, 반도체, OS)

by vicddory 2018. 9. 16.

FPGA와 TCM를 이용한 임베디드 보안 시스템 개요 (TPM, 반도체, OS)


이전 글에서 이어지는 내용입니다.



3. TFSES Architecture


아래 그림을 보면 TFSES는 두 가지의 모듈을 포함하고 있다 : FPGA 컨트롤러와 TPM. FPGA 컨트롤러는 임베디드 시스템 프로세서와 부트롬으로 분리되어 있다.


- BootROM 보안은 신뢰 컴퓨팅의 근원이 됨

- 임베디드 시스템의 전원이 켜질 때, 가장 먼저 FPGA 컨트롤러는 BootROM의 내용을 읽고 무결성을 검사하게 됨 

- 그 결과는 TPM 칩에 암호화 형식으로 전송


TFSES whole system[임베디드 보안 시스템] TFSES whole system

- 결과에 따라 TPM은 임베디드 프로세서의 응용 프로그램에서 컴퓨팅 서비스를 제공할 것인지 신뢰 여부를 결정

- TFSES는 임베디드 시스템 프로세서와 BootROM을 연결하는 다리와 같은 역할

- 이 솔루션은 다양한 임베디드 프로세서(DSP, ARM, 8051)를 지원

- 소프트웨어에 투명하여(개방되어) 전통적인 임베디드 시스템에 사용하기 편리함


TCM architecture[임베디드 보안 시스템] TCM architecture


- DES는 암복호화에 사용되고 FPGA와 같은 알고리즘과 키를 사용한다.


- 랜덤 넘버 제네리이터는 DES로 암호화하여 다른 곳으로 전송 시 랜덤 넘버를 만들기 위해 고안하였으며, 똑같은 번호를 되돌려주기 위해 만들어졌다.


FPGA(field programmable gate array) 


- 프로그래머블 논리 요소와 프로그래밍 가능 내부선이 포함된 반도체 소자

복잡한 디코더나 계산기능의 조합 기능 같은 기본적인 논리 게이트의 기능을 복제하여 프로그래밍 가능

- 대부분의 FPGA는 프로그래밍 가능 논리요소에 간단한 플립플롭이나 더 완벽한 메모리 블록으로 된 메모리 요소 포함

- 주문형 반도체(ASIC) 대용품보다 느리고, 복잡한 설계에 적용할 수 없으며, 소비전력이 큼

- 개발시간이 짧고 오류를 현장에서 재수정할 수 있으며, 초기 개발비가 저렴

- PLD와 비슷하지만, PLD가 일반적으로 수백 개의 게이트에 제한되는 데 반해, FPGA는 수천 개의 게이트 지원


Field Program 이란 반도체 제조업체를 통하지 않고도 산업 현장에서 엔지니어가 직접 디바이스를 프로그래밍하여 설계한 회로를 반도체 칩 상에 구현할 수 있다는 것을 의미한다.


주문형 반도체(Application Specific Integrated Circuit, ASIC)란 특정 용도의 집적 회로의 총칭이다.


PLD(Programmable Logic Device)는 사용자가 필요로 하는 논리기능을 직접 program하여 사용할 수 있는 IC를 말한다.


FPGA architecture[임베디드 보안 시스템] FPGA architecture


FPGA(field programmable gate array) Architecture


- DES는 TCM의 DES와 같으며, SHA-1의 응용프로그램은 TFSES의 또 다른 이점이 됨

- 전통적인 메시지의 무결성에 대한 검증은 일일이 하나씩 비교해야 함

- 만약 데이터가 매우 거대하다면, 성능이 심각하게 제약될 수 있을 정도로 많은 시간을 낭비하게 됨

- SHA는 메시지를 악의적으로 조작되었는지를 확인하는 데 사용되는 160비트 숫자를 생성하여 메시지를 빠르게 스캔 가능


FIFO는 메시지를 전송하는 데이터 버퍼이다. 왜냐하면, TCM과 시스템 플래쉬는 직렬 전송이기 때문에 TFSES는 SFIFO를 필요로 한다.


TFSES는 또한 DES, 플래쉬 컨트롤, SHA로 인해 PFIFO를 필요로 한다.


Security of Trust-Block - Key Generation[임베디드 보안 시스템] Security of Trust-Block - Key Generation


PGA와 플래쉬가 생산되면 그것들이 생산된 곳에 의해 고유의 ID를 부여받게 된다.


FPGA의 ID는 디바이스 DNA로 불리고 플래쉬는 팩토리 ID라 불린다. 모든 FPGA는 자신의 ID를 가지고 있고, TESES 시스템의 키는 유일한 ID로 생성된다. 여기에 플래쉬의 팩토리 ID를 결합하여 더욱 안전한 키를 만들게 된다.

Operation of the System


Operation phase


Configuring the TFSES[임베디드 보안 시스템] Configuring the TFSES


FPGA의 팩토리 ID와 Device DNA를 읽은 다음, 보안 알고리즘으로 암호화하여 키 K생성.


TCM에 키를 다운로드 한다.


플래쉬 컨트롤러

- SHA 유닛에 외장 플래쉬와 전송의 유효성 검사 영역에서 데이터를 읽음

- 마지막으로 SHA는 데이터의 해쉬값을 계산하고, 해쉬값을 PC를 통해 TCM으로 전송


Root-Trust Phase


Running the TFSES[임베디드 보안 시스템] Running the TFSES


Root-Trust Phase


- TFSES 시스템의 구성이 끝난 후, 임베디드 시스템 시작 가능

- 제일 먼저 하는 일은 시스템 커널의 무결성을 확인하는 과정

- 시스템이 시작되었을 때, 임베디드 시스템 프로세서는 FPGA 대기상태가 됨

- DES가 키를 얻고, internal protected flash로부터 Faddr과 Flength를 얻음

- 플래쉬 컨트롤러는 검사영역의 외부 플래쉬 데이터를 불러와 SHA를 이용해 hash 값 C를 계산 

- TCM은 랜덤 넘버 R과 Key를 암호화하여 FPGA's DES에게 보냄

- DES로 R을 복호화

- DES는 R과 C값을 TCM's key의 키와 같은 키로 암호화한 후 TCM에게 재전송

- TCM은 R과 C를 받아 복호화한 후 해쉬값과 비교


Application-Trust Phase


- 루트가 신뢰 되면 우리는 운영 체제 응용 프로그램 보호 기능을 제공 가능


TFSES Operation system[임베디드 보안 시스템] TFSES Operation system


4. EXPERIMENT AND BENEFIT


- TFSES는 임베디드 시스템의 신뢰 루트에 대한 안전성을 제공

- TFSES는 임베디드 시스템 응용 프로그램을 적용할 수 있는 유연한 솔루션을 제공


- FPGA 또한 TFSES에 대해 전체 신뢰 컴퓨팅 모듈을 실현함으로써 빠른 실행속도를 보장


- TFSES는 적은 비용으로 상업적 사용 가능한 장치와 함께 구현 가능 

- 저비용, 저전력으로 고안되어 고성능의 장치는 아니지만 임베디드 시스템에 대한 적합한 보안 솔루션을 만들기 위한 결합이라고 할 수 있음


- 임베디드 시스템의 자원은 제한적이기 때문에 보안에 대한 비용과 성능 사이에서 적절한 균형을 만들어야 함

- TFSES는 충분한 보안성능을 저비용으로 높은 성능을 낼 수 있도록 제안

- 임베디드 시스템에 삽입될 수 있으며 손쉽게 적용 가능하며 임베디드 보안 시스템에 완벽하게 적용 가능


A Security Embedded System Base on TCM and FPGA 요약 끝

FPGA와 TCM를 이용한 임베디드 보안 시스템 개요 (TPM, 반도체, OS)

댓글