
ユーザー名の列挙を回避する方法Secure Code Warrior
サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。
私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。
サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。
ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。
この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。
そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。
得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。


ユーザー名列挙とは、ハッカーがブルートフォース攻撃でユーザー名とパスワードの情報を取得することです。Secure Code Warrior を使って、ユーザー名の列挙を回避する方法を学びましょう。
アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする文化を築くお手伝いをします。アプリケーションセキュリティマネージャー、開発者、CISO、またはセキュリティ関係者であるかに関わらず、安全でないコードに関連するリスクを軽減するお手伝いをします。
デモを予約アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者


サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。
私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。
サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。
ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。
この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。
そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。
得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。

サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。
私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。
サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。
ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。
この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。
そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。
得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。
サイドチャネル攻撃とは、アルゴリズムの理論的な弱点やソフトウェアのコードのバグではなく、ソフトウェアシステムの物理的な実装からハッカーが情報を収集できることを言います。
私がこのことをより明確にするために使いたい例は、ユーザー名の列挙を行う方法です。ユーザー名の列挙とは何か、なぜそれが悪いのかを知りたい方は、当社のウェブサイトでビデオによる説明をご覧になるか、コードで識別できるかどうかチャレンジしてみてください。
サイドチャネル攻撃によってユーザ名の列挙がどのように行われるかを理解するためには、最新のウェブアプリケーショ ンでパスワードがどのように扱われているか(あるいは少なくともそうあるべきか)をある程度理解しておく必要があります。優れたウェブアプリケーションは、あなたのパスワードを知りませんし、どこにもパスワードを保存しません。では、あなたが入力したものが正しく、実際にあなたのパスワードであることをどうやって知ることができるのでしょうか?パスワードはハッシュ化されています。
ハッシュ関数とは、一方通行で実行するのは簡単だが(多少計算コストはかかるが)、逆に実行するのは非常に困難な数学的演算であり、優れたハッシュアルゴリズムでは、入力に応じて出力が一意になる。Webサイトに登録すると、パスワードそのものではなく、そのハッシュが安全に保存されます。つまり、ログインするたびに、ウェブアプリケーションは入力をハッシュ化し、ハッシュ化された結果を保存されたハッシュと比較するのです。安全なパスワード保存について詳しく知りたい方は、私たちのプラットフォームで学ぶことができます。

入力のハッシュ化はコンピュータでは時間がかかるため、開発者はユーザーがスムーズに利用できるように、書いたものすべてを最適化しようと常に心がけています。プログラムを高速化する一つの方法は、必要のないハッシュ化を省略することです。たとえば、ユーザー名が存在しない場合(つまり、パスワードをチェックする必要がない場合)には、ユーザーに即座に応答することができます。このようにして、パスワードのハッシュ化という遅い計算を省略することができます。ユーザー名が正しければ、入力されたパスワードをハッシュ化して、保存されているハッシュと比較します。
この時点で、何が問題になるか想像がつくかもしれません。実際にはハッシュ化にかかる時間はわずか数ミリ秒ですが、ハッカーはこの追加された遅延を利用して、入力したユーザー名が正しいかどうかを調べることができます。間違ったユーザー名の場合はハッシュ化が行われていないため、わずかに速いレスポンスが得られます。このようなサイドチャネル攻撃はタイミング攻撃と呼ばれ、異なる非機能要件がお互いに打ち消しあう良い例となります。高速性と安全性を同時に実現できないコードもあります。
そのため、パスワードが完璧に処理され、表示されるメッセージが一般的なもので、パスワードやユーザー名が間違っているかどうかを知らせるものではないにもかかわらず、システムには脆弱性があります。解決策は簡単です。常にパスワードをハッシュ化するか、ハッシュ化にかかる時間分だけ返信を遅らせるのです。
得られた情報は、攻撃者がシステム上のユーザーのリストを得るために使用することができます。この情報は、ブルートフォース攻撃やデフォルトのユーザー名/パスワード攻撃など、ウェブアプリケーションへの攻撃に使用することができます。
始めるためのリソース
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText アプリケーションセキュリティのパワー + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.




.png)