변경 불가능한 볼트
그 어떤 것도 덮어쓰지 않아요.
다른 모든 볼트는 제자리에서 편집해요. 비밀번호를 변경하면 이전 비밀번호는 사라지고, 존재했다는 기록도, 지난주 화요일에 무엇이 사실이었는지 증명할 방법도 없죠. Clavitor는 덮어쓰지 않아요. 모든 변경 사항은 새 리비전을 기록해요. 역사는 유지되고, 기록은 완전해요.
철저하게 추가 전용이에요.
Clavitor의 자격 증명은 편집하는 데이터 행이 아니에요. 리비전이 쌓인 구조예요. 비밀번호를 업데이트하면 볼트가 새 버전을 삽입하고, 이전 버전은 절대 건드리지 않아요. 최신 리비전이 현재 값이며, 그 이전의 모든 리비전은 순서대로 온전히 남아 있어요.
01 — 쓰기
매번 새로운 리비전
각 업데이트는 INSERT이지 절대 UPDATE가 아니에요. 항목은 고유한 식별자를 유지하고 버전 번호만 올라가요. 자격 증명을 읽으면 가장 높은 버전, 즉 예상하는 동일한 값이 반환되며, 이전의 모든 버전은 기록된 그대로 정확히 유지돼요.
02 — 유지
볼트 수명 전체의 기록
이전 리비전은 볼트가 존재하는 한 계속 보관돼요. 교체 기록, 유출 전의 값, 특정 날짜 당시의 필드 값 등 그 무엇도 폐기되지 않아요. 과거는 누군가 남겨두길 바라는 로그가 아니에요. 과거는 데이터 그 자체예요.
03 — 삭제
소거가 아닌 삭제 마커
자격 증명을 삭제하면 삭제되었음을 표시하는 리비전이 하나 더 기록돼요. 해당 항목은 더 이상 조회되지 않지만, 존재했다는 기록과 삭제된 시점은 남아 있어요. 증명할 수 있는 삭제는 흔적도 남기지 않는 삭제보다 훨씬 가치 있어요.
중요한 이유
변경 가능한 볼트가 답할 수 없는 질문들.
모든 편집이 이전 상태를 파괴한다면, 수많은 종류의 질문에 답할 수 없게 돼요. 변경 불가능성은 설계를 통해 이러한 질문에 답해요.
"사고 당일의 키는 무엇이었나요?"
교체된 시크릿은 보통 교체되는 순간 사라져요. 하지만 여기서는 해당 시점 동안 활성 상태였던 값이 여전히 볼트 안에 해당 버전과 이를 증명하는 타임스탬프와 함께 남아 있어요. 포렌식이 더 이상 고고학이 아니에요.
"누가 이걸 변경했고, 이전에는 무엇이었나요?"
모든 업데이트, 삭제, 범위 변경, 에이전트 변경은 새 리비전에 연결된 감사 이벤트를 기록해요. 기록과 누가 수행했는지에 대한 기록은 같은 이야기를 두 가지 방식으로 전달하는 것이며, 어느 쪽도 몰래 되돌릴 수 없어요. 변조 방지 감사 로그 보기 →
"그냥 실행 취소할 수 있나요?"
잘못된 교체, 실수로 인한 잘못된 편집, 필드를 덮어쓴 침해된 에이전트 등 아무것도 파괴되지 않기 때문에, 이전 값을 복구하는 것은 백업을 복원하고 충분히 최신이길 바라는 게 아니라 단순히 이전 버전을 읽는 것이에요.
"우리가 보지 않는 사이에 변경된 것이 있나요?"
조용히 변경될 수 없어요. 놓칠 수 있는 제자리 변경은 없어요. 현재 상태는 번호, 작성자, 타임스탬프가 있는 리비전이며, 그 이전의 모든 상태도 마찬가지예요.
단 하나의 원칙, 볼트 전체에 적용돼요.
변경 불가능성은 자격 증명에 덧붙여진 기능이 아니에요. Clavitor의 모든 기록이 구축되는 방식이에요. 사용자의 항목, 감사 로그, 래핑된 키 기록, 이 페이지의 내용 자체까지 모두 추가 전용이며 동일한 방식을 따라요. 시스템 어디에도 진실이 덮어쓰이는 곳은 없어요.
충돌 없는 복제
리비전은 한 번만 기록되고 절대 변경되지 않기 때문에, 지구 반대편으로 복사하는 것은 아주 간단해요. 행이 도착하면 명시적 승인이 이루어지는 순방향 커서일 뿐이에요. 조정할 편집도, 해결할 충돌도, "어떤 사본이 맞는지"에 대한 문제도 없어요. 추가 전용 데이터에는 정확히 하나의 기록만 존재해요.
유출되는 평문이 아닌, 보관되는 암호문
보관된 기록은 활성 값과 정확히 동일하게 저장 상태에서 암호화되며, 키는 절대 당사 서버에 도달하지 않아요. 과거를 보관한다고 해서 노출 위험이 늘어나지 않아요. 도난당한 디스크에는 읽을 수 없는 이전 암호문과 새 암호문이 똑같이 보관될 뿐이에요. 암호화 작동 방식 →
유일한 예외
제자리에서 기록하는 유일한 부분을 문서로 명시해요.
정직함은 설계의 일부예요. 새 리비전이 아닌 제자리에서 기록되는 필드는 정확히 하나뿐이에요. 바로 자격 증명이 마지막으로 작동한 시점을 기록하는 마커인 verified_at이에요. 이는 내용 변경이 아닌 사용 메타데이터이므로 최신 리비전을 직접 업데이트하며, 모든 기록 자체도 감사 로그에 남아요. 문서화되지 않은 예외야말로 변경 불가능성에 대한 주장을 공허하게 만들기 때문에 여기서 알려드리는 것이에요. 이게 유일한 예외예요.
제대로 된 삭제.
추가 전용이라고 해서 영원히 삭제될 수 없다는 뜻은 아니에요. 삭제가 의도적이고, 완전하며, 기록으로 남는다는 뜻이에요. 리비전별 삭제 마커가 일상적인 케이스를 처리해요. 실제 소거가 필요한 경우(예: GDPR 요청, 계정 탈퇴)에는 볼트 전체를 대상으로 되돌릴 수 없게 삭제되며, 의도적인 작업으로 수행되고 절대 필드별 조용한 덮어쓰기로 이루어지지 않아요. 조용히 편집되는 일은 없어요. 제거될 때는 의도적이고 완전하게 제거돼요.
정직한 볼트는 기록을 유지해요.
변경 불가능성은 이야기의 절반에 불과해요. 나머지 절반은 누가 무엇을 수정했는지에 대한 기록이에요. 연결되고, 증거가 남으며, 증명 가능하죠.