서브메뉴

본문

실습으로 배우는 하드웨어 보안 (하드웨어 관점에서의 사이버 보안)
실습으로 배우는 하드웨어 보안 (하드웨어 관점에서의 사이버 보안)
저자 : 스와럽 부니와
출판사 : 에이콘출판
출판년 : 2020
ISBN : 9791161754703

책소개


2021년 세종도서 학술부문 선정도서

최근 들어 대두되기 시작한 하드웨어 보안에 대한 포괄적인 개념과 대책을 실습을 통해 배울 수 있다. 하드웨어 보안의 이론, 사례 연구와 각 대책을 소개하며, 이를 하드웨어 해킹용 연습 보드에서 실습할 수 있도록 돕는다. 하드웨어 보안 분야에 종사하는 실무자뿐만 아니라 이를 공부하는 학생들에게도 많은 도움이 될 것이다.

목차


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 설계 사양

QuickMenu