クリアテキスト (クリアテキスト) とは | 意味や読み方など丁寧でわかりやすい用語解説
クリアテキスト (クリアテキスト) の読み方
日本語表記
平文 (ヒラブン)
英語表記
cleartext (クリアテキスト)
クリアテキスト (クリアテキスト) の意味や用語解説
クリアテキストとは、暗号化やその他の難読化処理が施されていない、人間がそのまま読んで理解できる形式のテキストデータのことである。プレーンテキスト、または日本語で平文(ひらぶん)とも呼ばれる。この形式のデータは、特別なソフトウェアや鍵を必要とせずに、テキストエディタなどで開けば直接内容を閲覧できる。クリアテキストの対義語はサイファーテキスト(Ciphertext)であり、これは暗号化アルゴリズムによって元のデータが変換された、一見して意味不明な文字列である。サイファーテキストを元のクリアテキストに戻すには、復号というプロセスと、それに必要な鍵が必要となる。情報セキュリティの分野において、クリアテキストの概念を理解することは極めて重要である。なぜなら、機密情報がクリアテキストの状態で扱われると、第三者による盗聴や不正アクセスによって情報が容易に漏洩する危険性が高まるからである。 システム開発の現場では、様々な場面でクリアテキストが扱われる。例えば、ユーザーがウェブサイトのログインフォームに入力するユーザー名やパスワードは、送信ボタンが押される直前まではクリアテキストの状態である。また、システムの動作に必要な設定を記述する設定ファイル内に、データベースへの接続情報(ホスト名、ユーザー名、パスワード)がそのまま書き込まれている場合も、それはクリアテキストでの情報保持に該当する。さらに、暗号化されていない通信プロトコル、例えばHTTP(Hypertext Transfer Protocol)やFTP(File Transfer Protocol)、Telnetなどを利用してデータを送受信する場合、ネットワーク上を流れるデータはすべてクリアテキストとなる。これらのデータは、ネットワーク経路の途中でパケットを監視するツールを使えば、第三者によって容易に内容を盗み見られてしまう。これを盗聴(Eavesdropping)と呼ぶ。特に、公衆無線LANのような信頼性の低いネットワーク環境では、このリスクは格段に高まる。 クリアテキストで情報を扱うことの最大のリスクは、情報漏洩に直結することである。通信経路上でデータが盗聴された場合、ログイン情報や個人情報、クレジットカード番号といった機密情報が攻撃者の手に渡る可能性がある。また、サーバーへの不正アクセスを許してしまった場合、もしデータベース内や設定ファイルにパスワードなどの重要な情報がクリアテキストで保存されていれば、攻撃者はそれを即座に入手し、さらなる攻撃の足がかりとしたり、他のシステムへの不正アクセスを試みたりすることが可能になる。このように、クリアテキストでの情報管理は、一つのインシデントが大規模な被害へと発展する原因となりうる。 こうしたリスクを軽減するため、システムエンジニアはクリアテキストで機密情報を扱うことを避け、適切な保護措置を講じなければならない。対策は大きく分けて、通信経路上での保護と、保管時(データ保存時)の保護の二つがある。通信経路上での保護としては、通信内容を暗号化するプロトコルを利用することが基本である。具体的には、HTTPの代わりにHTTPS(HTTP over SSL/TLS)を、FTPの代わりにFTPSやSFTPを、Telnetの代わりにSSH(Secure Shell)を使用する。これにより、クライアントとサーバー間の通信が暗号化され、たとえデータが盗聴されても、その内容はサイファーテキストであるため第三者には解読できない。 一方、保管時のデータ保護も同様に重要である。特にパスワードのような認証情報は、決してクリアテキストのままデータベースに保存してはならない。一般的な対策として、ハッシュ化という技術が用いられる。ハッシュ化とは、ハッシュ関数を用いて元のデータを不可逆な固定長の文字列に変換する処理である。ユーザーがログインを試みる際には、入力されたパスワードを同じハッシュ関数で変換し、データベースに保存されているハッシュ値と一致するかどうかを比較する。この方法であれば、元のパスワードを保存する必要がなく、万が一データベースの情報が漏洩しても、攻撃者はハッシュ値から元のパスワードを直接知ることはできない。さらにセキュリティを強化するために、ソルトと呼ばれるランダムなデータを付与してからハッシュ化するソルト付きハッシュが推奨される。これにより、同じパスワードでもユーザーごとに異なるハッシュ値が生成され、辞書攻撃などに対する耐性が向上する。パスワード以外の個人情報など、後で元のデータに戻す必要がある情報については、AES(Advanced Encryption Standard)などの強力な暗号化アルゴリズムを用いて暗号化し、暗号鍵を厳重に管理することが求められる。システムエンジニアは、扱うデータの性質を理解し、それがクリアテキストのままであってよい情報なのか、あるいは暗号化やハッシュ化による保護が必要な機密情報なのかを適切に判断し、設計・実装する責任を負うのである。