HTTP : 서로 다른 시스템들 사이에서 통신을 주고받게 하는 프로토콜
HTTPS : HTTP + SSL(보안 소켓 계층) 사용
왜 HTTPS를 사용해야할까?
보안성 : HTTP 자체를 가로챈다면, 해커가 중간에서 내용을 바로 알 수 있음
SEO(검색엔진 최적화) : 구글은 HTTPS 웹 사이트에 가산점을 줌
SSL(Secure Sockets Layer) : Netscape Communications Corporation에서 웹 서버와 웹 브라우저간의 보안을 위해 만든 프로토콜
대칭키 방식 vs 공개키/개인키 방식 차이
SSL 통신 과정
1) 공개키 방식으로 대칭키 전달
2) 대칭키를 활용하여 암호화, 복호화 하며 통신 진행
사용자가 접속한 사이트가 유효한지 확인? 제3의 인증기관 확인 필요
특정 사이트에서 사이트 인증서 발급 과정
사용자가 특정 사이트 접속 과정
사전 과정
인증 기관은 사용자에게 인증기관 공개키 전달
사용자 브라우저에 자동으로 내장(사용자가 사이트에 접속하기 전)
실제 과정
사용자 특정 사이트 접속 요청
사이트 : 사용자에게 사이트 인증서 전송(신뢰받은 사이트임을 인증하기위함)
사용자 : 브라우저 내장되어 있는 인증기관 공개키로 사이트 인증서를 복호화해서 검증
(사이트 인증서를 해독하면 사이트 정보 + 사이트 공개키 얻을 수 있음)
- 이전 인증기관에서 개인키로 암호화 -> 공개키로 복호화 가능(서로 한쌍)
사이트 공개키를 활용해 사용자 대칭키를 암호화
암호화한 대칭키를 사이트에게 전달
사이트는 자신의 개인키로 암호문 해독하여 사용자의 개인키를 얻음
이후 SSL통신 가능
--> 즉 SSL은 인증기관을 포함하기에 안전한 접속(사용자가 접속하려는 사이트가 믿을만한 사이트인지 확인 가능)