개요: 신분 도용 및 위조 ID가 빈번한 시대에는 명확한 확인 작업을 구현하는 것이 매우 중요하다. 이와 같은 점은 개개인에게 해당될 뿐만 아니라 전자 제품에도 적용된다. 시스템 제조사는 "외부"의 해커 공격으로부터 자신의 제품을 보호하고 복제된 하드웨어를 통해 "내부"에 대한 보안이 위협받지 않도록 해야 한다. 이와 같이 확산되는 보안 요건을 실현하는 핵심 사항이 바로 인증이다.
이 글에서는 안전한 인증에 관한 개념과 특히 지적 재산권 보호, 임베디드 HW/SW 라이센스 관리, 안전한 소프트 기능 및 상태 설정, 그리고 부정 방지 데이터 스토리지를 포함한 애플리케이션 요건을 보호하고 보안 컨트롤을 제공하는 보안 메모리 형식의 Maxim 솔루션에 대해 설명한다.
인증은 2개 이상의 개체 간 신분 증명을 확립하는 프로세스이다. 단방향 인증의 경우, 한 쪽이 또 다른 쪽에 자신의 신분을 입증한다. 반면, 양방향 인증의 경우 양 쪽이 서로에게 자신의 신분을 입증한다. 가장 널리 사용되는 인증 방법이 암호이다. 암호와 관련된 주요 문제는 사용 시 노출되므로 해킹될 수 있다는 점이다.
1883년 플라망어 언어학자 Auguste Kerckhoffs는 과거의 암호 사용에 대해 검토한 후 선구적인 군사 암호 기사에서 그의 연구 결과를 발표했다. Kerckhoffs에 따르면 보안은 불명확성이 아닌 키의 강도에 의존해야 한다는 것이다. Kerckhoffs는 보안이 침해될 경우, 전체 시스템이 아닌 오직 키만 교체해야 한다고 강력히 주장했다.
키 기반 인증은 그림 1에 표시된 대로 작용한다. (암호) 키와 인증될 데이터("메시지")는 메시지 인증 코드(MAC)를 계산할 수 있도록 입력된다. 그러면 MAC이 메시지에 추가된다. 메시지의 수신인은 동일한 계산을 실시하고 MAC 버전을 메시지와 함께 수신된 MAC과 비교한다. 이 두 MAC가 일치하는 경우, 메시지는 진짜이다. 그러나 기본 MAC 계산 모델의 경우, 약점이 있다. 차단된 메시지는 이후 또는 추후 가짜 송출기를 통해 재생되어 진짜 메시지로 오인될 수 있다.
그림 1. MAC 계산 모델
이 고유한 MAC 약점을 교묘하게 회피하고 MAC 발신인의 인증을 입증할 수 있도록 수신인은 임의의 번호를 생성한 후, 하나의 시도로 이를 발신인에게 전송한다. 그러면 MAC 발신인은 암호, 메시지 및 시도를 토대로 한 새로운 MAC을 계산하여 수신인에게 다시 전송해야 한다. 발신인이 시도에 대한 유효한 MAC을 생성하는 경우, 전적으로 확실한 점은 발신인이 암호를 알고 있으므로 이 암호가 진짜로 간주될 수 있다는 점이다(그림 2 참조). 이 프로세스는 시도/응답 인증(challenge-and-response authentication)으로 알려져 있다.
그림 2. 시도/응답 인증 데이터 플로우
암호의 경우, 메시지에서 (고정된 길이의) 메시지 인증 코드를 생성하는 알고리즘을 단방향 해시 함수(one-way hash function)라고 한다. "단방향"은 고정된 길이의 MAC 출력에서 주로 긴 메시지를 추론하기 매우 어렵다는 의미이다. 반면, 암호화의 경우 암호화된 메시지의 크기는 본래의 메시지에 비례한다.
철저하게 조사되고 국제적으로 인증된 단방향 해시 알고리즘은 National Institute of Standards and Technology (NIST)에서 개발한 SHA-1이다. SHA-1은 국제 표준 ISO/IEC 10118-3:2004으로 발전하였으며 알고리즘 이면에 있는 수식이 NIST 웹사이트에 공개되어 있다. SHA-1 알고리즘의 특성은 다음과 같다. 1) 비가역성(irreversibility)—MAC에 해당되는 입력을 결정하는 것이 계산적으로 실행 불가능하다. 2) 충돌 저항(collision-resistance)—지정된 MAC을 생성하는 1개의 입력 메시지 이상을 찾는 것은 불가능하다. 3) 높은 Avalanche 효과—입력이 변화되면 MAC 결과가 크게 변화된다라는 점이다. 이와 같은 이유는 물론 국제적으로 알고리즘을 정밀하게 조사하기 때문에 Maxim는 보안 메모리의 시도/응답 인증을 위해 SHA-1를 선택했다.
비용이 저렴한 보안 인증—기능적 구현
1-Wire 인터페이스 덕분에 SHA-1 엔진이 장착된 DS2432 EEPROM 소자는 마이크로컨트롤러(µC)와 같이 디지털 프로세싱 성능을 가진 어떤 회로에도 쉽게 추가할 수 있다. 가장 간단한 소자의 경우, 요구되는 부품은 그림 3과 같이 1개의 자유 I/O 핀과 1-Wire 라인용 풀업 저항이다. 보드의 계산 성능 또는 잔여 프로그램 스토리지 공간이SHA-1 MAC을 계산하는데 충분하지 않은 경우, DS2460 SHA-1 코프로세서를 사용하거나 이와 같은 작업을 시스템 또는 네트워크 안의 가장 근접한 호스트에게 위임할 수 있다. 코프로세서의 경우 호스트 프로세스 프로그램 코드가 아닌 보안 메모리에 시스템 암호를 저장하는 추가 이점을 지니고 있다.
그림 3. 일반적인 시스템 환경
임베디드 HW/SW 라이센스 관리
이후 라이센스를 받아 3rd party를 통해 제조될 수 있는 기준설계에는 지적 재산권이 불법적으로 사용되지 않도록 하는 장애물이 필요하다. 수익상의 이유로 기준설계의 수를 추적하고 확인할 필요가 있다. 프로그래밍된 DS2432(3rd party 제조업체에 인도되기 전 설치되는 암호 및 메모리 설정)는 이와 같은 요건 이상으로 쉽게 해결해준다. 부팅 시 자체 점검으로, 기준설계(그림 4)는 DS2432를 사용하여 인증 절차를 수행한다. 오직 라이센스 부여 업체 및 기준 전자장치로만 판단되며, 유효 암호가 포함된 DS2432에 한해 유효한 MAC과 문제 없이 응답하게 된다. 무효한 MAC가 검출되는 경우, 기준 프로세서는 애플리케이션에 해당하는 적절한 조치를 취하게 된다. 이 같은 방식의 또 다른 이점은 선택적으로 라이센스를 부여하는 성능, 설정을 통해 DS2432 보안 메모리 내에서 기준설계 기능을 인에이블시키는 성능이다(이 개념에 대한 보다 자세한 정보는 소프트 기능 관리 항목 참조).
64비트의 유효 암호가 포함된 DS2432는 다음 두 가지 보안 방법 중 하나를 이용하여 라이센스 보유자 또는 3rd party 제조사에 제공된다. 1) 기준설계 라이센스를 부여하는 회사를 통한 사전 프로그래밍 2) 라이센스를 부여하는 회사의 입력에 따라 Maxim를 통해 사전 프로그래밍 후 3rd party 제조업체에 제공. 위 두 경우 모두 라이센스를 부여 받은 자 또는 제조업체에 보내진 소자의 수가 파악되어 라이센스 비용을 확인하는 데 사용된다.
그림 4. 기준설계 인증
하드웨어 인증 검증
하드웨어의 인증 상태를 검증할 때 고려해야 할 사항은 다음 두 가지 이다(그림 5). 1) 펌웨어/FPGA 구성의 정확한 복사본이 내장된 복제 회로 보드 2) 복제 시스템 호스트.
그림 5. HW 인증 예시
첫 번째의 경우, 펌웨어/FPGA가 복제된 회로 보드를 인증하려고 시도한다. 복제 제조업체는 사용자 EEPROM에 데이터를 쓸 수 있도록 DS2432로 암호를 로딩해야 한다. 이렇게 하면 데이터가 정확하게 보일 수 있지만 암호는 시스템 내에서 유효하지 않다. 펌웨어/FPGA를 변경하는 복잡성 때문에, 그리고 호스트와 계속 호환되게 하기 위해서 펌웨어/구성은 정확한 원본 복사본이어야 한다. 부팅 상태가 진행되는 동안 보드가 DS2432의 시도/응답 인증을 실시하는 경우, DS2432를 통해 생성된 MAC는 마이크로컨트롤러/FPGA를 통해 계산된 MAC과는 달라지게 된다. 이와 같은 MAC 불일치 현상은 보드가 진짜가 아니라는 강력한 증거가 된다. 보드를 사용하여 시도/응답 절차를 실시하는 시스템이 이와 같은 불일치를 검출하면 애플리케이션에 해당하는 조치가 취해지게 된다.
두 번째의 경우, 회로 보드가 호스트 시스템을 인증하기 시작한다. 회로 보드는 다음 절차들을 통해 호스트의 인증 상태를 검증할 수 있다. 1) 문제를 생성하고 DS2432를 통해 시도/응답 인증 MAC 계산, 2) 네트워크 호스트로 동일한 MAC 계산 입력 데이터(물론 암호의 경우에는 제외) 전송 후 시도/응답 인증 MAC 계산 및 해당 데이터와 자체 고유 암호에서 복귀 등의 절차. 두 MAC가 일치하는 경우, 보드는 호스트가 진짜라고 추정한다. 그러나 이러한 일치는 DS2432와 네트워크 호스트가 모두 손상될 경우에도 발생할 수 있다.
소프트 기능 관리
전자 시스템의 범위는 휴대용 제품에서부터 여러 랙(rack)을 채우는 장치까지 다양하다. 장치의 크기가 클수록 개발 비용은 더욱 늘어난다. 그래서 사람들은 비용 관리를 위해 소형 서브시스템(보드)을 제한적으로 선택하여 대형 시스템을 구성하려고 한다. 서브시스템의 모든 기능이 애플리케이션에 필요한 것은 아니다. 이러한 기능을 없애는 대신, 보드를 그대로 두고 제어 소프트웨어에서 일부 기능을 비활성화시키는 것이 보다 경제적이다. 그러나 이 방식은 자체적인 또 다른 문제를 유발한다. 완전 기능 시스템이 여러 개 필요한 경우 완전 기능 장치 1개와 이보다 적은 기능을 구비한 장치를 여러 개 구매하는 것이다. 그리고 소프트웨어를 복사하여 사용하면 단순한 장치들은 완전 기능 장치처럼 동작하고 시스템 제조사는 가격 하락으로 피해를 입게 된다.
각 서브시스템 보드의 DS2432는 이러한 유형의 사기로부터 시스템 제조사를 보호한다. DS2432는 시도/응답 인증뿐만 아니라 사용자의 EEPROM에 개별 구성 설정을 저장할 수 있다. 이후 데이터 보안 항목에 설명된 대로 데이터는 무단 변경되지 않으므로 시스템 제조사가 완전히 제어할 수 있다. 구성 설정은 시스템 설계자를 통해 적절한 설정으로 간주되는 비트맵 또는 코드 언어 형태로 저장될 수 있다. 실용성의 이유로 구성은 최대한 설정하기 쉬워야 한다. DS2432의 1-Wire 인터페이스 덕분에 설계자는 그림 6에서와 같이 단일 트랜지스터와 한 개의 프로브 지점만 추가하면 된다. 프로브 지점을 통해 나머지 보드를 켜지 않고도 DS2432에 구성을 기록할 수 있다. 서브시스템이 정상적인 환경에서 작동될 때 MOSFET은 DS2432에 대한 정상 액세스 속도를 늦추지 않고 기타 회로에서 DS2432를 분리한다.
그림 6. 구성 프로브 지점 추가
추가된 보안 이점으로, 이 구성 설정 방법은 시스템이 고객의 현장에 설치된 후 원격 기능 업그레이드/변경이 가능하다는 것이다. 구성/기능 관리에 사용되지 않는 사용자 EEPROM은 전자 명함 형태로 보드 식별 시 이용 가능하다. 이 기능은 Maxim 웹사이트 애플리케이션 노트 178: 1-Wire 제품을 이용한 PCB 식별에 자세하게 설명되어 있다.
DS2432 인증 기능 세부사항
일반 소자 구조
1-Wire 인터페이스가 내장된 DS2432 1kb SHA-1 보안 메모리의 주요 데이터 요소 및 데이터 유동 경로는 그림 7에 나와 있다. 쉽게 인식되는 부품은 8바이트 암호 키와 시도를 일시 저장하는 버퍼 메모리(스크래치패드)이다. 앞서 언급되지 않은 데이터 요소는 고유한 소자 ID 번호(표준 1-Wire 기능), 4페이지의 사용자 EEPROM, 제어 레지스터 및 시스템 상수이다.
소자 ID는 1-Wire 네트워크에서 노드 어드레스(node address) 역할을 할 뿐만 아니라 인증에도 도움을 준다. 사용자 메모리는 인증될 "메시지"의 주요 부분을 보유하고 있다. 포맷 요건을 충족시키고 SHA-1 계산을 위한 64바이트 입력 데이터 블록을 구성하는 패딩으로 시드 상수(seed constant)가 필요하다. 제어 레지스터는 암호 또는 EEPROM 에뮬레이션 모드의 쓰기 방지 기능 옵션과 같은 소자 특유의 기능을 수행한다. 단, 이 레지스터는 일반적으로 인증 프로세스에 영향을 미치지 않는다.
그림 7. DS2432 SHA-1 보안 메모리 데이터 플로우 모델
소자 ID 번호 및 사용자 EEPROM은 제한없이 판독 가능하다. 그리고 버퍼 메모리에 완전히 읽기/쓰기 액세스할 수 있다. 암호는 즉시 로딩되지만 판독되지는 않는다. 사용자 메모리 또는 레지스터의 내용을 변경하려면 호스트와 슬레이브 (즉, DS2432) 모두 일치하는 쓰기 인증 MAC을 계산하여 버퍼 메모리에서 EEPROM에 이르는 경로를 연다.
DS2432의 SHA-1 엔진은 MAC 결과의 목적에 따라 3가지 다른 방법으로 동작 가능하다. 어떤 경우에든 SHA-1 엔진이 64바이트의 입력 데이터를 확보하여 이로부터 20바이트의 MAC 결과를 계산한다. 차이점은 입력 데이터에 있다. 보안 시스템의 기본 요건으로 호스트가 애플리케이션에서 유효/인증된 슬레이브 소자의 암호를 알고 있거나 이를 계산할 수 있어야 한다.
시도/응답 인증 MAC
앞의 애플리케이션 예에서 설명한 대로 DS2432의 주된 목적은 시도/응답 인증(challenge-and-response authentication)이다. 호스트는 임의의 시도를 전송하여 이 시도, 암호 또는 호스트에 의해 선택된 메모리 페이지 중 하나에서 전송된 데이터와, 함께 "메시지"를 구성하는 추가 데이터에서 전송된 응답 MAC을 계산하도록 DS2432에 지시한다(그림 8 참조).
그림 8. 시도/응답 인증 MAC을 위한 입력 데이터
계산을 완료한 후 DS2432는 검증을 위해 MAC을 호스트에 전송한다. 그런 다음, 유효 암호와 DS2432를 통해 사용되었던 동일한 메시지 데이터를 사용하여 MAC 계산을 복제한다. DS2432에서 수신된 한 쌍의 MAC은 소자 인증 성능을 제공하는데, 이는 오직 진짜 DS2432만이 시도/응답 절차에 정확하게 응답하기 때문이다. 시도는 임의 데이터를 토대로 한다는 점이 중요하다. 결코 변하지 않는 시도는 인증된 DS2432에 의해 일시적으로 계산된 MAC이 아닌 기록되고 반복된 유효하고 확률적인 MAC에 의한 반복 공격을 가능케 한다.
데이터 보안
슬레이브 소자의 인증을 증명하는 것 이외에도 소자에 저장된 데이터가 신뢰할 수 있다는 점을 인지하는 것이 매우 바람직하다. 이러한 이유로 DS2432 EEPROM에 대한 쓰기 액세스는 확실하게 제한된다. DS2432는 스크래치패드 버퍼 메모리에서 EEPROM 또는 제어 레지스터로 데이터를 복사하기 전에 인증성(authenticity)을 입증할 수 있도록 쓰기 액세스 인증 MAC을 공급하는 요청 호스트가 필요하다. DS2432는 스크래치패드 버퍼 메모리의 새로운 데이터, 암호, 업데이트될 메모리 페이지에서 전송된 데이터 및 추가 데이터에서 이 MAC을 계산한다(그림 9 참조).
진짜 호스트(authentic host)는 암호를 인지하여 유효한 쓰기 액세스 MAC을 계산한다. 복사 명령이 실행되는 동안 호스트에서 MAC을 수신할 때, DS2432는 이를 자체 결과와 비교한다. 두 MAC가 일치하는 경우에 한해 버퍼 메모리에서 EEPROM의 목적지로 데이터가 전송된다. 물론 MAC이 정확하더라도 쓰기 방지된 메모리 페이지는 변경 불가능하다.
그림 9. 쓰기 액세스 인증 MAC을 위한 입력 데이터
암호 보호
DS2432의 구조 덕분에 암호를 소자로 직접 로딩할 수 있다. 원하는 경우 암호 보호는 읽기 방지 및 쓰기 방지 기능을 통해 암호가 변경되지 않도록 해준다. 이러한 보호 수준은 장치 생산 현장에서 암호에 대한 액세스가 안전하게 제어되는 동안 유효하다.
암호 품질은 다음 여러 가지 다양한 방법으로 향상시킬 수 있다. 1) DS2432를 통한 해당 암호 계산, 2) 서로 다른 장소에서 실시되는 여러 단계로 DS2432를 통한 해당 암호 계산, 3) 고유한 소자 ID 번호를 암호 계산에 포함시켜 소자 고유의 암호 생성, 4) 2번과 3번의 조합.
앞의 1번에서 각 DS2432가 해당 암호를 계산하는 경우, 오직 암호의 구성요소만 파악될 뿐 암호 자체는 절대 노출되지 않는다. 반면 위의 2번에서 서로 다른 장소를 통해 여러 단계로 암호가 계산되는 경우, 오직 암호의 "국지적인" 구성 요소만 파악된다. 이 방식은 "최종" 암호의 정보를 제어하는 방법을 제공한다. 암호가 소자별로 지정되는 경우(위의 3번), 호스트에 추가 계산 절차가 필요하나 소자 암호가 우발적으로 밝혀지더라도 손상 가능성은 적다. 암호가 여러 단계로 계산되고 소자별로 지정되는 경우(위의 4번)에는 최상의 보안이 구현된다. 그러나, 슬레이브 같은 호스트는 여러 장소에서 설정되어 시스템의 암호성을 보장해야 한다.
암호를 계산하기에 앞서 암호로 알려진 값을 먼저 로딩해야 한다. 이와 같이 알려진 암호를 통해 새로운 암호 계산에 사용될 32바이트의 데이터가 4개의 메모리 페이지 중 하나에 기록되어야 한다. 그 다음 부분 암호가 DS2432 스크래치패드 버퍼 메모리에 기록되어야 한다. 예를 들어, 이 부분 암호는 계산 및 고유한 소자 ID 번호 (CRC 바이트 제외) 또는 기타 애플리케이션에 고유한 8바이트 값에 사용되는 메모리 페이지 수여야 한다.
암호를 계산하도록 지시를 받은 경우, DS2432는 SHA-1 엔진을 시동하고 그림 10에 나온 입력 데이터 항목을 사용하여 MAC을 계산한다. 20바이트의 MAC 중 하위 8바이트는 자동으로 암호 메모리 위치에 복사되어 즉시 효력이 발생하게 된다.
그림 10. 암호 계산을 위한 입력 데이터
결론
보안 인증 기능을 인지하고 현명하게 구현하면 경쟁력이 확보된다. 인증은 지적 재산권을 보호해줄 뿐만 아니라 보안 소프트 기능 설정이 내장된 일반 HW 플랫폼을 통해 생산 비용을 절감하는 데도 도움이 된다. DS2432의 데이터 보안을 통해 원격 구성 변경이 가능하므로 기술자의 소중한 시간도 절약된다. 소형 실리콘 칩이 결국 큰 차이를 만들어 낼 수 있다.
의견을 보내주세요! 위 내용이 도움이 되셨나요? 여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다.
이 페이지를 평가하고 의견을 보내주십시오.