SSL

TMT

SSL (Secure Socket Layer)

SSL은 Certificate Authority(CA)라 불리는 서드 파티를 통해 서버와 클라이언트의 인증에 사용됩니다.

SSL

첫 번째 그림은 SSL 아키텍처 구조를 나타냅니다. HTTP 프로토콜 상위에 통신 시 보안을 위한 SSL 관련 프로토콜이 있는 방식입니다. 아래 그림은 서버-클라이언트 간 통신을 보여줍니다. 클라이언트와 서버 간 공유하는 암호화 키를 통해 암호화된 데이터를 송수신하는 방식임을 확인할 수 있습니다.

공개키 암호 방식은 알고리즘 계산 방식이 느려지는 경향이 있습니다. 따라서 SSL은 암호화된 데이터 전송을 위해 공개키와 대칭키 암호화 방식을 혼합하여 사용합니다.

안전한 통신 채널을 수립할 때는 공개키 암호를 사용하며, 이렇게 만들어진 안전한 채널을 통해 임시 무작위 대칭키를 생성하고 교환합니다. 이 대칭키는 나머지 데이터 암호화에 활용됩니다.

  • 실제 데이터 암호화 방식: 대칭키
  • 대칭키 공유 암호화 방식: 공개키

암호화 방식에 대한 자세한 내용은 여기를 참고하세요.


SSL 작동방식

SSL 작동방식
  1. A 사이트 정보와 공개키를 인증기관으로 전송합니다.
  2. 인증기관은 이를 검증 후, 인증기관의 개인키로 암호화하여 인증서를 제작합니다.
  3. 인증기관은 인증서를 A 사이트에 전달합니다.
  4. 인증기관이 클라이언트(웹 브라우저)에게 공개키를 제공합니다. (브라우저에 내장됨)
  5. B 유저가 A 사이트에 접속합니다.
  6. A 사이트는 B 유저에게 인증서를 전달합니다.
  7. B 유저는 인증기관의 공개키로 인증서를 검증하여 A 사이트 정보와 공개키를 획득합니다.
  8. A 사이트의 공개키로 대칭키를 암호화합니다.
  9. 암호화된 대칭키를 A 사이트에 전달합니다.
  10. A 사이트는 개인키로 이를 해독하여 대칭키를 획득합니다.
  11. 대칭키를 이용해 암호문을 주고받습니다.

브라우저에 내장된 인증서 정보

인증서 정보

전자서명

전자서명

전자서명은 데이터 작성자를 증빙하기 위해 데이터에 전자 서명을 첨부하는 것을 뜻합니다.

전자서명을 통해 누가 메시지를 작성했는지 알 수 있으며, 메시지가 위조되지 않았음을 증명할 수 있습니다. 전자서명은 SSL 인증서에서 서비스를 보증하는 방법으로 활용됩니다.


SSL 디지털 인증

데이터를 안전하게 암호화하고 전자서명하여 교환하는 데 성공했지만, 한 가지 문제가 남아 있습니다. 전자서명만으로는 공개키 소유자의 실제 신원을 증빙할 수 없습니다.

이 문제를 해결하기 위해 **인증서(Certificate)**라는 개념이 등장했습니다. 키 쌍 소유자의 신원을 보증하기 위해 정부기관이나 은행 등 공인된 기관에서 인증서를 발급받습니다. 이 인증서에는 아래와 같은 정보가 포함됩니다.

하이퍼레저 인증서 예시

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            7f:7a:5a:d3:19:5e:93:85:16:be:46:39:d1:08:97:67
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: C=US, ST=California, L=San Francisco, O=org1.example.com, CN=ca.org1.example.com
        Validity
            Not Before: Oct 27 10:23:00 2019 GMT
            Not After : Oct 24 10:23:00 2029 GMT
        Subject: C=US, ST=California, L=San Francisco, O=org1.example.com, CN=ca.org1.example.com
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:e9:62:9a:cd:1c:e2:e7:b1:0c:ca:d9:c5:db:4a:
                    8d:a6:e7:b7:89:b0:e0:fc:3b:8b:5c:8d:22:62:92:
                    6e:98:d2:e5:35:d4:1f:ba:17:29:82:a5:73:ef:f9:
                    8f:e3:93:42:b2:9f:4b:55:93:47:b2:ef:17:09:1f:
                    0e:42:6a:04:47
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Certificate Sign, CRL Sign
            X509v3 Extended Key Usage:
                TLS Web Client Authentication, TLS Web Server Authentication
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier:
                44:F4:E5:6B:8B:54:63:65:9A:CA:F6:9D:8B:4E:AF:83:3C:42:D9:A0:DC:8B:E8:F8:28:70:FA:AC:BE:8A:AB:25
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:2c:ac:c1:6e:7a:a8:58:9b:a3:13:61:b0:63:6f:
         84:96:f4:3c:4a:5d:30:12:e0:27:e9:94:33:76:ff:f5:14:50:
         02:20:07:5f:d9:5d:71:5e:57:26:b1:4a:4b:6c:c7:43:52:9d:
         6e:72:e2:ee:83:74:25:86:19:3c:09:db:f3:71:ec:60

CA (인증기관, Certificate Authority)

CA는 디지털 인증서를 제공하는 공인된 기관입니다.

인증기관은 보안 적격 여부를 확인하고 메시지 암호화와 복원을 위한 공개키를 발급 및 관리합니다. 등록기관(RA)을 통해 정보를 검증하고, 이를 기반으로 인증서를 발급합니다.


SSL 통신 과정

SSL 통신과정

TLS (Transport Layer Security Protocol)

SSL(Secure Socket Layer)과 TLS(Transport Layer Security Protocol)는 같은 의미로 사용됩니다.
SSL은 넷스케이프에 의해 발명되었으며, 이후 IETF 표준화로 관리되며 TLS라는 이름으로 바뀌었습니다. TLS 1.0은 SSL 3.0을 계승하지만, 여전히 SSL이라는 이름이 더 널리 사용되고 있습니다.

Edit this page

On this Page