SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Comment éviter l'énumération des noms d'utilisateur | Secure Code Warrior

ピーテル・デ・クレマー
2017年10月09日 掲載
最終更新日: 2026年3月8日

サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。

私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。

サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。

ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。

この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。

そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。

得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

リソースを表示する
リソースを表示する

L'énumération des noms d'utilisateur se produit lorsque les pirates informatiques utilisent des attaques par force brute pour obtenir des informations sur le nom d'utilisateur et le mot de passe. Découvrez comment éviter l'énumération des noms d'utilisateur avec Secure Code Warrior.

さらに詳しく知りたいですか?

Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ピーテル・デ・クレマー
2017年10月09日発行

Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

共有する:
リンクトインのブランドソーシャルx ロゴ

サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。

私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。

サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。

ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。

この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。

そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。

得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

リソースを表示する
リソースを表示する

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディング関連の情報をお送りするにあたり、ご承諾を頂戴できれば幸いです。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ございません。

提出する
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、Analyticsクッキーを有効にしてください。完了後は再度無効化しても構いません。

サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。

私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。

サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。

ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。

この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。

そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。

得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

ウェビナーを表示する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

レポートを表示するデモを予約する
PDFをダウンロード
リソースを表示する
共有する:
リンクトインのブランドソーシャルx ロゴ
さらに詳しく知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ピーテル・デ・クレマー
2017年10月09日発行

Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

共有する:
リンクトインのブランドソーシャルx ロゴ

サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。

私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。

サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。

ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。

この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。

そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。

得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

目次

PDFをダウンロード
リソースを表示する
さらに詳しく知りたいですか?

Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません