본문 바로가기

추천 검색어

실시간 인기 검색어

TLS 구현으로 배우는 암호학

C++로 만드는 HTTPS 서비스
박승원 지음
에이콘출판

2020년 11월 05일 출간

종이책 : 2020년 06월 30일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (16.21MB)
ISBN 9791161754796
쪽수 327쪽
듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 전자책 화면에 표기된 주석 등을 모두 읽어 줍니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
  • '교보 ebook' 앱을 최신 버전으로 설치해야 이용 가능합니다. (Android v3.0.26, iOS v3.0.09,PC v1.2 버전 이상)
소득공제
소장
정가 : 24,000원

쿠폰적용가 21,600

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 300원

작품소개

이 상품이 속한 분야

인터넷에 안전망을 제공하는 HTTPS의 근간인 TLS(Transport Layer Security)를 다룬다. TLS 구현을 따라 하다 보면 자연스럽게 여러 암호화 통신 알고리즘의 필요성과 의미를 이해하고 암호학 전반에 걸친 통찰력을 얻을 수 있다. 예시를 제공해 암호학의 난해한 수학 내용을 쉽게 설명하고, 구체적인 코드를 구현해 독자 스스로 내용을 확인할 수 있게 구성했다. TLS가 실제로 어떻게 구현되는지 알고 싶은 독자가 참고 서적으로 활용할 수 있을 것이다.
제Ⅰ편 암호학의 기초
제1장 키 교환 알고리즘
제1절 디피 헬만
1.1 수학적 배경
1.2 나머지를 이용한 계산의 간소화
1.3 디피 헬만 키 교환의 예
1.4 GNU Multiprecision Library
1.5 클래스 구현
1.6 테스트
제2절 타원곡선
2.1 실수상에서의 타원곡선 방정식
2.2 유한체에서의 타원곡선 방정식
2.3 클래스 구현
2.4 테스트
2.5 X25519 커브

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

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

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

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

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

제7장 Client Hello
제8장 Server Hello

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

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

제11장 Server Hello Done

제12장 Client Key Exchange
제1절 Premaster Secret
제2절 PRF
제3절 Master Secret
제4절 키 확장
제5절 키 재료의 분할 사용

제13장 Change Cipher Spec
제14장 Finished

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

제16장 Alert 메시지

제Ⅲ편 TLS 1.2의 구현
제17장 디자인 선택

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

제19장 Alert 함수의 구현
제20장 Client Hello 함수의 구현
제21장 Server Hello 함수의 구현
제22장 Certificate 함수의 구현
제23장 Server Key Exchange 함수의 구현
제24장 Server Hello Done 함수의 구현
제25장 Client Key Exchange 함수의 구현
제26장 Change Cipher Spec 함수의 구현
제27장 encode, decode 함수의 구현
제28장 Finished 함수의 구현

제Ⅳ편 TLS 1.2의 테스트
제29장 TCP/IP를 거치지 않는 테스트

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

제32장 TLS 1.2를 이용한 통신

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

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

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

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

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

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

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

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

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

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

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

작가정보

저자(글) 박승원

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

작가의 말

처음 TLS 라이브러리를 만들기로 결심한 순간부터 긴 시간이 지났다. 당시 내가 만든 웹 개발 프레임워크에 Stateful한 가상 환경을 HTTP 프로토콜로 제공하는 기능을 완성했고, 이것을 HTTPS까지 동시에 지원하는 것으로 만들려고 했다. 내가 원하는 기능을 만들기 위해 고려하던 TLS 라이브러리 네 가지가 있는데, wolfssl, GNUTLS, openssl, Botan이었다. 내가 원하던 기능은 일반적이지 않고 약간의 tweaking이 필요해서, 라이브러리를 어느 정도 공부해야 할 필요가 있었다. 그런데 라이브러리들의 사용법이 어려워서 이런저런 매뉴얼을 조금씩 읽다가 포기하고 직접 만들자고 결심했다. 직접 만드는 것이 사용법을 배우는 시간보다 짧으리라는 중대한 오판을 했다. TLS가 얼마만큼의 방대한 지식이 누적돼 있는지도, 인증서의 내용도 아닌 형식만을 이해하는 데 Base64, PEM, DER 등 여러 가지 지식이 필요하다는 것도 몰랐다. 미리 알았더라면 어떻게든 기존의 라이브러리를 이용해서 기능을 완성했지, 직접 만들어야겠다는 생각은 꿈에도 하지 않았을 것이다.
무지와 오기가 나를 여기까지 오게 이끌었다.
돌이켜보면 “현대에 홍수처럼 쏟아지는 컴퓨터에 관한 지식 중 과연 암호학만큼 필수 불가결하고, 가치 있고, 오래 가는 지식이 얼마나 있을까”하는 생각도 든다. 내가 투자한 시간이 절대로 아깝지는 않다.
누군가는 또 어디서 나처럼 TLS의 어둡고 긴 터널을 통과하려고 하고 있을 것이다. 그 누군가의 Tunnel Loneliness Syndrome을 덜어주고자 이 책을 썼다. 조금이라도 도움이 되기를 바란다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다.
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다.
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품/오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    TLS 구현으로 배우는 암호학 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    TLS 구현으로 배우는 암호학 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    TLS 구현으로 배우는 암호학
    C++로 만드는 HTTPS 서비스
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글북액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글북액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)