CS
[네트워크] HTTPS
may_wonhui
2023. 11. 13. 19:32
HTTPS?
- 기존 HTTP 프로토콜에 암호화 프로토콜(SSL, TLS)을 사용하여 통신을 암호화한다.
- HTTP는 데이터를 평문으로 전송하기 때문에 스누핑(몰래 보기), 스니핑(데이터 가로채기), 데이터 조작의 위험이 있다.
- HTTPS를 통해 데이터의 기밀성, 무결성, 신뢰성을 보장할 수 있다.
- HTTPS를 사용하면 웹 브라우징 시 민감한 정보를 안전하게 전송하고 웹사이트의 신뢰성을 확보할 수 있다.
SSL/TLS?
- SSL과 TLS는 네트워크 통신의 보안을 위해 사용되는 암호화 프로토콜.
- 현재 사용되는 TLS의 이전 버전이 SSL.
- SSL(Secure Sockets Layer), TLS(Transport Layer Security)
- 데이터를 암호화하여 중간에서의 가로챔을 방지하고, 데이터가 중간에 변경되지 않도록하여 무결성을 보장함
- 공개키와 개인키를 사용하여 데이터를 암호화하고 복호화
SSL/TLS 핸드셰이크?
- HTTPS 암호화 과정에 대해 설명해주세요. (SSL Handshake의 동작 과정을 설명해 주세요. )
- SSL Handshake는 클라이언트와 서버 간의 안전한 통신을 설정하기 위한 과정
- SSL Handshake 동작 과정
- Client Hello: 클라이언트는 SSL의 버전 정보, 암호화 알고리즘 목록 정보 등을 포함한 “Client Hello” 메시지를 서버에 전송
- Server Hello: 서버는 클라이언트의 “Client Hello” 메시지를 수신하고, 선택된 암호화 정보와 서버의 디지털 인증서를 포함한 “Server Hello” 메시지를 클라이언트에 전송
- 인증서 교환
대칭키/비대칭키?
- 대칭 키(Symmetric Key)
- 암호화하는 키와 복호화하는 키가 동일함
- 장점
- 처리 속도(암호화 및 복호화)가 빠르기에, 대용량 데이터 암호화를 빠르게 처리할 수 있다는 효율성
- 대칭 키 관리는 상대적으로 간단 (두 통신 당사자가 공유된 키를 사용하면 되므로)
- 단점
- 대칭 키를 안전하게 교환하기가 어려움. 이를 위한 메커니즘이 필요함.
- 많은 사용자 간 동일한 대칭 키를 공유하면 보안 위협이 발생할 수 있음
- 비대칭 키(Asymmetric Key)
- 암호화하는 키와 복호화하는 키가 다름
- 암호화에 사용되는 공개키와 복호화에 사용되는 개인키로 이루어진 키 쌍
- 장점
- 공개 키를 안전하게 공유할 수 있기에, 대칭키보다 키 교환에서 안정성 높음
- 디지털 서명: 메시지의 출처를 인증하고 데이터의 무결성을 보장하는 데 효과적
- 단점
- 대칭 키보다 느림. 대용량 데이터 암호화의 경우 상대적으로 더 많은 계산이 필요
- 키 관리가 복잡하며, 개인 키 보호가 필요함.
- 대칭 키와 비대칭 키를 혼합적으로 사용하여 대칭 키의 빠른 처리 속도 + 비대칭 키의 안전한 키 교환 두 강점을 결합하여 보안과 효율성을 균형있게 유지
공개키/개인키?
- 공개키public key - 개인키private key ⇒ 비대칭 키
- 공개키(public key)
- 공개키는 다른 사람에게 공개할 수 있는 키로, 누구나 공개 키를 알 수 있고 사용할 수 있다.
- 메시지를 공개 키로 암호화하면 해당 메시지는 해당 공개 키에 맞는 개인 키를 가지고 있는 수신자만 복호화할 수 있다.
- 개인키(private key)
- 개인키는 공개되어서는 안되며 안전하게 보호되어야 함
- 개인키는 복호화와 디지털 서명 생성 시 사용
- 예시
- Bob의 공개 키는 누구나 알고 있고, Bob에게 이 공개키를 통해 암호화된 메시지를 보내면, Bob은 자신의 개인키를 통해 메시지를 해독할 수 있다.
- 공개키(public key)