Show HN: ReVault – 新しいセキュアなアーカイブフォーマット
Show HN: ReVault – new secure archive format (news.ycombinator.com)
要約
reVaultは、シンプルさを目指して設計された、デフォルトでセキュアな新しいアーカイブフォーマット「lockbox」です。Rustで書かれ、ハイブリッドポスト量子暗号化、Zstd圧縮、クロスプラットフォーム対応、多様な言語バインディングを備えています。キー管理や共有のための機能も提供し、現在ベータ版でフィードバックを募集しています。
全文翻訳
reVaultは、使いやすさを目指して設計された、デフォルトでセキュアな新しいアーカイブフォーマット「lockbox」です。
reVaultは、約2年間開発してきました。当初はDartで書かれていましたが、AIの進歩を受けて、AIを活用してRustに移植しました。
現在はベータ版であり、特に様々な言語バインディングに関するフィードバックを求めています。
lockboxはデフォルトで暗号化、署名、圧縮されます。それぞれ選択的に無効化することも可能です。
- メタデータを含む、ハイブリッドポスト量子暗号化またはパスフレーズ暗号化。
- Zstd圧縮。
- 可能な限り純粋なRustライブラリを使用。
残りのCコードは、代替手段が利用可能になり次第、段階的に廃止する予定です。プロジェクトはOpenAIのDaybreakサイバーセキュリティツールでスキャンされました。
マニュアルは現在作成中です: https://docs.revault.onepub.dev/
reVaultは、Linux、macOS、Windows、x64およびarm64、さらにWasmをサポートしています。コアはRustで、C/C++、Java、Dart、Python、Ruby、JS/TypeScript、Go、C#、Kotlin、Lua、PHP、Swift用のバインディングがあります。
lockbox内には以下を保存できます:
- ファイル、ディレクトリ、パーミッション、シンボリックリンク。
- 変数。
- フォーム。
変数、フォーム、およびlockbox自体に説明を付けることができます。
reVaultは、キー、連絡先のキー、lockboxエイリアス、フォーム定義を保持するために、ポータブルなボルト(構造化されたコンテンツを持つ別のlockbox)を使用します。
プラットフォームのセキュアストアと連携するため、デスクトップにログインするとボルトがアンロックされます。lockboxにアクセスするたびにパスフレーズを入力する必要はありません。これを無効にすることもできます。
多くのショートカットがあります。lockboxを作成すると、そのファイル名または選択した名前に基づいて、ボルトにエイリアスが保存されます:
lbx create /some/path/mybox.lbox
lbx mybox open --duration 1h
lbx mybox var set KEY VALUE
デフォルトのlockboxを設定すると、その名前を省略できます:
lbx session default mybox
lbx var get KEY
ディレクトリツリーをlockboxにミラーリングし、ディレクトリが変更されたときに更新できます:
lbx store.lbox mirrors project create --from ./project --to /projects/project
lbx store.lbox mirrors update
APIを使用すると、ファイルをファイルシステムに展開せずに、ファイル内を読み取り、書き込み、シークできます。各lockboxには目次があるため、数ギガバイトのlockboxから単一のファイルを展開するのは高速です。
リカバリ
アップデートはトランザクショナルであり、失敗したアップデートは自動的にロールバックされます。フォーマットはリカバリのために設計されています。コンテンツはページに保存されるため、lockboxの一部が破損した場合でも、影響を受けないコンテンツをリカバリできます。
共有
暗号化されたlockboxは、共有できるとより便利です。
reVaultには、公開鍵を交換するためのオープンソースのキーサーバーがあり、2番目の信頼できるチャネルを通じて検証が行われます。これはまだ実験的です。
OnePubは、単一のキーサーバーを実行するためのサーバーを寄付しました。リソースの寄付に興味がある場合は、2番目の冗長サーバーを立ち上げたいと考えています。これは純粋なRustで、100MB未満のRSSしか使用せず、レート制限をサポートしています。
デフォルトプロファイルの公開鍵を発行するには:
lbx vault profiles email you@example.com
lbx vault profiles publish
発行コードを連絡先に渡してください。彼らはあなたの鍵をインポートできます:
lbx vault contacts receive <publish-code> <contact-name>
プロファイルのフィンガープリントを表示し、2番目の信頼できるチャネルを通じて交換してください:
lbx vault profiles fingerprint
相手の鍵を取得するために、逆のプロセスを繰り返してください。鍵を取得したら、デフォルトのlockboxへのアクセスを許可します:
lbx access grant alice
その後、暗号化されたlockboxをAliceにメールで送信できます。
CLIをインストールして開始するには:
cargo install revault_cli
lbx vault init
lbx completion install
完了インストールの検出は、お使いのシェルを認識します。問題を診断するには:
lbx doctor
言語バインディングは、それぞれのパッケージリポジトリに公開されています。
プロジェクト自体のメリット、特にAPIと言語バインディングについて、建設的な批判を求めています。AIの使用に関する議論には興味がありません。