제11장 인증서 검사
인증서를 받은 경우 여러분은 그 인증서가 누구의 것인지 어떻게 확인할 수 있는지 의문이 들 것이다. 반대로 여러분이 인증서를 보낸 경우 그 인증서를 받은 사람이 내 인증서인지를 어떻게 확인할 수 있을까? 이메일의 발신자 정보는 누구나 변경할 수 있으므로 믿을 만한 자료가 되지 않는다. 내가 거래하는 은행이 내 이름으로 잔액을 이체해 달라는 메일을 수신한 경우 이메일 주소가 어떻게 되었든 절대로 송금하지 않기를 바랄 것이다. 즉 이메일 주소를 믿고 발신자 신원을 믿어줄 수는 없다.
지문
7EDC0D141A82250847448E91FE7EEC85C93D94BA
간단히 말해서 – 지문을 이용하여 인증서와 사용자가 맞는지 확인한다. 통신을 하기 위해 인증서를 보내준 사람에게 전화를 하여 지문 문자열을 불러달라고 한다. 만일 새로 확인한 지문이 내 PC의 클레오파트라 화면에 나타난 지문과 동일하면 발신자의 신원은 확실한 것이다.
당사자를 직접 만나서 확인해도 되고 명함에 지문을 인쇄해 두고 이를 이용해도 된다.
OpenPGP 인증서 인정하기
지문으로 인증서를 점검한 결과 정상 인증서임이 확인되면 이 인증서를 이용하는 사람의 신분이 정확하다고 Open PGP방식에서는 인정해 줄 수 있다. X.509방식에서는 사용자가 다른 사람의 인증서를 인정해 주는 기능은 없다. 이 권한은 CA(인증서 확인회사)만 보유하고 있다.
다른 사람이 인증서의 주인이 정확하다고 인정해 주면 GPG를 사용하는 모든 사람에게 이 인증서는 진짜임을 다른 사람들에게 알려주는 역할을 한다. 마치 다른 사람의 신원을 보증해주는 대부 역할을 수행하는 것이다.
인증서를 진짜라고 인정해주는 절차는 어떻게 이루어지나?
클레오파트라에서, 정확하고 진짜라고 인정하려고하는 인증서를 선택한다. 메뉴에서 Certificates - -> Authenticate certificates.를 선택한다.
다음 화면이 나오면 [Next] 버튼을 눌러서 OpenPGP 인증서를 재확인하면 된다.
다음 화면에서, 본인의 OpenPGP 인증서를 선택한 다음 인증서를 인정한다.
위에서와 같이 [본인용으로만 사용]을 선택할 수도 있고 [다른 사람이 볼 수 있도록 허용]을 선택할 수도 있다. 추가로 인증서 서버에 업로드하여 전 세계의 모든 사람이 사용할 수 있도록 허용할 수도 있다.
이메일에 서명을 하는 것과 같이 암호 문구를 입력해야 한다. 암호 문장이 정확해야 전 과정이 완료가 된다. 인정절차가 완료되면 다음 화면이 나온다.
신뢰관계망
인증서가 진짜임을 인정하는 과정에서 자동적으로 신뢰관계가 만들어진다. 이를 Web of Trust 다른 말로 신뢰관계망이라고 한다. 이는 Gpg4win를 사용하면서 모든 사용자의 인증서를 당신이 하나씩 검사하지 않아도 되는 장점이 있다.
많은 사람이 인정하면 그 신뢰도는 더욱 올라가는 것이 당연하다. 시간이 지날수록 여러분이 사용하는 인증서를 다른 사람이 더 많이 인정하기 마련이다. 그러면 여러분의 인증서는 더 많은 사람이 믿고 사용하게 된다. 그렇게 자동적으로 신뢰 관계가 확장이 된다. 문제는 어떤 사람이 가짜로 인증서를 진짜라고 인정하면 문제가 발생하므로 올바른 인증서라고 검사하는 행위는 매우 신중하여야 한다.
금융기관이나 정부관서는 고객의 인증서가 진짜인지 확인하고자 하는 경우가 있다. 그럴 때 모든 고객에게 일일이 전화하여 확인할 수는 없다.
신원확인 방법
이런 경우 우리는 사용자 모두가 믿을 수 있는 기관이 필요하다. 그러면 모든 사람에게 일일이 전화하여 확인하지 않고 그 기관이 발행한 ID를 이용하여 신원을 확인할 수 있다. OpenPGP방식에서 이런 신원확인기능을 수행하는 기구가 있다. 독일의 경우 오랜 동안 대학과 C't에서 무료로 이 서비스를 제공하고 있다. 만일 OpenPGP인증서를 사용하면서 그런 기구가 보증하면 신원이 확실하므로 믿고 사용하면 된다.
S/MIME에서도 이러한 검증기구가 있다. 하지만 신뢰망을 이용하기 보다는 계층형 보증방식을 사용한다. 이러한 방식을 이해하려면 공공기관이 발행하는 문서상의 인장을 생각해 보면 이해할 수 있다.