티스토리 뷰

SSL

- Secure Socket Layer의 약자.

- 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었습니다.

- Certificate Authority(CA)라 불리는 서드 파티로두터 서버와 클라이언트의 인증을 하는데 사용됩니다.

 

 일반적으로 네트워크상에서 데이터 혹은 신원에 대한 정보를 보호하기 위해서 암호화 방식을 많이 사용합니다. 그렇다면 단순히 암호화한다고 해서 안전하다고 할 수 있을지? 그렇지 않습니다. 단순 암호화만을 통해 잘못 설계된 프로토콜의 경우 재생을 통해 공격당할 수 있습니다. 그 내용은 모르더라도 관찰된 통신 내용을 동일하게 재생하면 동일한 결과를 얻을 수 있는 것입니다.  따라서 단순한 암호화 외에 암호화 통신을 할 때 여러가지 정보를 포함하여 암호화하는 것이 보통입니다.

 

 더 쉽게 설명하자면 우리는 보통 다른 사이트에 로그인할 때, 익숙한 아이디와 비밀번호를 통해 가입합니다. 그래서 개인이 자주 사용하는 아이디와 비밀번호만 알면, 얼마든지 다른 사이트 해킹이 가능합니다. 각 사이트는 이러한 특성을 알기 때문에 사이트마다 아이디와 비밀번호를 암호화시켜서 개인정보를 보호하도록 조치하고 있습니다. 이를 도와주는 것이 바로 SSL입니다.

 

 SSL은 또한 웹 서버 인증, 서버 인증이라고 불리는데, 클라이언트와 서버 간의 통신을 제3자가 보증해주는 전자화된 문서입니다. 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달합니다. 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증한 후에 다음 절차를 수행하게 됩니다. SSL과 SSL 디지털 인증서를 이용했을 때의 이점은 아래와 같습니다.

 

 - 통신 내용이 공격자에게 노출되는 것을 막을 수 있습니다.

 - 클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지를 판단할 수 있습니다.

 - 통신 내용의 악의적인 변경을 방지할 수 있습니다.

 

 

 

SSL이 작동되는 과정

  1) [웹브라우저] SSL로 암호화된 페이지를 요청하게 됩니다. (일반적으로 https://가 사용됩니다.)

  2) [웹서버] Public Key를 인증서와 함께 전송합니다.

  3) [웹브라우저] 인증서가 자신이 신용있다고 판단한 CA로부터 서명된 것인지, 날짜가 유효한지 확인합니다.

  4) [웹브라우저] Public Key를 사용해서 랜덤 대칭 암호화키를 비롯한 URL, http 데이터들을 암호화해서 전송합니다.

  5) [웹서버] Private Key를 이용해서 랜덤 대칭 암ㅎ키와 URL, http 데이터를 복호화합니다.

  6) [웹서버] 요청받은 URL에 대한 응답을 웹브라우저로부터 받은 랜덤 대칭 암호화키를 이용하여 암호화해서

     브라우저로 전송합니다.

  7) [웹브라우저] 대칭 키를 이용해서 http 데이터와 html문서를 복호화하고, 화면에 정보를 뿌려준다.

 

 

 

개인키/공개키(Private Key/Public Key)

- Private key/Public Key를 이용한 암호화는 하나의 키로 암호화하고 나머지 다른 하나로 복호화할 수 있도록 되어있다. 이해하기 어렵겠지만 필자를 믿어라. (역주:독자가 PKI(Public Key Infrastructure)에 대해서 잘 모른다면 이에 대한 간단한 문서를 읽어보기를 권한다) 앞에서 암호화한 키로만 암호화를 할 수 있는 것이 아니라 반대 방향으로 복호화한 키로도 암호화할 수도 있다.(당연히 앞에서 암호화한 키가 이번엔 복호화하는 키가 되는 것이다) 이러한 키쌍은 소수(prime number)로부터 생성되며, 그 길이(Bit 단위)는 암호화의 강도를 나타낸다.

 

- Private Key/Public Key는 이러한 키쌍을 관리하는 방법이다. 한개의 키는 안전한 장소에 자기만 알 수 있도록 보관하고(Private Key) 다른 하나는 모든 사람에게 퍼뜨리는 것(Public Key)이다. 그렇게 하면 그 사람들이 당신에게 메일을 보낼 때 암호화해서 보낼 수 있으며, 당신만이 그 암호를 풀 수 있다. 반대로 다른 사람에게 메일을 보낼 일이 있으면 Private Key를 이용해 암호화 할 수 있다. 그러면 그 사람들은 복호화해서 볼 수 있다. 그러나 이 방법은 모든 사람이 Public Key를 가지고 있어야 하기 때문에 그리 안전한 방법이 아니다. (역주:오히려 역효과를 일으킬 수 있다. 단순하게 메시지, 파일에 암호화, 서명을 할 생각이면 PGP나 GnuPG를 권한다)

 

 

 

인증서(Certificate) 정보의 종류

 1) 인증서 소유자의 e-mail 주소

 2) 소유자의 이름

 3) 인증서의 용도

 4) 인증서의 유효기간

 5) 발행 장소

 6) Distinguished Name (DN)

  - Common Name (CN)

  - 인증서 정보에 대해 서명한 사람의 디지털ID

 7) Public Key

 8) 해쉬(Hash)

 

 

 

SSL과 HTTPS

 우리의 컨텐츠를 구글에 잘 보이게 하는게 필요합니다.

 구글은 2017년 1우러 크롬을 56 버전으로 업데이트하고, http 페이지에서 아이디, 패스워드, 금용정보 등 개인정보를 입력받는 홈페이지에 접속할 경우 안전하지 않음이라는 경고를 띄우기 시작했습니다. 네이버, 다음 등 국내 포털 사이트를 크롬으로 접속하면 안전하지 않음이라는 경고가 뜬 이유가 바로 이것입니다.

 

 구글은 사용자에게 투명한 정보를 제공하기 위해서 안전하지 않은 사이트(HTTP)의 콘텐츠를 보이지 않도록 했고, 컨텐츠 마케팅을 하는 사람들에겐 엄청난 영향을 주는 조치입니다. 즉 우리는 플랫폼을 이용하는 사람으로서 그들이 규칙에 따라가야 합니다. 만약 워드프레스를 사용하고 있다면 HTTPS를 사용해야 합니다.

 

 SSL은 HTTPS를 제공하기 위한 보안 기술입니다.

 

 

 

Reference

https://constant.kr/blog/2018/08/10/ssl-%EC%9D%B4%EB%9E%80-%EA%B5%AC%EA%B8%80%EC%97%90%EC%84%9C-ssl%EC%9D%84-%EC%A4%91%EC%9A%94%ED%95%98%EA%B2%8C-%EC%97%AC%EA%B8%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0/

 

https://wiki.kldp.org/HOWTO/html/SSL-Certificates-HOWTO/x70.html

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함