SHA-256 마스터/슬레이브 인증 시스템으로 보안을 강화한다

2014.09.30 16:21:48

SHA-1 인증은 위조와 불법 복제로부터 IP(Intellectual Property)를 보호하는 데 사용되어 왔다. 하지만 정보 처리
기술이 발전함에 따라 더 높은 수준의 보안이 필요해졌다. 최근 새로운 보안 인증 디바이스와 함께 사용되는 보안
보조 프로세서는 SHA-256 인증을 구현하며, 물리적 보안을 통해 저비용 IP 보호, 복제 방지, 주변장치 인증을
제공한다. 여기서는 SHA-256 기반 보안 시스템의 일반 논리 구조와 인증 시스템이 사용하는 양방향 인증 기능에
대해 살펴본다.


 보안 인증 시스템


보안 인증 시스템을 구현하기 위해서는 호스트 시스템과 센서/주변장치 모듈을 연결해야 한다.
그림 1에 나타난 시스템은 SHA-256 보안 인증 디바이스와 SHA-256 보안 보조 프로세서로 구성된 것이다. 호스트는 산업 표준 I2C 버스를 통해 인증 디바이스, 보조 프로세서와 통신한다.


그림 1. ‌SHA-256 보안 인증 시스템 구현. 이 시스템은 DeepCover® DS2465 SHA-256

보안 보조 프로세서와 DeepCover DS28C22 보안 인증 디바이스로 구성된다



 SHA-256 보안 인증 디바이스


SHA-256 보안 인증 디바이스는 이 시스템에서 256비트 크기의 입력값(Challenge)을 지원하고 256비트의 비밀 키를 사용한다. 그림 1의 인증 디바이스는 인증 계산에서 기초적인 데이터 요소로 사용되는 고유의 64비트 ROM ID를 가진 I2C 슬레이브이다.
시스템 설계자는 3Kb 사용자의 EEPROM을 공개된(보호되지 않은) 액세스 영역, 쓰기 액세스를 위해 마스터가 자체적으로 인증을 수행해야 하는 영역, 읽기 및 쓰기 액세스 모두 데이터 암호화를 필요로 하는 영역으로 나눌 수 있다.
암호화는 인증과 결합해 데이터 보안을 더욱 강화할 수 있다. 표 1은 사용 가능한 보호 모드이다.


표 1. ‌보안 인증 디바이스 보호 옵션 (시스템 디폴트는 RP, WP, EM, AP, EP가

활성화되지 않은 상태로 보호가 적용되지 않는다. 보호는 누적된다)

 


SHA-256 보안 보조 프로세서


그림 1의 SHA-256 보안 보조 프로세서는 호스트 프로세서에서 SHA-256 계산 작업을 덜어준다. 이것보다 더 중요한 것은 보안 보조 프로세서가 마스터 비밀 키를 안전하게 저장하는 보호된 메모리를 내장하고 있다는 점이다.
추가적인 메모리는 고유의 슬레이브 비밀 키 계산에 사용되는 다른 데이터 요소를 저장하고 보호하기 위해 별도로 남겨진다.
SHA-256 보안 보조 프로세서는 호스트 관점에서 특수한 목적을 위해 할당된 특정 영역(데이터 요소)을 가진 256바이트 읽기/쓰기 메모리처럼 보인다.

 

보안의 논리적 구성 요소


그림 2. 고유 비밀 키 생성




