https에 대해 한 번 짧게 알아보자!
Https란?
Hyper Text Transfer Protocol Secure Socket Layer의 약자이다.
멋있게 풀네임으로 작성해봤다.
Https의 특징은 크게 3가지가 있다.
인증서, CA, 비대칭 키 암호화
인증서
Https는 SSL, TLS 알고리즘을 이용해 HTTP 통신 과정에서 내용을 암호화해서 데이터를 전송하는 방법이다.
여기서 SSL과 TLS는 네트워크를 통해 작성하는 서버, 클라이언트 간에 인증 및 데이터 암호화를 제공하는 프로토콜이다.
매번 더 안전한 알고리즘을 지원하기 위해 업데이트도 된다고 한다. 열심히 일하는 구만
SSL 프로토콜의 차세대 버전이 TLS이다. TLS는 모든 종류의 인터넷 트래픽을 암호화 한다.
아마 당신의 주소창에 https로 시작하고, 자물쇠 표시가 있다면 TLS가 당신을 디켜주고 있다는 의미!
이거이거 완전 국밥이네
CA
CA는 Certificate authority의 약자로 인증기관이다.
만약 당신이 서버에 접속하게 되면 서버는 당신에게 TLS인증서를 전달한다.
CA에서 인증서를 제공하는 역할을 하고, 여기서 SSL, TL. 인증서를 구매해야지 사용할 수 있다.
비대칭 키 암호화
비대칭 키 암호화는 암호화할 때와 복호화할 때 서로 다른 키를 이용하는 것을 말한다.
여기에는 개인키, 공개키가 쌍을 이루고 있다.
공개키는 모두에게 공개된 키로 정보를 암호화할 수 있고, 개인키는 사용자만 알고 있다.
여기에는 또 공개키로 암호화 했냐, 개인키로 암호화 했냐에 따라 조금 나뉘기도 한다.
공개키로 암호화 했으면 데이터 보안, 개인키로 암호화 했으면 전자서명 등 인증 과정에 중점을 둔 것.
TMI 디피와 헬만이라는 사람이 만들었다고 한다. 이분들이 만든 비대칭 키 암호화는 20세기 암호학의 혁명이라 불린다고 하네요
이후 업데이트 되면서 RSA라는 공개키 암호화 알고리즘도 나옴. 한 번 검색해보셈!
Https 암호화 및 인증이 중요한 이유
클라이언트와 서버는 서로 데이터를 주고 받는 관계이다.
그래서 데이터 교환을 하는 중간 지점인 요청 및 응답 지점에서 가로채는 중간자 공격에 취약하다.
중간자 공격은 서버와 클라이언트의 요청 응답을 선동과 날조로 변조하여 다시 전송하는 것이다.
요 중간자 녀석이 선동과 날조를 했는지 안 했는지 인증을 통해 확인 할 수 있다.
고래서 암호화를 하는 것이다.
인증서 동작 방법
Handshake는 서버와 클라이언트가 처음 만나는 과정이다.
- 먼저 클라이언트가 서버에 접속을 하면 클라이언트에서 생성한 데이터와 암호화 방식을 서버에 준다.
- 이후 서버가 데이터, 암호화 방식, 인증서를 클라이언트에게 준다. 암호화 방식은 서로 다를 수 있어서 서버가 잘 골라준다.
- 인증서를 발급한 기관 CA가 목록에 있는지 보고, 없으면 경고, 있으면 CA의 공개키를 통해 인증서를 복호화 한다