정보 보안의 기본 원칙: C-I-A
정보 보안의 근간은 세 가지 핵심 개념, 즉 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)을 뜻하는 C-I-A 위에 세워져 있습니다. 보안 작업이란 이 세 가지 원칙을 지켜나가는 과정이며, 반대로 이를 소홀히 하는 순간 보안은 무너지게 됩니다.
평소 가볍게 웹 서핑을 할 때는 지금 접속한 사이트가 실제로 자신이 주장하는 곳이 맞는지 크게 신경 쓰지 않을 것입니다. 하지만 사이트와 상호작용하며 기밀 정보를 입력해야 하는 상황이라면 이야기는 완전히 달라집니다. 이때 C-I-A는 매우 중요한 요소가 됩니다.

기밀 거래를 안전하게 보호하기 위해 암호화 기술이 탄생했습니다. 우리는 SSL/TLS를 사용해 '보안'이 적용된 웹사이트에 접속해 다양한 업무를 처리합니다. 아마존에서 책을 구매하거나, 은행 웹사이트에서 주식 포트폴리오를 관리하거나, 민감한 검사 결과를 확인하는 일까지 모두 마찬가지입니다.
그러나 이것만으로 무결성(Integrity) 문제가 해결되는 것은 아닙니다. 우리가 방문하는 웹사이트가 정말 자신이 주장하는 곳이 맞다는 사실을 어떻게 확신할 수 있을까요? 소중한 개인 정보를 악의적인 피싱 서버에 제출하고 있지 않다는 것을 어떻게 보장받을 수 있을까요?
바로 이 지점에서 인증 기관(CA, Certificate Authority)의 역할이 시작됩니다. CA는 전 세계 보안(HTTPS) 웹사이트에 신원 인증을 제공하는 중립적인 제3자 기관입니다. 일반적인 합의에 따르면, CA의 승인을 받고 올바른 인증서를 제공하는 웹사이트는 실재하는 정상 사이트로 인정됩니다.
그럼 이제 안심해도 되는 걸까요?
그래도 여전히 부족하다고 느끼는 분들이 있을 수 있습니다. 최근에는 MD5 충돌 공격이 성공했다는 이야기도 들려오고 있습니다.
비전문가를 위해 간단히 설명하겠습니다. 해시(hash)는 평문을 암호문에 고유하게 대응시키는 일방향 함수입니다. 즉, 서로 다른 두 값이 동일한 해시 값을 가져서는 안 됩니다. 가장 널리 사용되는 해시 알고리즘으로는 MD5와 SHA-1이 있습니다.
따라서 웹사이트에 인증서가 발급되면 해당 인증서에는 고유한 해시 값이 부여됩니다. 이론상으로는 내용과 무관하게 어떤 다른 웹사이트도 같은 해시 값을 가질 수 없어야 합니다.
MD5 충돌이란 바로 이 원칙이 깨지는 경우, 즉 서로 다른 두 값이 동일한 해시로 변환되는 상황을 말합니다. 이는 서로 다른 두 인증서가 같은 서명을 가질 수 있음을 의미합니다. 이론적으로 악의적인 웹사이트가 자신이 사칭하려는 정상 사이트와 MD5 해시가 일치하는 가짜 인증서를 제시하면, 전 세계의 웹 브라우저는 해시 검증을 통과했기 때문에 이를 정상으로 받아들일 것입니다.
결국 웹사이트 검증을 단일 출처에만 의존할 수는 없으며, 더욱 견고한 접근 방식이 필요합니다. 그래서 등장한 것이 바로 Perspectives입니다.
Perspectives란?
Perspectives는 브라우저가 HTTPS 웹사이트에 접속할 때마다 여러 네트워크 공증 서버(notary)에 문의하는 파이어폭스 보안 확장 기능입니다. 공증 서버는 일종의 심사위원단처럼 해당 인증서가 변경된 적이 있는지, 자체 데이터베이스의 정보와 일치하는지 확인합니다. 정상 인증서라면 모든 공증 서버에서 동일한 정보가 표시되어야 하며, 위조된 인증서는 일부 공증 서버와 비교했을 때 최근 갑자기 변경된 것으로 나타날 가능성이 높습니다.
이를 통해 잠재적으로 위험한 사이트에 접속할지 여부를 스스로 판단하고, 데이터 무결성 침해 사고를 미연에 방지할 수 있습니다.
Perspectives의 역할은 이것만이 아닙니다. 브라우저에서 만료된 인증서, 자체 서명 인증서, 도메인 불일치 등의 보안 경고가 표시될 때에도, Perspectives는 각 공증 서버가 보유한 정보가 서로 일치하는지 빠르게 확인해 줍니다.


