-
HTTPS 통신의 원리 ( SSL/TLS )Computer Science 2023. 8. 4. 15:10
1. 대칭키
2. 공개키 ( 비대칭키 )
3. HTTPS 통신 방식
1. 대칭키
암호화, 복호화에 사용하는 키가 동일한 암호화 방식을 의미한다.
대표적인 알고리즘으로는 DES ( Data Encryption Standard ), AES ( Advanced Encryption Standard ), SEED 등이 있다.
공개키 암호화 방식에 비해서 연산 속도 ( 암호화, 복호화 과정 ) 이 빠르다는 장점이 있으나 키 관리의 단점이 있다.
결국 키를 교환해야하고 이 과정에서 탈취가 생길 수 있으며 사용자가 증가 할 수록 관리해야하는 키가 방대하게 늘어난다.
2. 공개키 ( 비대칭키 )
공개키 방식은 대칭키 방식에서 생기는 문제점인 키 교환 문제를 해결하기 위해 나왔다.
방식은 다음과 같다.
2.1. 수신자는 키 한쌍을 만든다. ( 공개키, 개인키 )
- 공개키로 암호화가 가능하며 개인키로 복호화가 가능하다.
2.2. 그런뒤 송신자에게 공개키를 전달한다. 공개키는 누가 보아도 상관이 없는데, 내용의 복호화는 개인키로 해야하기 때문이다.
2.3. 이로 인해 송신자는 공개키를 이용하여 암호화하고 수신자는 자신의 개인키를 이용하여 해당 내용을 복호화한다.
공개키 방식은 암호화 복호화 함에 있어 연산 속도가 대칭키에 비해 매우 느리다. 이는 대칭키 방식에 비해 더 복잡한 수학적 연산을 필요로 하기 때문이다.
3. HTTPS 통신 방식
HTTPS는 HTTP 프로토콜 통신의 보안 버전으로 위의 대칭키, 공개키 방식을 혼합해서 사용한다.
공개키를 이용하여 대칭키를 암호화 한뒤 교환을 하고 이후 통신은 해당 대칭키로 진행한다.
전체적인 통신 과정은 다음과 같다.
3.1 클라이언트 요청 : 클라이언트가 HTTPS 통신 요청을 웹 브라우저를 통해 진행한다.
3.2 서버 인증서 요청 : 클라이언트 ( 브라우저 ) 는 웹 서버로 연결을 시도할 때, 웹 서버는 인정서를 제공한다.
3.3 인증서 검증 : 브라우저는 인증서를 검증한다. 인증서에는 서버의 공개키와 인증서를 발급한 기관의 서명이 포함되어 있다. 이로 인해 서버가 악의적인 사이트가 아니고 신뢰할 수 있는 웹 사이트인지 알 수 있다.
3.4 세션키 교환 : 브라우저는 세션키 ( 대칭키 ) 를 생성하고 인증서의 공개키를 사용하여 암호화 한 뒤 해당 세션키를 서버로 전송한다.
3.5 암호화된 데이터 전송 : 이제 데이터 통신은 세션키 ( 대칭키 ) 를 사용하여 암호화하여 전송된다. 서버측에서도 해당 세션키를 사용하여 복호화 한다.
HTTPS 통신은 위와 같은 방법으로 대칭키와 공개키 방식을 이용하여 각각의 장점을 취해 통신한다.
'Computer Science' 카테고리의 다른 글
Spin Lock vs Mutex vs Semaphore (0) 2023.09.18 Iptables을 이용한 다른 IP로 포트포워딩 (0) 2023.08.24 로드 밸런서 ( Load Balancer ) (0) 2023.08.01 프록시 서버 (Proxy Server) (0) 2023.07.20 Ngrinder를 이용하여 서버 스트레스 테스트 (0) 2022.11.10