HTTPS : Hypertext Transfer Protocol Secure
- SSL/TLS가 제공하는 암호화 계층으로 감싸진 HTTP 프로토콜
프로토콜 계층
- SSL/TLS 위에서 동작하는 프로토콜들이다
- https, ftps, imaps, ldaps, pop3s, smtps 등
HTTPS의 중요성
- 암호화 없이는 브라우저와 웹사이트 사이에 전송되는 데이터가 일반 텍스트로 이동한다. 따라서 누구나 쉽게 가로채서 해당 정보를 읽을 수 있다는 것을 의미한다
- HTTPS 는 다음을 방지한다
- 도청 : 제 3자가 통신 내용을 볼 수 없게함
- 변조 : 전송중인 데이터 수정 불가
- 위조 : 메시지가실제로 의도된 출처에서 왔는지 확인 가능
SSL/TLS (Secure socket layer / Transport layer security)
- SSL : Netscape에서 개발 (3.0버전까지 있음)
- TLS : IETF에서 표준화 (TLS 1.3)
HTTPS 의 핵심 구성 요소
-
대칭키 암호화 알고리즘 (암호화, 복호화에 사용되는 키가 같음)
- DES, AES
- 암호화 및 복호화 성능이 우수하다
-
비대칭키 암호화 알고리즘 ( 암호화, 복호화에 사용되는 키가 다름)
- 공개키, 개인키 쌍으로 구성된다
- 공개키로 암호화한 데이터는 개인키로만 복호화 가능
- 개인키로 암호화한 데이터는 공개키로만 복호화 가능
- RSA
키 교환 알고리즘
- 안전한 통신을 위한 키를 교환하는 방법
- 키 합의 (DH) 방식
- 키 전송 (RSA) 방식
인증서 (Certificate)
- 웹 사이트의 신원을 확인하는 디지털 문서
- 포함정보 : 도메인 이름, 조직정보, 공개키, 발행자 정보, 유효기간
인증기관 (Certificate Authority, CA)
- 인증서를 발행하고 검증할 수 있는 제 3자 기관
- DigiCert, Let's Encrypt, GlobalSign 등...이 주로 인증기관임
HTTPS의 작동 방식:
- HTTPS 연결이 설정될 때 다음과 같은 과정이 진행됨
1) 핸드셰이크: 클라이언트와 서버가 서로를 인식하고 사용할 암호화 방법을 정함
2) 인증: 서버는 인증서를 제공하여 자신의 신원을 증명함
3) 키 교환: 안전한 통신을 위한 세션 키를 생성
- 먼저 비대칭키(공개키/개인키)를 사용하여 안전하게 대칭키를 교환
- 이후 실제 데이터 통신은 성능이 좋은 대칭키를 사용
4) 암호화된 통신: 모든 데이터는 합의된 대칭키를 사용하여 암호화 된다
보안의 중요성 :
- HTTPS와 SSL/TLS는 현대 인터넷 보안의 기반이 된다
- 개인정보 보호: 사용자의 민감한 정보(신용카드 정보, 로그인 자격 증명 등)를 보호
- 데이터 무결성: 전송 중인 데이터가 변경되지 않도록 보장
- 인증: 사용자가 의도한 실제 웹사이트와 통신하고 있음을 확인
이러한 보안 메커니즘을 이해하는 것은 현대 웹 개발과 네트워크 보안의 기본적인 요소가 된다