728x90
HTTPS란?
HTTP란?
- HyperText Transfer Protocal
- 웹 환경에서 브라우저와 웹 서버가 통신하는 방법
동작 방법
- URL 주소를 입력
- DNS 서버에 웹 서버의 호스트 이름을 IP 주소로 변경을 요청한다.
- 웹 서버와 TCP 연결 시도
- 서버에게 메서드 명령을 전송한다.
- 서버가 응답을 보낸다.
- 서버와 클라이언트간의 연결을 해제하다.
- 웹 브라우저가 응답을 출력한다.
HTTPS란?
- Hypertext Trnasfer Protocol Secure
- HTTP의 치명적인 단점인 보안을 보완하기 위해 나왔다.
- HTTP의 보안적인 문제는 통신할때 데이터가 암호화가 되지 않고 생 날것 그대로 전송되어 집니다.
- 해커가 중간에 데이터를 도청하게 된다면 중요정보(로그인 정보 등)을 탈취할 수 있다는 의미입니다.
- 또한 정상적인 데이터를 중간에 악의적으로 변조시킬수도 있습니다.
- 따라서 데이터를 암호화 해서 내용을 알아볼 수 없도록 하는 것입니다.
암호화, 암호화 키
- 데이터를 암호화 알고리즘을 통해 암호화를 하면, 해커가 알고리즘을 알고 있다면 쉽게 복호화를 진행할 수 있습니다.
- 이때 암호화 키라는 변수를 두고 암호화 결과를 달라지게 하여 예측하기 힘들게 하는 것입니다.
- 따라서 제일 중요한건 암호화 키를 탈취를 안당하는 것인데, 암호화를 하는것, 복호화를 할때도 모두 암호화 키가 필요하다는 점에 주목해야 합니다.
- 따라서 암호화된 데이터를 주기 받기 전에 서버와 키를 분배하여 공유해야 합니다.
- 따라서 나오게 된게 SSL입니다.
대칭키(Symmetric Key)
- 하나의 키로 암호화와 복호화를 모두 하는 암호화 방식
- 단점은 암호를 주고 받는 사람들 사이에 대칭키를 전달하는게 어렵다. 대칭키가 유출되면 해커는 암호 내용을 복호화 할수 있기 때문이다.
비대칭키(Asymmetric Key)
- 두 개의 키로 암호화와 복호화를 하는 암호화 방식
- 개인키(키 주인만 소유) - 공개키 (누구나 가질 수 있음)
- A키로 암호화를 하면 B키로 복호화 할 수 있고, B키로 암호화하면 A키로 복호화 할 수 있는 방식이다.
- 최초 통신시에 암호화, 복호화에 사용할 키를 주고 받으므로 통신속도가 빠르지만, 처음 키를 공유할 때는 해당 키를 암호화 하지 않고 평문으로 키를 전송하기 때문에 취약점이 생긴다.
SSL(Secure Sockets Layer)
- 암호화 통신과 암호화 키를 공유할수 있도록 하는 기술
- SSL 디지털 인증서로 클라이언트와 서버 간의 통신을 제 3자가 보증해주는 전자화된 문서이다.
- 대칭키와 비대칭키의 장단점이 확실하기 때문에 SSL은 공개키와 대칭키를 혼합해서 사용한다.
대칭키를 공유할 때 사용 → 비대칭키
실 데이터를 공유할 때 사용 → 대칭키
비대칭키와 대칭키를 조합해서 사용하는 이유?
- 비대칭 키 방식은 많은 컴퓨터 파워를 사용한다.
- 대칭키는 암호를 푸는 열쇠인 키를 상대에게 전송해야 하는데 암호화가 되지 않은 인터넷을 통해 키를 전송하는 것은 위험하다.
- 따라서 속도는 느리지만 데이터를 안전하게 주고 받을 수 있는 비대칭키 방식으로 대칭키를 암호화하고 실제 데이터를 주고 받을때는 대칭키를 이용한다.
인증기관(CA, Certificate Authorty)
- 암호화시 사용되는 키를 담은 인증서를 발급하고 관리한다.
- 웹 서버는 암호화키를 생성하여 자신이 하나는 보관하고 하나는 인증기관에 넘겨서 인증서를 발급받는다.
SSL 통신 과정
- 이 통신과정을 설명하기 전에 브라우저는 이미 인증기관의 목록을 가지고 있습니다.
- 따라서 브라우저는 웹서버와 통신 이전에 인증기관 리스트를 확인하고 인증기관에 현재 자신이 통신하려는 웹서버의 인증서가 있는지 확인하고 있으면 인증서를 받습니다.
참고자료
728x90
728x90
'Common > Web' 카테고리의 다른 글
HTTP Status (0) | 2020.10.18 |
---|---|
HTTP Method (0) | 2020.10.16 |
OAuth2 인증방식 종류들 (0) | 2020.09.23 |
Cookie vs Session (0) | 2020.09.09 |
Cookie vs WebStorage (0) | 2020.08.19 |