대칭키, 비대칭키 암호화 방식
- 대칭키 방식
암호화 및 복호화에 드는 비용이 적지만, 키를 상대방과 함께 사용해야하기 때문에 전달하기가 쉽지 않다는 단점이 있다.
- 비대칭키 방식
- 수학적인 공식으로부터 만들어진 한 쌍의 두 개의 키로 구성되며, 하나는 외부에 공개하여 공개 키로 사용하고 다른 하나는 공개하지 않고 개인 키사용한다.
- 공개 키로 데이터를 암호화하면 반드시 개인 키로만 복호화 가능하고, 개인 키로 데이터를 암호화하면 공개 키로만 복호화 할 수 있다. 보안성이 뛰어나다는 장점이 있지만, 구현하기가 어렵고 암호화 및 복호화 속도가 느리다는 단점이 있다.
- 주로 전자서명과 메세지 송신에 사용된다.
- 전자 서명
내 공개키로 암호화된 것을 나만 가지고 있는 개인키로 복호화함으로써 내가 맞다는 것을 증명할 수 있다.
- 메세지 송신
상대방의 공개키로 암호화하여 보내면 개인키를 갖고 있는 상대방만 복호화할 수 있기 때문에 안전하게 보낼 수 있다.
HTTPS
- 정의
HTTP(HyperText Transfer Protocol)의 보안(Secured)버전
SSL/TLS 프로토콜을 사용해 HTTP를 암호화하여 주고 받을 때 쓰는 통신 프로토콜
SSL/TLS Handshake
- 사이트와 인증기관
1. 서비스를 서빙하는 서버가 CA로부터 CA 인증서를 발급받는다.(인증서 기간 만료까지 1회성)
2. 인증기관은 받은 두 데이터를 자신의 개인키로 암호화한 CA 인증서를 서버로 보낸다.
- 사용자와 사이트
1. 브라우저에서 도메인을 쳐서 요청을 보내 클라이언트(브라우저)와 서버가 TCP 연결을 맺는다.
2. 서버는 브라우저가 보내준 Cipher Suite 중 하나를 고르고, 자신의 SSL/TLS 프로토콜 버전을 브라우저에게 알리면서, 서버 자신의 도메인에 대한 CA 인증서를 보낸다.
3. 브라우저는 브라우저에 내장된 CA의 공개 키를 이용하여 CA 인증서를 복호화하여 인증서가 유효한지 검증한 후, 서버 측의 공개 키를 얻는다.
4. 브라우저는 앞으로 서버와 통신하는데 있어 암호하를 위해 사용할 대칭 키를 만들고, 그 대칭 키를 사이트 공개 키로 암호화하여 서버로보낸다.
5. 서버는 자신의 개인 키를 사용하여 암호화된 것을 복호화하여 사용자 대칭 키를 얻어 낸다.
6. 이렇게 얻은 대칭 키를 활용하여 서버와 클라이언트가 서로 데이터를 안전하게 암/복호화 하면서 통신할 수 있게 된다.
'CS' 카테고리의 다른 글
22.12.01 / CS특강 / RestAPI (0) | 2022.12.11 |
---|---|
22.11.25 / CS특강 / TCP/IP (0) | 2022.12.01 |
22.11.25 / CS특강 / HTTP (0) | 2022.11.29 |
22.11.25 / CS특강 / IP주소, DNS, 포트, 패킷 통신 (0) | 2022.11.29 |
22.11.25 / CS특강 / UDP (0) | 2022.11.29 |