web-dev-qa-db-ja.com

ログインフォームを表示する前にウェブサイトに5秒の遅延がある場合、それはおそらくセキュリティ対策ですか?

JP Morgan Chaseのホームページには、ログインフォームが表示されるまでに5秒の遅延があります。あなたがリフレッシュした場合、遅延は常にそこにあります。適切なパスワードの入力に失敗した場合、ページのロード時に、更新要求の数に関係なく、失敗したログインページにそのような遅延はありません。

ホームページは何らかのセキュリティ対策を実施していますか?

20
Info5ek

ホームページは何らかのセキュリティ対策を実施していますか?

https://www.chase.com を参照している場合は、いいえ、ロードして移行を行うのが遅いだけです。恐ろしいUXかもしれませんが、これはセキュリティ機能ではありません。ログインクラッキングボットは通常、ユーザーインターフェースを使用しません。

基本的に、それは銀行のWebサイトであり、ひどいUXは残念ながら標準です。


この特定のケースはセキュリティ関連ではないかもしれませんが、ログイン要求間でレート制限を行うことは珍しくありません。すべてのリクエストを有効にするには、これをバックエンドコードに実装する必要があります。

43

この遅延がセキュリティ対策のために発生する可能性のあるシナリオの1つは、サイトが クライアントパズルプロトコル(CPP) のようなものを使用している場合です。これは https://www.chase.com/ の場合には表示されませんが、CPPを使用して、低速ハッシュ関数に対するサービス拒否攻撃を防ぐことができます。基本的には Proof-of-Work system の実装です。詳細 こちら

基本的な考え方は、ユーザー名とパスワードのペアを受け入れて検証を試みる前に、クライアントにかなりの量の作業を強制し、それが実行されたことを証明することです。リンクされた投稿からのアプローチの基本的な概要:

サーバーはランダムなパズルを生成し、そのパズルをクライアントに送信します。サーバーは、パズルを解決するためにどれだけの労力が必要になるかを合理的に予測できる方法でパズルを生成します(たとえば、100ミリ秒の計算)。クライアントはパズルを解き、ソリューションをユーザーのユーザー名とパスワードとともに送信します。

Web設定では、これはおそらくJavaScriptで実装されます。ログインページには、パズルとパズルの説明を解決するためのJavaScriptコードが含まれます。正当なユーザーのWebブラウザーがページ上でJavascriptを実行します。これにより、パズルが解かれ、ユーザー名とパスワードと共にソリューションがフォームに含まれます。

これがどのように実装されているかに基づいて、サイトはクライアント(ブラウザ)がパズルを解くまでログインページの読み込みを遅らせる可能性があります。繰り返しになりますが、UIの設計はおかしいです。パズルが解決するまでログインボタンを無効にし、クライアントが解決策を見つけたらログインフォーム送信用のボタンを有効にします。

6
Rahil Arora

Chromeを使用してソースコードを見る:

view-source:https://www.chase.com/

<form name="homeLogonForm" class="container-fluid chase-home-login" action="https://mfasa.chase.com/auth/alogin.jsp" method="post" autocomplete="off">

要素は、ページの読み込み時に存在するため、JavaScriptを介して単純なボットから「非表示」にされるのではなく、UXの決定として存在を遅らせるように見えます。

チェイス銀行に尋ねることなく、私はこれが彼らのテスト段階で発見されたユーザビリティの理由のために行われたという推測を提供することができるだけです。

1
MonkeyZeus