SSL과 TLS는 모두 웹 서버와 사용자의 웹 브라우저 간 통신을 암호화 하는데 사용되는 프로토콜입니다. 공개 키와 개인 키를 교환하여 보안 세션을 생성하여 통신을 암호화하는 방식을 사용합니다. TLS는 MAC 함수 생성을 위해 다른 암호화 알고리즘을 사용하며 이는 이전 버전의 SSL보다 많은 경고 코드를 포함하고 있습니다.
SSL 및 TLS는 네트워크 (예: 웹서버에 연결하는 클라이언트)를 통해 작동하는 서버, 시스템 및 응용프로그램간에 인증 및 데이터 암호화를 제공하는 암호화 프로토콜입니다. SSL은 TLS 이전의 프로토콜입니다.
SSL
은 원래 Netscape에 의해 개발되었으며 1995년 SSL 2.0(1.0은 대중에게 공개되지 않음)을 통해 처음으로 등장했습니다. 몇 가지 취약점이 발견된 후 1996년에 버전 2.0이 SSL이 3.0으로 빠르게 대체되었습니다. 참고로 버전 2.0 및 3.0은 때로 SSLv2 및 SSLv3으로 표기됩니다.
TLS
는 1999년에 새 버전의 SSL으로서 도입되었으며 SSL3.0을 기반으로 했습니다.
"이 프로토콜과 SSL 3.0의 차이점은 극적은 아니지만 TLS 1.0과 SSL 3.0이 상호 운용되지 않을 만큼 중요합니다."
SSL 2.0 및 3.0 모두 IETF에 의해 사용 중지되었습니다. (각각 2011년 및 2015년) 폐기된 SSL 프로토콜(예: POODLE, DROWN)에서 수년동안 취약점이 발견되어 계속해서 개선되고 있습니다. 대부분의 최신 브라우저는 이전 프로토콜을 사용하는 웹서버를 만날 때 사용자 환경이 저하될 수 있습니다. (예: URL 표시 줄의 자물쇠 또는 보안 경고) 이러한 이유로 서버 구성에서 SSL 2.0 및 3.0을 비활성화해야 하며 TLS 프로토콜만 사용하도록 설정해야 합니다.
SSL(Secure Sockets Layer)
은 보안 소켓 계층이라는 뜻으로 인터넷을 통해 전달되는 정보 보안의 안전한 거래를 허용하기 위해 Netscape사에서 개발한 인터넷 통신 규약 프로토콜이며,TLS(Transport Layer Security)
은 SSL 3.0을 기초로 해서 IETF가 만든 프로토콜로 이는 SSL 3.0을 보다 안전하게 하고 프로토콜의 스펙을 더 정확하고 안전성을 높이는 목적으로 고안되었습니다.
먼저 Client가 Request를 하면 TCP Level에서 연결이 맺어진 이후 SSL/TLS Handshake를 수행합니다. ClientHello 메시지를 보내면서 이 메시지에는 클라이언트에서 가능한
TLS 버전
,세션 식별자
,암호 설정
등의 정보가 포함됩니다.
다음으로 Server에서 암호화를 위한 인증서의 공개키를 내려주게 되면 client는 이 공개키가 신뢰할 수 있는 인증서의 키인지 확인합니다.
다음 단계로 서버는 ServerHello 메시지를 클라이언트에게 보냅니다. 여기에는 ClientHello 메시지의 정보 중 서버에서 사용하기로
선택한 TLS 버전
,세션 식별자
,암호 설정
등의 정보가 포함됩니다.
또한 Certificate 메시지를 보냅니다. 여기에는
서버의 인증서
가 들어있습니다. 이 인증서는 인증 기관에서 발급받은 것이며, 서버가 신뢰할 수 있는 자임을 인증합니다. 전송이 끝나면 ServerHelloDone 메시지를 보내 끝났음을 알립니다.
client 단에서는 해당 공개키를 신뢰한다면 이 client의 session key를 생성하여, 서버로부터 받은 공개키로 암호화하여 server로 전달합니다. 클라이언트는 서버에서 받은 인증서를 검증합니다.
유효 기간이 만료되지 않았는지
,신뢰할 수 있는 인증 기관에서 발급되었는지
,그 인증서가 해당 서버에게 발급된 인증서가 맞는지
등을 확인합니다. 서버를 신뢰할 수 있다고 판단하였다면 다음 단계로 넘어갑니다.
클라이언트는 임의의
pre-master secret
을 생성한 뒤, 서버가 보낸 인증서에 포함된 공개키를 사용해 암호화합니다. 이렇게 암호화된 pre-master secret을 ClientKeyExchange 메시지에 포함시켜 서버에 전송합니다.
해당 서버는 서버에 있는 개인키를 통해 복호화를 하여 client의
session key
를 확보하고 client가 준 cipherspec에서 서버가 허용하는chipherspec
을 client에 전달합니다.
서버는 전송받은 정보를 복호화하여 pre-master secret을 알아낸 뒤, 이 정보를 사용해
master secret
을 생성합니다. 그 뒤 master secret에서 세션 키를 생성해내며 이 세션 키는 앞으로 서버와 클라이언트 간의 통신을 암호화하는데 사용할 것입니다. 물론 클라이언트 역시 자신이 만들어낸 pre-master secret을 알고 있으므로, 같은 과정을 거쳐 세션 키를 스스로 만들 수 있습니다.
위 과정을 통해 server와 client는 동일한 session key를 가지게 되어 이후부터는 이 session key를 가지고 상호 암,복호화를 수행합니다. 이제 서버와 클라이언트는 각자 동일한 세션 키를 가지고 있으며, 이를 사용해 대칭 키 암호를 사용하는 통신을 할 수 있습니다. 따라서 우선 서로에게 ChangeCipherSpec 메시지를 보내 앞으로의 모든 통신 내용은 세션 키를 사용해 암호화해 보낼 것을 알려준 뒤, Finished 메시지를 보내 각자의 Handshake 과정이 끝났음을 알립니다.
사이버 공격에 SSL 암호화 트래픽이 이용되기 시작했으며 SSL 암호화 트래픽은 크게 2가지 방식으로 사이버 공격에 활용되고 있다.
하나는 DV 인증서 발급이 쉽다는 점을 악용해 피싱 사이트에 활용하는 방식이다. DV 인증서는 도메인의 소유권만을 확인하기 때문에 피싱 사이트에도 발급이 가능하다. 당연한 얘기지만 피싱 도메인의 소유권을 사이버 공격자가 갖고 있기 때문에 DV 인증서 발급 조건을 충족한다. 이런 피싱 사이트에 의한 피해를 예방하기 위해서는 HTTPS가 적용된 사이트라도, URL 및 인증서를 꼼꼼히 확인할 필요가 있다.
또 다른 위협은 SSL 암호화 트래픽에 악성코드가 첨부될 수 있다는 것이다. 이는 기업 입장에서 심각한 보안 사고를 초래할 수 있다. SSL 암호화 트래픽에 악성코드가 첨부되면 복호화 기술이 탑재되지 않은 네트워크 보안 장비로는 탐지할 수 없다. 기존 네트워크 보안 체계가 SSL 암호화 트래픽으로 뚫리는 것이다.
APT 공격(지능형 지속 공격)의 80%
, 해커의 41%
가 SSL 암호하 트래픽을 사용하고 있는 것으로 조사됐으며 유해 SSL 활동 공격은 1일 평균 60만 회가 발생하고 있었다.
APT(Advanced Persistent Threat) 지능형 지속 공격이란 ?
일정한 절차나 특정 기술을 계속 반복해서 사용하는 공격이 아니고, 계속 신규로 개발되는 새로운 전술과 기술을 이용하여 다양하게 진화하는 공격으로, DDoS와 같이 단시간 내에 공격이 이루어지지 않고, 짧게는 수일에서 길게는 수년 단위로 공격이 지속되는 공격 유형을 말합니다.
SSL 암호화 트래픽을 통한 사이버 공격에 대응하기 위해 기업들은 SSL 복호화 기술을 적용해 네트워크 보안 체계를 보강하고 있다. SSL 암호화 트래픽을 복호화해 가시성을 확보한다는 전략이다. 이에 따라 SSL 복호하 솔루션 시장도 점차 커지고 있으며, 기존 네트워크 보안 장비인 방화벽, 침입방지시스템(IPS)등에도 복호화 기능이 탑재되고 있다.
SSL 복호화 솔루션은 기존 네트워크 구성 변경 없이 운영이 가능하다는 장점이 있다. 네트워크 보안 장비 앞단에 설치돼 SSL 트래픽을 복화한 후 보안 장비에 전달한다. 이후 보안 장비에서 검사를 마친 트래픽은 다시 SSL로 암호화해 웹 서버에 전달하는 방식이다.
방화벽 등 보안 장비도 복호화 기능을 갖추고 있다. 하지만 이 경우에는 해당 보안 장비만을 위한 복호화를 하기 때문에 네트워크 속도가 늦어지는 원인이 될 수 있다. SSL 기술 도입 초기 기업들은 이러한 지연시간을 줄이기 위해서 SSL 가속기를 사용하는 경우도 있었다. 하지만 SSL 가속기는 SSL 트래픽을 복화한 후 다시 암호화하지 않다보니 내부 보안 사고의 위험성이 제기됐다. 이에 따라 SSL 복호화 장비의 필요성이 제기됐다.
기존의 사내 네트워크 보안은 여러 보안 제품이 위협을 단계별로 차단하고 미처 차단하지 못한 부분은 End-Point(사용자) 보안을 통해서 진행됐지만 SSL의 특성상 네트워크 중간에서 분석이 불가능하므로 기존 네트워크 장비가 본래 기능을 수행하지 못하게 됨으로써 SSL은 해커에게도 안전한 공격 경로가 되고 있는 것이다.