상세 컨텐츠

본문 제목

SSL(Secure Sockets Layer)이란?

IT 지식

by 알유잡지 편집장 2020. 4. 20. 13:08

본문

728x90

SSL이란?

HTTP통신을 하게 되면 평문으로 데이터를 전달하기 때문에 보안에 취약할 수 밖에 없다. 그래서 HTTP에 보안을 더한것을 HTTPS라고 한다. 기존 HTTP 프로토콜과 SSL 프로토콜이 결합되어 HTTPS가 되었다.

HTTPS 

 

즉, SSL은 서버와 브라우저 사이의 보안을 위해 만들어졌다. SSL은 CA라는 인증기관으로 부터 서버와 브라우저를 인증하는데 사용한다. 간단히 말해서 사이트를 서드파트(제3자)로 부터 안전하다고 보장을 받는것이다. 

 

SSL 인증과정

  1. 사용자가 브라우저를 통해 사이트에 접속하게 됩니다.
  2. 서버에서는 브라우저에게 공개키(Public Key)와 인증서를 전달합니다. 이때 인증서는 서버에 비밀키를 이용해 암호화한다.
  3. 브라우저는 인증기관에서 이미 전달받은 공개키가 설치 되어있기 때문에 공개키로 인증서를 복호화한다. 여기서 공개키로 복호화 된다면 신뢰할 수 있는 인증서라 판단한다. 물론 인증서에 유효기간을 포함한 정보를 같이 판단한다. ( CA에서 직접 브라우저에게 요청해서 신뢰 있는 인증기관임을 입증해야 한다. 물론 아무나 해주는건 아니라고 한다. 이런부분때문에 유료이기도 하고)
  4. 만약, 브라우저가 인증서를 통해 신뢰할 수 없다고 판단되면 사용자(브라우저)에게 신뢰할 수 없는 사이트라고 경고한다. 브라우저 URL 옆에 보면 자물쇠가 잠겨 있다면 신뢰할 수 있는 사이트이다.
  5. 클라이언트(브라우저)는 서버에서 받는 공개키를 이용해 자신이 가지고 있는 대칭키를 암호화해서 서버에 전달한다. 여기서 대칭키는 랜덤으로 생성해서 사용해야한다. 해커가 대칭키를 탈취해서 알아내더라도 사용할 수 없게 만들기 위함이다.
  6. 서버는 자신이 가지고 있는 개인키(Private Key)를 이용해 클라이언트에서 전달한 암호화된 대칭키를 복호화한다. 서버는 클라이언트에서 요청한 응답을 대칭키를 이용해 암호화해서 클라이언트에게 전달한다.
  7. 클라이어트는 서버에서 보낸 HTTP데이터와 HTML문서를 복호화해서 화면에 보여준다.

 

대칭키

하나의 키로 암호화, 복호화가 가능하다. 대칭키로 암호화를 했다면 대칭키로 복호화가 가능하다는 말이다. 대칭키 방식은 연산량이 적어 속도가 빠르지만, 속도만을 위해 대칭키를 사용하는건 위험하다. 전달 방식이 어렵다는 점 때문이다.  만약 키를 유실하게 되면 여태까지 암호화된 데이터들이 무용지물이되어 보안체계가 무너지기 때문이다.

 

공개키(Public Key)/개인키(Private Key) 또는 비대칭키

공개키로 암호화한 암호문은 개인키로 복호화가 가능하며, 개인키로 암호화한 암호문은 공개키로 복호화가 가능하다. 공개키는 모든 사람들이 알고 있어도 상관없는 키이며, 개인키는 안전한 장소에 본인만 알 수 있도록 보관한다. 사실 비대칭키는 연산량이 많아 속도가 느리기때문에 일반적인 데이터를 암호화해서 전달하는 방식이 아니다. 비대칭키의 목적은 데이터를 보호하는것이 목적이 아니라 암호화된 데이터를 공개키를 가지고 복호화할 수 있다는것은 그 데이터가 공개키와 쌍을이루는 비공개키에 의해 암호되었다는 것을 의미한다. 즉 공개키가 데이터를 제공한 사람의 신원을 보장하게 되는 것이다. 또한 대칭키의 전달방식에 문제점을 보안하기 위해 비대칭키를 사용하기도 한다.

 

CA(Certificate authority)

인증서를 발급해주는 인증서 발급기관이다. 사이트의 보안적격 여부와 공개키 발급하고 관리하는 곳이다. CA는 아무기업이나 할 수 있는것이 아니고 신뢰성이 엄격하게 공인된 기업들만 참여할 수 있다. SSL 인증서를 발급받기 위해서 CA를 통해 유료로 인증서를 발급받아야 한다. 물론 openssl를 통한 인증서를 본인이 직접 만들 수도 있다.

  • Symantect
  • Comodo
  • GoDaddy
  • GlobalSign

728x90

'IT 지식' 카테고리의 다른 글

DNS란?  (0) 2020.04.21
API란 무엇일까?  (0) 2020.04.20
기본 게이트 웨이란?  (0) 2020.04.20
TCP/IP란 무엇이며 어떻게 작동하는가?  (0) 2020.04.20
HTTP란?  (0) 2020.04.19

관련글 더보기

댓글 영역