5

私は現在、PIN「番号」を提供することで、クライアントが購入/更新/などの詳細を表示できる機能を備えたシステムを開発しています.

ターゲットとするクライアントのタイプのため、ログイン情報の代わりに PIN が使用されています。PIN は、送信された文書に印刷されています。

PIN を提供するときに表示されるビューには、クレジット カードなどの機密性の高い情報は表示されませんが、製品名、種類、価格、バーコード、修理などの機密性の低い情報は表示されません。

問題は PIN です。ランダムな 5 文字の PIN (0 ~ 9、az AZ) を使用することにしました - 大文字と小文字が区別されます。ホモグリフ(「I」、「1」、「l」、「0」、「O」、「rn」、「vv」) をいくつか削除するので、実際の組み合わせの数は実際には少なくなります。

これについていくつか質問があります。

  1. この慣行は受け入れられますか?
  2. 大量の試行が失敗した IP からのトラフィックを「禁止」するロックアウト メカニズムを作成する必要がありますか?*
  3. エラー チェック システムを作成する必要がありますか (Luhn のクレジット カード番号のアルゴリズムに似ています)。
  4. *キャプチャシステムを利用する必要がありますか?
4

6 に答える 6

1

まず第一に、PIN だけでなく、顧客が知っている簡単なものを追加します。郵便番号をよく聞かれる普通郵便システムのように。それはなんとなく「共通の秘密」を知らない人を選別すること。

ボットによる「推測」の試行を減らすのに役立つため、キャプチャが面倒なほど難しくない場合は理にかなっています。Stefan が述べたように、共有 IP があるため、IP による禁止には問題があります。

また、フォームの投稿がエラー チェックに基づいて間違っている場合 (たとえば、着信接続の処理を遅らせる場合) に、ある種の「タール ピット」を実装することもできます。シンプルなアルゴリズム エラー チェックにより、指定された PIN の無駄なデータベース ルックアップを回避できます。

于 2011-01-25T10:56:42.377 に答える
1

CAPTCHA とロックアウトについては、CAPTCHA を選択し、1) CAPTCHA に失敗したクライアント、および 2) 無効なログインを遅らせます。後続。これは通常のユーザーにはそれほど不便はありませんが、攻撃者の速度を大幅に低下させます。あなたが何をしても、人々はそれを誤解するでしょう - それらを完全に禁止する必要はありません.

チェックサム - セキュリティのためではなく、入力エラーを検出するための 6 番目の文字として役立つ場合があります。

パスワードの強度に関する限り、これは弱いパスワードです。これを「lollcats の写真を共有する」よりも強力な認証の唯一の形式として使用するつもりはありません。長いパスワードを検討してください。他の人のデータ (そして、それが起こると、彼らは本当に動揺する傾向があります: 「誰かが私のデータをそのように見ることができるということですか?!」)。

于 2011-01-25T11:12:28.187 に答える
1

ターゲットとするクライアントのタイプにより、ログイン情報の代わりに PIN が使用されています。PIN は、送信された文書に印刷されています。

非常に奇妙ですが、このように書くことができます。本当に必要かどうかを考え直したほうがいいと思います。しかし、私の理解が正しければ、書類は普通郵便で送ったのですか? たとえば、ユーザーに PIN を送信し、次に openID( LightOpenID ) にサインインさせることはできないでしょうか。これらのアカウントは「安全」であるため、Google の OpenID プロバイダーのみにロックダウンします。このようにして、別のレベルのセキュリティを追加しました。また、Googleはキャプチャを使用してアカウントを確認します(「安全」にします)。

この慣行は受け入れられますか?

非常に奇妙ですが、許容できると思います。

大量の試行が失敗した IP からのトラフィックを「禁止」するロックアウト メカニズムを作成する必要がありますか?*

パスワードのブルート フォース ハッキングはすでに簡単に実行できるため、ロックアウト メカニズムを作成する必要があると思いますが、PIN のブルート フォース ハッキングは何の努力もせずに実行できます。IP経由で行うべきではないと思いますが、エンドユーザーがルーターの後ろに座っているとブロックされる可能性があるためです. また、ハッカーは、この種の攻撃を実行するためのボットネットを持っている可能性があります。今日、 stackoverflow.com のおかげでHashCashについて読みましたが、非常に興味深いものでした。たぶん、攻撃から身を守るためにそれを使用できます。

エラー チェック システムを作成する必要がありますか (Luhn のクレジット カード番号のアルゴリズムに似ています)。

私はそうは思わない。

キャプチャ システムを使用する必要がありますか?

自動化された攻撃を防ぐ唯一の真の方法は CAPTCHA であるため、そうするべきだと思います。Google/Twitter/etc が CAPTCHA を使用していないのは、CAPTCHA がユーザー フレンドリーだからではなく、それが自動化された攻撃を阻止する唯一の有効な方法だからです。Google の OpenID を使用して PIN を実装するシステムを実装する場合は、この手順を省略できます。Google が既に対応しているためです。