SHA 기반의 보안은 공개된 데이터와 비밀 키에서 계산된 MAC(Message Authentication Code)에 의존한다. 진짜라는 것을 검증하기 위해서는 양쪽 다, 즉 호스트 또는 보조 프로세서와 인증 디바이스 모두 비밀 키를 알아야 하며, 이것은 절대 노출되지 않는다.
또한 보안을 극대화하기 위해서도 각 인증 디바이스의 비밀 키는 고유해야 한다. 이러한 방식으로 인해, 인증 디바이스 하나의 비밀 키가 훼손된 경우에도 전체 시스템 보안은 영향을 받지 않는다.
언뜻 이러한 요구사항을 만족시키는 것은 불가능한 것처럼 보일 수 있지만, 간단한 솔루션을 사용하면 대응할 수 있다. 알려진 ‘요소들’로부터 비밀 키를 계산한 다음, 이를 신뢰할 수 있고 제어할 수 있는 제조 환경에서 보안 인증 디바이스 내에 설치하는 것이다.
고유 비밀 키에 사용되는 요소들은 마스터 비밀 키, 바인딩 데이터, 부분 비밀 키, 보안 인증 디바이스의 ROM ID, 패딩/포맷팅(기타 데이터)이다. 그림 2는 이 과정을 나타낸 것이다.
시간이 지나면 요소들은, 예를 들어 신뢰할 수 있는 제조 환경의 한 지점에서 노출되지만 계산된 비밀 키는 결코 노출되지 않으며 항상 숨겨져 있다.
보안과 저장 공간이라는 이유로, 시스템에서 모든 보안 메모리의 고유 비밀 키가 보안 보조 프로세서나 호스트에 저장되는 것은 아니다. 그 대신 보조 프로세서는 보호되는 메모리 부분에 마스터 비밀 키와 바인딩 데이터를 저장한다. 부분 비밀 키는 호스트 프로세서의 펌웨어에서 코딩할 수 있는 시스템 상수이며 공개적으로 전달된다. 인증 디바이스의 ROM ID를 읽은 후, 보조 프로세서는 고유 비밀 키를 계산할 수 있다(그림 2).
인증 디바이스와 보조 프로세서가 고유 비밀 키를 공유하면 시스템은 동작할 준비가 된 것이다.

 

검사-응답 인증


그림 3. 검사-응답 인증 MAC 계산


보안 인증 디바이스의 주요 목적은 연결되는 대상이 진짜라는 증거를 제공하는 것이다. 대칭 키 기반의 인증은 비밀 키와 인증되어야 하는 데이터(메시지)를 입력으로 사용하여 MAC을 계산한다. 그런 다음 MAC 버전과 보안 인증 디바이스로부터 수신한 버전을 비교한다. 두 MAC 결과가 모두 동일하다면 보안 인증 디바이스는 시스템의 일부가 된다.
이러한 SHA-256 인증 시스템에서, 메시지는 호스트 검사와 보안 인증 디바이스에 저장된 데이터 요소의 조합이라고 할 수 있다. 중요한 것은 검사가 랜덤 데이터에 기초해야 한다는 점이다. 검사가 전혀 변하지 않는다는 것은, 즉석에서 계산되는 MAC 대신 저장되었다가 다시 사용할 수 있는 유효한 정적 MAC을 이용해 공격할 수 있도록 문을 열어놓는 것과 같다.
보안 인증 디바이스는 검사, 비밀 키, 메모리 데이터, 메시지를 구성하는 추가적인 데이터로부터 MAC을 계산한다(그림 3). 만약 보안 인증 디바이스가 임의의 입력값에 대해 유효한 MAC을 생성할 수 있다면, 이는 인증 디바이스가 비밀 키를 알고 있으며, 따라서 진짜라고 볼 수 있다고 가정해도 안전하다.


 데이터 보안(인증된 쓰기)


진짜라는 것을 증명하는 것 외에도, 보안 인증 디바이스에 저장된 데이터가 신뢰할 수 있다는 사실을 아는 것은 매우 바람직하므로, 보안 인증 디바이스의 일부 또는 모든 EEPROM을 인증 보호할 수 있다. 인증 보호를 활성화할 경우, 메모리 쓰기 액세스를 실시하려면 호스트가 보안 인증 디바이스에 호스트 인증 MAC을 제공함으로써 자신이 진짜라는 것을 증명해야 한다(그림 4).

그림 4. 인증된 쓰기 액세스(호스트 인증 MAC)


