1. 핵심 개념
- HTTP (Hypertext Transfer Protocol)
- 웹 브라우저와 웹 서버 간에 데이터를 주고받는 통신 규약.
- 클라이언트가 서버에 요청(request)을 보내면, 서버는 응답(response)으로 데이터를 전송.
- 서버가 먼저 클라이언트에게 데이터를 보내는 것은 불가능.
- HTTPS (Hypertext Transfer Protocol Secure)
- HTTP에 보안 기능을 추가한 프로토콜.
- 데이터 암호화와 서버 신뢰성 검증을 통해 안전한 통신을 제공.
- 데이터 암호화
- 전송되는 데이터를 제3자가 알아볼 수 없도록 복잡하게 변환하는 과정.
- HTTPS에서는 주로 대칭키·비대칭키 방식을 조합해 사용.
- 서버 신뢰성 검증
- 접속하려는 웹사이트가 피싱 등 위조된 사이트가 아니라 공인된 공식 사이트인지 확인.
- 이를 위해 CA(인증 기관)가 발급한 디지털 인증서를 사용.
- 대칭키 암호화 (Symmetric-key Encryption)
- 암호화와 복호화에 동일한 키를 사용하는 방식.
- 장점: 연산 속도가 빠름.
- 단점: 키를 안전하게 공유하기 어려움(키 유출 시 보안 취약).
- 비대칭키 암호화 (Asymmetric-key Encryption) / 공개키 암호화 (Public-key Encryption)
- 암호화용 \*\공개키(public key)\\*와 복호화용 개인키(private key) 한 쌍을 사용.
- 공개키는 누구나 사용할 수 있지만, 개인키는 오직 소유자만 가짐.
- 장점: 키 공유 문제 해결(공개키 유출은 영향 없음).
- 단점: 연산 비용이 대칭키 방식보다 상대적으로 느림.
- 공개키 (Public Key)
- 누구나 사용할 수 있는 키.
- 주로 데이터를 암호화하거나, 개인키로 암호화된 서명을 검증하는 데 사용.
- 개인키 (Private Key)
- 소유자만 가지고 있는 키.
- 공개키로 암호화된 데이터를 복호화하거나, 데이터를 암호화(서명)해 신원을 증명하는 데 사용.
- 핸드셰이크 (Handshake)
- 클라이언트와 서버가 통신을 시작하기 전에 서로의 신원을 확인하고, 사용할 암호화 방식을 협상하는 초기 과정.
- 이 과정에서 대칭키를 생성해 공유하고, HTTPS 연결을 위한 암호화 채널을 설정.
- CA (Certificate Authority, 공인 인증 기관)
- 웹사이트의 신뢰성을 검증하고 디지털 인증서를 발급하는 기관.
- 브라우저에는 신뢰할 수 있는 CA 목록이 기본으로 내장되어 있음.
- 인증서에는 사이트 도메인, 발급자 정보, 공개키 등이 포함되어 있으며, 이 정보를 통해 서버 신뢰성을 확인.
2. 퀴즈 (단답형)
- HTTPS에서 ‘S’는 무엇을 의미하며, 이 ‘S’가 붙음으로써 HTTP와 비교하여 어떤 기능이 추가되나요?
- HTTPS는 크게 두 가지 보안 기능을 제공합니다. 하나는 정보 도청 방지이고, 다른 하나는 무엇인가요?
- HTTP로 아이디와 비밀번호를 전송할 때 발생할 수 있는 가장 큰 보안 위험은 무엇인가요?
- 대칭키 암호화 방식의 가장 큰 단점은 무엇인가요?
- 비대칭키 암호화 방식에서 공개키와 개인키는 각각 어떤 역할을 하는 한 쌍인가요?
- 네이버 서버가 사용자에게 데이터를 보낼 때, 그 데이터의 일부는 어떤 키로 암호화되어 사용자의 공개키로 복호화될 수 있도록 신뢰성을 확보하나요?