Certificate Authority(CA)
라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용
클라이언트와 서버 간에 공유하는 암호화키를 가지고 암호화된 데이터가 송수신되는 방식
HTTP 프로토콜 상위에 통신시 보안을 위한 SSL 관련 프로토콜이 있는 것임.
암호화를 할 때 사용하는 일종의 비밀번호는 키(key)
동일한 키로 암호화와 복호화를 같이 할 수 있는 방식의 암호화 기법
- 단점 : 암호를 주고 받는 사람들 사이에 대칭키를 전달하는 것이 어렵다. 대칭키가 유출되면 암호가 무용지물이다.
두 개의 키를 가져, A키를 암호화하면 B키로 복호화할 수 있고 B키로 암호화하면 A키로 복호화할 수 있는 방식
- 두 개의 키 중 하나를 비공개키(private key, 개인키, 비밀기), 다른 하나를 공개키(public key)로 지정
- 비공개키는 자신만 가지고 있고, 공개키를 타인에게 제공
- 타인은 제공 받은 공개키를 이용해서 정보를 암호화
- 비공개키를 이용해서 암호화된 정보를 복호화
- 공개키가 유출되더라도 비공개키를 모르면 정보를 복호화할 수 없기 때문에 안전함
- 비공개키의 소유자는 비공개키를 이용해서 정보를 암호화
- 공개키와 함께 암호화된 정보를 전송
- 전송받은 곳에서 공개키를 이용해서 암호화된 정보를 복호화
=> 데이터를 제공한 사람의 신원을 보장하는 것임.
클라이언트와 서버 간의 통신을 제 3자가 보증해주는 전자화된 문서
클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달함.
클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증함.
-
이점
: 통신 내용이 공격자에게 노출되는 것을 막을 수 있음.
: 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지 판단할 수 있음.
: 통신 내용의 악의적인 변경을 방지할 수 있음.
클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할
CA(Certificate authority), Root Certificate : 이 역할을 하는 민간 기업
CA를 통해서 인증서를 구입해서 제공하면 브라우저의 주소창이 안전 표시를 해줌.
- 서비스의 정보(인증서를 발급한 CA, 서비스 도메인 등)
- 서버 측 공개키(공개키의 내용, 공개키의 암호화 방법)
=> CA는 자신의 공개키를 이용해서 서버가 제출한 인증서를 암호화함.
SSL과 같음. Netscape에서 SSL이 발명되었고, 이것이 점차 폭넓게 사용되어 표준화 기구인 IETF의 관리로 변경되면서 이름이 바뀌었음. TLS 1.0은 SSL 3.0을 계승함.
- SSL이란 HTTP 프로토콜 위에서 클라이언트와 서버가 통신할 때 암호화를 하는 프로토콜이 있는 방식
- 공개키 방식이란 비공개키 하나와 공개키 하나를 만들어, 정보를 보내는 쪽에서 공개키로 암호화해서 보내면 비공개키로 복호화하는 방식. (비공개키를 모르면 복호화를 할 수 없어 안전함)
- 클라이언트가 서버에 접속하면 서버에서 인증서를 보내줌. 인증서는 서버의 비밀키로 암호화되어 있음. 클라이언트는 인증서에 들어있는 공개키로 정보를 복호화함. 복호화가 되면 서버를 신뢰할 수 있게 됨.