HTTP
- HyperText Transfer Protocol
- 웹 페이지 문서를 웹 서버에 전송요청하는 프로토콜
- HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우 쉽다.
HTTPS
- HyperText Transfer Protocol over Secure Socket Layer
- http 프로토콜에 암호화 기능을 추가한 프로토콜
- 데이터를 보낼 때 인증작업(암호화작업, 암호화 키 이용)을 거친다.
- 개인정보를 포함하지 않는 웹사이트는 HTTP를 이용, 개인정보를 포함하는 웹사이트는 HTTPS를 이용
SSL
- Secure Sockets Layer(보안 소켓 계층)
- SSL은 웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술
- SSL이라는 통신방법 위에서 동작하는 서비스 중 하나가 HTTP이고, HTTP가 SSL을 이용하는 것이 HTTPS이다.
- 정식명칭은 TLS인데, 보편적으로 SSL이라는 이름을 사용한다.
SSL 인증서
- 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서
- 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달한다.
- 통신 내용이 공격자에게 노출되는 것을 막을 수 있다.
- 클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지를 판단할 수 있다.
- 통신 내용의 악의적인 변경을 방지할 수 있다.
- 클라이언트가 접속한 서버가 신뢰 할 수 있는 서버임을 보장한다.
- SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.
SSL에서 사용하는 암호화의 종류
대칭키
- 대칭키는 동일한 키로 암호화와 복호화를 같이 할 수 있는 방식의 암호화 기법
- 동일한 키를 주고받기 때문에, 매우 빠르다는 장점이 있지만, 대칭키 전달과정에서 해킹 위험이 있다.
공개키
- 암호화와 복호화에 사용하는 암호키를 분리해서 한 개는 공개키, 한개는 비공개키로 지정
- 비공개키는 암호화에, 공개키는 복호화에 이용된다.
- 공개키로 복호화 할 수 있다는 것은 그 데이터가 공개키와 쌍을 이루는 비공개키에 의해서 암호화 되었다는 것을 의미하므로 데이터 제공자의 신원을 보장한다.(전자서명)
- ex) RSA
SSL 동작원리
- 실제 데이터는 대칭키 방식으로 암호화하고, 복호화하기 위한 대칭키는 공개키 방식으로 클라이언트와 서버가 주고 받는다.
CA
- Certificate authority
- 인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 한다. 이 역할을 하는 민간기업들이 있는데 이런 기업들
Reference
http프로토콜과 https 프로토콜 차이점 설명
https와ssl이란무엇인가
SSL, TLS, HTTPS의 정의