lution88

HTTPS 란? 본문

Computer Science/Network

HTTPS 란?

lution88 2022. 8. 13. 17:42

HTTPS란 http에 암호화가 추가된 프로토콜입니다.

http는 평문 데이터를 전송하는 프로토콜이기 때문에 http로 비밀번호, 주민번호 등 보안이 필요한 데이터를 주고받는 경우,

제 3자에 의해서 조회가 될 수 있습니다.

이를 방지하기 위해 http에 암호화가 추가된 프로토콜(SSL)이 https 입니다.

즉, HTTPS는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신규약인 것이죠.

    - SSL : Secure Socket Layer

     : 보안 소켓 계층으로 웹 사이트와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술.

    - HTTP : HTTP <-> TCP | HTTPS : HTTP <-> SSL <-> TCP

 

HTTPS에서는 대칭키 암호화와 비대칭키 암호화가 모두 사용됩니다.

비대칭키 암호화/복호화는 비용이 매우 크므로, 서버와 클라이언트가 주고 받는 모든 메시지를 비대칭키로 암호화하면

오버헤드가 발생할 수 있습니다.

그래서 서버와 클라이언트가 최초 1회 서로 대칭키를 주고받을 때 비대칭키를 사용하고,

이후 메세지를 주고받을 때는 주고받은 대칭키로 암호화/복호화를 합니다.


암호화 과정

  1. 클라이언트가 서버로 최초 연결을 시도합니다.
  2. 서버는 공개키(인증서)를 브라우저에게 넘겨줍니다.
  3. 브라우저는 인증서의 유효성을 검사하고 세션키를 발급합니다.
  4. 브라우저는 세션키를 보관하고 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송합니다.
  5. 서버는 전송받은 세션키를 자신의 공개키를 사용하여 복호화 하여 세션키를 얻습니다.
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 이 후 데이터를 전달할 때는 세션키로 암호화/복호화를 진행합니다.
  7. 공개키로 암호화된 메세지는 개인키를 가지고 있어야만 복호화가 되기 때문에 서버(기업)을 제외한 누구도 알 수 없습니다.

 

'Computer Science > Network' 카테고리의 다른 글

OSI 7 계층이란?  (0) 2022.08.14
HTTP 메소드  (0) 2022.08.13
HTTP의 상태코드  (0) 2022.08.13
HTTP란?  (0) 2022.08.13
Comments