constant-time-testing
作成者 trailofbitsconstant-time-testing は、暗号コードのタイミングサイドチャネルを監査するための実践的なスキルです。constant-time-testing スキルを使って、秘密値に依存する分岐、メモリアクセスパターン、マイクロアーキテクチャ上の挙動を確認し、Security Audit のワークフロー向けに集中的な constant-time-testing ガイドを適用してください。
このスキルは 76/100 で、暗号コードの constant-time テストを案内するディレクトリ候補として十分に有力です。リポジトリには実際のワークフローと分野の文脈があり、導入する価値はありますが、補助スクリプトや導入時の自動化はないため、利用者はある程度ドキュメントを読み進めて自力で判断する前提になります。
- 暗号コード向けの constant-time testing を明確に対象としており、用途と導入判断の軸がはっきりしている。
- SKILL.md に 13 個の H2、24 個の H3、コードフェンスが含まれており、プレースホルダーではなく実運用を想定した内容に見える。
- プレースホルダーや実験的な印はなく、repo/file 参照や複数のワークフロー・制約 संकेतが含まれている。
- インストールコマンド、スクリプト、サポートファイルがないため、エージェントは自動実行ではなく Markdown の案内に頼る必要がある。
- 説明メタデータがかなり短いため、具体的な適合条件や制約は本文を読んで確認する必要がある。
constant-time-testing の概要
constant-time-testing は、暗号コードのタイミング・サイドチャネルを監査するための実践的なスキルです。秘密依存の分岐、メモリアクセスパターン、マイクロアーキテクチャ上の挙動によって、鍵、nonce、その他の機密値が漏れないかを確認したいときに使います。
constant-time-testing を使うべき人
このスキルは、セキュリティ監査担当者、暗号エンジニア、実装レベルの暗号をレビューする人に最適です。すでにコード、テストハーネス、あるいは疑わしいホットパスが手元にあり、一般的な安全なコーディング・チェックリストではなく、constant-time-testing に絞ったガイドが欲しい場合に特に役立ちます。
解決する課題
本当にやりたいのは「タイミング攻撃の理論を理解すること」ではなく、「このコードが秘密の値の変化で違う振る舞いをするかを見つけること」です。constant-time-testing は、その問いを再現可能なレビュー手順に落とし込みます。つまり、機密入力を特定し、それが影響するコードパスを確認し、漏えいをあぶり出せるテストを設計します。
何が便利なのか
主な価値は、具体性にあります。よい constant-time-testing スキルは、次の方向へ導くべきです。
- 最も重要なコード領域そのもの
- 漏えいしやすい比較や参照の種類
- そして、指摘が本当に問題かを判断する前に必要な証拠
constant-time-testing スキルの使い方
インストールしてソースファイルを開く
constant-time-testing の install では、trailofbits/skills からスキルを追加し、まず SKILL.md を読みます。エージェントのワークフローで使う場合は、プロンプトを書く前に、挙動や規約を定義している隣接する repo ファイルも確認してください。
適切な入力の形から始める
このスキルは、あいまいな依頼ではなく、具体的な対象を渡したときに最もよく機能します。よい入力には、次のようなものがあります。
- レビューする repository または file path
- 隠す必要がある secret 値や API 呼び出し
- ローカル攻撃者、リモートのタイミング観測者、ベンチマークノイズなどの threat model
- 言語やプラットフォーム。C、Rust、assembly、high-level code では漏えいの仕方が異なるため
強いプロンプトの例は次のようになります。「`src
