본문 바로가기

Engineering

Engineering #1 - SSL(TLS) 인증 프로세스

용어 정리
  • SSL : Secure Sockets Layer
  • TLS : Transport Layer Security
  • CA : Certificate Authority
  • 대칭키 암호화 : 동일한 암호키를 가지고 데이터를 암호화하고 복호화하는 방식
  • 공개키 암호화 : 공개키(Public-key), 비밀키(Private-key)로 구성되며, 각 키로 암호화 또는 복호화가 가능한 방식
기본개념

SSL과 TLS는 같은 말이다. Netscape에서 SSL이 발명되어 사용되다가 IETF(표준기구)가 관리하게 되면서 TLS라는 이름으로 바뀌었다. SSL은 성능향상을 위하여 대칭키 암호화와 공개키 암호화 두 가지 암호화 방식을 같이 사용한다. Client와 Server 가 데이터를 주고 받을 경우 실제 데이터는 대칭키를 사용하여 암호화된다. 데이터를 복호화하기 위해서는 이 대칭키가 필요한데 대칭키가 외부에 노출되면 누구나 복호화가 가능하기 때문에 대칭키는 다시 공개키 방식으로 암호화된다. 이렇게 하면 Client와 Server가 통신을 할때 중간에 대칭키를 가로 채더라도 대칭키 자체가 암호화 되어 있기 때문에 안전하다.

 

동작방식

SSL 인증서를 통한 인증 방식

  1. CA(인증기관)로 부터 발급받은 인증서를 서버에 설치
  2. Browser가 Server에 접속하면 브라우저는 서버로 부터 SSL 인증서를 다운로드 한 후 CA 기관을 확인함. CA기관의 공개키를 이용하여 SSL 인증서를 복호화하고, SSL 인증서 내의 서버 공개키를 취득
  3. Browser와 Server는 상호간 임시데이터를 주고 받는 방식으로 Handshake를 수행하여 암호화 방식을 결정함. 이때 SessionKey가 생성되며, 생성된 SessionKey는 Server의 공개키로 암호화됨.
  4. Browser와 Server는 Session을 생성하고, 전송할 데이터를 SessionKey로 암호화하며, 수신 데이터를 복호화하여 통신함. 통신이 종료되면 세션을 모두 종료함.

공개망(인터넷)을 이용한 애플리케이션의 경우 Https 적용이 기본 요구사항이지만, 작업할때는 언제나 매뉴얼에 따라 기계적으로 작업했었다. 그러다 보니 세세한 동작 매카니즘의 중요성을 잊게되고, 기억하지 못하는 것 같다.

내 기억력의 한계를 느끼며, 나를 위해 정리해본다.

'Engineering' 카테고리의 다른 글

Engineering #3 - SSL 인증서 생성  (0) 2021.02.08
Engineering #2 - DNS & Cloud  (0) 2021.02.04