3 분 소요


네트워크, 프로토콜을 통해 정보를 교환하는 현시대에 “보안” 이라는 키워는 가장 중요하다 여겨지는 요소이다.

우리는 흔히 http://, https:// 로 시작하는 URL로 사이트를 방문하여 서비스를 이용한 경험이 있을 것이다.

http:// 로 구현된 사이트는 나의 정보를 중간에서 간단하게 갈취가 가능하지만 https:// 는 이를 불가능 혹은 까다롭게 해준다.

HTTPS를 사용한다는 자체로 인터넷 통신에서 정보의 유출을 방지하고자 데이터 보안을 강화한 사이트를 이용한다는 의미며, 이를 구현해주는 기술이 바로 SSL/TLS 그리고 HTTPS이다.

SSL / TLS?


SSL과 TLS의 차이?

TLS는 SSL을 계승하여 발전 시킨 암호화 프로토콜이다.

Netscape 사에서 SSL에서 TLS로 이름을 변경한 정도이기에 둘은 혼용 돼서 사용할 수 있다.

SSL은 1996년 SSL 버전 3.0을 마지막으로 업데이트 되지 않고 SSL 3.1격인 TLS 1.0으로 개발되었다.

즉, 둘 다 인터넷 프로토콜 데이터 교환에 개인정보 보호, 인증, 데이터 무결성 등을 보장하며 안전한 통신을위한 보안 프로토콜의 역할을 똑같이 수행한다.

SSL/TLS로 구축한 보안 프로토콜은 응용계층 및 전송계층의 사이에서 적용된다.

SSL

Secure Sockets Layer. 이름에서 알 수 있듯이 암호화된 인터넷 보안 프로토콜이며, 소켓 통신 계층에서 보안 요소를 추가했다고 볼 수 있다.

인터넷 통신에서 개인정보 보호, 인증, 데이터 무결성을 위해 1995년 Netscape 사에서 개발을 진행했다.

유저들과, 사이트 혹은 두 시스템 사이에서의 데이터 교환 내용을 암호화 알고리즘을 이용하여 데이터와 scramble하여 해커와 같은 중간 종자들이 온전한 데이터를 읽을 수 없게 보장한다.

SSL은 전자 서명을 지원하는 시스템간의 민감정보를 교환하는 동안 “Handshake” 라는 프로세스를 통하여 비인가된 접근과 변조를 방지한다.

Handshake는 브라우저와 웹 서버와 같은 통신 디바이스 사이에서 아래와 같은 과정을 통해 상세한 통신 설정을 진행한다.

  • 지금 세션에서 어떤 버젼의 SSL/TLS 를 사용하는지 확인.
  • 어떤 알고리즘을 사용하여 데이터를 암호화할지 상세화.
  • 서버의 SSL 인증서 공개키와 인증기관의 전자 서명을 통해 클라이언트를 구분.
  • Handshake의 과정이 마무리되고 대칭 암호화를 사용하기 위한 세션 키를 생성.

SSL 인증서(SSL Certificate)

웹 사이트 혹은 애플리케이션 서버에서 보유하고 있는 SSL이 어떤 것인지 구분하는 용도로 사용된다. SSL 인증서는 암호화가 가능한 웹 사이트의 공개 키로도 알려져있는데, 공개키로 암호화된 데이터를 서버에서 보유하고 있는 비밀키로 해독하여 데이터를 다룬다.

즉, 서버마다 암호화하는 방법, 이를 복호화하는 비밀키가 다르기에 접속하고 있는 사이트 마다의 SSL 인증서가 필요하다.

TLS

Transport Layer Security. SSL을 계승하여 발전시킨 보안 프로토콜이다. 1999년 Internet Engineering Task Force(IETF)에서 SSL을 좀 더 강화하여 설계 한 뒤, 현재 널리 사용되고 있는 기술이다.

SSL은 웹 애플리케이션과 서버 간의 데이터를 보호하는데 주로 사용했다면, TLS는 이메일, 메시징, VoIP와 같은 다른 통신을 암호화 하는데도 사용할 수 있다.

TLS 또한 Handshake 를 통한 보안 연결을 설립하며, 비대칭 암호화를 구현해준다.

TLS는 데이터 위조, 변조, 암호화, 데이터 무결성이 잘 지켜졌는지 확인하고 인증이 완료되면 Message Authentication Code(MAC) 로 서명되고, 수신자는 MAC을 확인하여 데이터가 잘 보존 됐는지 확인할 수 있다.

HTTPS?


Hyper Text Transfer Protocol Secure. SSL/TLS를 통하여 일반 HTTP의 request와 response를 안전하게 암호화 시켜주는 HTTP의 보안 버전이다.

누구나 쉽게 중간에서 데이터를 갈취 하는 것을 방지 하기 위해서, 웹 브라우저 간의 통신에서 사용되는 메시지가 어떤 형식인지를 정의해주며, request에 대하여 어떻게 respond 해야하는지 또한 정의 해준다.

특히 로그인을 하는, 개인정보를 통해 서비스를 이요하는 웹 사이트에서는 필수적으로 HTTPS를 설정하는 것을 권장한다.

URL의 http://, https:// 를 통하여 이런 보안 규정이 정해 졌는지 쉽게 확인 가능하다.

HTTPS != SSL/TLS


SSL/TLS와 HTTPS가 같은 것이다 라고 인식할 수 있지만, SSL/TLS는 보안 통신을 위한 프로토콜일뿐 실직적으로 통신을 주체하는 프로토콜은 아니며, HTTPS는 SSL/TLS의 기술로 구현한 보안 프로토콜위에서 실직적으로 통신을 주체하는 역할을한다.

즉, HTTPS는 SSL/TLS의 기술을 접합시킨 HTTP이다.

ref.
https://www.goanywhere.com/blog/what-is-ssl-tls-and-https
https://blog.naver.com/hai0416/221623579719