호스트 인증 MAC은 새로운 메모리 데이터, 기존의 메모리 데이터, 보안 인증 디바이스의 고유 비밀 키와 ROM ID, 그 밖에 메시지를 구성하는 기타 데이터로부터 계산된다. 보안 인증 디바이스는 동일한 방식으로 MAC을 계산한다.
정식 호스트가 보안 인증 디바이스의 비밀 키 재생성을 마치면, 유효한 쓰기 액세스 MAC을 생성할 수 있다. 호스트로부터 MAC을 수신하면 보안 인증 디바이스는 이를 자신의 결과와 비교한다.
데이터는 두 MAC이 일치하는 경우에만 EEPROM에 쓸 수 있다. 쓰기 보호되는 사용자 메모리는 MAC이 맞더라도 수정할 수 없다.

 

데이터 보안(암호화된 읽기 및 쓰기)


그림 5. 암호화된 쓰기 액세스


비밀 키가 절대로 노출되지 않는 일반적인 SHA-256 인증 디바이스 수준을 넘어, DS28C22 보안 인증 디바이스는 메모리 읽기와 쓰기 액세스 동안에도 메모리 데이터를 노출시키지 않도록 구성할 수 있다.
이와 같이 강화된 보안은 통과되는 동안 데이터 암호화를 통해 달성된다. 칩 내부에서 데이터는 인증 목적을 위해 요구된 클리어 영역에 저장된다.
쓰기 액세스 암호화는 호스트에서 제공하는 암호 시드, 보안 인증 디바이스의 비밀 키, 인증 디바이스의 ROM ID 일부 및 기타 데이터(패딩, 포맷팅, 데이터 주소 관련 데이터)로부터 계산되는 OTP(One-Time-Pad)를 사용한다.
그림 5와 같이, 이러한 데이터 요소는 SHA-256 알고리즘에 따라 처리되는 메시지를 구성한다. 그에 따른 메시지 인증 코드가 OTP이다. 호스트는 OTP에서 대응하는 데이터와 함께 새로운 메모리 데이터에 대해 XOR을 수행한 다음, 이를 인증 디바이스에 전송한다. 인증 디바이스는 XOR을 한 번 더 수행하여 원래의 데이터를 복원하고, 데이터는 사용자 EEPROM에 프로그래밍된다.
호스트는 암호 시드를 제공하며, 이때 암호 시드는 반드시 난수여야 한다. 이러한 방식에서는 호스트가 I2C 버스에서 도청하고자 하는 누군가에게 동일한 데이터를 계속 반복적으로 쓰더라도 암호화된 데이터가 항상 다르게 나타난다.
읽기 액세스 암호화는 거의 대부분 쓰기 액세스 암호화와 유사하다. 메시지의 데이터 요소는 기본적으로 같지만, 다른 요소가 동일하더라도 읽기 액세스 OTP와 쓰기 액세스 OTP를 다르게 만드는 ‘다른 데이터(Other Data)’에서 차이가 나게 된다.
그림 6과 같이, 보안 인증 디바이스는 사용자 메모리에서 데이터를 얻은 후 OTP로 이 데이터에 대해 XOR을 수행한 다음 호스트에 데이터 읽기 액세스를 가능하게 만든다. 그 후, 호스트는 해당 OTP 버전을 사용하여 XOR을 수행한다. 호스트가 보안 인증 디바이스의 비밀 키와 암호화에 사용된 OTP를 계산할 수 있다면 XOR 단계는 성공적으로 데이터를 해독한다. 여기서도 호스트는 반드시 난수여야 하는 암호 시드를 제공한다.
이제 호스트가 I2C 버스에서 도청하고자 하는 누군가에게 동일한 데이터를 반복적으로 읽어 내더라도 데이터는 항상 다르게 나타난다.

 

데이터 보안(암호화된 인증 쓰기)


그림 6. 암호화된 읽기 액세스


