
HTTPS
(HTTP + Secure)
HTTP 프로토콜 내용을 암호화
기존의 HTTP는 중간에 누군가 요청을 들여다볼 수 있어 보안성이 떨어졌지만,
HTTPS는 요청의 내용을 암호화를 해주기때문에 개인정보 등이 유출되더라도 정확한 키가 없으면 알 수 없다.
- 인증서
- CA
- 비대칭 키 암호화
를 이용한다.
HTTPS는 HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법이다.
SSL
디지털 인증서는 인터넷 보안에서 중추적인 요소이다.
디지털 인증서라고도 하는 SSL(보안 소켓 계층) 인증서는 브라우저 또는 사용자의 컴퓨터와 서버 또는 웹사이트 간에 암호화된 연결을 수립하는 데 사용된다. SSL 연결은 인증되지 않은 사용자의 방해로부터 각 방문(세션) 중에 교환된 중요한 데이터(예: 신용카드 정보)를 보호한다.
인증에서 HTTPS프로토콜을 사용해야만 하는 이유는 HTTP보다 상대적으로 안전한 방법이고, 데이터 제공자의 신원을 보장받을 수 있기 때문이다.
데이터 제공자의 신원을 확인하고 보장받는 게 인증에서 중요한 이유는 다음과 같다
- 클라이언트는 데이터 제공자가 제공해준 데이터를 사용할 수 밖에 없다.
클라이언트는 서버에 데이터 요청을 하고 이후 받은 데이터를 이용해서 화면을 렌더링하는 등의 작업을 해야한다.
- 그렇기 때문에 요청 및 응답을 중간에서 가로채는 중간자 공격에 취약하다.
'중간자 공격'은 클라이언트와 서버 사이에서 공격자가 서로의 요청, 응답의 데이터를 탈취 및 변조하여 다시 전송하는 공격이다.
그래서 해당 데이터를 암호화시키는 작업이 필요하다.
인증서(certificate)
- 데이터 제공자 신원 보장
- 도메인 종속

서버는 인증서와 함께 응답을 전송
응답을 받은 클라이언트는 인증서에 작성된 도메인과 응답객체 도메인을 비교하여 같으면 데이터를 보내준 서버가 확실하다고 알게 된다.

인증서에 작성된 도메인과 응답객체 도메인이 같지 않으면 데이터를 보내준 서버가 확실하다고 보장할 수 없게 된다.
CA
- certificate Authority
- 공인 인증서 발급 기관
HTTPS 프로토콜의 또 다른 특징 중 하나는 브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있다는 점이다.
브라우저는 인증서에서 해당 인증서를 발급한 CA정보를 확인하고 인증된 CA가 발급한 인증서가 아니라면 경고창을 띄워 서버와 연결이 안전하지 않다는 화면을 보여준다.
이렇게 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기때문에 인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 다른 '중간자 공격'을 감지하여 보안 위협으로부터 사용자 및 사용자의 데이터를 보호할 수 있다.
또한 이런 경고를 직접 보여줌으로써 브라우저들은 인증된 CA가 발급한 인증서를 이용하여 데이터를 제공하는 안전한 서버를 사용할 수 있게 사용자를 유도한다.
HTTPS: 비대칭 키 암호화


암호화된 데이터를 주고받기 때문에, 중간에 인터넷 요청이 탈취되더라도 그 내용을 알아볼 수 없다.
기존에 배웠던 HTTP 프로토콜은 요청 및 응답을 탈취한다면 프로그램(wireshark 패킷 분석 프로그램)을 이용하여 해당 요청으로 전달되는 데이터의 내용을 확인할 수 있었다.
하지만 데이터를 암호화아여 전송하는 HTTPS 프로토콜을 사용한다면 비밀번호와 같은 중요한 데이터가 유출될 가능성이 HTTP프로토콜보다 현저히 적어지게 된다.
아래 사진은 데이터를 캡쳐한 사진이다.

내용이 암호화되어 전송되기 때문에 정확한 키로 복호화 하기전까지는 어떤 내용인지 알 수 없다.