Network
HTTP와 HTTPS의 차이점
by orioncsy
2023. 2. 15.
HTTP와 HTTPS의 차이점
HTTP 개념
HTTP(HyperText Transfer Protocol)
- 웹 서버와 브라우저 사이의 데이터 전송을 위한 application layer 프로토콜이다.
HTTPS 개념
HTTPS(HyperText Transfer Protocol Secure)
- HTTP 프로토콜에서 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 인증서를 활용하여 HTTP 응답 및 요청을 암호화한다.
SSL Handshaking
개념
- 통신을 하는 브라우저가 웹 서버와 암호화 통신을 할 수 있도록 신분을 확인하고 필요한 정보를 주고 받는 과정
대칭키
- 하나의 키로 암호화와 복호화를 진행한다.
- 사용하는 비용이 적지만 노출되면 보안상 위험하다.
비대칭키
- 공개 키와 비밀 키로 암호화, 복호화를 진행한다.
- 공개 키로 암호화하면 비밀 키로 복호화할 수 있고, 비밀 키로 암호화하면 공개 키로 복호화할 수 있다.
- 보안상 유리하나 구현이 복잡하고 암호화, 복호화 속도가 느리다.
- 사용 방식
- 공개 키 - 암호화, 비밀 키 - 복호화
- 비밀 키 - 암호화, 공개 키 - 복호화
- 인증을 하려는 목적
- 서버가 비밀 키로 암호화해서 클라이언트에게 보내서 공개 키로 복호화에 성공했을 때 인증 완료
SSL에서 사용하는 대칭키와 비대칭키 혼합 사용 사례
- A가 B에게 접속 요청
- B는 A에게 공개 키를 전달
- A는 자신의 대칭 키를 B로 부터 받은 공개 키로 암호화하여 B에게 전달
- B는 비밀 키를 통해 복호화하여 대칭 키를 가져온다.
- 공유된 대칭키를 통해 정보를 통신한다.
CA(Certificate authority)
- 인증서는 클라이언트가 접속한 서버가 의도한 서버가 맞는 지 확인하는 것이다.
- 이러한 역할을 민간 기업이 하는데 이것이 CA이다.
- 개발자가 HTTPS를 적용하려면 신뢰할 만한 CA 기업의 인증서 구입
- CA 기업은 인증서를 기업의 개인 키로 암호화하여 준다.
SSL 인증서
- 서비스의 정보(CA 정보, 서비스 도메인)와 서버 측 공개 키가 들어 있다.
- 브라우저에 CA 기관 리스트와 해당 기관의 공개키를 가지고 있어 그것을 통해 인증서를 복호화해서 인증서를 확인하고 서버 측 공개 키를 가져온다.
SSL handshaking 과정
- 서버가 CA에 사이트 정보와 공개 키를 전달해서 CA는 비밀키로 암호화한 인증서를 받는다.
- 클라이언트가 브라우저에서 공개키를 가져와 인증서를 복호화하고 인증서를 확인 한 뒤에 공개키를 통해 대칭키를 암호화하고 서버에게 전달한다.
- 서버는 비밀키를 통해 복호화하여 대칭키를 가져와서 통신한다.
Reference
HTTP HTTPS 차이: 당신의 웹 사이트는 안전한가요? - 어센트 코리아
[네트워크] TLS & SSL Handshake