HTTPS는 다음과 같은 단계로 데이터를 암호화합니다:
클라이언트 헬로(Client Hello): 클라이언트(예: 웹 브라우저)가 서버에 연결을 요청하며, 지원하는 암호화 알고리즘과 SSL/TLS 버전을 서버에 제안합니다.
서버 헬로(Server Hello): 서버가 클라이언트의 요청을 수락하고, 사용할 암호화 알고리즘과 SSL/TLS 버전을 선택하여 클라이언트에 응답합니다.
서버 인증(Server Authentication): 서버는 클라이언트에게 서버의 디지털 인증서를 보냅니다. 이 인증서는 신뢰할 수 있는 인증 기관(CA, Certificate Authority)에 의해 발급된 것입니다.
키 교환(Key Exchange): 클라이언트와 서버는 대칭키 암호화를 위한 세션 키를 생성하기 위해 공개키 암호화 방식을 사용합니다. 클라이언트는 서버의 공개키를 사용하여 세션 키를 암호화하고 서버에 보냅니다.
세션 키 생성(Session Key Generation): 서버는 자신의 비밀키를 사용하여 클라이언트가 보낸 암호화된 세션 키를 복호화합니다. 이제 클라이언트와 서버는 동일한 세션 키를 가지게 되며, 이 키를 사용하여 데이터 통신을 암호화합니다.
클라이언트와 서버는 생성한 세션 키를 사용하여 대칭키 암호화 방식으로 데이터를 암호화하여 전송합니다.
대칭키 암호화는 빠르고 효율적이며, 동일한 키를 사용해 데이터를 암호화하고 복호화합니다.
암호화된 데이터는 중간에서 가로채더라도 세션 키 없이 해독할 수 없습니다. 따라서, 데이터 탈취를 방지할 수 있습니다.
또한, SSL/TLS는 데이터 무결성을 확인하기 위해 메시지 인증 코드(MAC, Message Authentication Code)를 사용합니다.
이를 통해 데이터가 전송 중에 변조되지 않았음을 확인할 수 있습니다.
웹 브라우저에서 HTTPS 연결 여부를 확인할 수 있습니다.
주소창에 'https://'로 시작하거나, 자물쇠 아이콘이 표시됩니다.
자물쇠 아이콘을 클릭하면, 연결이 안전한지, 사용된 인증서 정보, 인증 기관 등을 확인할 수 있습니다.