피드로 돌아가기
Dev.toSecurity
원문 읽기
Plausible Deniability 구현을 통한 고강도 Duress Password 설계
Plausible Deniability in Cryptography: Building a Duress Password in Rust
AI 요약
Context
전통적인 암호화 도구는 네트워크 패킷 탈취나 RAM 분석 등 기술적 공격 방어에 집중함. 강압에 의해 패스프레이즈를 입력해야 하는 Rubber-hose cryptanalysis 상황에서는 수학적 암호화만으로 데이터 기밀성을 유지하는 데 한계가 있음.
Technical Solution
- Decoder Invariant 설정을 통한 Decryption Error 제거로 패스프레이즈 정오 여부에 대한 외부 신호 차단
- 동일한 Ciphertext 내에 Real Message와 Decoy Message를 각각 다른 Position Sequence로 팩킹한 이중 구조 설계
- Decoy 존재 여부를 나타내는 Flag 필드를 제거하여 Ciphertext 크기만으로 내부 데이터 구성을 판별할 수 없게 구현
- Ed25519 서명 체계를 Real/Decoy 메시지 모두에 일관되게 적용하여 서명 유무를 통한 메시지 진위 판별 가능성 제거
- 결정론적(Deterministic) 출력을 통해 잘못된 패스프레이즈 입력 시에도 유효한 형태의 랜덤 바이트를 반환하는 메커니즘 채택
실천 포인트
1. 보안 민감 기능 설계 시 에러 메시지가 시스템 내부 상태를 노출하는지 검토할 것
2. 다중 경로 데이터 복구 설계 시 각 경로의 출력 형태와 메타데이터가 동일한지 검증할 것
3. 서명 및 인증 로직 적용 시 예외 케이스(Decoy 등)에서도 일관된 인증 정책을 유지하고 있는지 확인할 것