于 2011-01-25T11:13:54.700 に答える
0
  1. はい。ただし、情報の価値によって異なります。情報の価値が高く、誰かが侵入しようとする可能性があると思われる場合は、追加の保護を検討する必要があります。
  2. 保護している情報の価値が高い場合は良い考えかもしれません。この場合、可能性の数が限られていることをユーザーに警告し、ログ ファイルを作成してコード入力の失敗を監視する必要があります。ユーザーはNATの背後にあり、多くのユーザーが同じIPを使用する可能性があります(たとえば、オフィスまたは学校のすべてのユーザー、またfastwebのような接続では、大勢の人々に1つのIPを使用します)。長い時間 (3 ~ 5 回の失敗ごとに 15 ~ 30 秒でブルート フォース攻撃を回避できます。ユーザーが 2 回失敗するたびに 2 倍にすることができます)、そして最も重要なのは、サイト全体ではなくコードの侵入のみをブロックすることです。
  3. 必要ではありませんが、情報の価値にも依存すると述べたように、実装できます
  4. プロキシとクローラーを避けるのは良い考えですが、別の方法をお勧めします。「5 プラス 2 =」や「赤いリンゴの色は何ですか?」などの質問を含む画像を使用すると、理解するのがはるかに難しくなります。クローラーですが、ユーザーにとってははるかに簡単です。

mt_rand() を使用してピンをランダム化することもお勧めします (デフォルトのランダムよりもはるかに効率的で、統計的に正しいランダムであり、デフォルトで php に統合されています)、ホモグリフの削除は入力エラーを回避するための良い方法ですが、のようなセパレーターを使用してより長いコードを作成することもお勧めします

 AXV2-X342-3420

したがって、ユーザーはそれがコードであることを理解し、残りの文字数や間違ったコードを入力したかどうかを簡単に数えることができます。

大文字のほうが読みやすく、コードで大文字と小文字が区別されることを明確に書いたとしても、一部のユーザーは単純に小文字または大文字のみを貼り付けるため、大文字と小文字を区別するピンを避ける場合があります。

于 2011-04-10T12:05:58.153 に答える
0

1) はい、ターゲット ユーザーによって異なります。2) システムがどのように使用されているか、共有 IP 番号上にあるクライアントの数が原因で、機能する場合もあれば、機能しない場合もあります。3) それはどのような付加価値をもたらしますか? それは、有効な PIN を見つけようとする人々の助けになるだけではないでしょうか? 4) 対象視聴者とキャプチャの種類によって異なります。

于 2011-01-25T10:48:15.270 に答える
0

「自分のセキュリティを転がすつもりなら、すでに失敗している」という公理がここに当てはまります。

5 文字の [0-9、AZ、az] ピンの場合、8.27 ビット未満のエントロピー ( 64 310 = 2^n) を生成しています。[修繕]

攻撃者がシステムを破壊するのに 1 日もかかりません (1 秒あたり 1,000 回の推測で、非常に低速です)。それは受け入れられますか?おそらく、セキュリティをバイパスしても影響がほとんどない単純なシステムの場合です。

大量の試行が失敗した IP からのトラフィックを「禁止」するロックアウト メカニズムを作成する必要がありますか?

IP はスプーフィングされる可能性があります。

エラー チェック システムを作成する必要がありますか (Luhn のクレジット カード番号のアルゴリズムに似ています)。

これにより、エントロピーのビット数が実際に減少し、システムへの侵入が容易になります。

キャプチャ システムを使用する必要がありますか?

運動が必要だと感じたら。キャプチャは壊れており、スピード バンプ以外には役に立ちません。

アップデート

残念ながら、コンピューター セキュリティはまだ未熟な (未熟な?) 分野であるため、完全な解決策はありません。「ああ、これとこれをやれば大丈夫だ」と言う人は、セキュリティに関する最も基本的な問題の 1 つをスキップしています。

セキュリティは常にトレードオフです

最終的に保護されたシステムにはアクセスできません。一方、最終的にアクセス可能なシステムには、参入障壁がありません。明らかに、両極端は受け入れられません。

ソフトウェア開発者としてのあなたの仕事は、この 2 つの間のスイート スポットを見つけることです。これは、いくつかの要因によって異なります。

  1. ユーザーの技術的専門知識
  2. セキュリティに我慢するユーザーの意欲
  3. 実装および維持するためのコスト (時間と費用) (つまり、より洗練されたシステムは、より多くのサポート コールを生成します)
  4. 違反がユーザーと会社に与える影響
  5. 違反の可能性: あなたは米国国防総省ですか? ビザ?あなたは今、攻撃を受けている可能性があります。カリフォルニア州オーハイにある Bob's Bicycle Shop は、スペクトルの反対側にあります。

あなたの質問から、あなたは効果的に彼らの「パスワード」を生成していると思います。ひっくり返したらどうなるの?PIN をアカウントに設定し、システムに初めてログインするときにパスワード*を作成する必要があり、それ以降はパスワードが必要になります。

*はい、これが銀行の場合、これは良い考えではありません。

于 2012-10-03T17:47:21.740 に答える