안녕하세요 ?
오늘은 다보리 워드프레스 웹호스팅에서 아마존 웹서비스(AWS)의 AWS Certificate Manager 사용법과 – 무료 SSL/TLS 인증 서비스를 이용하는 방법에 본격적으로 들어가기전에 먼저 SSL과 SSL 인증서에 대하여 상세한 사전 지식을 알아보고 진행할 수 있도록 하겠습니다.
제 1항에서 정보통신서비스 제공자(쇼핑몰, 콘텐츠 제공사이트 등 웹사이트를 통한 서비스 제공자) 등이 개인정보를 처리할 때 개인정보의 보호조치(기술적 관리적 조치)를 규정하고 있습니다. 그 중 하나가 제 4목에 개인정보를 안전하게 저장전송할 수 있는 암호화기술 등을 이용한 보안조치입니다. 여기서 말하는 안전하게 저장 전송을 위한 암호화 기술 중 하나가 바로 SSL 인증서를 통한 암호화입니다.
SSL/TLS는 중요한 정보를 교환 할 때마다 필요합니다. 예를 들어, 사이트가 PCI-DSS, FISMA과 같이 규정 준수를 해야 하는 경우 혹은 의료 데이터 전송을 위한 HIPAA 규정에서도 SSL/TLS를 이용하도록 하고 있습니다.
SSL(Secure Socket Layer) 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들어 졌습니다.. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다. 아래는 SSL이 어떻게 작동하는지에 대한 간단한 과정을 설명합니다.
[웹브라우저] SSL로 암호화된 페이지를 요청하게 된다. (일반적으로 https://가 사용된다)
[웹서버] Public Key를 인증서와 함께 전송한다.
[웹브라우저] 인증서가 자신이 신용있다고 판단한 CA(일반적으로 trusted root CA라고 불림)로부터 서명된 것인지 확인한다. (역주:Internet Explorer나 Netscape와 같은 웹브라우저에는 이미 Verisign, Thawte와 같은 널리 알려진 root CA의 인증서가 설치되어 있다) 또한 날짜가 유효한지, 그리고 인증서가 접속하려는 사이트와 관련되어 있는지 확인한다.
[웹브라우저] Public Key를 사용해서 랜덤 대칭 암호화키(Random symmetric encryption key)를 비릇한 URL, http 데이터들을 암호화해서 전송한다.
[웹서버] Private Key를 이용해서 랜덤 대칭 암호화키와 URL, http 데이터를 복호화한다.
[웹서버] 요청받은 URL에 대한 응답을 웹브라우저로부터 받은 랜덤 대칭 암호화키를 이용하여 암호화해서 브라우저로 전송한다.
[웹브라우저] 대칭 키를 이용해서 http 데이터와 html문서를 복호화하고, 화면에 정보를 뿌려준다.
전문 용어라서 좀 복잡하지만 위의 내용은 웹브라우저 웹서버간에 주고 받는 정보를 Public Key와 Private Key를 이용하여 암호화된 정보로 송수신함으로써 중간에 네트워크 중간에서 해커가 정보를 탈취하더라도 사용할 수 없도록 하자는 것이 작동 원리 입니다.
인증서는 여러 부분으로 이루어져있으며 아래는 인증서 속에 들어있는 정보의 종류를 입니다.
1. 인증서 소유자의 e-mail 주소
2. 소유자의 이름
3. 인증서의 용도
4. 인증서 유효기간
5. 발행 장소
6. Distinguished Name (DN)
– Common Name (CN)
– 인증서 정보에 대해 서명한 사람의 디지털 ID
7. Public Key
8. 해쉬(Hash)
SSL의 기본 구조는 당신이 인증서를 서명한 사람을 신뢰한다면, 서명된 인증서도 신뢰할 수 있다는 것이다. 이것은 마치 트리(Tree)와 같은 구조를 이루면서 인증서끼리 서명하게 됩니다. 최상위 인증서에 대해서 이 인증서를 발행한 기관을 Root Certification Authority(줄여서 Root CA)라고 부르며, 유명한 인증 기관(역주:Verisign, Thawte, Entrust, etc)의 Root CA 인증서는 웹브라우저에 기본적으로 설치되어 있습니다. 이러한 인증 기관은 자신들이 서명한 인증서들을 관리할 뿐만 아니라 철회 인증서(Revoked Certificate)들도 관리하고 있으며 모든 Root CA 인증서는 자체 서명(Self Signed)되어 있습니다.
만약 해커가 이 키를 탈취해 버리면 여태까지 암호화된 정보가 모두 무용지물이 되어버리게 됩니다. 일반적으로 사이트와 사이트간에 데이터를 주고 받은 인증키라는 것이 이 대칭키 방식으로 되어 있습니다. 이 대칭키는 서비스를 하는 웹사이트에서 복사해서 서비스 받는 웹사이트에 붙여넣고 저장하는 수작업을 거치는 경우가 대부분입니다. 이런 것에 대한 해결책은 대칭키를 비대칭키로 암호화시켜서 전송하는 방법을 사용하는데 이 경우 자신의 Private Key만 안전하게 관리하면 Public Key로 암호화되어 안전하게 전송할 수 있으며 대칭키를 하나의 접속 세션동안 매번 랜덤으로 생성하면 만약 해당 세션에서 대칭키가 누출되어도 다음세션에서는 다른 키가 사용되기 때문에 안전합니다.
이것은 웹서버와 브라우저가 서로 통신을 하는 동안 서로 어떤 알고리즘을 사용할 수 있는지 확인하며 서로 이해할 수 있는 일반적인 알고리즘을 선택한 후 통신이 이루어지게 된다. OpenSSL은 컴파일해서 삽입할 알고리즘을 택할 수 있으며 이 경우 해당 암호화 알고리즘에 제한을 걸고 있는 국가에서도 사용할 수 있게 됩니다.
1. 해쉬 생성
2. Private Key로 해쉬 암호화
3. 암호화된 해쉬와 서명된 인증서를 메시지에 추가
4. 받는 사람은 따로 해쉬를 생성
5. 받은 메시지에 포함된 해쉬를 Public Key를 이용해서 복호화
4, 5번 과정에서 생성된 해쉬를 비교
▲ P3 (Plugin Performance Profiler) 스캔시 부하의 퍼센티지와 실행시간을 보여주므로써 어떤 플러그인에서 많은 부하가 발생하는지를 보여줍니다.
그래서 이 도표는 다보리에서 영리하게도 우커머스용 플러그인을 통합함으로서 얻을 수 있었던 속도 개선 효과를 잘 보여주고 있다고 할 수 있습니다.













견적의뢰지금 연락 주십시요!