ABOUT ME

Today
Yesterday
Total
  • HTTPS
    Background 2022. 3. 14. 00:12

    HTTP프로토콜에 보안성을 더한 HTTPS에 대해 정리하였습니다.

     

     


    < HTTPS 프로토콜 >

    HTTPS는 Hyper Text Transfer Protocol over Secure Socket layer의 약자입니다. HTTP over SSL(TLS), HTTP over Secure라고 부르기도 합니다.

     

    • HTTP프로토콜은 인터넷상에서 데이터를 주고받을 때 사용하는 프로토콜입니다. HTTP프로토콜은 정보를 텍스트로 주고받기 때문에 인터넷상에서 전송데이터를 인터셉트 하는 경우 의도치 않는 데이터 유출이 발생할 수 있습니다.

     

    • 이를 방지하기 위해 HTTPS프로토콜을 사용하는데 이를 사용하면 주고받는 통신 내용이 암호화되기 때문에 데이터를 인터셉트 하더라도 알아볼 수 없어 HTTP보다 보안성이 뛰어납니다.

     

     


    < SSL 동작 방식 >

    HTTPS를 HTTP over SSL(TLS)라고 부르는 만큼, HTTPS은 SSL위에서 작동하고, HTTPS의 보안성도 SSL에서 왔습니다.

    SSL은 Secure Sockets Layer의 약자이고, 암호화 기반 인터넷 보안 프로토콜입니다.

     

    +. TLS (Transport Layer Security)

    : 과거 SSL에서 발전하며 이름이 변경 된 것입니다. 하지만 아직도 SSL이란 단어를 많이 사용합니다.

     


    < 동작 방식 >

    : 공개키 암호화 방식과 공캐키의 단점을 보완한 대칭키 암호화 방식을 사용합니다.(공캐키 방식은 느림)

    => 공개키 방식으로 대칭키를 전달하고, 대칭키를 이용해 서버와 클라이언트가 통신합니다.

     

    < 공개키 방식 >
    • A키로 암호화를 하면 B키로만 복호화를 할 수 있다.
    • B키로 암호화를 하면 A키로만 복호화를 할 수 있다.
    • 둘 중 하나를 비공개키(Private Key) 혹은 개인키라 부르며, 이는 자신만 가지고 있고 공개되지 않는다.
    • 나머지 하나를 공개키(Public Key)라고 부르며 타인에게 제공한다. 공개키는 유출이 되어도 비공개키를 모르면 복호화 할 수 없기 때문에 안전하다.
    < 대칭키 방식 >
    • 공개키와 다르게 동일한 키로 암호화, 복호화가 가능하다.
    • 대칭키는 매번 랜덤으로 생성되어 누출되어도 다음번에 사용할 때에는 다른 키가 사용되기 때문에 안전하다.
    • 공개키보다 빠르게 통신할 수 있다.

     

    • 이러한 SSL 인증방식을 적용하려면 인증서를 발급받아 서버에 적용시켜야 합니다.
      : 인증서는 사용자가 접속한 서버가 우리가 의도한 서버가 맞는지 보장하는 역할을 합니다.

     

    • 인증서를 발급하는 기관을 CA(Certificate Authority)라고 부릅니다. 공인인증기관의 경우 웹 브라우저는 미리 CA리스트와 각 CA의 공개키를 알고 있습니다.

     


    < 동작 과정 >

    : 사이트 = 서버, 웹브라우저 = 클라이언트

    출처 :&nbsp;https://devdy.tistory.com/14

     

    1. 사이트(서버)는 자신의 정보공개키를 인증기관에 제출합니다.

    2. 인증기관은 제출된 데이터 검증절차를 걸쳐 개인키로 사이트(서버)에서 제출한 정보를 암호화합니다.

    3. 암호화 된 인증서를 사이트(서버)로 전달합니다.

    4. 웹 브라우저는 공인인증된 기관의 리스트와 각각의 공개키를 미리 알고 있습니다.

     

    출처 :&nbsp;https://devdy.tistory.com/14

     

    1. 사용자가 웹브라우저(클라이언트)에 접속할 경우 서버(사이트)에서 인증서를 전송합니다.

    2. 웹브라우저(클라이언트)는 미리 알고있는 인증기관의 공개키로 인증서를 해독하여 검증합니다. 
    그러면 사이트의 정보사이트의 공개키를 알 수 있게 됩니다.

    3. 얻은 사이트의 공개키로 대칭키를 암호화해 사이트(서버)에 보냅니다.

    4. 사이트는 개인키로 대칭키를 복호화하고, 얻은 대칭키로 클라이언트와 데이터를 주고받습니다.

     

    출처 :&nbsp;https://devdy.tistory.com/14

     

    1. 대칭키로 통신을 하다가, 세션이 종료되면 사용하던 대칭키를 폐기합니다.

     

     


    < 인증서 >

    브라우저(클라이언트)가 서버로부터 전달받은 인증서 정보를 확인 후 인증된 CA에서 발급한 인증서가 아니라면 화면에 경고창을 띄워 서버와 연결이 안전하지 않다는 화면을 보여줍니다.

     

     

    : 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기 때문에 인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 다른 '중간자 공격'을 감지하여 보안 위협으로부터 사용자 및 사용자의 데이터를 보호할 수 있습니다.
    : 경고를 직접 보여줌으로써 브라우저들은 인증된 CA가 발급한 인증서를 이용하여 데이터를 제공하는 안전한 서버를 사용할 수 있게 사용자를 유도합니다.

     

     


    Reference:
    [네트워크]HTTP와 HTTPS의 차이점 그리고 동작 방식: https://devdy.tistory.com/14

     

    [네트워크]HTTP와 HTTPS의 차이점 그리고 동작 방식

    HTTP와 HTTPS의 차이점이 뭔가요? 음...HTTPS가 더 보안에 강하다는 점? 그럼 왜 보안에 강할까, 대체 어떤 차이 점이 있을까 이 글을 다 마쳤을 때 적어도 저 질문에 대해 단답으로 끝내는 일이 없도

    devdy.tistory.com

    Http와 Https 이해와 차이점 그리고 오해(?): https://jeong-pro.tistory.com/89

     

    Http와 Https 이해와 차이점 그리고 오해(?)

    HTTPS (feat. http) HTTPS에 대해 알아보기 전에 HTTP를 간단하게 설명할 수 있으면 좋다. HTTP는 HyperText Tranfer Protocol로 WWW상에서 정보를 주고 받는 프로토콜이다. 클라이언트인 웹브라우저가 서버에 HTT..

    jeong-pro.tistory.com

     

     

     

    'Background' 카테고리의 다른 글

    Node.js란?  (0) 2022.05.14
    let, var, const의 차이점 & 호이스팅(Hoisting)  (0) 2022.04.29
    Project Workflow  (1) 2022.02.22
    HTTP  (0) 2022.02.10
    Server-Side API Calls to External APIs  (0) 2022.01.10

    댓글

Designed by Tistory.