[SSL 가속기①] SSL 프로토콜에 대한 이해
상태바
[SSL 가속기①] SSL 프로토콜에 대한 이해
  • 배헌장 소닉월 시스템엔지니어 과장
  • 승인 2003.04.02 00:00
  • 댓글 0
이 기사를 공유합니다

웹을 이용한 전자 상거래, 인터넷뱅킹 등이 더욱더 증대되면서 이제 인터넷은 정보의 바다가 아니라 하나의 커다란 시장이라 부를 수도 있는 상황이다. 온라인 입금이나 최근에는 소액의 경우 휴대폰 결재를 선택하기도 하지만 뭐니뭐니 해도 국내 인터넷 쇼핑 이용자들이 가장 선호하는 수단은 신용 카드다. 그런데 바로 이점이 보안적인 허점을 가져오는 주 원인이 될 수 있다. 보안과 속도향상을 가져올 수 있는 SSL 가속기의 여러 가지 활용방안을 알아본다. <편집자>

SSL의 정의

인터넷 쇼핑몰마다 다르기는 하지만 실제로 신용카드로 결제하는 경우 인터넷이라는 공용망을 타고 쇼핑몰 서버에 전송되는 고객의 신용카드 정보는 신용카드 번호, 유효기간 등을 포함하고 있기 때문에 실제 상거래 시 필요한 대부분의 데이터가 언제 어떻게 도용될지도 모르는 위험에 노출되어 있는 것이다. 그렇다면 개인의 금융정보를 공용망인 인터넷상에서 보호할 것인가? 이 질문에 대한 답으로 현재 가장 많이 사용되는 방법이 SSL(Secure Socket Layer)이다.

SSL은 넷스케이프에서 개발된 프로토콜로서 1995년 히크만(Hickman)에 의해서 개발되었으며 현재 인터넷 사용자들에게 안전한 개인 정보를 교환하기 위한 사실상의 표준 프로토콜로 인정되어 많은 온라인 상거래에 사용되고 있다. SSL은 실제로 다양한 장점을 지닌 암호화 기법들을 사용해 세계 각국에서 사용되는 대부분의 암호화 기법들을 지원할 수 있다.

SSL은 버전 3.0 이후 IETF(Internet Engineering Task Force)에서 표준화되어 TLS(Transport Layer Security)로 명명되었지만 실제 그 내용은 SSL 3.과 TLS v1.0이 같으며 MS 익스플로러나 넷스케이프 등 대부분의 브라우저에서 지원하고 있다. SSL 프로토콜에서 사용되어질 수 있는 다양한 애플리케이션 프로토콜이 있지만 주로 사용되는 부분은 웹이라고 볼 수 있다. 우리가 인터넷에서 인터넷 뱅킹을 하거나 쇼핑몰에서 결제를 위해 카드정보를 입력할 때 우리의 웹브라우저와 상대방 웹서버 사이에는 물리적으로 수십개의 각기 다른 시스템이 존재하며 우리가 입력한 정보는 이 많은 시스템 사이를 돌다가 목적지인 웹서버에 도착한다. 이렇게 진행되는 데이터의 전송에 대해서는 우리의 웹브라우저도 또한 상대편 웹서버도 어떠한 통제를 할 수가 없는 것이 인터넷이다. SSL은 크게 3가지 기능들을 제공함으로 공개되어 있는 인터넷상에서 일어나는 트랜잭션의 기밀성을 보장한다.

1. 사이트 인증(Site Authentication)

사용자가 선택한 상대편 웹사이트를 인증한다는 의미다. 우리가 인터넷 뱅킹이나 인터넷 쇼핑몰을 사용할 때 상대편이 실제 신뢰할 수 있는 은행이나 쇼핑몰의 웹서버 인지를 인증한다는 뜻. 상대 사이트에 대한 신뢰성 있는 인증이 없다면 우리는 불확실한 누군가에게 우리의 금융정보를 넘기는 위험에 처하게 된다.

2. 데이터 기밀성

전달되는 데이터가 도중에 누군가에 의해 판독되지 않는 다는 것을 보장한다. SSL은 다양한 암호화 알고리즘을 사용하여 인터넷을 통해 전송되는 개인의 사적인 정보를 외부로부터 불법적인 판독을 막는다.

3. 메시지 무결성

사용자의 브라우저로부터 상대방 웹서버까지 전달되는 동안 데이터가 도중에 누군가에 의해 변경되지 않도록 보장한다. 내가 전달하는 기밀 데이터가 도중에 변경된다면 신용사회인 현대에 있어 커다란 문제를 가져올 수 있다.

SSL은 위와 같은 요소들을 보장하여 보다 안전한 커뮤니케이션을 할 수 있도록 도와주며 또한 MS 익스플로러나 넷스케이프 등과 같이 널리 보급된 대부분의 웹브라우저와 웹서버들에서 지원된다. 웹브라우저가 SSL 통신을 하는지 여부는 브라우저 오른쪽 하단의 잠금쇠 표시를 가지고 판별할 수 있는데 경우에 따라서는 브라우저 대신에 다른 보안 애플리케이션이 대신하기도 한다. HTTPS는 SSL 상에서 HTTP를 구현한 형태로 실제 HTTP가 기본 포트 80을 사용하는 대신 HTTPS는 433포트를 사용한다.

SSL은 다양한 애플리케이션들을 지원하기 위해 각각의 응용된 애플리케이션 프로토콜을 가지고 있는데, 이는 SSL 의 구조를 보면 보다 이해하기가 쉽다.

SSL은 OSI 7 레이어 기준으로 5단계인 세션 레이어에 속한다. 따라서 실제로 지원가능한 프로토콜은 애플리케이션 레이어 상에 위치한 하부 프로토콜들로 한정될 수밖에 없는데 HTTP, IMAP, FTP,NNTP 등이다.

SSL의 구동원리와 순서

그렇다면 실제로 사용자가 SSL을 사용할 때 어떤 일이 시스템 사이에서 일어나는 걸까? 브라우저와 상대편 웹서버와의 통신 시 SSL이 수행하는 시큐리티 태스크(Security Task)는 크게 3가지라고 볼 수 있다.

1. SSL 서버 인증(SSL Server Authentication)

사용자의 웹브라우저가 상대방의 웹서버를 인증하는 단계이다. SSL을 지원하는 웹브라우저는 표준 공용키 암호화 기법을 사용하여 서버의 인증서와 공용 ID를 실제로 브라우져가 신뢰하는 인증기관(Trusted CA)으로부터 발급받았는지 여부를 인증하는 기능을 내장하고 있다.

2. SSL 클라이언트 인증(SSL Client Authentication)

웹서버가 자신에게 요청한 클라이언트를 인증하는 단계이다. 서버 인증 시에 사용했던 동일한 기법으로 인증하는데 서버에 내장된 SSL 지원 소프트웨어나 서버 앞에 배치된 SSL 하드웨어는 클라이언트의 인증서와 공용 ID를 실제로 서버가 신뢰하는 인증기관(Trusted CA)으로부터 발급 받았는지 여부를 인증하는 기능을 내장하고 있다.

3. 암호화된 연결(Encrypt Connection)

서로에 대한 인증단계 이후 정상적으로 종결되면 클라이언트와 서버사이에 교환되는 모든 데이터는 사적인 내용을 보호하기 위한 암호화를 요구받는다. 또한 SSL 커넥션을 통해 암호화된 데이터 역시 전송 중 변경을 방지(Message Integrity)하기 위해 해쉬 알고리즘이라고 불리는 기술에 의해 보호된다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.