こんにちは、穂苅智哉と申します。
前回は、食品のECサイトで発生した、個人情報9万人相当の流出可能性事件について見ていきました。被害規模が大きいことに加え、事前のセキュリティ対策が十分だったのか、事後対応が十分なのかなど、様々な観点がポイントになった事件でした。興味がある方はぜひご覧ください。
今回は、パスワードとセキュリティについての内容です。実は、複雑にしたパスワードでも安全ではないかも、というテーマです。
パスワードのセキュリティ化
私たちが設定するパスワードは、複雑な方が望ましく大文字、小文字、数字、記号を混ぜてつくる必要があるということは多くの人が知っています。しかし、設定したパスワードも保存の際のハッシュ化によっては、安全ではないことが分かっています。
ちなみに、ハッシュ化とはハッシュ関数というものを使って特定のルールに基づいた計算で別の値(ハッシュ値)に変えるということです。ハッシュ化は暗号化と異なり元に戻せない(不可逆)な方法になるため、パスワードの保管には最適なものです。Hive Systemsという企業の調査で、MD5とbcryptという2つのハッシュ方式の解読時間を測定したものがあります。ハッシュ化された情報は不可逆ですが、特定のルールに基づいた計算で本来のデータからハッシュ値に置き換えられているものとなります。そのため、攻撃者の攻撃方法としては可能性のある文字列をすべてハッシュ化し、盗んだハッシュと一致するかを試していく「ブルートフォース攻撃」が用いられます。これを実施するためには、GPUを利用して高速な処理をしていくことが手口としては増えています。
参考: Are Your Passwords in the Green? – Hive Systems
今のままでは、1時間以内にパスワードが特定されてしまうかも?
調査の結果、MD5で、8文字のパスワード(大文字、小文字、数字、記号)を使った場合、NVIDIAの GeForce RTX 4090というGPUを使った場合に1時間以内に解読ができてしまうということがわかりました。bcryptでハッシュ化された8文字のパスワードの場合は、同じGPUの GeForce RTX 4090で解読までに99年がかかるということです。
つまり、MD5などのハッシュ化では、攻撃者からは手間なくパスワードを判別されてしまう可能性があるということになり、私たちの情報が脅かされていると言えます。ちなみに、この問題は徳丸さんのXの投稿でも取り上げられていました。徳丸本でも取り上げられている内容になります。
セキュリティ知識を詳しく知りたい場合は、徳丸本と徳丸試験がおすすめ
パスワードは最も身近なセキュリティ対策と言えます。企業側もユーザー側も十分な知識があることが望ましいです。
Webセキュリティ関連の知識については、徳丸本を学ぶとよいです。得丸本は、Webセキュリティに関する基本知識が網羅されています。セキュリティは正確に体系立てて理解をしていかないと、システムや会社にとって致命的な問題に繋がります。これらの知識を身に着けたエンジニアとして活躍されていく方にはおすすめです。
そして、学んだあとは理解を確認するために徳丸試験でチェックしてみると理解度が可視化されるため、ぜひチャレンジしてみてください。
【徳丸本】
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践
【徳丸試験】