ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SSL이란?
    개발 2020. 3. 17. 15:45

     

    SSL이란?

     

    아래는 구글을 검색해서 나온 결과이다.

     

    "SSL(Secure Socket Layer) 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다."

     

    그럼 이 SSL의 동작 원리를 이해하기 위해 알아야 하는 관련 개념 및 용어를 알아보자.

     

    * 대칭키 암호화 
    -> 암호화할 때 사용되는 Key값과 복호화 할 때 사용되는 Key값이 동일한 알고리즘


    * 비대칭키 암호화 
    -> 암호화할 때 사용되는 Key값과 복호화 할 때 사용되는 Key값이 서로 다른 알고리즘 (공개키 알고리즘이라고도 불림) “public key, private key 를 생성하고 해당 public key 로 암호화한 encrypted text는 private key로 복호화가 할 수 있고 private key 로 암호화한 encrypted text는 public key로 복호화 할 수 있다.”

     

    * CA  
    -> 인증기관은 보안적격 여부와 그리고 메시지의 암호화와 복원을 위한 공개키들을 발급하고 관리하는 네트웍 상의 기관

     

    * Hand shake  
    -> TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정

     

    * 공인인증서  
    -> 인터넷상에서 전자거래 등을 안심하고 사용할 수 있도록 해주는 사이버 증명서로 일상생활의 인감증명서에 비유할 수 있습니다. 공인인증서로 전자서명을 하면 상대방이 서명한 사람이 누구인지를 확인할 수 있고, 전자 문서의 위조나 변조를 예방할 수 있으며, 거래사실을 증명할 수 있습니다. 공인인증서는 정부의 철저한 심사 절차를 통해 지정받은 공인인증기관에서만 발급되므로 법적 효력과 안전성이 보장됩니다.

      
    (참조: https://overseas.mofa.go.kr/)

     

    위 용어들에 대한 이해를 바탕으로 SSL의 동작 과정을 설명하자면 대략적인 흐름은 아래 이미지와 같다.

    1. Client Hello

     

    2. Server Hello

     

    3. Client 에서는 2번 과정에서 전달 받은 인증서의 유효성을 판단 (내가 정상적인 서버에 데이터를 전송하는 것이 맞는가 판단)  
        3-1. 전달 받은 인증서 상의 발급자 확인  
        3-2. 발급자의 공개키를 통해 인증서상의 발급자 서명을 복호화  
        3-3. 3-2의 복호화한 서명의 hash값과 인증서의 정보의 hash값과 비교하여 유효성 확인  
        3-4. 3-3이 유효할 경우 정상적인 인증서로 판단  
        3-5. 1,2번 과정에서 전달받은 랜덤 데이터를 조합하여 pre master secret 생성하여 인증서에 포함된 공개키로 암호화

     

    4. pre master secret Server로 전송

     

    5. Server는 pre master secret 복호화

     

    6. Sever/Client pre master secret 을 통해 master secret 생성 후 해당 값으로 session key 생성

     

    7. session key를 통해 암호화 데이터 전송

     

    여기서 왜 굳이 전송한 public key를 통해 암호화하여 데이터를 전송하지 않고 session key를 통해 암호화하여 전송하는지 궁금할 것이다.

     

    위와 같이 처리하는 이유는 비대칭키를 통해 암호화를 하는 게 대칭키를 통한 암호화보다 느리기 때문이다.

     

    그럼 처음부터 사용자에게 대칭키를 주고 대칭키로만 암호화하면 안돼? 라고 의문을 가질 수도 있는데, 이 부분은 대칭키를 탈취 당할 경우 보안적인 위험에 노출될 수 있기 때문이다.

     

    이런 여러 사정들로 위와 같이 SSL은 동작하게 된다.

    '개발' 카테고리의 다른 글

    AWS IOT Rule Engine 을 통한 Elasticsearch 연동  (0) 2020.03.20
    AWS Elasticsearch  (0) 2020.03.20
    AWS IOT Solution  (0) 2020.03.17
    AWS CodeDeploy를 활용한 배포  (0) 2020.03.17
    OAuth2 동작 원리  (0) 2020.03.17
Designed by Tistory.