SSL은 기존의 프로토콜에 보안 계층을 추가할 수 있도록 하는 프로토콜
- SSL이란
Secure Socket Layer
의 약자로, 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약입니다. 이 프로토콜은 인터넷과 같이 TCP/IP 네트워크를 사용하는 통신에 적용됩니다. - 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해주는데, 이 규약은 웹 브라우징, 전자 메일, 인스턴트 메신저, Voice-over-IP 등의 응용 부분에 적용되고 있습니다.
- 주로 HTTP, FTP, TELNET 등과 같은 프로토콜에 SSL과 같은 보안 프로토콜을 결합하여 HTTPS, SFTP, SSH 등과 같은 프로토콜로 사용합니다.
- TLS란
Transport Layer Security
의 약자로, SSL과 거의 동일한 프로토콜입니다. 단, TLS는 SSL에 대한 IETF에서 1999년 1월 RFC 2246과 같은 표준 규약으로 정의된 버전이라고 할 수 있습니다. -
-
SSL(TLS)의 3단계 기본 절차는 다음과 같습니다.
- 1. 지원 가능한 알고리즘 서로 교환
- 2. 키 교환 및 인증
- 3. 대칭키 암호로 암호화하고 메시지 인증
암호화 통신(SSL, TLS)의 간단한 원리
- 연결지향 통신을 위한 3-HandShake을 수행
- SSL과 TLS 통신도 여느 통신과 마찬가지로 연결성을 유지하는 통신입니다. 따라서 연결을 먼저 수행합니다.
- 서버는 연결이 가능한가에 대한 응답을 주게 되는데, 연결 가능 시에만
SYN/ACK
라는 패킷을 보내게 됩니다. - 연결이 가능하다라는 응답을 들었다는 패킷인
ACK 패킷
을 보내 연결을 완전하게 수행합니다. 이후부터 SSL과 TLS 보안 통신을 위한 암호화 통신 준비과정을 시작하게 됩니다.
- SSL, TLS 암호화 통신 과정
- SSL과 TLS는 통신을 수행하기 전에 먼저 암호화를 수행하기 위한 준비를 수행하게 됩니다. 이러한 암호화를 수행하기 위해 각 사용자와 서버는 연결을 수행할 준비를 하고,
암호화를 수행할 알고리즘을 교환
합니다. - 사용자는 서버와 암호화 통신을 수행하기 위해, 4번에서와 같이
자신이 사용할 수 있는 암호알고리즘 리스트를 전송
합니다. 그렇게 되면 서버에서 암호화에 사용할 알고리즘을 선택할 수 있게 됩니다. - 암호화 통신은 중간자 공격이라는 공격을 수행할 수 있습니다. 이러한 공격으로부터 안전하기 위해서는
제 3자에게 인증받은 인증서를 기반으로 통신
하게 됩니다. 그러므로 5~6번에서는 먼저, 정상적인 서버(인증받은 서버)인지 확인할 수 있는 인증서를 공유합니다. - 이후 인증이 정상적으로 완료되었다면, 암호화 통신에 사용할 암호 알고리즘을 최종적으로 교환하게 됩니다.
- 위의 과정이 모두 정상적으로 완료되었다면, 이후부터는 암호화가 적용된 안전한 데이터 통신이 가능합니다.