우아한테크코스 테코톡
라쿤의 HTTPS
카테고리 : 우아한테크코스 테코톡
라쿤의 HTTPS
HTTP (Hypertext Transfer Protocol)
- HTTP의 문제점
- 암호화 되어있지 않다.
- 누군가가 서버-클라이언트 간의 http 메시지를 볼 수 있다.
- 웹 브라우저에서 HTTP를 사용하면은 경고 문구가 나온다.
- 암호화 되어있지 않다.
HTTPS (Hypertext Transfer Protocol Secure)
- 사전지식
- 대칭키 암호화
- 암복호화에 서로 같은 키를 사용한다.
- 공개키 암호화
- 암복호화에 서로 다른 키를 사용한다.
- 디지털 서명
- 공개키 암호화 방식을 사용
- 대칭키 암호화
대칭키 암호화 | 공개키 암호화 |
---|---|
암복호화에 동일한 키 | 암복호화에 다른키 |
키의 길이가 짧아 암복호화가 빠름 | 키의 길이가 길어서 암복호화가 느림 |
키를 서로 나누는 과정이 필요 | 키를 나눌 필요가 없음 |
- SSL/TLS를 이용한 http 통신
- SSL 과 TLS의 차이점은 TLS가 SSL의 업그레이드 버전이다
- SSL(Secure Sorket Layer)
- 전송되는 데이터를 암호화
- HTTPS를 적용 하기 전에 사전에 서버가 행해야 되는 행동
- 서버는 인증기관으로 부터 본인의 정보와 인증서를 발급 해 달라는 요청을 한다.
- 인증기관은 인증기관이 가지고 있는 비밀키를 사용해서 이 정보에 대한 인증서를 발급해준다.
- 인증서에는 서버 도메인과 서버측 공개키, 인증기관 등의 정보가 들어간다.
- 클라이언트가 서버에게 요청한다.
- 서버는 클라이언트에게 인증서를 발급한다.
- 인증서 내에는 공개키가 있어서 클라이언트는 공개키를 얻을 수 있다.
- 인증서는 인증기관의 비밀키로 암호화가 되어 있는데 클라이언트는 인증기관에 공개키가 있어야 될텐데 인증기관의 공개키는 웹 브라우저의 인증기관 공개키를 사전에 가지고 있다.
- 이를 통해 서버의 공개키를 얻을 수 있고 이후 클라이언트는 대칭키를 만들어 낸다.
- 대칭키 암호화 방식이 공개키 암호화 방식에 비해 빠르기 때문에 데이터 전송하는데 있어서는 대칭키 암호화 방식을 사용하기 위해 대칭키를 공개키로 암호화해서 전달한다.
- 이를 통해 서버의 공개키를 얻을 수 있고 이후 클라이언트는 대칭키를 만들어 낸다.
- 서버에게 암호화된 대칭키를 전달하면 서버는 암호화된 대칭키를 받게 되고 복호화해서 대칭키를 얻는다. 서버의 비밀키를 사용해서
- HTTPS가 항상 좋을까?
- HTTPS는 HTTP보다 느리다
- 서로 키를 교환하는 과정이 추가로 필요
- 암복호화에도 걸리는 시간
- 그럼 왜 쓸까?
- HTTPS가 시간이 지나면서 개선된 상태
- 대부분의 웹브라우저에서 HTTP 2.0은 TLS 사용이 필수 - RFC7540
- 사이트의 보안은 매우 중요하다.
- HTTPS는 HTTP보다 느리다