HTTPS
정의 : HTTP/2는 HTTPS 위에서 동작한다. HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS
계층을 넣은 신뢰할 수 있는 HTTP 요청을 말한다. 이를 통해 통신을 암호화한다.
※ SSL/TSL
SSL은 1.0부터 시작해서 SSL 2.0, SSL 3.0 TLS(Transport Layer Security Protocol) 1.0, TLS 1.3까지 올라가며
마지막으로 TLS로 명칭이 변경되었으나, 보통 SSL/TLS로 많이 부른다.
전송 계층에서 보안을 제공하는 프로토콜이다. 통신을 할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하거나
변조하지 못하도록 합니다. SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증
메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
클라이언트와 서버와가 키를 공유하고 이를 기반으로 인증, 인증 확인 등의 작업이 일어나 한 번의 1-RTT가
생긴 후 데이터를 송수신하는 것을 볼 수 있습니다.
클라이언트에서 사이퍼 슈트(cypher suites)를 서버에 전달하면 서버는 받은 사이퍼 슈트의 암호화 알고리즘
리스트를 제공할 수 있는지 확인한다. 서버가 제공할 수 있다면 클라이언트로 인증서를 보내는 메커니즘이
시작되고 이후 알고리즘 등으로 암호화된 데이터의 송수신이 시작된다.
인증 매커니즘
인증 메커니즘은 CA(Certificate Authorites)에서 발급한 인증서를 기반으로 이루어진다.
CA에서 발급한 인증서는 안전한 연결을 시작하는데 필요한 공개키를 클라이언트에게 주고
클라이언트는 그 서버가 안전하다는 것을 바탕으로 통신이 이루어진다.
디피-헬만 키 교환 암호화 알고리즘
e의 경우는 g, d, p가 정해지면 계산만 하면 된다. 그러나 e,g,p가 주어진다면 d를 구하는 것이 쉽지 않다.
그러므로 d를 개인키로 하고 나머지는 공개키로 하면 개인키를 하나만 쓰더라도 보안적으로 우수하다
해싱 알고리즘
- SHA-256 알고리즘 : 해시 함수의 결괏값이 256비트인 알고리즘이며 해싱을 해야 할 메세지에 전처리를 하고
전처리된 메세지를 기반으로 해시를 반환한다.
→ 이렇게 TLS 1.3으로 통신한 클라이언트는 다시 사이트로 방문한다면 SSL/TLS 보안 세션을 만들 때
걸리는 통신을 하지 않아도 된다.
HTTPS 구축방법
1) 직접 CA에서 구매한 인증키를 기반으로 HTTPS 서비스를 구축한다.
2) 서버 앞단의 HTTPS를 제공하는 로드밸런서를 둔다.
→ 로드밸런서란? : 로드 밸런서(Load Balacner)는 클라이언트와 서버 그룹 사이에 위치해 서버에 가해지는
트래픽을 여러 대의 서버에 고르게 분배하야 특정 서버의 부하를 덜어주는 것이다.
3) 서버 앞단에 HTTS를 제공하는 CDN을 둬서 구축한다.
→ CDN이란 ? : 콘텐츠 전송 네트워크는 데이터 사용량이 많은 웹 페이지 로드 속도를 높이는 상호 연결된 서버
네트워크이다.
'CS > 네트워크' 카테고리의 다른 글
HTTP, Socket, WebSocket (0) | 2024.06.17 |
---|---|
SEO(Search Engine Optimization) (0) | 2024.06.15 |
HTTP Re (0) | 2024.06.14 |
XSS와 CSRF Re (0) | 2024.06.14 |
로컬 스토리지, 세션 스토리지 (0) | 2024.06.13 |