“감사 추적이 있습니다”는 이제 체크박스 문구가 되었습니다. 거의 모든 문서 도구가 어딘가에 이벤트 목록을 출력하니까요. 중요한 질문은 다릅니다. 그 로그 자체가 문제로 떠올랐을 때, 수정되지 않았음을 보여 줄 수 있습니까?
일반적인 활동 로그는 데이터베이스의 행일 뿐입니다
전형적인 활동 로그는 애플리케이션이 기록하는, 그리고 원칙적으로는 다시 쓸 수도 있는 테이블입니다. 관리자나 버그, 혹은 데이터베이스 접근 권한을 가진 공격자가 행을 수정하거나 삭제할 수 있고, 남아 있는 행들은 그 사실을 전혀 드러내지 않습니다. 아무도 그 로그를 의심하지 않는 동안에만 증거인 셈입니다.
GingerDocs가 다르게 하는 것
문서의 생애에서 일어나는 모든 이벤트 — 생성, 전송, 열람, 서명, 거절, 무효화 — 는 위변조 감지 원장처럼 동작하는 로그에 추가됩니다.
- 추가 전용 — 이벤트는 추가될 뿐, 수정되거나 삭제되지 않습니다.
- 해시 체인 — 각 항목은 직전 항목의 SHA-256 해시를 포함하므로 모든 기록이 그 앞의 모든 것과 암호학적으로 묶입니다.
- 귀속 정보 — 각 이벤트에는 시각과 발생한 IP 주소가 함께 담깁니다.
체인 연결이 판을 바꾸는 이유
누군가 과거 항목 하나를 바꿨다고 해 봅시다. 그 해시는 다음 항목에 박혀 있는 값과 더 이상 일치하지 않고, 그다음 항목과도 어긋납니다. 조작이 일어난 지점에서 체인이 눈에 띄게 끊어지는 것이죠. 이력을 조용히 위조하려면 이후의 체인 전체를 다시 계산해야 하는데, 추가 전용 설계가 정확히 그것을 허용하지 않습니다.
그 결과는 믿어 달라고 요구하지 않는 로그입니다. 확인할 수 있는 로그니까요.
검증이 고리를 완성합니다
위변조를 감지하는 로그는 상대방이 직접 조회할 수 있을 때 가장 쓸모가 있습니다. 완료된 GingerDocs PDF를 가진 사람은 누구나 공개 검증 페이지에서 그 파일이 감사 로그에 기록된 서명 대상과 일치하는지 확인할 수 있습니다. 계정도 필요 없고, 누구의 말을 믿을 필요도 없습니다.
서명 도구를 평가하실 때 감사 추적이 있느냐고 묻지 마세요. 무엇이 감사 추적의 수정을 막느냐고 물으세요. 답이 “권한 설정”이라면 계속 찾아보시는 게 좋습니다.