본문 바로가기
Programming/Hacking & Security

[Security] SSL ( Secure Sockets Layer )

by ★용호★ 2010. 9. 27.



2010년 9월 27일 월요일

월드 와이드 웹 브라우저와 웹 서버 간에 데이터를 안전하게 주고받기 위한 업계 표준 프로토콜. 미국 넷스케이프 커뮤니케이션스사가 개발했고, 마이크로소프트사 등 주요 웹 제품 업체가 채택하고 있다. SSL은 웹 제품뿐만 아니라 파일 전송 규약(FTP) 등 다른 TCP/IP 애플리케이션에 적용할 수 있으며, 인증 암호화 기능이 있다. 인증은 웹 브라우저와 웹 서버 간에 서로 상대의 신원을 확인하는 기능이다. 예를 들면, 웹 브라우저를 사용하는 웹 서버를 사용한 가상 점포의 진위(眞僞) 여부를 조사할 수 있다. 암호화 기능을 사용하면 주고받는 데이터가 인터넷상에서 도청되는 위험성을 줄일 수 있다.




위와 같이 웹서버에 SSL 인증서를 설치할 경우 이 기술이 적용된 전자문서는 별도의 암호화 과정을 거쳐 상대방에게 전달되므로 정보 송신자(웹브라우저에 정보를 입력하는 사용자)와 정보 수신자(해당 사이트 서버 관리자)외에는 그 내용을 해독할 수 없다. 따라서 전자문서가 전송되는 도중에 해커가 sniffing을 시도한다고 해도 정보가 암호화되어 있기 때문에 내용을 절대로 파악할 수 없다.

▶ SSL을 통한 보안원리
일반적으로 네트워크상에서 데이터 혹은 신원에 대한 정보를 보호하기 위해서는 암호화 방식을 많이 사용한다. 그러나 단순히 암호화한다고 해서 안전하다고만 할수는 없다. 단순 암호화만을 통해 잘못 설계된 프로토콜의 경우 재생을 통해 공격당할 수 있다. 내용은 모르더라도 관찰된 통신내용을 동일하게 재생하면 동일한 결과를 얻을 수 있다.
 따라서 암호화외에 암호화 통신을 할 때 여러가지 정보를 포함하여 암호화 하는 것이 보통이다. SSL은 정보를 암호화하기 위하여 기본단위들로 나누고 이를 구분하는 것을 담당하는 SSL record layer와 암호화 방법이나 키의 결정 및 협상을 담당하는 handshake layer로 구성되어 있다.

▶ SSL통신의 절차
1. 클라이언트가 서버에 접속하면 서버 인증서(서버의 공개키를 인증기관이 전자서명으로 인증한 것)을 전송받는다.
2. 클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서인지 검토한 후, 서버의 공개키를 추출한다.
3. 클라이언트가 세션키로 사용할 임의의 메시지를 서버의 공개키로 암호화하여 서버에 전송한다.
4. 서버에서는 자신의 비밀키로 세션키를 복호화하여 그 키를 사용하여 대칭키 암호방식으로 메세지를 암호화한 후 클라이언트와 통신하게 되고 이것은 https라는 별도의 프로토콜을 사용한다.

댓글