Network

SSL

딸기케잌🍓 2020. 1. 19. 20:25

SSL(Secure Socket Layer)

-->보안 소켓 레이어

 

웹 브라우저에 자물쇠 표시가 되어있는 것을 종종 보는데 해당 웹사이트는 SSL 보안 프로토콜을 사용한다는 뜻입니다.

SSL은 웹 브라우저와 웹서버간의 보안을 위해 만들어졌으며, 공개키/개인키 대칭키 기반으로 사용합니다.

 

 

 

SSL의 암호화 방식

대칭키

동일한 키로 암호화와 복호화를 같이 할 수 있는 암호화 기법입니다.

대칭키가 유출되었을 때 키를 획득한 공격자는 쉽게 복호화할 수 있다는 단점이 있습니다.

이를 보완하는 방식이 공개키 입니다.

 

공개키

공개키 방식은 두 개의 키를 갖는데 A키로 암호화하면 B키로 복호화 할 수 있고, B키로 암호화하면 A키로 복호화할 수 있는 방식입니다.

두 개의 키중 하나를 비공개키(private key, 개인키, 비밀키)로 하고 나머지를 공개키(public key)라고 지정합니다.

비공개키는 자신만 가지고 있고 공개키를 타인에게 제공합니다. 공개키를 제공 받은 자는 공개키를 이용하여 정보를 암호화 합니다. 암호화한 정보를 비공개키를 가지고 있는 사람에게 전송합니다. 비공개키의 소유자는 암호화된 정보를 복호화 합니다. 이 과정에서 공개키가 유출되어도 비공개키를 모르면 복호화할 수 없기 때문에 안전합니다.

공개키로는 암호화할 수 있지만 복호화는 할 수 없기 때문입니다.

 

 

 

SSL 인증서가 서비스를 보증하는 방법

웹 브라우저가 서버에 접속할 때 서버는 제일 먼저 인증서를 제공합니다. 브라우저는 이 인증서를 발급한 CA가 자신이 내장한 CA의 리스트에 있는지를 확인합니다. 확인 결과 서버를 통해서 다운받은 인증서가 내장된 CA 리스트에 포함되어 있다면 해당 CA의 공개키를 이용해서 인증서를 복호화합니다. CA의 공개키를 이용해서 인증서를 복호화 할 수 있다는 것은 이 인증서가 CA의 비공개키에 의해서 암호화 된 것을 의미합니다. 해당 CA의 비공개 키를 가지고 있는 CA는 해당 CA 밖에 없기 때문에 서버가 제공한 인증서가 CA에 의해서 발급된 것이라는 것을 의미합니다. CA의 검토를 통과했다는 것은 해당 서비스가 신뢰할 수 있다는 것을 의미합니다. 이것이 CA와 브라우저가 특정 서버를 인증하는 과정입니다. 이 과정이 잘 이해가 되지 않는다면 전자서명 부분을 다시 읽어봐야 합니다.

 

'Network' 카테고리의 다른 글

[Network] Get vs Post  (0) 2021.06.03