// open source

肝心な部分を 読んでください。

検査できない暗号は、性質ではなく約束にすぎません。今日検査できるものと、これから来るものを正確に示します。

今日監査できるもの: ビューア

すべての受信者が開くページは単一の自己完結型ファイルです — フレームワークなし、バンドラー出力なし、外部スクリプトなし。任意のノートリンクを開いて「ソースの表示」を押せば、リンクの鍵を扱うプログラム全体を読んでいることになります。WebCrypto の鍵導出、AES-256-GCM の復号、このサーバー以外との通信を禁じる厳格な Content-Security-Policy。これはリポジトリの代わりにはなりませんが、あなたの秘密に触れるコードが、すべてのノートで最も文字どおりの意味で公開されていることを意味します。

あえて退屈に

BurnPony は暗号を発明しません。封印に AES-256-GCM、鍵導出に HKDF-SHA256、パスフレーズに 60 万回反復の PBKDF2-HMAC-SHA256 を使います — 標準的なプリミティブを標準的な方法で。アプリの Swift 実装とビューアの JavaScript 実装は独立に生成されたテストベクターで互いに検証され、2 つのコードベースはそもそも動作するためにバイト単位で一致しなければなりません。

リポジトリ

それは存在し、このページはいまそれを指しています: github.com/norsehorse-dev/BurnPonyiOS — 完全な iOS アプリ、リレーサーバー、それが組み立てられた部品を伴うビューア、実装間テストベクター、セルフホスティングガイドが、Apache 2.0 ライセンスの下、PGPonyCore や RelayPonyCore を含む一家の他の公開コアをホストするのと同じアカウントにあります。正確なバイトレベルの形式はv1 プロトコルとして記述され、配信されるビューアは公開ソースと同一であることが証明できます: リポジトリのscripts/assemble_viewer.py --verifyがバイト単位で確認します。

なぜこの順序か

  • 受信者を最優先: 受信者が信頼しなければならないコード — ビューア — が、初日から検査できる部分です。
  • 検証できる主張: フラグメント鍵の設計により、「サーバーはノートを読めない」ことは外部から確認できます。ネットワークタブを見れば、フラグメントがブラウザを決して離れないことが分かります。
  • 見栄えより誠実さ: リポジトリが存在するまで、サイトは「予定」と表示します。存在すれば、このページにリンクとライセンス条項が載ります。

それまでの間

セキュリティに関する質問や発見は、リポジトリの有無にかかわらず、今すぐ歓迎します: NorseHorse@norsehor.se、希望すればPGP 鍵で暗号化して。セキュリティページがモデル全体を公開の場で文書化しています。