平文(Plaintext)
平文(Plaintext) とは何ですか?
平文(Plaintext)暗号化されていない読み取り可能なデータ。暗号化の入力であり、正しい復号の出力でもある。
平文とは、暗号化が適用される前、または正しく復号された後の、人間や機械が読み取れる情報の元の表現です。暗号プロトコルにおいて、この用語は信頼境界の内側にあるデータと、敵対的な通信路を安全に通過できる暗号文とを区別します。また、平文は暗号解読の古典的な軸でもあります。既知平文攻撃(known-plaintext attack)は対応する平文/暗号文のペアを利用し、選択平文攻撃(chosen-plaintext attack)では攻撃者が自ら選んだ入力を暗号化できます。これはまさに IND-CPA 安全性やランダム化/AEAD モードが打ち破るために設計された脅威です。
実務的なセキュリティにおいて、「平文で保存されている」という言葉は重大な失敗を指す略語です。2012 年の LinkedIn の侵害では、salt なしの SHA-1 パスワードハッシュ 6.5 million 件が流出し(のちに ~117 million 件のアカウントに及んでいたことが判明)、2009 年の RockYou の侵害では 32 million 件のパスワードが完全な平文のまま漏洩しました。いずれも、今日でもアカウント解読に使われるワードリストの元になっています。2013 年の Adobe の侵害はこの問題をさらに悪化させ、150+ million 件を超えるパスワードを ECB モードの 3DES と共有鍵で暗号化したため、同一のパスワードが同一の暗号文を生成しました。防御的な実践: 認証情報を平文や可逆的な暗号文として保存しないこと。salt 付きでメモリを大量に消費する KDF(Argon2、bcrypt、scrypt)を使用すること。保存データは強力な AEAD 暗号(AES-GCM、ChaCha20-Poly1305)で暗号化すること。通信路では TLS を強制すること。そして、ログ、エラーメッセージ、URL、Referer ヘッダーから平文の秘密情報を伏字化することです。
flowchart LR A[平文<br/>信頼境界の内側] -->|鍵で暗号化| B[暗号文] B -->|敵対的通信路| C[暗号文] C -->|鍵で復号| D[復元された平文] A -. 漏洩: ログ, 平文保存 .-> E[露出] B -. 脆弱な暗号 / salt なし .-> E
● 例
- 01
TLS がリクエストを暗号化する前に、JSON 内で渡されるパスワード値。
- 02
クレジットカード番号を誤って平文でログ出力してしまうケース。
● よくある質問
平文(Plaintext) とは何ですか?
暗号化されていない読み取り可能なデータ。暗号化の入力であり、正しい復号の出力でもある。 サイバーセキュリティの 暗号 カテゴリに属します。
平文(Plaintext) とはどういう意味ですか?
暗号化されていない読み取り可能なデータ。暗号化の入力であり、正しい復号の出力でもある。
平文(Plaintext) からどのように防御しますか?
平文(Plaintext) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。