1. 우선 ssl의 개념에 대해 설명드리겠습니다.
우선 보안접속 이라는 것은 ssl을 통해 정보를 전달하는 방식을 말합니다.
ssl(Secure Sockets Layer) 이란 웹서버 인증, 서버 인증이라고도 합니다.
브라우저와 서버간의 통신에서 정보를 암호화 함으로써
도중에 해킹을 통해 정보가 유출 되더라도
정보의 내용을 보호할 수 있게 해 주는 보안 솔루션입니다
아래는 ssl 보안에 대해 그림으로 간단하게 설명해 놓은 것입니다.
그림을 보시면 이해가 조금 더 쉬우실 것 같습니다
그림
위와같이 웹서버에 SSL(Secure Sockets Layer) 인증서를 설치할 경우 이 기술이 적용된 전자문서는 별도의 암호화 과정을 거쳐 상대방에게 전달되므로 정보 송신자(웹브라우저에 정보를 입력하는 사용자)와 정보 수신자(해당 사이트의 웹서버 관리자) 외에는 그 내용을 해독할 수 없습니다. 따라서 전자문서가 전송되는 도중에 해커가 Sniffing을 시도한다고 해도 정보가 암호화되어있기 때문에 그 내용을 절대로 파악할 수 없습니다.
2. 다음은 ssl을 통한 보안 원리에 대한 설명입니다.
일반적으로 네트워크 상에서 데이터 혹은 신원에 대한 정보를 보호하기 위해서는 암호화 방식을 많이 사용합니다. 그렇다면, 단순히 암호화 한다고 해서 안전하다고 할 수 있을까요? 그렇지 않습니다. 단순 암호화만을 통해 잘못 설계된 프로토콜의 경우는 재생(Replay)을 통해 공격당할 수 있습니다. 그 내용은 모르더라도 관찰된 통신 내용을 동일하게 재생하면 동일한 결과를 얻을 수 있는 것이죠. 따라서, 단순한 암호화 외에 암호화 통신을 할 때 여러가지 정보를 포함하여 암호화하는 것이 보통입니다
SSL(Secure Socket Layer)는 정보를 암호화하기 위하여 기본 단위들로 나누고 이를 구분하는 것을 담당하는 SSL Record Layer와 암호화 방법이나 키의 결정 및 협상을 담당하는 Handshake Layer로 구성되어 있습니다.
SSL은 Layer가 의미하듯이 TCP/IP 등의 네트워크 전송 서비스 위에 하나의 Layer로 따로 구현합니다. Layer를 하나 더 올리는 대신 API를 기존의 Socket과 유사하게 유지함으로써 텔넷이나 FTP와 같은 기존의 모든 TCP/IP 응용프로그램들을 SSL로 포팅하기 쉽게 했죠.
좀더 자세히 살펴보면 TCP/IP 연결을 시작할 때, 응답확인방식(Handshake)을 사용하여 보안을 유지합니다. 보통 WWW 환경에서 SSL을 사용하려면 HTTPS라는 URL 억세스 방식을 이용하는데, 이 경우 보통 HTTP에서는 80번 포트를 이용하지만 HTTPS에서는 443번 포트를 이용합니다.
SSL은 별도의 프로토콜이 아니며. Email, 텔넷, FTP와 같은 다른 응용 프로토콜의 하부 계층 프로토콜로서 사용되고 있습니다.
SSL통신의 개략적인절차를 말슴드립니다.
1. 클라이언트가 서버에 접속하면 서버인증서(서버의 공개키를 인증기관이 전자서명으로 인증한 것) 를 전송받습니다. (이때, 클라이언트 인증을 필요로 할 경우 클라이언트의 인증서를 전송하게 됩니다.)
2. 클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서인지를 검토한 후, 서버의 공개키를 추출합니다.
3. 클라이언트가 세션키로 사용할 임의의 메세지를 서버의 공개키로 암호화하여 서버에 전송합니다.
4. 서버에서는 자신의 비밀키로 세션키를 복호화하여 그 키를 사용하여 대칭키 암호방식으로 메시지를 암호화하여 클라이언트와 통신하게 되며 이것은 "https"라는 별도의 프로토콜을 사용하게 됩니다.
3. 마지막으로 ssl의 적용 과정에 대해 말씀드리겠습니다.
Ssl인증을 위해서는 CSR 정보를 서버에서 추출하여야 합니다.
이 서버에서 추출된 CSR을 가지고 인증키를 생성하게 되는 것이지요.
서버나 구동환경에 따라 CSR의 생성이나 서버에 키를 설치하는 과정이 달라 개별적인 적용방법을 소개하기가 힘들 것 같습니다.
아래 사이트를 참고하시면 도움이 되실 것 같습니다.
댓글 없음:
댓글 쓰기