티스토리 뷰

반응형


 정보보호 관련 수업을 들으면, 가장 먼저 배우게 되는 내용이 SSL이다. 암호화의 기원, DES, AES와 같은 개요에 해당하는 내용은 생략하고, 바로 본론으로 들어가도록 하겠다.


 대칭키(Symmetric Key) 암호화 방식은 암호화와 복호화에 같은 암호 키(대칭키)를 사용하는 암호화 알고리즘이다. 후술할 공개키 암호화 방식에 비해 암호화 및 복호화가 빠르다는 장점이 있다. 하지만, 암호화 통신을 하는 사용자끼리 같은 대칭키를 공유해야만 한다는 단점이 있다.




▶대칭키 암호화 방식을 잘 설명한 그림.

 



 대칭키를 공유해야만 한다는 것이 왜 단점일까? 먼저, 대칭키 암호화 방식은 암호화와 복호화가 비교적 간편하다. 게다가 대칭키를 사용자끼리 물리적으로 직접 만나서 전달하지 않는한, 대칭키를 전달하는 과정에서 해킹의 위험에 노출될 수 있다.


 그래서 공개키 암호화 방식이 등장했다. 공개키(Public Key) 암호화 방식은, 암호화와 복호화에 사용하는 암호키를 분리한 방식이다. 자신이 가지고 있는 고유한 암호키(비밀키, Private Key)로만 복호화할 수 있는 암호키(공개키, Public Key)를 대중에 공개한다.



▶공개키 암호화 방식을 잘 설명한 그림, 거꾸로 진행해도 암/복호화가 잘된다.

 



 공개키 암호화 방식을 이용한 암호화 통신 시나리오는 다음과 같다. 먼저 A가 웹 상에 공개된 'B의 공개키'를 이용하여 평문을 암호화 한다. 이 암호문(CiperText)는 B가 개인적으로 가지고 있는 B의 비밀키로만 복호화가 가능하다. B는 자신의 비밀키로 복호화한 평문을 확인하고, A의 공개키로 응답을 암호화하여 A에게 보낸다. A는 자신의 비밀키로 암호화된 응답문을 복호화한다.


 이처럼 공개키 암호화 방식은 (각자의 로컬에 저장된 비밀키가 해킹당하지 않는 한) 대칭키의 단점을 완벽하게 해결했다. 하지만 단점이 존재하는데, 암복호화가 매우 복잡하다는 점이다. 암복호화가 복잡한 이유는, 암호화하는 키와 복호화하는 키가 서로 다르기 때문이다.



 그래서 대칭키 암호화 방식과 공개키 암호화 방식을 적절히 혼합하여, 이론적으로 완벽한(진짜?) 암호화 방식이 고안되었는데, 그것이 바로 SSL의 시초가 되었다. 어떻게 혼합하는지 아래에 설명하려고 한다.



1. A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하여 B에게 보낸다.


2. B는 암호문을 받아, 자신의 비밀키로 복호화한다.


3. B는 A로 부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보낸다.


4. A는 자신의 대칭키로 암호문을 복호화한다.


5. 계속 대칭키로 암호화 통신을 한다.



 정리하면, 대칭키를 주고 받을 때만 공개키 암호화 방식을 사용하고 이후에는 계속 대칭키 암호화 방식으로 통신하는 것이다.


 SSL(Secure Socket Layer)은 넷스케이프사에서 전자상거래보안을 위해 개발한 암호화 방식이다. 위에서 설명한 방식(대칭키&공개키 통합 암호화 방식)을 기본으로 한 암호화 방식이며, 통신하는 상대방이 해커가 아닌지 확인하기 위한 알고리즘이 더해진다. 대략적인 방식은 아래와 같다.



1. 사이트(특히 전자상거래 기관)은 인증기관에 자신의 정보와 공개키를 제출한다.


2. 인증기관은 정보를 면밀히 검토한뒤, 사이트의 정보와 공개키를 자신의 비밀키로 암호화한다.


3. 인증기관은 인증기관의 비밀키로 암호화된 사이트의 정보와 공개키를 사이트에 송신한다.


4. 개인이 브라우저를 통해 사이트에 접속하면, 암호화된 사이트의 정보와 공개키를 사이트로 부터 받는다.


5. 브라우저는 인증기관의 공개키(이 공개키는 브라우저에게만 제공된다.)로 이를 복호화하여 사이트의 공개키를 얻는다.


6. 브라우저가 대칭키를 사이트의 공개키로 암호화하여 사이트에 보낸다.


7. 사이트는 자신의 개인키로 암호화된 대칭키를 복호화한다.


8. 이제 개인과 사이트는 대칭키로 통신할 수 있다.



 마지막으로 SSL의 암호화 방식에 대해 잘 설명된 그림을 첨부하고 포스팅을 마치겠다.







-끝-





출처 및 참고

http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.0.1/com.ibm.mq.csqzas.doc/sy10500_.htm

https://ko.wikipedia.org/wiki/SSL

https://ko.wikipedia.org/wiki/

http://minix.tistory.com/397




반응형
최근에 올라온 글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
Total
Today
Yesterday