TLS 구현으로 배우는 암호학 (C++로 만드는 HTTPS 서비스)

TLS 구현으로 배우는 암호학 (C++로 만드는 HTTPS 서비스)

$30.43
Description
인터넷에 안전망을 제공하는 HTTPS의 근간인 TLS(Transport Layer Security)를 다룬다. TLS 구현을 따라 하다 보면 자연스럽게 여러 암호화 통신 알고리즘의 필요성과 의미를 이해하고 암호학 전반에 걸친 통찰력을 얻을 수 있다. 예시를 제공해 암호학의 난해한 수학 내용을 쉽게 설명하고, 구체적인 코드를 구현해 독자 스스로 내용을 확인할 수 있게 구성했다. TLS가 실제로 어떻게 구현되는지 알고 싶은 독자가 참고 서적으로 활용할 수 있을 것이다.
선정 및 수상내역
2021년 대한민국학술원 우수학술도서 선정도서
저자

박승원

어릴때부터속편한게제일이라는신조를지니고누구보다도단조로운인생을살리라다짐했지만,실패했다.독실한불교인으로성심껏성지순례를해야한다는일념으로중국과티베트를횡단하고네팔을거쳐육로로인도까지갔다.新서유기를찍으며횡단병을얻어여러대륙을횡단혹은종단하며다닌방랑수행자이자,늦깎이프리랜서프로그래머다.

목차

제Ⅰ편암호학의기초
제1장키교환알고리즘
제1절디피헬만
1.1수학적배경
1.2나머지를이용한계산의간소화
1.3디피헬만키교환의예
1.4GNUMultiprecisionLibrary
1.5클래스구현
1.6테스트
제2절타원곡선
2.1실수상에서의타원곡선방정식
2.2유한체에서의타원곡선방정식
2.3클래스구현
2.4테스트
2.5X25519커브

제2장인증
제1절RSA
1.1수학적증명
1.2오일러의정리mфmodK=1의증명
1.3RSA를이용한암호화/복호화의예
1.4RSA를이용한인증
1.5클래스구현
1.6테스트
제2절ECDSA
2.1클래스구현
2.2테스트

제3장AES암호
제1절rotation변환과역변환
제2절substitution변환과역변환
제3절믹스컬럼변환과역변환
제4절addroundkey변환과역변환
제5절AES의암호화,복호화과정
제6절CBC
제7절패딩
제8절GCM

제4장해쉬
제1절SHA1
제2절SHA256
제3절HMAC

제5장암호학의기초를마치며
제1절보안의목표
제2절비트코인의암호학

제Ⅱ편TLS1.2의구조
제6장TLS의개괄
제1절TLS의진행과정
제2절TLS헤더
제3절핸드쉐이크헤더

제7장ClientHello
제8장ServerHello

제9장Cerificate
제1절DER
제2절PEM
제3절Base64인코딩
제4절인증서에서공개키의추출
제5절인증서체인의확인

제10장ServerKeyExchange
제1절ServerKeyExchange메시지구조체
제2절해쉬할구조체
제3절서명할구조체

제11장ServerHelloDone

제12장ClientKeyExchange
제1절PremasterSecret
제2절PRF
제3절MasterSecret
제4절키확장
제5절키재료의분할사용

제13장ChangeCipherSpec
제14장Finished

제15장레코드메시지
제1절AAD혹은HMAC해쉬
제2절암호화할구조체
제3절상대방에게보낼레코드메시지

제16장Alert메시지

제Ⅲ편TLS1.2의구현
제17장디자인선택

제18장헤더구현
제1절구조체의패딩과pragmapack(1)
제2절TLS헤더의구현
제3절핸드쉐이크헤더의구현
제4절헤더의구현

제19장Alert함수의구현
제20장ClientHello함수의구현
제21장ServerHello함수의구현
제22장Certificate함수의구현
제23장ServerKeyExchange함수의구현
제24장ServerHelloDone함수의구현
제25장ClientKeyExchange함수의구현
제26장ChangeCipherSpec함수의구현
제27장encode,decode함수의구현
제28장Finished함수의구현

제Ⅳ편TLS1.2의테스트
제29장TCP/IP를거치지않는테스트

제30장브라우저세팅과와이어샤크
제31장TCP/IP
제1절네트워크전송계층
제2절브라우저세팅과와이어샤크
제3절네트워킹클래스의구현
제4절암호화되지않은TCP/IP통신

제32장TLS1.2를이용한통신

제Ⅴ편TLS1.3
제33장TLS1.3에서변한것
제1절대폭축소된사이퍼수트
제2절패킷교환횟수를줄인핸드쉐이킹
제3절많은익스텐션의활용

제34장HKDF
제1절함수정의
제2절테스트
제3절HKDF를이용한키스케줄링

제35장TLS1.3의구현
제1절클라이언트익스텐션
제2절서버익스텐션
제3절ClientHello와ServerHello메시지의구현
제4절암호화된익스텐션
제5절인증서
제6절인증서확인메시지
제7절Finished
제8절TLS1.3의인코딩과디코딩
제9절핸드쉐이크함수

제36장TLS1.3테스트
제1절TLS1.3클라이언트
제2절TLS1.3을이용한미들서버

출판사 서평

★이책에서다루는내용★
■TLS구현을통한암호화알고리즘의필요성과의미를이해할수있다.
■암호학전반에걸친통찰력을얻을수있다.
■TLS1.2와더불어최신TLS1.3을반영했다.
■한가지암호화알고리즘에집중해암호학을깊이있게이해하고자신감을얻을수있다.
■예시와코드를통해암호학을구체적이고쉽게설명한다.
■기본이되는수학내용을설명해암호학을깊이있게이해할수있는토대를만든다.
■코드를구현하면서추상적인개념을단순명료하게클래스화할수있는코딩능력을기를수있다.
■여러문서에흩어진복잡한TLS표준정의를한곳에서찾아볼수있다.

★이책의대상독자★
■HTTPS의작동원리가궁금한사람
■기초적인C,C++지식을기반으로암호학을처음배우려는사람
■암호학을배웠으나난해한설명때문에제대로이해하지못했던사람
■예시와구체적인코드구현으로암호알고리즘과TLS의수학이론을좀더쉽게알고싶은사람

★이책의구성★
제Ⅰ편,‘암호학의기초’에서는TLS의근간을이루는암호알고리즘(키교환,인증,암호화,해쉬)의배경이론을살펴보고,수학적정의와코드예제를통해이를확실히이해한다.

제Ⅱ편,‘TLS1.2의구조’에서는어떤절차를통해암호화통신이이뤄지는지알아보고각절차에해당하는메시지의구조를자세히살펴본다.이와함께각메시지에서사용하는여러함수와데이터구조를정의한다.

제Ⅲ편,‘TLS1.2의구현’에서는2편에서살펴본각절차에해당하는메시지를생성하거나분석할함수를독립된멤버함수로가지는TLS1.2클래스를구현한다.

제Ⅳ편,‘TLS1.2의테스트’에서는전편에서구현한클래스를테스트한다.TCP/IP를이용해편리하게네트워킹할수있는클래스를구현해,네트워크상에서도TLS1.2클래스를테스트해본다.

제Ⅴ편,‘TLS1.3’에서는TLS1.2와다른점을중심으로TLS1.3을살펴보고,이를TLS1.2클래스를상속받아구현한다.그리고웹서버와클라이언트사이에서암호화통신을매개하는미들서버를구현하고TLS1.3클래스를직접사용해본다.