시드니랩
[Cryptography] 12. Digital Certificate 본문
웹 서핑을 한다는 것은 네트워크를 통해서 수많은 임의의 상대방들과의 통신을 하기 위함이다. 이러한 구조에서 반드시 필요한 것은 통신하는 상대방이 정말 본인이 맞는지, 그리고 인증된 상대방과 외부의 침입으로 부터 안전한게 통신할 수 있는지에 대한 보장이다. 즉, 상대방의 인증과 메시지의 암호화가 필요하다.
인터넷을 사용하면서, 내가 통신하는 모든 상대방의 공개키를 가지고 있다는 것은 불가능하다. 내가 어떤 웹사이트에 접속해서 누구와 통신할지 모를뿐더러, 수많은 사람들이 작성한 웹페이지를 방문하기 때문이다. 그래서 SSL은 Digital Certificate 을 지원한다. (참고로 HTTPS 는 SSL을 지원하는 HTTP). 임의의 웹사이트를 접속을하면, 통신 프로토콜 차원에서 Digital Certificate 을 이용한 인증 및 통신의 준비를 시작한다. 추후에 IPSecurity 에서 다루는 IKEv2 내용을 확인하면, 각 Entity 들간의 Handshaking 단계에서 Digital Certificate 을 교환하는 것을 확인할 수 있을 것이다.
✤ Digitlal Certificate 개요
디지털 인증서(Digital Certificate) 란, 공인된 제 3 자 (Certificate Authority)가 발급한 개체에 대한 인증서이다. 현실 세계에서 정부가 발급한 여권 이나 주민등록증 같은 문서가 개인의 신분을 증명한다면, 웹 상에서는 CA가 발급한 디지털 인증서가 공신력 있는 문서인 셈이다. 참고로, CA는 잘 알려진 기관이며 예를들어, OpenSSL, NetScape, Verisign, Entrust 등이 있다. 이런 CA들은 자신들이 인증한 별도의 기관에게 인증서 발급을 위탁할 수도 있으며, 그들과 구분하기 위해서, Root CA, Intermediate CA, Local CA 라고 칭하기도 한다.
가장 흔한 Digital Certificate 의 구조는 아래와 같으며, 이러한 포맷을 X.509 Certificate 이라고 부른다.
버전이 올라감에 따라 조금씩 추가되는 정보가 있다는 것을 감안하자. 하지만 중요한 것은 V.1 부터 있는 부분이다.
몇가지만 살펴보면, 인증서 버전, 공개키 암호화 알고리즘, 발급자 성명, 유효기간, 대상자, 확장정보 그리고 최종 서명(Digital Signature) 이 있다.
아래그림이 인증서를 발급하고 활용하는 예가 가장 적절해서 첨부해 본다.
✤ Digital Certificate 의 실제
그러면 직접 Digital Certificate 을 찾아보자. 크롬으로 접속하면 주소창 옆에 자물쇠 같은 표시가 보인다.
인증서를 누르면 아래와 같이나오며, 맨위에 보이는 DigiCert 가 Root CA, 그 다음 보이는 Thawte 가 Local CA 이다.
티스토리 페이지는 Thawte 가 CA가되어 발급한 Digital Certificate 을 사용하는 것이다. 이제 세부사항 버튼을 클릭해보도록 하자.
원래 포맷을 크롬이 파싱해서 사용자가 보기 좋도록 보여주고 있기 때문에, 위에서 다룬 포맷과 정확히 일치하지는 않지만 순서는 동일하다.
대상자 그리고 발급자가 나와있으며, 공개키 알고리즘 및 파라미터등이 나와있다. 원본 포맷은 위키피디아를 참고하자(en.wikipedia.org/wiki/X.509)
즉, 이 티스토리로 통신을 하고싶으면, 공개되어있는 256비트 공개키를 RSA 알고리즘을 사용하여 보내면, 티스토리에서 가지고있는 개인키를 이용하여 확인하겠다는 뜻이다.
아래로는 여러가지 확장 (X.509 v3) 파일 정보가 나와있다.
또한 마지막에 이 인증서에대한 Digital Signature 이 있는것을 볼 수 있다.
마지막 지문은, Digital Signature은 CA가 가지고있는 개인키로 서명한 것이다. (CA가 발급했다는 사실을 증명하기 위해서)
서명시 $E_k(h(m))$ 구조를 따르므로 SHA-256 이나 SHA-1 중 아무 해시함수로 해시하고 위 값을 확인하면 된다.
'랩 > Cryptography and Security' 카테고리의 다른 글
[Cryptography] 14. Secret Sharing - Shamir's Secret Sharing Scheme & Chinese Remainder Theorem (0) | 2021.01.01 |
---|---|
[Cryptography] 13. Digital Signature Standard, RSA and DSA Signing (0) | 2020.12.31 |
[Cryptography] 11. SHA - 1 Algorithm (0) | 2020.10.28 |
[Cryptography] 10. Hash Function (0) | 2020.10.28 |
[Cryptography] 9. ElGamal Public Key cipher (0) | 2020.10.14 |