온라인 비즈니스의 가장 중요한 요소 중 하나는 잠재 고객이 구매하기에 믿을 만한 신뢰할 수 있는 환경을 만드는 것입니다. SSL 인증서는 보안 연결을 수립함으로써 신뢰의 토대를 형성합니다. 연결이 안전한지 방문자가 납득할 수 있도록 브라우저는 EV 표시라 불리는 특별한 단서를 제공합니다. 이러한 표시는 녹색 자물쇠부터 브랜드화된 URL 표시줄까지 다양합니다.
SSL 인증서는 공개 키와 개인 키라는 키 쌍을 갖고 있습니다. 이 키들이 함께 작용하여 암호화된 연결을 수립합니다. 인증서는 또한 "주체(subject)"라는 것을 포함하고 있습니다. 이는 인증서/웹사이트 소유자의 ID입니다.
인증서를 얻으려면 서버에서 인증서 서명 요청(CSR)을 생성해야 합니다. 이 과정에서 서버에 개인 키와 공개 키가 생성됩니다. SSL 인증서 발급자(인증 기관 또는 CA라 함)에게 보내는 CSR 데이터 파일에는 공개 키가 포함됩니다. 인증 기관은 CSR 데이터 파일을 사용해 키 자체를 훼손하지 않고 개인 키에 맞는 데이터 구조를 생성합니다. 인증 기관은 절대로 개인 키를 볼 수 없습니다.
SSL 인증서를 받으면 서버에 인증서를 설치합니다. 인증 기관의 루트 인증서에 연동하여 SSL 인증서의 신뢰도를 확립하는 중개 인증서도 설치합니다. 해당 인증서의 설치 및 테스트에 관한 설명은 해당 서버에 따라 다릅니다.
아래의 이미지에서 인증서 체인이라는 것을 볼 수 있습니다. 여기서 서버 인증서는 중개 인증서를 통해 CA 루트 인증서(이 경우 DigiCert)에 연결됩니다.
SSL 인증서의 가장 중요한 부분은 DigiCert처럼 신뢰할 수 있는 인증 기관이 디지털 방식으로 서명하는 것입니다. 인증서는 누구나 만들 수 있지만 브라우저는 공인 인증 기관 목록에 포함된 조직에서 발급한 인증서만을 신뢰합니다. 브라우저는 사전 설치된 공인 인증 기관 목록(Trusted Root CA store로 알려짐)이 포함되어 제공됩니다. Trusted Root CA store에 추가되어 인증 기관이 되려면 브라우저에서 지정한 보안 및 인증 표준을 준수하고 그에 대한 감사를 받아야 합니다.
인증 기관이 조직과 그 도메인/웹사이트 발급한 SSL 인증서는 믿을 수 있는 제3자가 해당 조직의 신원을 인증했다는 것을 확인해줍니다. 브라우저가 인증 기관을 신뢰하기 때문에 이제 해당 조직의 신원도 신뢰하게 됩니다. 브라우저는 사용자에게 웹사이트가 안전함을 알려, 사용자는 사이트를 탐색하고 기밀 정보를 확인할 때 안전함을 느낄 수 있습니다.
SSL은 신용 카드 번호, 주민등록번호, 로그인 자격 증명과 같이 민감한 정보를 안전하게 전송할 수 있도록 합니다. 일반적으로 브라우저와 웹 서버 사이에 전송되는 데이터는 일반 텍스트로 전송되기 때문에 여전히 도청에 취약합니다. 브라우저와 웹 서버 사이에 전송되는 모든 데이터를 공격자가 가로챌 수 있다면 공격자는 그러한 정보를 확인하고 악용할 수 있습니다.
조금 더 구체적으로 설명하면 SSL은 보안 프로토콜입니다. 프로토콜은 알고리즘이 사용되어야 하는 방식을 설명합니다. 이 경우 SSL 프로토콜은 링크와 전송되는 데이터의 암호화 변수를 결정합니다.
모든 브라우저는 SSL 프로토콜을 사용해 보안 웹 서버와 상호작용할 수 있는 기능이 있습니다. 그러나 브라우저와 서버는 보안 연결을 수립하기 위해 SSL 인증서라는 것이 필요합니다.
브라우저가 SSL로 보호된 웹사이트에 접속하려 할 때 브라우저와 웹 서버는 “SSL 핸드셰이크”라는 프로세스를 사용해 SSL 연결을 수립합니다(아래의 도표 참고). SSL 핸드셰이크는 사용자에게 표시되지 않으며 순간적으로 일어납니다.
기본적으로 SSL 연결을 설정하는 데에는 공개 키, 개인 키, 세션 키라는 세 가지 키가 사용됩니다. 공개 키로 암호화된 모든 데이터는 개인 키로만 해독할 수 있으며, 그 반대도 마찬가지입니다.
개인 키와 공개 키를 사용한 암호화 및 복호화는 많은 처리 능력을 요구하기 때문에 대칭 세션 키(symmetric session key)를 생성하기 위한 SSL 핸드셰이크 중에만 사용됩니다. 보안 연결이 설정된 후에는 전송되는 모든 데이터에 세션 키가 사용됩니다.
SSL 프로토콜은 전송되는 데이터를 암호화하고 보호하는 데 항상 사용됩니다. 새로운, 더욱 안전한 버전이 공개될 때마다 버전 번호만 바뀌어 변경을 나타냅니다(예: SSLv2.0). 그러나 SSLv3.0에서 업데이트되는 시점부터 새로운 버전을 SSLv4.0이라 하는 대신 TLSv1.0으로 개명되었습니다. 현재 최신 버전은 TLSv1.3입니다.
SSL이 여전히 더 잘 알려져 있고 공통으로 사용되는 용어이기 때문에 DigiCert는 인증서를 언급하거나 전송되는 데이터의 보안 방식을 설명할 때 TLS/SSL을 사용합니다. DigiCert에서 SSL 인증서를 구매하면(예: 표준 SSL, Extended Validation SSL 등) TLS 인증서를 얻게 되는 것입니다(RSA 또는 ECC).
활용
결제정보나 민감한 정보를 수집하지 않는 웹사이트는 사용자 활동(블로그도 포함)의 보호를 위해 HTTPS가 필요합니다.
TLS/SSL은 사용자 이름과 비밀번호는 물론 개인 정보 제출에 사용되는 양식, 문서 또는 이미지를 암호화하고 보호합니다.
고객이 결제 영역과 공유하는 신용카드 정보가 안전하다는 것을 납득하면 구매에 이를 가능성이 더 높습니다.
권장 TLS/SSL 인증서 유형
OV(Organization Validated) TLS/SSL 인증서 - 두 번째로 높은 수준의 인증, 차순위로 엄격한 조직 확인.
OV(Organization Validated) TLS/SSL 인증서 - 두 번째로 높은 수준의 인증, 가장 엄격한 조직 확인.
EV(Extended Validation) TLS/SSL 인증서 - 가장 높은 수준의 인증, 가장 엄격한 조직 확인.
URL 표시줄의 자물쇠 아이콘을 클릭하면 웹사이트 소유자의 신원을 확인할 수 있습니다. 불행히도 오늘날 대부분의 피싱 사이트에는 자물쇠와 DV 인증서가 있습니다. 이 때문에 URL 표시줄의 자물쇠 속 정보를 확인하는 것이 중요합니다. 웹사이트가 인증서에 자신의 신원을 넣지 않으려 한다면 신원 정보를 이들과 공유하지 않아야 합니다. 조직의 이름을 확인할 수 있다면 신뢰하는 대상에 대해 더 나은 결정을 할 수 있습니다.