ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] 안정성을 위한 암호화와 인증서, 디지털 서명이란?
    IT/IT 기초(IT기사, 알고리즘, Linux 등) 2024. 11. 25. 22:12

    대칭키 암호화 방식과 공개키 암호화 방식

     

    암호화와 복호화의 핵심은 키이다.

    키는 무작위해 보이는 문자열이다.

    키와 원문 데이터에 수학적 연산 과정을 거치면 암호문이 되는데, 이를 암호화 알고리즘이라고 한다.

     

    대칭키 암호화는 암호화와 복호화에 동일한 키를 사용한다.

    제3자의 도청과 변조를 피해 상대방에게 안전하게 키를 전달해야 한다.

    그런데 그 방법으로 메시지를 송수신하면 된다.

     

    그래서 나온 것이 공개키암호화(비대칭키 암호화)이다.

    하나는 공개키이고 하나는 개인키이다.

    A 는 전달받은 B의 공개키로 메시지를 암호화하고 B에게 전송한다.

    B는 개인키로 복호화해 메시지를 확인한다.

     

    대칭키는 키를 안전하게 전송하기 어렵지만

    부하가 적어서 빠르다.

    공개키는 상대적으로 부하가 들지만, 안전하다.

     

    이러한 장단점을 고려해 함께 사용한다.

    대칭키를 상대에게 안전하게 전달하기 위해 공개키로 대칭키를 암호화한다.

    개인키로 대칭키를 복호화한다.

    이때의 대칭키를 세션키라고 한다.

     

    인증서와 디지털 서명

    인증서(certificate)는 공개키 인증서를 일컫는다.

    내 컴퓨터와 웹서버가 공개키 암호화 방식으로 통신한다고 하자.

    웹서버로부터 공개키를 전달할 때,

    누가 생성했는지, 조작되진 않았는지, 유효기간은 언제까지인지 등의 내용을 포함한 인증서를 전송한다.

    인증서는 인증기관(CA; Certification Authority)라는 제3의 기관에서 발급한다.

    CA 가 발행한 인증서에는 서명 값이 들어있고,

    인증서 내용에 대한 *해시 값을 CA 개인 키로 암호화한다.

    CA는 이를 클라이언트에게 인증서와 함께 전송한다.

     

    * 해시 값은 해시함수를 적용시킨 결괏값이다.

    해시 함수란 '임의의 길이의 데이터를 고정된 길이의 데이터로 변환해주는 함수'다.

    입력 데이터가 조금만 달라져도 완전히 다른 결과가 나온다.

    입력값 변화에 매우 민감해서 데이터 변조 여부를 검사하는데 사용된다.

     

    CA 공개키는 공개되어 있어서 서명값을 복호화한다.

    인증서 내용의 해시값과 인증서 내용을 해시한 값과 비교한다.

    일치한다면 CA의 해시키로 만들어졌음을 보장한다.

    따라서 인증서에 포함된 공개키를 안심하고 사용한다.

    개인키로 암호화된 메시지를 공개키로 복호화함으로써 신원을 증명하는 절차를 디지털 서명이라고 한다.

     

    대칭키암호화, 공개키암호화, 공개키인증서와 같은 것을 기반으로 동작하는 프로토콜로

    SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)가 있다.

    인증과 암호화를 수행하는 프로토콜이며, TLS는 SSL을 계승한 프로토콜이다.

    이를 사용하는 프로토콜로 HTTPS(HTTP over TLS)다.

     

    TLS 1.3을 기반으로 HTTPS 동작은 이렇다.

    1. TCP 쓰리웨이 핸드셰이크

        : TCP 연결을 위해 두 호스트가 각각 SYN,SYN+ACK,ACK플래그가 설정된 TCP세그먼트를 주고받음.

    2. TLS 핸드셰이크

        : 암호화 통신을 위해 키를 교환한다, 인증서 송수신과 검증이 이루어진다.

    3. 암호화된 메시지 송수신

     

Designed by Tistory.