HTTP는 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신 규약입니다. HTTPS는 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약입니다. HTTP는 텍스트 교환이기 때문에, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재합니다. HTTPS는 이런 보안 문제를 해결해주는 프로토콜입니다.
HTTP의 보안 취약점
도청이 가능하다
평문으로 통신하기 때문에 도청이 가능하다
이를 해결하기 위해서 통신자체를암호화(HTTPS)하거나 데이터를 암호화 하는 방법등이 있다
데이터를 암호화 하는 경우 수신측에서는 보호화 과정이 필요하다
위장이 가능하다
통신 상대를 확인하지 않기 깨문에 위장된 상대와 통신할 수 있다
HTTPS는 CA 인증서를 통해 인증된 상대와 통신이 가능하다
변조가 가능하다
완전성을 보장하지 않기 때문에 변조가 가능하다
HTTPS는 메세지 인증 코드(MAC), 전자 서명등을 통해 변조를 방지 한다
HTTPS 통신 흐름
애플리케이션 서버(A)를 만드는 기업은 HTTPS를 적용하기 위해 공개키와 개인키를 만든다.
신뢰할 수 있는 CA 기업을 선택하고, 그 기업에게 내 공개키 관리를 부탁하며 계약을 한다.