Skip to content

Latest commit

 

History

History
178 lines (123 loc) · 7.65 KB

File metadata and controls

178 lines (123 loc) · 7.65 KB

HTTP 스터디 : 14장

14장 보안 HTTP

디지털 암호화를 이용해 도청이나 위조로부터 HTTP 트랜잭션을 안전하게 보호하는 방법


14.1 HTTP를 안전하게 만들기

  1. 다음은 HTTP 보안 기술이 필요로 하는 자격이다. 다음 중 잘못된 설명을 고르시오.
    1. 무결성 - 클라이언트와 서버는 그들의 데이터가 위조되는 것으로부터 안전해야 한다.
    2. 암호화 - 클라이언트와 서버는 도청에 대한 걱정 없이 서로 대화할 수 있어야 한다.
    3. 클라이언트 인증 - 클라이언트는 자신이 위조된 서버가 아닌 진짜와 이야기하고 있음을 보장받을 수 있어야 한다.
    4. 적응성 - 현재 알려진 최선의 보안 방법을 지원해야 한다.

정답
    1. 3번  ;클라이언트 인증은 서버는 자신이 가짜가 아닌 진짜 사용자와 이야기하고 있음을 알 수 있어야 하는 것을 의미한다. (설명은 서버 인증)

이를 위해 가장 많이 사용하는 것이 HTTPS이다. HTTPS를 알아보기 전에 암호 인코딩 기법에 대해 살펴본다.

14.2 디지털 암호학

  1. 다음 그림을 바탕으로 인코딩, 디코딩 과정에 대해 설명하시오.

캡처

캡처3

정답
    2. 평문 메시지를 디지털 인코딩 키를 이용해 인코딩 함수에 따라 암호문으로 인코딩한다.
       암호문을 디코더 함수와 디코딩 키를 이용해 원래의 평문으로 디코딩한다.

14.3 대칭키 암호법

  1. 다음은 대칭키 암호법에 대한 설명이다.
  • 대칭키 암호는 인코딩과 디코딩에 동일한 키를 사용한다. (O/X)
  • 가능한 키 값이 많을수록 무차별로 모든 키 값을 대입해보는 열거 공격이 성공하기 어려워진다. (O/X)
  • 가능한 키 값의 개수는 키가 몇 비트이며 얼마나 많은 키가 유효한지에 달려있다. (O/X)

  1. 대칭키 암호법의 단점을 서술하시오.

정답
    3. O   ;그것이 대칭키
       O   ;가능한 키 값이 많을수록 대입해봐야할 키의 가짓수가 많다.
       O   ;책을 참조
       
    4. 발송자와 수신자가 서로 대화하려면 둘 다 공유키를 가져야한다. 
       N개의 노드가 있고, 각 노드가 상대 N-1과 대화를 하려면 대략 N^2개의 비밀키가 필요하다.
       관리자 입장에서 이것은 지옥이다. (p.364)

14.4 공개키 암호법 (비대칭)

  1. 다음은 공개키 암호법에 대한 설명이다.
  • 공개키 암호 방식은 인코딩과 디코딩을 위해 두 개의 비대칭 키를 사용한다. (O/X)
  • 인코딩 키는 호스트만이 알고 있는 키이며, 디코딩 키는 모두를 위해 공개되어 있다. (O/X)
  • 인코딩과 디코딩 키의 분리는 인코딩을 누구나 할 수 있도록 해주는 동시에, 디코딩하는 능력은 소유자에게만 부여한다. (O/X)

  1. 공개키 암호법의 장점과 단점을 서술하시오.



  1. 다음 문장의 빈칸을 채우시오.
대칭키와 공개키 암호법은 각각 위와 같은 특징을 지닌다. 따라서 실제로는 대칭과 비대칭 방식을 섞어 사용한다.
예를 들어, 노드들 사이의 안전한 의사소통 채널을 수립할 때는 편리한 ____ 암호를 사용하고,
이렇게 만들어진 안전한 채널을 통해 무작위 대칭 키를 생성하고 교환하여 나머지 데이터를 암호화할 때는 빠른  ____ 암호를 사용하는 것과 같다.

정답
    5. O   ;그것이 공개키
       X   ;공개되어 있는 것은 인코딩 키, 디코딩 키는 호스트만이 알고 있어야 한다.
       O   ; 오직 호스트만이 디코딩 개인키를 가지고 있어 디코딩을 제한한다.
    6. <장점> 누구나 공개키만 알면 그 키에 대응되는 공개 서버에 안전하게 메시지를 보낼 수 있게 해준다.
              대칭 키의 쌍이 N^2로 폭발적으로 증가하는 것을 피할 수 있다.
       <단점> 단점은 공개키 암호 방식의 알고리즘은 계산이 느린 경향이 있다.
    7. 혼성 암호 체계에 대한 설명이다. 공개키 / 대칭키 (p.366)

14.5 디지털 서명

  1. 디지털 서명의 기능을 다음 두 가지 키워드를 사용하여 설명하시오. [체크섬, 위조]

정답
    8. 디지털 서명은 메시지에 붙어있는 특별한 암호  체크섬이다.
       오직 저자만이 극비 개인 키를 바탕으로 체크섬을 계산할 수 있다.
       따라서 이 서명은 메시지 위조를 방지한다. 메시지가 수정됐다면 체크섬은 더 이상 메시지와 맞지 않을 것이기 때문이다. (p.367)

14.6 디지털 인증서

디지털 인증서는 신뢰할 수 있는 기관으로부터 보증 받은 사용자나 회사에 대한 정보를 담고 있어 신원 증명에 사용된다.


9. 다음은 서버 인증을 위해 인증서를 사용하는 과정이다. 빈칸을 채우시오.
  • 사용자가 HTTPS를 통한 웹 트랜잭션을 시작하면 브라우저는 접속한 서버에서 디지털 인증서를 가져온다.
  • 브라우저는 인증서에서 ________을 검사한다.
  • 신뢰할만한 서명 기관이면 브라우저는 ____ 를 이미 알고 있을 것이며, 이 ___ 를 이용해 서명검증을 진행한다.
  • 서명 기관이 모르는 곳이라면 사용자에게 서명 기관을 신뢰하는지 확인하기 위한 대화 상자를 보여준다.

정답
    9. 서명 기관, 공개 키 (p.371)

14.7 HTTPS의 세부사항

  1. 다음은 HTTPS 트랜잭션의 과정이다. 순서대로 정렬하시오. a. SSL 보안 매개변수 핸드셰이크 b. TCP를 통해 암호화된 요청을 보냄 c. 서버의 443 포트로 TCP 커넥션 수립 d. SSL 닫힘 통지 e. HTTP 응답을 아랫 계층인 SSL로 보냄 f. TCP 커넥션 닫힘 g. HTTP 요청을 아랫 계층인 SSL로 보냄 h. TCP를 통해 암호화된 응답을 보냄

11. 신뢰할만한 CA(인증기관)가 '미슐랭'을 위한 인증서에 서명을 하고, 미슐랭이 '최지원의 맛집탐방' 사이트 인증서에 서명을 한다면, 브라우저는 '최지원의 맛집탐방' 인증서를 받아들일 수 있다. (O/X)



정답
    10. c, a, g, b, e, h, d, f  (p.275 그림 14-15)
    11. O, 서명자 신뢰도 검사

14.8 진짜 HTTPS 클라이언트

SSL 클라이언트와 서버 프로그래밍을 쉽게 만들어주는 상용 혹은 오픈 소스 라이브러리들이 존재한다. 그 중 OpenSSL은 SSL과 TLS의 가장 인기 있는 오픈 소스 구현이다.