본문 바로가기

용어정리

http https정리

HTTP와 HTTPS의 차이

 - HTTP는 Hypertext Transper Protocol의 약자이다. HTTPS는 Over Secure Socket Layer 계층이 추가된 프로토콜이다. HTTP는 암호화되지 않은 데이터를 클라이언트와  서버가 주고받고 HTTS는 Secure단계를 거쳐 데이터를 암호화 및 복호화를 하여 보안을 강화한 프로토콜 이다.



HTTPS와 SSL

 - HTTPS는 SSL 프로토콜 위에서 돌아가는 프로토콜이다.



암호화 방식을 이해하기 위해서는 우선 대칭키와 비대칭키에 대해 알아야 한다.

- 대칭키 암호화방식은 클라이언트와 서버가 각각의 키를 공유하여 그 키로 암호화 또는 복호화를 진행한다. 이 방식의 단점은 키를 획득하면 암호화 및 

  복호화가 가능하다는 것이다.


 - 비대칭키 암호화방시에는 공개키 암호화 방식이 있다. 클라이언트와 서버가 각각의 암호화 또는 복호화 키를 두개 가지고 관리하는 방식이다.

   이 방식은 비공개키를 서버에두고 공개키를 각 클라이언트에 배포하는 방식이다. 따라서 한 층 더 보안을 강화 하였다. 하지만 이 방식은 컴퓨터의 매우 많은 자원을 사용하므로 성능이 저하될 수 있다.



https 동작 방식

서버와 클라이언트는 내부적으로 3단계를 거쳐서 통신을 한다.

1. 악수 (HandShake)

2. 전송

3. 세션 종료


1. 악수

 -  서버와 클라이언트는 통신하기 전 클라이언트와 서버가 실제 존재하는지 상대방과 데이터를 주고 받으려면 어떤 방법을 써야 하는지 파악한다.


    1. 클라이언트는 서버에 접속 한다. 이 단계를 ClientHello단계라고 한다. 이 단계에서 주고받는 정보

       - 클라이언트 측에서 생성한 랜덤 데이터

       - 클라이언트가 지원하는 암호화 방식들 (클라이언트와 서버의 암호화 방식이 다를수 있음)

       - 세션아이디(기존 세션id가 있다면 재활용) 

    

    2. 서버에서는 ClientHello를 받아서 ServerHello를 하게 된다.

       - 서버측에서 생성한 랜덤 데이터

       - 서버가 선택한 클라이언트 암호화방식

       - 인증서 (공개키, 서비스정보)


    3. - 클라이언트는 서버에서 받은 랜덤 데이터와 클라이언트가 생성한 랜덤 데이터를 조합하여 Pre Master Secret 키값을 생성한다.

       - 이때 사용하는 방식이 공개키  방식이다.

       - 이 키는 세션 단계에서 데이터를 주고 받을 때 암호화 하기 위해 사용

       - 서버로 부터 받은 인증서 공개키로 pre master secret 키를 암호화 하여 서버에 전송

   

   4.  - 서버는 클라이언트가 전송한 pre master scret값을 자신의 비공개키로 복호화

       - 클라이언트와 서버 모두 pre master scret값을 공유

       - 서버와 클라이언트는 일련의 과정을 거쳐 pre master scret값을 master secret값으로 만듬

       - master secret는 session key를 생성

       - session key 값을 이용해 서버와 클라이언트는 데이터를 대칭키 방식으로 암호화 한 후 주고 받음

   5. 클라이언트와 서버는 핸드쉐이크 단계의 종료를 서로 알린다.


2. 세션

   - 실제로 서버와 클라이언트가 데이터를 주고 받는 단계

   - 정보를 상대방에게 전송하기전에 session key 값을 이용해 대칭키 방식으로 암호화

    - 상대는 session key를 알고 있기 때문에 복호화 가능


3. 세션종료

   - 데이터 전송이 끝나면 ssl 통신이 끝났음을 알려줌 

   - 통신에서 사용한 대칭키 세션키를 폐기

   


참고

생활코딩 : https://opentutorials.org/course/228/4894



  





'용어정리' 카테고리의 다른 글

웹서버와 웹 컨테이너  (0) 2017.11.16
Restful이란  (0) 2017.10.17