認証情報を静止時および転送時に安全に保つために設計された多層暗号化アーキテクチャ。
すべての機密認証情報はlibsodiumを搭載したXChaCha20-Poly1305認証暗号化アルゴリズムで暗号化されます。高速、安全、タイミング攻撃に耐性。
固有のData Encryption Key (DEK)が各認証情報を暗号化。DEK自体はKey Encryption Key (KEK)で暗号化され、追加の保護層を提供。
マスターKey Encryption Keyはデータベースの外部に厳格な0600パーミッションのファイルとして保存。アプリケーションプロセスのみが読み取れます — Webサーバーや他のユーザーは不可。
メール認証情報は受信トレイへの鍵です。最高レベルの注意を持って取り扱います。
攻撃者がデータベースにアクセスしても、暗号化された認証情報はファイルシステムに別途保存されたKEKなしでは無価値です。
Key Encryption Keyは個々の認証情報を再暗号化することなくローテーションできます。新しいDEKは次回アクセス時に新しいKEKでラップされます。
パスワードとOAuthトークンは平文で保存されることはありません。暗号化形式で静的に存在し、メール操作に必要な場合にのみメモリ内で復号されます。
XChaCha20-Poly1305は機密性と完全性の両方を提供 — 暗号文の改ざんは検出・拒否されます。
シンプルな3ステップのプロセスで、入力した瞬間から認証情報を保護します。
メールアカウントを追加すると、パスワードはHTTPS経由で受信され、即座に暗号化サービスに渡されます。
認証情報用に固有のData Encryption Keyが生成されます。DEKはXChaCha20-Poly1305を使用してパスワードを暗号化。
DEKはマスターKey Encryption Keyで暗号化(ラップ)され、暗号文と共に保存されます。平文パスワードは破棄されます。
Clacksは暗号ライブラリlibsodiumが提供するXChaCha20-Poly1305認証暗号化アルゴリズムを使用しています。
エンベロープ暗号化は二層のアプローチです。各認証情報は独自のDEKで暗号化され、DEKはマスターKEKで暗号化されます。
はい。KEKは管理者がローテーションできます。DEKは次回アクセス時に新しいKEKで再ラップされます。