정리하는 공간
리눅스) HTTPS [이론] 본문
왜 https 서버를 쓰는가? 보안을 강화하기 위해서이다.
내가 인터넷으로 은행과 거래를 한다고 가정한다.
이때 http 서버로 패킷을 주고받는 다면 평론의 패킷을 주고받게 된다. 이는 보안에 취약하고
그래서 SSL/TLS를 http에 붙여 https 서버를 구축해 보안을 강화하는 것이다.
https = http + SSL/TLS
1. 암호학
대칭키
================================================
클라이언트 서버
[평문+비밀키]
=>알고리즘을 거쳐
암호문 생성
암호문 -------------------------------> [비밀키+받은 암호문]
=> 알고르즘을 거쳐
클라이언트가 보낸 평문 생성
==================================================
문제점 : 클라이언트에서 보낸 암호문엔 평문과 키가 같이 담겨있어, 누군가 탈취할 수 있음
비대칭키
클라이언트 서버
[CA 공개키]
클라이언트는
모두 받아져 있음
어렵다..
SSL/TLS 암호 통신 방법
1단계, hello 교환 단계
-클라이언트가 사용가능한 암호화 방식(대칭키, 비대칭키)를 가지고 있다고, 의미 없는 데이터를 서버에 보낸다.
-이 데이터 안에는 서버가 SSL을 사용해 클라이언트와 연결하기 위한 모든 정보, 즉 암호화 알고리즘의 종류와 지원 가능한 SSL 버전 정보가 포함되어 있다.
-서버는 이에 대해 비슷한 정보가 포함된 헬로 메시지를 송신하고, 클라이언트와 같이 사용할 암호화 알고리즘 및 SSL 버전 정보가 포함되어 있다.
2단계, 인증서 교환
-서버는 자신의 신분을 증명할 SSL 인증서를 클라이언트에게 송신한다.
-이 SSL 인증서에는 소유자 이름, 서버 공개키, 전자서명, 유효기간 같은 정보가 있다.
-클라이언트는 이 인증서가 신뢰할 만한지 검증한다. (웹 브라우저를 설치하면 모든 브라우저엔 CA 공개키가 있는데, 이 CA공개키로 확인한다.)
-서버도 클라이언트를 인증할 때가 있다. 그럼 해당되는 웹브라우저에 서버에서 사용하는 공개키가 받아져 있어야 한다. (대부분 클라이언트가 서버 인증을 함.)
3단계, 키교환
-암호화 할 때는 보통 대칭키 암호화를 한다. 비대칭키는 키 관리도 힘들고, 암호화 복구화 키도 모두 다를 뿐더러 시간도 오래걸리기 때문이다. 비대칭키가 암호를 더 복잡하게 하긴 하지만, 이런 이유에서 대칭키 암호화를 한다.
-그래서 데이터 암호화는 대칭키 암호화 알고리즘으로 한다.
-클라이언트는 대칭키 알고리즘을 사용해 임의의 키(비밀키)를 생성하고, 이 키를 서버의 공개키로 암호화해서 서버로 보낸다.
-서버는 자신의 개인키를 사용해 수신된 임의의 키를 복호한 후 에 데이터 전송시 복호화된 평문을 보낸다.
'리눅스 기초' 카테고리의 다른 글
리눅스) DNS (0) | 2022.05.12 |
---|---|
리눅스) HTTPS (SSL)[실습] (0) | 2022.05.12 |
리눅스) httpd.conf 지사자와 값들 (0) | 2022.05.12 |
리눅스) wordpress 설치 (0) | 2022.05.12 |
리눅스) 프록시 서버 [실습] (0) | 2022.05.12 |