[HTTP] HTTPS

이준영·2023년 12월 20일
0

🌐 HTTP

목록 보기
6/9
post-thumbnail

HTTPS

HTTPS 는 HTTP에서 보안이 강화된 버전입니다. 네이버에 로그인 할 경우 아이디와 비밀번호를 HTTP로 전송한다면 아디와 비밀번호의 내용이 그대로 전송되지만, HTTPS로 보내게 되면 전송받는 서버만 알아볼 수 있도록 데이터를 암호화시켜 전송하게 됩니다.

추가적으로 접속하고 있는 사이트가 신뢰할 수 있는 사이트인지 검증해 주기도 합니다.

요약

1. 내가 사이트에 보내는 정보들을 제 3자가 못 보게 함.
2. 접속한 사이트가 믿을 만한 사이트인지 알려줌.

대칭키 vs 비대칭키

대칭키

메세지를 보내는 쪽과 받는 쪽이 동일한 키를 가지고 암호화/복호화 하며 데이터를 주고 받는 것을 의미합니다.

❗️ 대칭키의 한계
대칭키의 한계는 양쪽이 동일한 키를 공유하고 있어야 하기에 한번은 반대쪽으로 키를 전송해야 합니다. 이 때 키를 탈취당할 수 있다는 문제가 있습니다.

비대칭키(공개키)

대칭키의 단점을 보완한 방식. 대칭키에서는 A키로 암호화하고 A키로 복호화를 했다면, 비대칭 키는 A키로 암호화하고 A키(공개키)가 아닌, B키(개인키)로만 복호화 할 수 있습니다.

사용자는 공개되어있는 공개키(A키)로 데이터를 암호화해서 서버에 보내게 되고, 서버는 암호화된 데이터를 서버만 가지고있는 개인키(B키)로 데이터를 복호화 하게 됩니다.

또한 다른 피싱 사이트에서 보낸 데이터의 경우, 사용자의 공개키로 열어보려 하면 오류가 나기 때문에 해당 사이트에 대한 검증을 수행할 수 있습니다.


HTTPS 작동 원리

공개키 인증

사용자가 공개키를 받더라도, 해당 키가 원래 서버의 공개키라는 것을 인증해주는 공인된 민간 기업들 Certificate Authority(CA) 등이 존재합니다. 브라우저에는 CA의 목록들이 내정되어 있습니다.

HTTPS 작동 원리

클라이언트는 아직 서버를 신뢰하지 못해 handshake를 통해 인증 과정을 거치게 됩니다.

클라이언트는 랜덤 데이터를 서버로 보내고, 서버측은 응답으로 또 다른 랜덤 데이터와 인증서를 함께 클라이언트에게 보냅니다. 클라이언트는 인증서를 받아 서버가 보낸 인증서가 진짜인지 브라우저에 내장된 CA를 통해 비대칭키 시스템을 사용해서 인증하게 됩니다.

CA의 인증을 받은 인증서들은 해당 CA의 개인키로 암호화가 되어있고, 따라서 브라우저에 저장되어있는 CA의 공개키로 복호화가 가능하기에 인증서의 진위 여부를 판단할 수 있게됩니다.

서버로 부터 받은 인증서를 복호화 하면, 해당 서버의 공개키가 포함되어 있습니다. 서버와 클라이언트 사이에 공유할 키를 생성하기 위해 해당 서버의 공개키로 데이터를 암호화 하여 서버로 보내진 다음 일련의 과정을 거쳐 클라이언트와 서버가 공유하는 대칭 키가 만들어지게 됩니다.

❗️ 처음 SSL 인증을 받으면서 서버의 공개키를 받았는데 비대칭키 시스템을 사용하지 않는 이유
비대칭키는 서버에 부담이 많이 가기 때문에 서버와 클라이언트 사이에 공유 가능한 대칭키를 만드는데 사용하고, 공유하는 키가 생성된 이후에는 대칭키를 통해 데이터를 주고받게 됩니다.
profile
작은 걸음이라도 꾸준히

0개의 댓글

관련 채용 정보