仕様と根拠
読み方
文章を行に分け、RFC 7468 3 節の境界行「-----BEGIN ラベル-----」を探します。ハイフンはちょうど 5 つ、BEGIN の後に空白が 1 つ、ラベルは大文字です(2 節)。対応する「-----END ラベル-----」までを 1 つのブロックとし、間にある base64 の本体は長さと書式だけを調べて、中身は結果に出しません。
秘密鍵とみなすラベル
RFC 7468 が定義する PRIVATE KEY(10 節)と ENCRYPTED PRIVATE KEY(11 節)に加え、末尾が PRIVATE KEY のラベル(RSA PRIVATE KEY など)を、広く使われる慣用ラベルとして秘密鍵らしいものに含めます。前者の暗号化なしと慣用ラベルはエラー、暗号化された鍵は警告にします。
警告にする条件
ハイフンの数や空白、小文字の BEGIN など RFC の形から外れた境界行(読み取る側が許容して鍵として使えることがあります)、END 行がない・END のラベルが BEGIN と違う、本体が空か base64 以外の文字を含む場合は警告です。64 文字で折り返されていない本体は情報にします。
判定の範囲
探すのは PEM 形式の秘密鍵の境界行だけです。API キー・パスワード・トークン・OpenSSH 形式の鍵などは探しません。検出がなくても秘密情報が含まれていないとは限らず、あっても本物の鍵かどうかまでは判定しません。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 7468 Textual Encodings of PKIX, PKCS, and CMS Structures | 2026年10月28日 | 2 節(境界行・ハイフン 5 つ・大文字ラベル・64 文字)・3 節(ABNF)・10 節(PRIVATE KEY)・11 節(ENCRYPTED PRIVATE KEY) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- API キー・パスワード・アクセストークンなど、公式の仕様がない秘密情報は探しません。検出なしは安全の意味ではありません。
- OpenSSH 形式の鍵や、PEM ではないバイナリ・JSON 形式の鍵は対象外です。RFC 7468 の PEM 形式だけを探します。
- 本体が本物の鍵として有効かどうか(長さ・復号できるか)は判定しません。境界行のラベルと書式だけで判断します。
- 大きな文章(50 万文字まで)を想定しています。画像や PDF の中に埋め込まれた鍵は読めません。
ご利用にあたって
- 検出なしは「この点検では見つからなかった」だけで、秘密情報が含まれていない保証ではありません。API キーやパスワードは探していません。
- 本物の秘密鍵はこのツールにも貼らず、疑わしい部分だけを貼って確かめてください。入力は保存・送信しませんが、画面共有などでは見えます。