일시적 비밀이란 무엇인가요?
일시적 비밀은 패스워드, 토큰, 키 같은 민감한 데이터 항목으로, 제한된 기간 또는 접근 횟수 후에 영구적으로 복구 불가능하게 파기되도록 의도적으로 설계된다.
다른 이름: temporary secrets, one-time secrets, short-lived credentials
일시적 비밀의 원리는 민감한 데이터를 보호하는 가장 좋은 방법이 더 이상 필요하지 않을 때 존재하지 않도록 보장하는 것이라는 데 있다. 비밀이 존재하는 매 순간이 잠재적인 목표를 나타낸다. 침해에서 발견되거나 무단 사용자가 접근하거나 백업이나 로그 파일을 통해 유출될 수 있다.
일시적 비밀은 영구 API 키나 정적 패스워드 같은 오래 지속되는 자격 증명과 대조된다. 영구적인 자격 증명은 편리하지만 시간이 지남에 따라 위험이 누적된다. 1년 전에 생성되어 Slack을 통해 공유된 API 키는 채팅 기록, 백업 전반에서, 그리고 그 이후 채널에 합류한 모든 사람에게 1년간 노출됐다. 단일 전달에 사용되고 파기된 일시적 자격 증명은 공격 표면이 극적으로 작다.
일시적 비밀의 과제는 파기가 진정하고 완전한지 보장하는 것이다. 채팅 앱에서 메시지를 삭제해도 서버 백업에서 제거되지 않을 수 있다. 클라우드 드라이브에서 파일을 삭제해도 휴지통에 남을 수 있다. 효과적인 일시적 시스템은 암호화와 삭제를 결합하여 암호화된 데이터의 잔재가 살아남더라도 키 재료가 파기된다.
Vaulted가 일시적 비밀을 사용하는 방법
Vaulted의 모든 비밀은 설계상 일시적이다. 비밀은 최대 조회 횟수(1, 3, 5, 10회 또는 무제한)와 TTL 만료(최대 30일)로 생성된다. Redis는 조회 횟수를 원자적으로 추적하고 한계에 도달하면 암호화된 레코드를 삭제한다. TTL은 조회 여부와 무관하게 자동 만료를 보장한다. Redis에서 삭제되면 암호문이 사라지고, 암호문 없이 URL 프래그먼트의 키는 쓸모없어진다. 비밀은 영구적으로 파기된다.