목차
목차
지은이 소개-5
감사의 말-8
옮긴이 소개-10
옮긴이의 말-12
기술 감수자 소개-14
들어가며-33
1장 하드웨어 보안 소개-41
1.1 컴퓨팅 시스템 개요-43
1.2 컴퓨팅 시스템 계층-45
1.2.1 전자 하드웨어-46
1.2.2 전자 하드웨어의 유형-47
1.3 하드웨어 보안이란?-48
1.4 하드웨어 보안과 하드웨어 신뢰-50
1.4.1 하드웨어 신뢰성 문제의 원인-51
1.4.2 신뢰할 수 없는 요소에서 발생하는 보안 문제-54
1.5 공격, 취약점, 대응책-55
1.5.1 공격 벡터-55
1.5.2 공격 요인-56
1.5.3 보안 모델-57
1.5.4 취약점-58
1.5.5 대응책-60
1.6 보안과 테스트/디버깅 간의 충돌-61
1.7 하드웨어 보안의 진화: 역사적 관점-62
1.8 조감도-64
1.9 실무적 접근-67
1.1 연습문제-68
1.10.1 True/False 문제-68
1.10.2 단답형 문제-69
1.10.3 서술형 문제-69
참고 문헌-70
1부 전자 하드웨어의 배경
2장 전자 하드웨어 개요-75
2.1 소개-75
2.2 나노 기술-78
2.2.1 실리콘 온 인슐레이터-78
2.2.2 FinFET 기술-79
2.2.3 3D 집적 회로-79
2.2.4 벌크 실리콘 기술-80
2.3 디지털 논리-81
2.3.1 2진 논리-81
2.3.2 디지털 논리 게이트-82
2.3.3 불대수-83
2.3.4 순차 회로-85
2.4 회로 이론-88
2.4.1 레지스터와 저항-88
2.4.2 커패시터와 커패시턴스-89
2.4.3 인덕터와 인덕턴스-90
2.4.4 키르히호프의 전기 회로 법칙-91
2.5 ASIC와 FPGA-93
2.5.1 ASIC-93
2.5.2 FPGA-93
2.5.3 ASIC과 FPGA의 차이-94
2.6 인쇄 회로 기판-96
2.6.1 PCB의 종류-97
2.6.2 PCB 설계 흐름-98
2.6.3 PCB 설계 생성-100
2.7 임베디드 시스템-102
2.7.1 임베디드 시스템 하드웨어-103
2.7.2 임베디드 시스템 소프트웨어-103
2.7.3 임베디드 시스템의 특성-103
2.8 하드웨어-펌웨어-소프트웨어 간 상호작용-104
2.9 연습문제-107
2.9.1 True/False 문제-107
2.9.2 단답형 문제-108
2.9.3 서술형 문제-108
참고 문헌-109
3장 시스템온칩(SoC) 설계와 테스트-111
3.1 소개-111
3.1.1 테스트 비용과 제품의 품질-113
3.1.2 테스트 생성-117
3.2 IP 기반 SoC 라이프 사이클-128
3.3 SoC 설계 흐름-131
3.4 SoC 검증 흐름-133
3.5 SoC 테스트 흐름-136
3.6 디버깅을 고려한 설계-137
3.6.1 디버그 요구 사항-139
3.6.2 온칩 디버그 아키텍처-140
3.6.3 온칩 디버그 아키텍처의 예-141
3.7 규격화된 DFT 기술 소개-142
3.7.1 테스트를 고려한 설계-142
3.7.2 스캔 설계: 스캔 플립플롭, 스캔 체인과 스캔 테스트 압축-144
3.7.3 부분 스캔 설계-149
3.7.4 바운더리 스캔-150
3.7.5 BIST 방식-152
3.8 At-Speed 지연 테스트-154
3.8.1 At-Speed 지연 테스트를 해야 하는 이유-154
3.8.2 At-Speed 테스트의 기초: LOC와 LOS-155
3.8.3 At-Speed 지연 테스트의 과제-157
3.9 연습문제-159
3.9.1 True/False 문제-159
3.9.2 단답형 문제-159
3.9.3 서술형 문제-161
참고 문헌-161
4장 인쇄 회로 기판(PCB) 설계와 테스트-165
4.1 소개-165
4.2 PCB와 컴포넌트의 진화-167
4.2.1 PCB 연대표-167
4.2.2 현대 PCB 컴포넌트-171
4.3 PCB 라이프 사이클-173
4.3.1 PCB 설계자-173
4.3.2 디자인 하우스-174
4.3.3 제조 하우스-174
4.3.4 현재 비즈니스 모델-175
4.3.5 컴포넌트 리서치 및 선택-177
4.3.6 회로도 캡처-178
4.3.7 시뮬레이션-179
4.3.8 보드 레이아웃-179
4.3.9 프로토타입 테스트-180
4.3.10 전체 설계 흐름의 모범 사례-181
4.4 PCB 조립 프로세스-181
4.4.1 스루홀 기술-182
4.4.2 표면 실장 기술-183
4.4.3 PCB 복잡성 동향과 보안 영향-184
4.5 PCB 설계 검증-185
4.5.1 PCB 검사와 테스트 개요-186
4.5.2 PCB 결함-187
4.5.3 PCB 검사-188
4.5.4 PCB 테스트-191
4.6 실험: 리버스 엔지니어링 공격-197
4.6.1 목적-197
4.6.2 방법-197
4.6.3 학습 결과-197
4.6.4 추가 옵션-198
4.7 연습문제-198
4.7.1 True/False 문제-198
4.7.2 단답형 문제-199
4.7.3 서술형 문제-199
참고 문헌-200
2부 하드웨어 공격: 분석, 예제, 위협 모델
5장 하드웨어 트로이목마-205
5.1 소개-205
5.2 SoC 설계 흐름-207
5.2.1 하드웨어 트로이목마 삽입: 잠재적 공격자-209
5.3 하드웨어 트로이목마-210
5.3.1 하드웨어 트로이목마 구조-211
5.3.2 트로이목마 모델링-212
5.3.3 하드웨어 트로이목마 예제-213
5.4 FPGA 설계의 하드웨어 트로이목마-215
5.4.1 활성화 특징-215
5.4.2 페이로드 특성-216
5.5 하드웨어 트로이목마 분류 체계-217
5.5.1 삽입 단계-218
5.5.2 추상 레벨-220
5.5.3 활성화 메커니즘-222
5.5.4 페이로드-223
5.5.5 위치-224
5.6 트러스트 벤치마크-226
5.6.1 벤치마크 명명 규칙-227
5.6.2 트러스트 벤치마크 예제-228
5.7 하드웨어 트로이목마에 대한 대책-231
5.7.1 트로이목마 탐지-232
5.7.2 신뢰할 수 있는 설계-239
5.8 실험: 하드웨어 트로이목마 공격-247
5.8.1 목적-247
5.8.2 방법-247
5.8.3 학습 결과-247
5.8.4 추가 옵션-248
5.9 연습문제-248
5.9.1 True/False 문제-248
5.9.2 서술형 문제-248
5.9.3 수학 문제-249
참고 문헌-250
6장 전자 공급망-259
6.1 소개-259
6.2 최신 전자 공급망-260
6.2.1 설계-261
6.2.2 제조-263
6.2.3 조립-264
6.2.4 유통-265
6.2.5 라이프타임-265
6.2.6 단종-266
6.3 전자 부품 공급망 문제-267
6.4 보안 문제-267
6.4.1 하드웨어 트로이목마-267
6.4.2 CAD 도구-267
6.4.3 설계상의 실수-269
6.4.4 테스트/디버그 구조-271
6.5 신뢰 문제-272
6.5.1 IP 남용-273
6.5.2 IP 불법 복제-274
6.5.3 집적 회로의 과잉 생산-275
6.5.4 사양 외/결함 부품 배송-276
6.5.5 집적 회로의 리버스 엔지니어링-277
6.5.6 위조된 문서-277
6.5.7 집적 회로 리마킹-278
6.5.8 집적 회로의 재활용-279
6.6 잠재적 대응책-281
6.6.1 하드웨어 트로이목마 탐지와 방지-282
6.6.2 보안 규칙 점검-282
6.6.3 IP 암호화-282
6.6.4 논리 난독화-284
6.6.5 하드웨어 워터마킹-285
6.6.6 IC 계측-285
6.6.7 ECID와 PUF 기반 인증-286
6.6.8 경로 지연 핑거프린팅-286
6.6.9 클럭 스위핑-288
6.6.10 다이(DIE)와 IC-Recycling(CDIR) 구조 결합-289
6.6.11 전기 테스트-290
6.6.12 물리적 검사-291
6.7 연습문제-292
6.7.1 True/False 문제-292
6.7.2 서술형 문제-292
6.7.3 수학 문제-293
참고 문헌-295
7장 하드웨어 IP 불법 복제와 리버스 엔지니어링-305
7.1 소개-305
7.2 하드웨어 IP-308
7.3 IP 기반 SoC 설계의 보안 문제-310
7.3.1 하드웨어 트로이목마 공격-311
7.3.2 IP 불법 복제와 과잉 생산-312
7.3.3 리버스 엔지니어링-313
7.4 FPGA의 보안 문제-317
7.4.1 FPGA 기본 설정-318
7.4.2 FPGA 기반 시스템의 라이프 사이클-320
7.5 실험: 리버스 엔지니어링과 탬퍼링-331
7.5.1 목적-331
7.5.2 방법-332
7.5.3 학습 결과-332
7.5.4 추가 옵션-332
7.6 연습문제-333
7.6.1 True/False 문제-333
7.6.2 단답형 문제-333
7.6.3 서술형 문제-334
참고 문헌-335
8장 사이드 채널 공격-341
8.1 소개-341
8.2 사이드 채널 공격의 배경-343
8.2.1 사이드 채널 공격의 분류법-344
8.2.2 흔하지 않은 사이드 채널 공격-345
8.3 전력 분석 공격-346
8.3.1 전력 소비에서 사이드 채널 유출의 근원-347
8.3.2 전력 신호 획득-347
8.3.3 전력 분석의 유형-349
8.3.4 전력 사이드 채널 공격 대책-353
8.3.5 고차 사이드 채널 공격-355
8.3.6 전력 SCA에 대한 보안 측정법-355
8.4 전자파(EM) 사이드 채널 공격-357
8.4.1 전자파 신호의 근원-357
8.4.2 전자파 방출-358
8.4.3 전자파 신호의 식별-359
8.4.4 전자파 분석 유형-360
8.4.5 전자파 SCA 대책-361
8.5 결함 주입 공격-362
8.5.1 결함 주입 기술-365
8.5.2 결함 주입 공격 대처 방안-366
8.6 타이밍 공격-367
8.6.1 암호 하드웨어에 대한 타이밍 공격-368
8.6.2 프로세서의 캐시 타이밍 공격-369
8.6.3 타이밍 공격 대책-370
8.6.4 타이밍 누출 측정법-371
8.7 비밀 채널-372
8.8 실험: 사이드 채널 공격-374
8.8.1 목표-374
8.8.2 방법-374
8.8.3 학습 결과-374
8.8.4 추가 옵션-375
8.9 연습문제-375
8.9.1 True/False 문제-375
8.9.2 단답형 문제-376
8.9.3 서술형 문제-377
참고 문헌-378
9장 테스트 지향 공격-381
9.1 소개-381
9.2 스캔 기반 공격-382
9.2.1 스캔 기반 공격 분류-384
9.2.2 위협 모델-386
9.2.3 다양한 공급망 단계에 적용 가능한 테스트 지향적 위협 모델-388
9.2.4 동적 난독화 스캔(DOS)-390
9.2.5 저비용 보안 검사(LCSS)-395
9.2.6 Lock & Key-399
9.2.7 스캔 인터페이스 암호화-405
9.2.8 난독화 스캔-406
9.2.9 스캔 체인 순서변경-407
9.3 JTAG 기반 공격-408
9.3.1 JTAG 해킹-410
9.3.2 JTAG 방어-411
9.4 실험: JTAG 공격-413
9.4.1 목적-413
9.4.2 방법-413
9.4.3 학습 결과-414
9.4.4 추가 옵션-414
9.5 연습문제-414
9.5.1 True/False 문제-414
9.5.2 단답형 문제-415
9.5.3 서술형 문제-415
참고 문헌-415
10장 물리적 공격과 대응책-421
10.1 소개-421
10.2 리버스 엔지니어링-422
10.2.1 장비-427
10.2.2 칩 레벨 RE-431
10.2.3 칩 레벨 안티RE-439
10.2.4 보드 레벨 RE-443
10.2.5 보드 레벨 안티RE-450
10.2.6 시스템 레벨 RE-451
10.2.7 시스템 레벨 안티RE-460
10.3 프로빙 공격-468
10.3.1 프로빙 공격 기초-470
10.3.2 기존 대응책과 제한 사항-475
10.4 침투적 결함 주입 공격-478
10.5 연습문제-481
10.5.1 True/False 문제-481
10.5.2 단답형 문제-481
10.5.3 수학 문제-482
참고 문헌-484
11장 PCB에 대한 공격: 보안상의 문제점과 취약점-495
11.1 소개-495
11.2 PCB 보안 문제: PCB에 대한 공격-499
11.2.1 PCB의 하드웨어 트로이목마-499
11.2.2 현장에서 변경-502
11.2.3 불법 복제와 위조-504
11.3 공격 모델-506
11.3.1 공격 사례-507
11.3.2 현장에서 변경-512
11.4 실험: 버스 스누핑 공격-516
11.4.1 목표-516
11.4.2 방법-516
11.4.3 학습 결과-516
11.4.4 추가 옵션-516
11.5 연습문제-517
11.5.1 True/False 문제-517
11.5.2 단답형 문제-517
11.5.3 서술형 문제-519
참고 문헌-519
3부 하드웨어 공격에 따른 대응 조치
12장 하드웨어 보안 기초-523
12.1 소개-523
12.2 서론-524
12.2.1 공통 하드웨어 보안 기본 사항-524
12.2.2 CMOS 장치의 성능-525
12.2.3 성능, 신뢰성 대 보안-528
12.3 물리적 복제 방지 기능-530
12.3.1 PUF 개요-530
12.3.2 PUF 분류-531
12.3.3 PUF 품질 특성-531
12.3.4 일반적인 PUF 아키텍처-533
12.3.5 PUF 애플리케이션-539
12.4 순수 난수 생성기-542
12.4.1 순수 난수 생성기 사전 요구 사항-542
12.4.2 TRNG 품질 특성-544
12.4.3 일반적인 TRNG 구조-545
12.4.4 TRNG 애플리케이션-549
12.5 위조 방지 설계-550
12.5.1 DfAC 기본 사항-550
12.5.2 DfAC 설계-551
12.6 기존 문제점과 공격 유형-553
12.6.1 PUF-553
12.6.2 TRNG-558
12.7 새로운 나노 장치를 사용한 주요 설계-560
12.7.1 PCM 기반 PUF의 구성-561
12.7.2 멤리스터와 RRAM 기반 PUF의 조합(합성)-562
12.7.3 MRAM과 STTRAM 기반 PUF의 조합-563
12.7.4 새로운 애플리케이션을 위한 PUF 조합-564
12.8 실험: 하드웨어 보안 기본 사항(PUF와 TRNG)-565
12.8.1 목표-565
12.8.2 방법-565
12.8.3 학습 결과-566
12.8.4 고급 옵션-566
12.9 연습문제-566
12.9.1 True/False 문제-566
12.9.2 서술형 문제-567
참고 문헌-571
13장 보안, 신뢰성 평가, 보안 설계-579
13.1 소개-579
13.2 보안 자산과 공격 모델-581
13.2.1 자산-582
13.2.2 자산에 대한 잠재적 접근-583
13.2.3 잠재적인 적-585
13.3 SoC의 프리실리콘 보안과 신뢰성 검증-587
13.3.1 DSeRC: 설계 보안 규칙 점검-587
13.3.2 DSeRC 프레임워크 워크플로-600
13.4 IC에 대한 포스트실리콘 보안과 신뢰성 평가-602
13.4.1 퍼징-602
13.4.2 네거티브 테스트-603
13.4.3 해커톤-603
13.4.4 침투 테스트-604
13.4.5 보안과 밀접한 설계 기능의 기능 검증-606
13.4.6 결정적 보안 요구 사항 평가-606
13.5 보안 설계-607
13.5.1 보안 아키텍처-607
13.5.2 보안 정책 집행자-610
13.5.3 사이드 채널 내구성 설계-610
13.5.4 트리오 목마 삽입 방지-613
13.6 연습문제-613
13.6.1 True/False 문제-613
13.6.2 서술형 문제-614
참고 문헌-614
14장 하드웨어 난독화-623
14.1 소개-623
14.1.1 사전 준비-626
14.1.2 하드웨어 IP를 암호화하지 않는 이유-627
14.2 난독화 기법 개요-628
14.2.1 RTL 난독화-628
14.2.2 게이트 레벨 난독화-630
14.2.3 레이아웃 레벨 난독화-631
14.2.4 명령 세트 난독화-633
14.2.5 PCB 난독화-634
14.3 하드웨어 난독화 방법-635
14.3.1 논리 잠금-635
14.3.2 게이트 위장 기반 난독화-641
14.3.3 유한 상태 기계(FSM) 기반 하드웨어 난독화-643
14.4 새로운 난독화 접근 방법-648
14.4.1 FPGA 비트스트림 난독화-648
14.5 트로이목마 공격에 대한 난독화 사용-651
14.6 실험: 하드웨어 IP 난독화-653
14.6.1 목표-653
14.6.2 방법-653
14.6.3 학습 결과-653
14.6.4 고급 옵션-653
14.7 연습문제-654
14.7.1 True/False 문제-654
14.7.2 단답형 문제-655
14.7.3 서술형 문제-655
참고 문헌-657
15장 PCB 인증과 무결성 검증-661
15.1 PCB 인증-661
15.2 PCB 서명 소스-663
15.2.1 미량 임피던스 변형-664
15.2.2 지연 변형-666
15.2.3 커패시터로 인한 변형-667
15.2.4 표면 패턴 변형-668
15.3 서명 처리와 인증 방법-670
15.3.1 PCB 임피던스 변형 활용-671
15.3.2 지연 변형을 사용한 인증-672
15.3.3 커패시터로 인한 변형 활용-674
15.3.4 PCB의 표면 패턴 변형 사용-675
15.4 서명 평가 기준-677
15.5 새로운 해결책-678
15.5.1 시스템 레벨 상호 인증-678
15.5.2 공명 주파수를 이용한 인증-679
15.6 PCB 무결성 검증-680
15.6.1 추적 임피던스 기반 검증-681
15.6.2 JTAG 기반 무결성 검증-682
15.7 실험: PCB 변조 공격(Modchip)-683
15.7.1 목표-683
15.7.2 방법-683
15.7.3 학습 결과-683
15.7.4 고급 옵션-683
15.8 연습문제-684
15.8.1 True/False 문제-684
15.8.2 단답형 문제-685
15.8.3 서술형 문제-685
참고 문헌-686
4부 하드웨어 공격과 보안 동향
16장 시스템 레벨 공격과 대응 방안-689
16.1 소개-689
16.2 SoC 설계의 배경-690
16.3 SoC 보안 요구 사항-692
16.3.1 SoC에서의 자산-692
16.3.2 공격자 모델-693
16.3.3 SoC에서의 디버그 설계-693
16.3.4 SoC 보안 정책 개요-694
16.4 보안 정책 실행-698
16.4.1 중앙 집중식 정책 정의 아키텍처-698
16.5 안전한 SoC 설계 프로세스-700
16.5.1 초기 보안 검증-701
16.5.2 프리실리콘 보안 검증-702
16.5.3 포스트실리콘 보안 검증-703
16.5.4 케이스 시나리오: 보안 정보 흐름 확인-703
16.6 위협 모델링-707
16.6.1 하드웨어 오류를 포함하는 소프트웨어-709
16.6.2 소프트웨어로 인한 하드웨어 트로이목마 공격-717
16.6.3 소프트웨어에 의한 사이드 채널 공격-719
16.7 실험: SoC 보안 정책-729
16.7.1 목적-729
16.7.2 방법-729
16.7.3 기대 효과-729
16.7.4 고급 옵션-730
16.8 연습문제-730
16.8.1 True/False 문제-730
16.8.2 단답형 문제-731
16.8.3 서술형 문제-732
참고 문헌-733
부록A. 직접 사용해보는 하드웨어 해킹(HaHa) 플랫폼-737
A.1 HaHa 보드-744
A.1.1 레이아웃과 컴포넌트-744
A.1.2 HaHa 보드 블록 다이어그램-746
A.1.3 HaHa의 컴포넌트-748
A.2 동작 지침-752
A.2.1 HaHa 전원 구동-752
A.2.2 컴퓨터에 소프트웨어 모듈 설치-752
A.2.3 알테라 MAX 10 FPGA 구성-753
A.2.4 USB 포트를 이용해 마이크로컨트롤러 구성-754
A.2.5 전압 소스 구성-756
A.2.6 칩 인터커넥트-756
A.2.7 스위치와 LED 사용-757
A.2.8 7 세그먼트 디스플레이 사용-759
A.2.9 확장 헤더 사용-760
A.2.10 클럭 회로-760
A.2.11 SPI 장치 사용-762
A.2.12 사이드 채널 측정-763
A.3 FPGA와 마이크로컨트롤러 프로그래밍용 예제-764
A.3.1 FPGA 프로그래밍-764
A.3.2 마이크로컨트롤러 프로그래밍-775
A.4 설계 사양-784
찾아보기-796