어느 가을날의 전환점

보안|SSL(Secure Socket Layer) - https 본문

Network

보안|SSL(Secure Socket Layer) - https

어느가을빛 2010. 11. 20. 08:49

사이버 공간에서 전달되는 정보의 안전한 거래를 보장하기 위해 넷스케이프사가 정한 인터넷 통신규약 프로토콜을 말한다. SSL 규약은 서버와 클라이언트의 진위 확인이 가능하도록 해준다. 암호화키와 관련된 협상을 할 수 있을 뿐 아니라 상위 응용프로그램이 정보를 서버와 교환하기 전에 서버의 진위를 확인해줄 수 있다.

 

daum, naver와 같은 주요 포털업체들이 개인정보 누출을 막기 위해 금융서비스처럼 온라인 결제를 요하는 부문에만 사용하던 SSL을 확대 적용하고 있다. 

 

브라우저와 서버간의 통신에서 정보를 암호화 함으로써, 해킹을 통해 도중에 정보가 유출되어도 정보를 보호할수 있게 해주는 보안 솔루션이다.

 

아래는 SSL 보안에 대해 그림으로 간단하게 설명해 놓은 것입니다.

 

 

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

 

SSL을 통한 보안원리

 

일반적으로 네트워크상에서 데이터 혹은 신원에 대한 정보를 보호하기 위해서는 암호화 방식을 많이 사용한다.

그러나 단순히 암호화한다고 해서 안전하다고만 할수는없다. 단순 암호화만을 통해 잘못 설계된 프로토콜의 경우

재생을 통해 공격당할수 있다. 내용은 모르더라도 관찰된 통신내용을 동일하게 재생하면 동일한 결과를 얻을수있다.

 

따라서 암호화외에 암호화 통신을 할 때 여러가지 정보를 포함하여 암호화하는것이 보통이다.

ssl은 정보를 암호화하기 위하여 기본 단위들로 나누고 이를 구분하는것을 담당하는 ssl record layer와, 암호화 방법이나 키의 결정

및 협상을 담당하는 handshake layer로 구성되어있다

 

 

 

SSL통신의 절차

 

1. 클라이언트가 서버에 접속하면 서버인증서(서버의 공개키를 인증기관이 전자서명으로 인증한것)을 전송받는다.

2. 클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서인지를 검토한 후, 서버의 공개키를 추출한다.

3. 클라이언트가 세션키로 사용할 임의의 메세지를 서버의 공개키로 암호화하여 서버에 전송합니다.

4. 서버에서는 자신의 비밀키로 세션키를 복호화하여 그 키를 사용하여 대칭키 암호방식으로 메세지를 암호화한후 클라이언트와

    통신하게되고 이것은 https라는 별도의 프로토콜을 사용한다.

 

SSL의 단점

통신에 SSL을 구현하는 데 있어 한 가지 단점이 있습니다. 즉, 통신 송수신자가 데이터 교환, 메시지 암호화 및 암호 해독에 필요한 추가 작업을 수행해야 하므로, 이러한 유형의 통신을 수행하는 경우 SSL을 사용하지 않는 통신보다 그 속도가 조금 느려집니다.

예를 들어, 성능 테스트는 에이전트와 런타임 서버 간에 SSL을 사용하면 네트워크 트래픽을 3배로 증가시키며, 주로 에이전트 플랫폼에 따라 런타임 서버가 에이전트 요청에 응답하는 속도를 2배에서 10배까지 떨어뜨릴 수 있음을 보고합니다. 런타임 서버에서 발생하는 이러한 추가 작업은 실제로 웹 서버에서 완료되지만 컴퓨터의 자원을 사용하는 것 또한 런타임 서버가 수행 중인 다른 활동에 영향을 줄 수 있습니다.

통신 중인 데이터 유형을 점검하고 적절한 다른 보안 수단이 있는지 살펴보고(예: 프록시 서버, 엔터프라이즈 방화벽) 이 보안 레벨이 필요한지 여부를 평가해야 합니다.


 # 출처
1) http://blog.naver.com/soos7?Redirect=Log&logNo=150087988020
2) http://publib.boulder.ibm.com/tividd/td/ITLM/SC32-1431-00/ko_KO/HTML/tlminmst45.htm


SSL  구현방법 (크게 두가지가 있음)

  * 클라이언트 측면

     1. 브라우저 내장 SSL을 사용하는 방법

     2. 전용 클라이언트 사용하는 방법(예, 은행거래시 Xecure xxx 실행되는 것)


  * 서버쪽

     1. 웹서버가 기본적으로 지원하는 방법(IIS, 아파치, 톰캣, 제우스, 웹투비, 노츠 웹서버 등 기본적으로 ssl을 지원)

        서버용 웹서버 SSL 인증서만 필요합니다. 

        비용은 약 20만원 내외(국내인증 기관 경우)

     2. 별도의 솔루션을 사용하는 방법


[출처] SSL이란?|작성자 아이반

Comments