책 소개
2021년 세종도서 학술부문 선정도서
요약
최근 들어 대두되기 시작한 하드웨어 보안에 대한 포괄적인 개념과 대책을 실습을 통해 배울 수 있다. 하드웨어 보안의 이론, 사례 연구와 각 대책을 소개하며, 이를 하드웨어 해킹용 연습 보드에서 실습할 수 있도록 돕는다. 하드웨어 보안 분야에 종사하는 실무자뿐만 아니라 이를 공부하는 학생들에게도 많은 도움이 될 것이다.
이 책에서 다루는 내용
■ 컴퓨터 시스템의 기본 사항과 VLSI 설계를 비롯한 컴퓨터 보안의 개괄적인 정보와 보안 위험
■ 공격 방법론과 사례 연구
■ 주요 보안 문제 식별 및 각 하드웨어 추상화 계층에서의 효과적인 대책 개발 방법
■ 보안 취약점, 공격, 적절한 보호 메커니즘을 실질적으로 다룰 수 있는 실습 목록 제공
■ 실습을 위해 개발된 전자 하드웨어 플랫폼의 회로도, 레이아웃, 설계
■ 전체 시스템 보안에서의 하드웨어/소프트웨어 상호작용
이 책의 대상 독자
고급 학부 엔지니어링 학생에게 전체 하드웨어의 보안 실습과 지식을 제공하는 것을 목표로 한다. 주로 학부생을 대상으로 썼지만 대학원생, 보안 연구원, 실무자, 설계 엔지니어, 보안 엔지니어, 시스템 설계자, 최고 보안 책임자 등의 산업 전문가에게도 유용한 참고 자료가 될 수 있다. 이 책에서는 최신 컴퓨팅 시스템의 배경에 관한 자료와 보안 문제, 보호 메커니즘을 설명한다. 또한 보안 취약성, 공격, 보호 메커니즘을 포괄하는 하드웨어 보안의 다양한 측면을 알려주고자 적절한 장비를 갖춘 회로 실험실이라면 어디에서나 사용할 수 있도록 잘 설계된 실험 세트도 포함한다. 보안에서의 특정 주제를 자세히 알아보기 전에 현대 시스템의 컴포넌트를 이해하도록 컴퓨팅 하드웨어, 회로 이론, 능동, 수동 전자 구성 요소, 칩/PCB 설계, 테스트 플로의 기본 사항을 다루는 장도 포함했다.
이 책에는 하드웨어-소프트웨어 시스템을 모델링하기 쉽고 다양한 하드웨어 보안 문제와 대책을 배울 때 윤리적으로 ‘해킹’할 수 있는 하드웨어 해킹(HaHa, Hardware Hacking) 플랫폼이라고 하는 특별한 하드웨어 플랫폼에 관해 설명한다. FPGA(Field Programmable Gate Array) 개발 보드와 같은 대체 하드웨어 모듈을 사용해 책 내의 일부 실험을 수행할 수 있지만, 책에 제시된 모든 실습 실험은 이 플랫폼 하나로 모두 구현할 수 있다. 관련 배경 자료를 기반으로 하드웨어 보안 개념을 전반적으로 다루는 포괄적인 적용 범위와 실제 실습을 통해 배우는 방식은 이 교재의 주요 특징으로, 오늘날의 어려운 하드웨어 보안 문제에 대비해 학생들을 준비시키는 데 필수적이다.
이 책의 구성
저자는 하드웨어 보안 교육 분야에서 10년의 경험을 바탕으로 관련 개념을 효과적으로 전달하고자 각각의 주제를 구성했다. 1장에서는 하드웨어 보안 주제를 소개한다. 하드웨어 공격 벡터, 공격 표면 적대적 모델, 하드웨어 공격의 원인, 비즈니스/경제 모델, 하드웨어 공급망, 보안과 신뢰의 관계에 미치는 영향과 같은 주요 주제에 대한 기본 개념을 제공한다. 또한 1장에서는 하드웨어 보안에 대한 간략한 역사와 책에서 전반적으로 다룰 범위와 랩 기반의 접근 방식 정보도 제공한다.
1장 이후는 다음과 같이 네 부로 구성돼 있다.
1부: 전자 하드웨어의 배경
2부: 하드웨어 공격: 분석, 예제, 위협 모델
3부: 하드웨어 공격에 따른 대응 조치
4부: 하드웨어 공격과 보안 동향
1부. ‘전자 하드웨어의 배경’에는 3개의 장이 포함돼 있다. 2장에서는 디지털 로직, 회로 이론, 임베디드 시스템, IC, ASIC(Application Specific Integrated Circuit), FPGA, PCB, 펌웨어, 하드웨어-펌웨어-소프트웨어 상호작용과 시스템 보안에서 하드웨어의 역할에 대한 배경 지식을 제공한다.
3장에서는 SoC 설계와 테스트에 대한 전반적인 개요를 제공한다. IP(Intellectual Property) 기반 SoC 라이프 사이클, SoC 설계 프로세스, 검증/테스트 단계, 테스트용 설계와 디버그용 설계 인프라를 설명한다.
1부의 마지막 장인 4장에서는 PCB 설계와 테스트를 소개한다. 특히 4장에서는 PCB 라이프 사이클, PCB 설계 프로세스, PCB 테스트 방법을 설명한다.
2부. ‘하드웨어 공격: 분석, 예제, 위협 모델’에서는 라이프 사이클 전체와 최근 공급망에서 발생하는 하드웨어 공격과 취약성을 다룬다. 5장에서는 IC와 하드웨어 IP의 하드웨어 트로이목마 공격에 중점을 두고 설명한다. 여기에는 다양한 유형의 트로이목마(트리거와 페이로드)와 설계, 제작 프로세스에서의 서로 다른 위협 벡터를 알아본다.
6장에서는 오늘날의 전자 공급망 보안과 무결성 문제의 자세한 정보를 제공한다.
7장에서는 하드웨어 IP 불법 복제, IP 리버스 엔지니어링과 관련된 문제에 중점을 두고 하드웨어 IP 라이프 사이클 내의 보안 문제를 설명한다. 또한 FPGA 시장과 IP 공급망이 지속적으로 성장함에 따라 나타나는 FPGA IP 보안과 관련된 문제도 설명한다.
8장에서는 사이드 채널 공격(SCA)을 설명한다. 여기에는 모든 유형의 사이드 채널 공격, 즉 전력 사이드 채널 공격, 타이밍 공격, 전자기(EM) 사이드 채널 공격, 결함 주입 공격이 포함된다.
9장에서는 스캔과 JTAG에 중점을 둔 테스트 인프라 기반의 공격을 소개하며, 온칩 테스트/디버그 인프라를 사용하는 다양한 형태의 정보 유출 공격을 설명한다.
10장에서는 물리적 공격과 마이크로프로빙에 중점을 둔다. 10장에서는 정보 유출을 목적으로 한 칩 레벨의 마이크로프로빙 공격과 리버스 엔지니어링, 변조를 자세히 설명한다.
마지막으로 11장에서는 PCB의 물리적 공격에 중점을 둔 다양한 공격을 설명한다. 물리적 공격에는 정보 유출을 위한 PCB 트레이스 스누핑, PCB 리버스 엔지니어링, 복제, 악의적인 필드 수정, 모드칩(Modchip) 유형의 공격이 포함된다.
3부. ‘하드웨어 공격에 따른 대응 조치’에서는 하드웨어 공격에 대한 대응 조치에 중점을 둔다. 특히 하드웨어 보안 보증, 하드웨어 신뢰 기반 구축의 기본적인 대책을 제시한다. 12장에서는 하드웨어 보안 기본 사항의 설계, 평가, 기능적 보안, 공급망 문제 보안을 위한 역할에 중점을 두고 설명한다. 여기서는 PUF(Physical Unclonable Function), TRNG(True Random Number Generators)와 같은 공통 기본 요소를 다룬다.
13장에서는 집적 회로의 보안 설계(DFS), 보안/신뢰 검증과 서로 다른 레벨의 설계를 위한 보안, 다양한 하드웨어 공격을 방지하기 위한 방법을 설명한다.
14장에서는 하드웨어 난독화를 설명한다. 상태 공간 난독화, 논리 잠금, 위장 등의 다양한 난독화 기술을 제공하고 IP 불법 복제, 리버스 엔지니어링, 악의적인 수정을 방지하는 역할을 설명한다.
15장에서는 PCB 무결성 검증과 인증을 설명한다. 여기서는 PCB의 고유 서명을 사용해 현장 공격에서 PCB를 보호하는 PCB 수준 인증 솔루션을 제시한다.
4부. ‘하드웨어 공격과 보안 동향’에서는 마지막 16장에서 시스템 수준의 공격과 대책, 시스템/애플리케이션 소프트웨어를 이용해 하드웨어 보안 취약점을 악용할 수 있는 가능성과 보안 시스템을 위한 SoC 보안 아키텍처를 설명한다. SoC의 자산은 소프트웨어 공격의 주요 타깃이므로 이러한 자산을 보호하고자 안전한 SoC 아키텍처를 개발하는 것이 필요하다. 액세스 제어나 정보 플로우 공격 또는 기타 취약점을 이용한 다양한 공격에서 칩의 자산을 보호하기 위한 아키텍처 수준의 솔루션을 설명한다.
위와 같은 책의 내용을 즐기고 이를 통해 많은 혜택을 누리기를 바란다. 사이버 보안 분야의 범위가 지속적으로 증가하고 하드웨어 보안과의 관련성도 증가함에 따라 이 책의 내용이 수년 동안 유용하게 쓰일 것이라고 확신한다.
상세 이미지
목차
목차
- 1장. 하드웨어 보안 소개
- 1.1 컴퓨팅 시스템 개요
- 1.2 컴퓨팅 시스템 계층
- 1.2.1 전자 하드웨어
- 1.2.2 전자 하드웨어의 유형
- 1.3 하드웨어 보안이란?
- 1.4 하드웨어 보안과 하드웨어 신뢰
- 1.4.1 하드웨어 신뢰성 문제의 원인
- 1.4.2 신뢰할 수 없는 요소에서 발생하는 보안 문제
- 1.5 공격, 취약점, 대응책
- 1.5.1 공격 벡터
- 1.5.2 공격 요인
- 1.5.3 보안 모델
- 1.5.4 취약점
- 1.5.5 대응책
- 1.6 보안과 테스트/디버깅 간의 충돌
- 1.7 하드웨어 보안의 진화: 역사적 관점
- 1.8 조감도
- 1.9 실무적 접근
- 1.1 연습문제
- 1.10.1 True/False 문제
- 1.10.2 단답형 문제
- 1.10.3 서술형 문제
- 참고 문헌
- 1부. 전자 하드웨어의 배경
- 2장. 전자 하드웨어 개요
- 2.1 소개
- 2.2 나노 기술
- 2.2.1 실리콘 온 인슐레이터
- 2.2.2 FinFET 기술
- 2.2.3 3D 집적 회로
- 2.2.4 벌크 실리콘 기술
- 2.3 디지털 논리
- 2.3.1 2진 논리
- 2.3.2 디지털 논리 게이트
- 2.3.3 불대수
- 2.3.4 순차 회로
- 2.4 회로 이론
- 2.4.1 레지스터와 저항
- 2.4.2 커패시터와 커패시턴스
- 2.4.3 인덕터와 인덕턴스
- 2.4.4 키르히호프의 전기 회로 법칙
- 2.5 ASIC와 FPGA
- 2.5.1 ASIC
- 2.5.2 FPGA
- 2.5.3 ASIC과 FPGA의 차이
- 2.6 인쇄 회로 기판
- 2.6.1 PCB의 종류
- 2.6.2 PCB 설계 흐름
- 2.6.3 PCB 설계 생성
- 2.7 임베디드 시스템
- 2.7.1 임베디드 시스템 하드웨어
- 2.7.2 임베디드 시스템 소프트웨어
- 2.7.3 임베디드 시스템의 특성
- 2.8 하드웨어-펌웨어-소프트웨어 간 상호작용
- 2.9 연습문제
- 2.9.1 True/False 문제
- 2.9.2 단답형 문제
- 2.9.3 서술형 문제
- 참고 문헌
- 3장. 시스템온칩(SoC) 설계와 테스트
- 3.1 소개
- 3.1.1 테스트 비용과 제품의 품질
- 3.1.2 테스트 생성
- 3.2 IP 기반 SoC 라이프 사이클
- 3.3 SoC 설계 흐름
- 3.4 SoC 검증 흐름
- 3.5 SoC 테스트 흐름
- 3.6 디버깅을 고려한 설계
- 3.6.1 디버그 요구 사항
- 3.6.2 온칩 디버그 아키텍처
- 3.6.3 온칩 디버그 아키텍처의 예
- 3.7 규격화된 DFT 기술 소개
- 3.7.1 테스트를 고려한 설계
- 3.7.2 스캔 설계: 스캔 플립플롭, 스캔 체인과 스캔 테스트 압축
- 3.7.3 부분 스캔 설계
- 3.7.4 바운더리 스캔
- 3.7.5 BIST 방식
- 3.8 At-Speed 지연 테스트
- 3.8.1 At-Speed 지연 테스트를 해야 하는 이유
- 3.8.2 At-Speed 테스트의 기초: LOC와 LOS
- 3.8.3 At-Speed 지연 테스트의 과제
- 3.9 연습문제
- 3.9.1 True/False 문제
- 3.9.2 단답형 문제
- 3.9.3 서술형 문제
- 참고 문헌
- 4장. 인쇄 회로 기판(PCB) 설계와 테스트
- 4.1 소개
- 4.2 PCB와 컴포넌트의 진화
- 4.2.1 PCB 연대표
- 4.2.2 현대 PCB 컴포넌트
- 4.3 PCB 라이프 사이클
- 4.3.1 PCB 설계자
- 4.3.2 디자인 하우스
- 4.3.3 제조 하우스
- 4.3.4 현재 비즈니스 모델
- 4.3.5 컴포넌트 리서치 및 선택
- 4.3.6 회로도 캡처
- 4.3.7 시뮬레이션
- 4.3.8 보드 레이아웃
- 4.3.9 프로토타입 테스트
- 4.3.10 전체 설계 흐름의 모범 사례
- 4.4 PCB 조립 프로세스
- 4.4.1 스루홀 기술
- 4.4.2 표면 실장 기술
- 4.4.3 PCB 복잡성 동향과 보안 영향
- 4.5 PCB 설계 검증
- 4.5.1 PCB 검사와 테스트 개요
- 4.5.2 PCB 결함
- 4.5.3 PCB 검사
- 4.5.4 PCB 테스트
- 4.6 실험: 리버스 엔지니어링 공격
- 4.6.1 목적
- 4.6.2 방법
- 4.6.3 학습 결과
- 4.6.4 추가 옵션
- 4.7 연습문제
- 4.7.1 True/False 문제
- 4.7.2 단답형 문제
- 4.7.3 서술형 문제
- 참고 문헌
- 2부. 하드웨어 공격: 분석, 예제, 위협 모델
- 5장. 하드웨어 트로이목마
- 5.1 소개
- 5.2 SoC 설계 흐름
- 5.2.1 하드웨어 트로이목마 삽입: 잠재적 공격자
- 5.3 하드웨어 트로이목마
- 5.3.1 하드웨어 트로이목마 구조
- 5.3.2 트로이목마 모델링
- 5.3.3 하드웨어 트로이목마 예제
- 5.4 FPGA 설계의 하드웨어 트로이목마
- 5.4.1 활성화 특징
- 5.4.2 페이로드 특성
- 5.5 하드웨어 트로이목마 분류 체계
- 5.5.1 삽입 단계
- 5.5.2 추상 레벨
- 5.5.3 활성화 메커니즘
- 5.5.4 페이로드
- 5.5.5 위치
- 5.6 트러스트 벤치마크
- 5.6.1 벤치마크 명명 규칙
- 5.6.2 트러스트 벤치마크 예제
- 5.7 하드웨어 트로이목마에 대한 대책
- 5.7.1 트로이목마 탐지
- 5.7.2 신뢰할 수 있는 설계
- 5.8 실험: 하드웨어 트로이목마 공격
- 5.8.1 목적
- 5.8.2 방법
- 5.8.3 학습 결과
- 5.8.4 추가 옵션
- 5.9 연습문제
- 5.9.1 True/False 문제
- 5.9.2 서술형 문제
- 5.9.3 수학 문제
- 참고 문헌
- 6장. 전자 공급망
- 6.1 소개
- 6.2 최신 전자 공급망
- 6.2.1 설계
- 6.2.2 제조
- 6.2.3 조립
- 6.2.4 유통
- 6.2.5 라이프타임
- 6.2.6 단종
- 6.3 전자 부품 공급망 문제
- 6.4 보안 문제
- 6.4.1 하드웨어 트로이목마
- 6.4.2 CAD 도구
- 6.4.3 설계상의 실수
- 6.4.4 테스트/디버그 구조
- 6.5 신뢰 문제
- 6.5.1 IP 남용
- 6.5.2 IP 불법 복제
- 6.5.3 집적 회로의 과잉 생산
- 6.5.4 사양 외/결함 부품 배송
- 6.5.5 집적 회로의 리버스 엔지니어링
- 6.5.6 위조된 문서
- 6.5.7 집적 회로 리마킹
- 6.5.8 집적 회로의 재활용
- 6.6 잠재적 대응책
- 6.6.1 하드웨어 트로이목마 탐지와 방지
- 6.6.2 보안 규칙 점검
- 6.6.3 IP 암호화
- 6.6.4 논리 난독화
- 6.6.5 하드웨어 워터마킹
- 6.6.6 IC 계측
- 6.6.7 ECID와 PUF 기반 인증
- 6.6.8 경로 지연 핑거프린팅
- 6.6.9 클럭 스위핑
- 6.6.10 다이(DIE)와 IC-Recycling(CDIR) 구조 결합
- 6.6.11 전기 테스트
- 6.6.12 물리적 검사
- 6.7 연습문제
- 6.7.1 True/False 문제
- 6.7.2 서술형 문제
- 6.7.3 수학 문제
- 참고 문헌
- 7장. 하드웨어 IP 불법 복제와 리버스 엔지니어링
- 7.1 소개
- 7.2 하드웨어 IP
- 7.3 IP 기반 SoC 설계의 보안 문제
- 7.3.1 하드웨어 트로이목마 공격
- 7.3.2 IP 불법 복제와 과잉 생산
- 7.3.3 리버스 엔지니어링
- 7.4 FPGA의 보안 문제
- 7.4.1 FPGA 기본 설정
- 7.4.2 FPGA 기반 시스템의 라이프 사이클
- 7.5 실험: 리버스 엔지니어링과 탬퍼링
- 7.5.1 목적
- 7.5.2 방법
- 7.5.3 학습 결과
- 7.5.4 추가 옵션
- 7.6 연습문제
- 7.6.1 True/False 문제
- 7.6.2 단답형 문제
- 7.6.3 서술형 문제
- 참고 문헌
- 8장. 사이드 채널 공격
- 8.1 소개
- 8.2 사이드 채널 공격의 배경
- 8.2.1 사이드 채널 공격의 분류법
- 8.2.2 흔하지 않은 사이드 채널 공격
- 8.3 전력 분석 공격
- 8.3.1 전력 소비에서 사이드 채널 유출의 근원
- 8.3.2 전력 신호 획득
- 8.3.3 전력 분석의 유형
- 8.3.4 전력 사이드 채널 공격 대책
- 8.3.5 고차 사이드 채널 공격
- 8.3.6 전력 SCA에 대한 보안 측정법
- 8.4 전자파(EM) 사이드 채널 공격
- 8.4.1 전자파 신호의 근원
- 8.4.2 전자파 방출
- 8.4.3 전자파 신호의 식별
- 8.4.4 전자파 분석 유형
- 8.4.5 전자파 SCA 대책
- 8.5 결함 주입 공격
- 8.5.1 결함 주입 기술
- 8.5.2 결함 주입 공격 대처 방안
- 8.6 타이밍 공격
- 8.6.1 암호 하드웨어에 대한 타이밍 공격
- 8.6.2 프로세서의 캐시 타이밍 공격
- 8.6.3 타이밍 공격 대책
- 8.6.4 타이밍 누출 측정법
- 8.7 비밀 채널
- 8.8 실험: 사이드 채널 공격
- 8.8.1 목표
- 8.8.2 방법
- 8.8.3 학습 결과
- 8.8.4 추가 옵션
- 8.9 연습문제
- 8.9.1 True/False 문제
- 8.9.2 단답형 문제
- 8.9.3 서술형 문제
- 참고 문헌
- 9장. 테스트 지향 공격
- 9.1 소개
- 9.2 스캔 기반 공격
- 9.2.1 스캔 기반 공격 분류
- 9.2.2 위협 모델
- 9.2.3 다양한 공급망 단계에 적용 가능한 테스트 지향적 위협 모델
- 9.2.4 동적 난독화 스캔(DOS)
- 9.2.5 저비용 보안 검사(LCSS)
- 9.2.6 Lock & Key
- 9.2.7 스캔 인터페이스 암호화
- 9.2.8 난독화 스캔
- 9.2.9 스캔 체인 순서변경
- 9.3 JTAG 기반 공격
- 9.3.1 JTAG 해킹
- 9.3.2 JTAG 방어
- 9.4 실험: JTAG 공격
- 9.4.1 목적
- 9.4.2 방법
- 9.4.3 학습 결과
- 9.4.4 추가 옵션
- 9.5 연습문제
- 9.5.1 True/False 문제
- 9.5.2 단답형 문제
- 9.5.3 서술형 문제
- 참고 문헌
- 10장. 물리적 공격과 대응책
- 10.1 소개
- 10.2 리버스 엔지니어링
- 10.2.1 장비
- 10.2.2 칩 레벨 RE
- 10.2.3 칩 레벨 안티RE
- 10.2.4 보드 레벨 RE
- 10.2.5 보드 레벨 안티RE
- 10.2.6 시스템 레벨 RE
- 10.2.7 시스템 레벨 안티RE
- 10.3 프로빙 공격
- 10.3.1 프로빙 공격 기초
- 10.3.2 기존 대응책과 제한 사항
- 10.4 침투적 결함 주입 공격
- 10.5 연습문제
- 10.5.1 True/False 문제
- 10.5.2 단답형 문제
- 10.5.3 수학 문제
- 참고 문헌
- 11장. PCB에 대한 공격: 보안상의 문제점과 취약점
- 11.1 소개
- 11.2 PCB 보안 문제: PCB에 대한 공격
- 11.2.1 PCB의 하드웨어 트로이목마
- 11.2.2 현장에서 변경
- 11.2.3 불법 복제와 위조
- 11.3 공격 모델
- 11.3.1 공격 사례
- 11.3.2 현장에서 변경
- 11.4 실험: 버스 스누핑 공격
- 11.4.1 목표
- 11.4.2 방법
- 11.4.3 학습 결과
- 11.4.4 추가 옵션
- 11.5 연습문제
- 11.5.1 True/False 문제
- 11.5.2 단답형 문제
- 11.5.3 서술형 문제
- 참고 문헌
- 3부. 하드웨어 공격에 따른 대응 조치
- 12장. 하드웨어 보안 기초
- 12.1 소개
- 12.2 서론
- 12.2.1 공통 하드웨어 보안 기본 사항
- 12.2.2 CMOS 장치의 성능
- 12.3 물리적 복제 방지 기능
- 12.3.1 PUF 개요
- 12.3.2 PUF 분류
- 12.3.3 PUF 품질 특성
- 12.3.4 일반적인 PUF 아키텍처
- 12.3.5 PUF 애플리케이션
- 12.4 순수 난수 생성기
- 12.4.1 순수 난수 생성기 사전 요구 사항
- 12.4.2 TRNG 품질 특성
- 12.4.3 일반적인 TRNG 구조
- 12.4.4 TRNG 애플리케이션
- 12.5 위조 방지 설계
- 12.5.1 DfAC 기본 사항
- 12.5.2 DfAC 설계
- 12.6 기존 문제점과 공격 유형
- 12.6.1 PUF
- 12.6.2 TRNG
- 12.7 새로운 나노 장치를 사용한 주요 설계
- 12.7.1 PCM 기반 PUF의 구성
- 12.7.2 멤리스터와 RRAM 기반 PUF의 조합(합성)
- 12.7.3 MRAM과 STTRAM 기반 PUF의 조합
- 12.7.4 새로운 애플리케이션을 위한 PUF 조합
- 12.8 실험: 하드웨어 보안 기본 사항(PUF와 TRNG)
- 12.8.1 목표
- 12.8.2 방법
- 12.8.3 학습 결과
- 12.8.4 고급 옵션
- 12.9 연습문제
- 12.9.1 True/False 문제
- 12.9.2 서술형 문제
- 참고 문헌
- 13장. 보안, 신뢰성 평가, 보안 설계
- 13.1 소개
- 13.2 보안 자산과 공격 모델
- 13.2.1 자산
- 13.2.2 자산에 대한 잠재적 접근
- 13.2.3 잠재적인 적
- 13.3 SoC의 프리실리콘 보안과 신뢰성 검증
- 13.3.1 DSeRC: 설계 보안 규칙 점검
- 13.3.2 DSeRC 프레임워크 워크플로
- 13.4 IC에 대한 포스트실리콘 보안과 신뢰성 평가
- 13.4.1 퍼징
- 13.4.2 네거티브 테스트
- 13.4.3 해커톤
- 13.4.4 침투 테스트
- 13.4.5 보안과 밀접한 설계 기능의 기능 검증
- 13.4.6 결정적 보안 요구 사항 평가
- 13.5 보안 설계
- 13.5.1 보안 아키텍처
- 13.5.2 보안 정책 집행자
- 13.5.3 사이드 채널 내구성 설계
- 13.5.4 트리오 목마 삽입 방지
- 13.6 연습문제
- 13.6.1 True/False 문제
- 13.6.2 서술형 문제
- 참고 문헌
- 14장. 하드웨어 난독화
- 14.1 소개
- 14.1.1 사전 준비
- 14.1.2 하드웨어 IP를 암호화하지 않는 이유
- 14.2 난독화 기법 개요
- 14.2.1 RTL 난독화
- 14.2.2 게이트 레벨 난독화
- 14.2.3 레이아웃 레벨 난독화
- 14.2.4 명령 세트 난독화
- 14.2.5 PCB 난독화
- 14.3 하드웨어 난독화 방법
- 14.3.1 논리 잠금
- 14.3.2 게이트 위장 기반 난독화
- 14.3.3 유한 상태 기계(FSM) 기반 하드웨어 난독화
- 14.4 새로운 난독화 접근 방법
- 14.4.1 FPGA 비트스트림 난독화
- 14.5 트로이목마 공격에 대한 난독화 사용
- 14.6 실험: 하드웨어 IP 난독화
- 14.6.1 목표
- 14.6.2 방법
- 14.6.3 학습 결과
- 14.6.4 고급 옵션
- 14.7 연습문제
- 14.7.1 True/False 문제
- 14.7.2 단답형 문제
- 14.7.3 서술형 문제
- 참고 문헌
- 15장. PCB 인증과 무결성 검증
- 15.1 PCB 인증
- 15.2 PCB 서명 소스
- 15.2.1 미량 임피던스 변형
- 15.2.2 지연 변형
- 15.2.3 커패시터로 인한 변형
- 15.2.4 표면 패턴 변형
- 15.3 서명 처리와 인증 방법
- 15.3.1 PCB 임피던스 변형 활용
- 15.3.2 지연 변형을 사용한 인증
- 15.3.3 커패시터로 인한 변형 활용
- 15.3.4 PCB의 표면 패턴 변형 사용
- 15.4 서명 평가 기준
- 15.5 새로운 해결책
- 15.5.1 시스템 레벨 상호 인증
- 15.5.2 공명 주파수를 이용한 인증
- 15.6 PCB 무결성 검증
- 15.6.1 추적 임피던스 기반 검증
- 15.6.2 JTAG 기반 무결성 검증
- 15.7 실험: PCB 변조 공격(Modchip)
- 15.7.1 목표
- 15.7.2 방법
- 15.7.3 학습 결과
- 15.7.4 고급 옵션
- 15.8 연습문제
- 15.8.1 True/False 문제
- 15.8.2 단답형 문제
- 15.8.3 서술형 문제
- 참고 문헌
- 4부. 하드웨어 공격과 보안 동향
- 16장. 시스템 레벨 공격과 대응 방안
- 16.1 소개
- 16.2 SoC 설계의 배경
- 16.3 SoC 보안 요구 사항
- 16.3.1 SoC에서의 자산
- 16.3.2 공격자 모델
- 16.3.3 SoC에서의 디버그 설계
- 16.3.4 SoC 보안 정책 개요
- 16.4 보안 정책 실행
- 16.4.1 중앙 집중식 정책 정의 아키텍처
- 16.5 안전한 SoC 설계 프로세스
- 16.5.1 초기 보안 검증
- 16.5.2 프리실리콘 보안 검증
- 16.5.3 포스트실리콘 보안 검증
- 16.5.4 케이스 시나리오: 보안 정보 흐름 확인
- 16.6 위협 모델링
- 16.6.1 하드웨어 오류를 포함하는 소프트웨어
- 16.6.2 소프트웨어로 인한 하드웨어 트로이목마 공격
- 16.6.3 소프트웨어에 의한 사이드 채널 공격
- 16.7 실험: SoC 보안 정책
- 16.7.1 목적
- 16.7.2 방법
- 16.7.3 기대 효과
- 16.7.4 고급 옵션
- 16.8 연습문제
- 16.8.1 True/False 문제
- 16.8.2 단답형 문제
- 16.8.3 서술형 문제
- 참고 문헌
- 부록A. 직접 사용해보는 하드웨어 해킹(HaHa) 플랫폼
- A.1 HaHa 보드
- A.1.1 레이아웃과 컴포넌트
- A.1.2 HaHa 보드 블록 다이어그램
- A.1.3 HaHa의 컴포넌트
- A.2 동작 지침
- A.2.1 HaHa 전원 구동
- A.2.2 컴퓨터에 소프트웨어 모듈 설치
- A.2.3 알테라 MAX 10 FPGA 구성
- A.2.4 USB 포트를 이용해 마이크로컨트롤러 구성
- A.2.5 전압 소스 구성
- A.2.6 칩 인터커넥트
- A.2.7 스위치와 LED 사용
- A.2.8 7 세그먼트 디스플레이 사용
- A.2.9 확장 헤더 사용
- A.2.10 클럭 회로
- A.2.11 SPI 장치 사용
- A.2.12 사이드 채널 측정
- A.3 FPGA와 마이크로컨트롤러 프로그래밍용 예제
- A.3.1 FPGA 프로그래밍
- A.3.2 마이크로컨트롤러 프로그래밍
- A.4 설계 사양