정상 사이트를 사칭하려는 악성 사이트에서 이런 오류가 자주 발생하지만, 불행히도 상당수의 정상 사이트에서도 같은 오류가 나타나곤 합니다. Perspectives는 바로 이런 개인적 의문을 해소해 주는 실용적인 해결책이라 할 수 있습니다.
Perspectives 사용 방법
Perspectives의 사용법은 매우 간단합니다. 우선 파이어폭스에 확장 기능을 설치해야 합니다.
설치 후 파이어폭스를 처음 재시작하면 특별한 변화는 보이지 않습니다. Perspectives의 상태 아이콘은 브라우저 창 우측 하단에 위치합니다.

아이콘을 클릭하면 환경설정 창이 열립니다.

모든 사이트에 대해 공증 서버에 문의할지, 아니면 보안 오류가 발생한 사이트에만 문의할지 선택할 수 있습니다. 또한 검증을 통과한 사이트를 영구적으로 신뢰하도록 설정할 수도 있고, 공증 서버에 접속하기 전에 매번 사용자에게 확인을 요청하도록 설정할 수도 있습니다.
확인 요청 방식을 선택했다면, 해당 HTTPS 사이트(전체 또는 오류가 있는 사이트)에 접속할 때 브라우저 창에 노란색 경고 팝업이 표시됩니다.

이제 Perspectives가 실제로 작동하는 모습을 살펴보겠습니다. 보안 사이트에 접속한 상태이며, 이미 검증을 통과한 정상 사이트입니다. 그래도 한 번 더 교차 확인을 해보겠습니다.

Perspectives는 잠시 작동한 뒤 상태 표시줄에 결과를 표시합니다.

이 표시가 나타나면 해당 사이트가 정상이라는 의미입니다. 아이콘을 클릭하면 더 자세한 결과를 확인할 수 있습니다.

이 사례에서는 네 곳의 공증 서버가 모두 해당 웹사이트에 대해 동일한 키를 보유하고 있습니다. 이는 사이트 인증서가 변조되지 않았다는 강력한 근거가 됩니다. 이 사이트와 개인적이고 기밀적인 거래를 진행하려 해도 안전하다는 뜻입니다. 바로 우리가 알고 싶었던 정보입니다.
한계점
Perspectives는 역사가 짧은 프로젝트였습니다. 당시에는 소수의 공증 서버만 운영되었으며, 향후 그 수가 늘어날 예정이었습니다. 또한 일부 다른 파이어폭스 확장 기능과 호환되지 않는 경우가 있고, 프록시 환경에서는 모든 사이트에 대한 검증이 실패할 수 있다는 점도 한계로 꼽혔습니다.
참고로 Perspectives 프로젝트는 현재 더 이상 활발히 유지 관리되지 않으므로, 최신 버전의 파이어폭스에서는 호환성 문제가 발생할 수 있습니다. 현재는 브라우저 자체의 인증서 투명성(Certificate Transparency) 기술이 유사한 역할을 대신 수행하고 있습니다.
결론
Perspectives는 흥미롭고 중요한 프로젝트였습니다. 누적된 커뮤니티 경험을 활용해 웹사이트와 인증서의 보안을 교차 검증하는 일종의 '신뢰의 그물망'을 만들어 낸 것입니다. 보안을 중시하는 사용자에게는 매우 유용한 추가 도구였습니다.
웹 보안에 대해 더 알고 싶다면 안전한 웹 사용 수칙에 관한 글도 참고해 보시기 바랍니다.
Perspectives는 모든 운영체제에서 사용할 수 있었습니다.