암호화된 쓰기만으로는 보안 인증 디바이스의 비밀 키를 알지 못하는 호스트 프로세서가 메모리에 쓰지 못하도록 방지할 수 없다. 메모리에 실제로 기록된 데이터는 소용이 없다. 누군가 악의적으로 메모리를 마모시키고 이러한 방식으로 인증 디바이스를 훼손할 수 있다는 것을 인정한다면, 이와 같은 상황을 방지하기 위해 암호화용으로 마련된 메모리 영역을 초기 쓰기한 후 쓰기 보호, 변경 허용 등을 하기 위해 인증 보호해야 한다. 그런 다음, 정식 호스트만 메모리 데이터를 수정할 수 있다.
암호화된 인증 쓰기 액세스는 다음과 같은 두 단계로 이루어진다. 첫 번째 단계에서 호스트는, 그림 5와 같이 새로운 데이터를 암호화한 다음 이를 보안 인증 디바이스에 전송한다. 두 번째 단계에서 호스트는, 그림 4와 같이 쓰기 인증 MAC을 계산한 후 이를 보안 인증 디바이스에 전송한다. 암호화 없이 인증된 쓰기와 대조적으로, MAC은 이제 기존의 해독된 메모리 데이터와 암호화된 새로운 메모리 데이터로부터 모두 계산된다.

 

비밀 키 보호


보안 인증 디바이스의 비밀 키와 보안 보조 프로세서의 마스터 비밀 키는 하드웨어 설계에 의해 읽기 보호된다. 비밀 키는 쓰기 보호할 수 있는데, 이렇게 하면 알려지지 않은 비밀 키를 알려진 비밀 키로 대체함으로써 인증 디바이스의 데이터 탬퍼링을 방지할 수 있다.
설치한 후에는 일반적으로 보조 프로세서의 메모리에 저장되는 바인딩 데이터를 읽기 보호해야 한다. 이와 같은 수준의 보호는 보조 프로세서와 인증 디바이스를 신뢰할 수 있는 생산 현장에서 적용하기 위해 구성할 때만 유효하다.

 궁극적 보안, DeepCover

Maxim Integrated의 DeepCover 기술을 적용하면 비밀 키를 알아내려는 모든 다이 레벨 공격에 대해, 저렴하면서도 가장 강력한 보호를 실시할 수 있다.
DeepCover 기술은 다이 레벨 탬퍼 이벤트를 적극적으로 모니터링하는 다수의 회로와 향상된 다이 라우팅 및 레이아웃 기법, 그리고 공격자의 정교한 기능을 막아내는 추가적인 고유 방법을 포함하고 있다.

 

양방향 인증


앞에서 예로 든 시스템에서, 보안 인증 디바이스는 검사-응답 인증과 인증된 쓰기(호스트 인증)를 모두 지원한다. 전체 사용자 메모리를 검사-응답 인증에 사용할 수 있다. 양방향 인증은 보안 데이터 저장(인증된 쓰기)을 위해 구성된 메모리 영역에 적용된다.
데이터 암호화는 검사-응답 인증에 장애가 되지 않으며, 인증 MAC은 항상 사용자 EEPROM의 암호화되지 않은 데이터로 계산된다.


비밀 키, 검사, MAC에 대해 각각 256비트를 할당하는 SHA-256의 경우, 이전의 SHA-1 인증에 비해 많은 향상을 이루었다.
지금까지 호스트 시스템(호스트 컨트롤러 및 SHA-256 보안 보조 프로세서)과 센서/주변장치 모듈(SHA-256 보안 인증 디바이스)을 일치시키는 최신 보안 인증 시스템에 대해 살펴봤는데, SHA-256 보안 구현이 그 어느 때보다 더 간편해졌다는 것을 알 수 있다.
DeepCover는 Maxim Integrated Products, Inc.의 등록상표이다.


Bernhard Linke,  Maxim Integrated


Copyright ⓒ 첨단 & automationasia.net



상호명(명칭) : ㈜첨단 | 등록번호 : 서울,아54000 | 등록일자 : 2021년 11월 1일 | 제호 : 오토메이션월드 | 발행인 : 이종춘 | 편집인 : 임근난 | 본점 : 서울시 마포구 양화로 127, 3층, 지점 : 경기도 파주시 심학산로 10, 3층 | 발행일자 : 2021년 00월00일 | 청소년보호책임자 : 김유활 | 대표이사 : 이준원 | 사업자등록번호 : 118-81-03520 | 전화 : 02-3142-4151 | 팩스 : 02-338-3453 | 통신판매번호 : 제 2013-서울마포-1032호 copyright(c)오토메이션월드 all right reserved