お知らせ

クライアントの鍵メモリを協調的に観測した結果

定めた全360観測を評価しました。c25519 の正確な鍵バイト列は all でも close 後に観測されました。gost の close 後のゼロは消去を証明しません。

cmd/lab -set keymem で、両暗号スイートの定めた系列を完了しました。 新しいクライアントが本番の経路で認証されたリレー3つを通り、正確なエコーを確認します。 選んだ32バイトのセル鍵3つについて、自発的な go ランタイムの書き出し1回を解析し、 Object ペイロード内だけで正確に連続した鍵のバイト列を数えます。

スイート 方針 active closed-now closed-1s
c25519 none 3 3 3
c25519 all 2 2 2
gost none 3 3 3
gost all 1 0 0

これは選んだ鍵ごとの出現数で、別々のコピーやライブラリの数ではありません。 各条件の全プロセスで、すべての鍵がこの件数でした。各条件30個の新しいプロセスを 予定して評価し、全360観測を評価、除外はありません。各ホップの分母は30プロセスで、 独立した90観測ではありません。いずれかの鍵を観測した割合は、gost all の close 後の 2時点が0/30、その他は30/30でした。p値、信頼区間、優越性の主張はありません。

active はエコー確認後、クライアントを開いた状態です。closed-now は Client.Close の 成功後、意図した待ち時間を置かず、closed-1s は返却から単調時計で1秒以上後です。 各観測のプロセスと鍵は新しいため、ひとつの鍵の寿命を追跡しません。 自然な gc と実際の書き出し遅延は、この観測の予定に属します。

最適化した go 1.27.3、linux/amd64、シード1で、変更のないコミット eddddb226e7224140f8655b1566a55ce33f3cedaを使いました。 バイナリの sha256 は a715234e5347d3ade2689dd585cf7c5cc36c82c1e9ec26c2cd29ffedc7067dc7 です。 集計行と要約を独立して再計算しました。数値と出所は readme(英語)、コマンドは 実験ブロック4(英語)に記載しています。

c25519 の正確なバイト列は all でも close 後に観測されました。gost のゼロは、評価した Object ペイロード内で、選んだ正確な符号化を観測しなかったという意味に限ります。 変換や導出を経た gost の状態、スタック、グローバルデータ、ランタイム/システム領域、 mmap のペイロードは探索しません。保護された元の mmap バッファは使用中も範囲外で、 ランタイムは通知なくデータを省く場合があります。none/all は複数の対策をまとめて変えます。 計測に伴って生じるコンパイラ/runtime の表現と、ライブラリの残りを区別できません。 件数は、消去、消去期限、プロセスの保護強化の効果、特権による取得への耐性を証明しません。

取得中は kind を停止し、並行したビルドやソースの書き込みはありませんでした。 系列中のホスト全体の cpu は30標本で3-33%、中央値11.5%、平均12.4%でした。 実験の処理を含み、無関係な負荷を分離できません。負荷を理由に観測を除外せず、 性能や負荷への頑健性の結論も出しません。受動的な攻撃の表とグラフは元のリビジョンと結果のままです。

外部からの取得、ディスク/スワップ/履歴、他の秘密値、記録した通信の復号は未計測で、 #192として v0.4.0 より後です。 #117の残るリレー観測の全計測は v0.4.0 に必須ですが、 設計中で未実装です。観測の境界は制約に記載しています。