web-dev-qa-db-ja.com

ATMがPINを受け入れるのはなぜですか?

先日、急いでATMから現金を引き出そうとし、間違ったピンを打ちました。 「OK」ボタンを押したときだけ気づいたのですが、驚いたことに、ATMは文句を言っていませんでした。通常のメニューが表示され、操作の選択を求められました。引き出しを選択したときだけ、ピンが間違っているというメッセージが表示され、再入力を求められました。私はそれを行い、現金を受け取りました。

なぜATMは、PINにゴミを入れ、操作を選択し、それから初めて文句を言うのを許可するのですか?

[〜#〜] edit [〜#〜]:回答とコメントで議論されたいくつかのポイントに関する詳細情報を追加するには、これが発生した国はニュージーランドです。カードはチップカードで、たまたま帯があり、ATMがチップを読み取れるかどうかわかりません。

98
Andrew Savinykh

この回答は、ATMがカードの磁気ストライプを使用する場合に適用され、カードのチップが使用される場合には適用されません。

ATMのキーボードは、ATMのセキュリティ全体のボトルネックであるため、特別なハードウェアセキュリティ機能(それを開こうとすると自己破壊するチップなど)を備えた完全に分離されたデバイスです。

PINを入力すると、ATM自体はPINを平文で受け取るのではなく、PIN暗号化されます。トランザクションがメインサーバーでは、暗号化されたPIN=トランザクションで指定された金額と組み合わされ、攻撃者がこの金額を変更するのを防ぎます。

ATMがトランザクションの前にPIN=(サーバーに送信することにより)を検証した場合)、金額の指定はPINの知識と安全に関連付けることができません。

したがって、ATMは、メインの銀行サーバー(暗号化されたPINを復号化またはその他の方法で確認する方法を知っているサーバー)にトランザクションを発行するまで、PIN=が有効かどうかを確認できません)。

113
user19426

PINカードの磁気ストライプを使用するときに確認するには、銀行のサーバーに連絡する必要があります。これには時間がかかるため(ダイヤルアップの時代にはさらに時間がかかったため)、ATMは「PINの確認」を組み合わせます「および「お金を引き出す」単一の連絡先に。

カードにチップがあり、ATMがそれをサポートしている場合、動作は異なる場合があります。

32
Mark

ほとんどのATMは2種類のカードを扱う必要があります:古い、磁気のカードと新しいチップカードです。磁気カードはPINをローカルで検証できません。チップカードは理論的にこの機能を備えていますが、この機能が制限されていないという意味ではありません。

あなたが説明した行動は、磁気カードの流れと完全に一致します。しかし-チップカードは別のパスを使用して検証する必要がありますか?次の2つの理由が考えられません。

1)新しい2番目のパスの実装には費用がかかります。 ATMメーカーは、コストを低く抑え、できるだけ多くのコードを再利用したいと考えています。

2)一貫したユーザーエクスペリエンスを提供する。 2枚のカード(1枚は磁気、1枚のチップ)を持っている人を想像するのは簡単です。または、顧客は古いICカードのみを交換するために新しいチップカードを発行されます。 2つの異なるパスをユーザーに提供してユーザーを混乱させる必要はありません。 ATMは十分に怖いです。

/編集:ああ、私は1つの非常に重要なことを忘れました:

ローカルPINカードが古くなっている可能性があります。

多くの銀行ではカードのPINを変更できますが、カードのチップがそれを知る方法はありません。したがって、ATMがPINをローカルでチェックする場合、正しい新しいPINを拒否しますが、誤った古いPINを許可します。そして、ofc PINチェックは成功し、トランザクションは不合格。

21
Agent_L

これは、ATMソフトウェアのポリシーの問題です。多くのATM do実際には、続行する前にPINを銀行に確認してください。

しかし、ATM自体は、あなたのPIN=が正しいかどうかを知りません。銀行に問い合わせる必要があり、これには時間がかかります。ATMがスキップするかどうかは、どれくらいの時間がかかるかによって決まります。このステップ。

ATMと銀行の間の各トランザクションは個別であるため、それぞれを個別に認証する必要があるため、PINはeveryトランザクション。これは、実用的な観点から、ATMは技術的にPIN事前に検証する必要がないことを意味します。不正なPIN他のトランザクションは失敗します。

したがって、バランスを取る必要があります。各ATMはこれを異なる方法で行う場合があります。 PIN=を前もって検証することは、ユーザーにとっては簡単かもしれませんが、ATMが銀行への専用回線を開いていない場合は、さらに時間がかかる可能性があります。ピンを入力して待っていると想像してください。 ATMが20秒以内に正しく入力したかどうかを通知します。必要な合計時間を短縮するために、そのステップをスキップすることを選択できます。

14
tylerl

この段階でピンを確認する理由はありません。

  1. とにかくトランザクション呼び出しで再度送信する必要がある可能性が最も高いため、帯域幅/時間の浪費。

  2. 誰かがピンを推測しようとしている場合、それが正しいピンであるかどうかを確認するのにかなり時間がかかります。マシンの前に立っている時間が長いほど、カメラに顔を向けられる可能性が高くなります。

  3. カードに対してピンを検証する方法はありません。オフラインで検証できるように、銀行に検証を依頼する必要があります。
  4. これは、ストリップカードとチップカードの両方に当てはまります。ピンは、この場所のいずれにもいかなる形でも格納されません。
2
Jegsar

user19426の answer は興味深いです-ATMキーパッドがそのように実装されていることを知りませんでした-が、それを確認できなかった理由がまだないため、それが完全な説明であるとは思われませんPIN最初に(平文の値を公開せずに)、後でPINハッシュを使用して実際のトランザクションに署名します。チップカードの場合、これは銀行との追加の通信も必要ありません。

PINチップカードの場合はいつでも個人的に確認できます。たとえば、ヨーロッパの銀行がハンドヘルド認証キーパッドを使用して定期的に顧客に郵送します(カードが特定の後に無効になると思います)間違った試行回数)PIN=事前に拒否するATMは、トランザクションを試行することも必要とするATMから利用できない攻撃ベクトルを提供しません。ブルートフォース30秒の遅延は、マシンがカードを没収するポイントに到達するまでに90秒長くかかることを意味するため、問題ではありません。

私が知る限り、PIN=事前に確認しないことは、セキュリティ上の影響が1つだけあります。盗んだカードをATMに入れて、PINと思われるものを入力すると、私PIN=が間違っている場合、私は立ち去ると、CCTVは私があなたのアカウントにアクセスしようとした罪を犯していることを示しています。PINを入力してから£200を要求すると、CCTV私があなたのアカウントにアクセスしようとしていることがそれから200ポンドを盗もうとしていることを示しています。

1
bobtato

これは、次の2つの理由により発生します。

  1. それはより安全で、銀行は帯域幅を節約したい。

    銀行は通常、あなたのPINをハッシュ化された形式でデータベースに保存します。PINあなたがATMで入力したことを確認できるようにするには、ATMはPINのハッシュを銀行のサーバーに送信します。これらの2つのハッシュを比較して、入力したPINが正しいかどうかを確認しますトランザクションの実行が許可されます。もちろん、これはセキュリティに対する初歩的なアプローチです。リプレイ攻撃や中間者攻撃などを検討する必要があります(詳細については、 Challenge-response authentication )。

    これを行う代わりに、銀行はPINをトランザクション自体と一緒に送信し、PINとトランザクションを同時に確認します。これにより帯域幅が節約され、は、攻撃ウィンドウが減少するため、潜在的に安全性が高くなります。たとえば、銀行がPINを入力した瞬間からセッションを認証すると、潜在的な攻撃者が接続を傍受して独自のトランザクションを実行できるようになります。

    一方、適切な安全な接続は実装が難しく、バグは occur を行います。取引時の1回限りの検証により、銀行はあなたを安全に識別し、帯域幅を節約できます。最終的に、銀行は常にPINを各セッションの開始時および後続の各トランザクションに対して確認できるため、問題のATMマシンに依存します。

  2. ATMカードを保存しないあなたのPIN磁気ストライプに入れます。(チップカードは行います。)

    一部の回答とは異なり、ATMカードはPINを保存できません。 ATMカードの目的は、持っているもの(カード)と知っているもの(ピン)。攻撃者がATMカードを破った例があります。

    ATMは銀行サーバーに接続して、本人であることを確認する必要があります。 ATMカードは以前に複製できます(スキミング)。 PINがATMカードの磁気ストライプのデータのみを使用してオフラインで確認できた場合、攻撃者はオフライン攻撃で9999の可能なすべてのPINをかなり迅速に総当たり攻撃することができます。そのため、システムは推測ごとに銀行に連絡する必要があるように設計されているため、攻撃者がATMカードを盗み、すべてのお金を引き出すことはより困難になります。

0
Roy

これが通常発生する一般的なシナリオは、使用しているカードが別の銀行のもので、ATMが別の銀行のものである場合です。

なぜ?:

異なる銀行は、異なる銀行を相互に接続する国レベルの国別スイッチを介して相互に接続します。 VISAが国際的なスイッチであるのと同じように、国内の取引には国内のスイッチがあります。

そのようなトランザクションを実行している間、帯域幅の他に、その国内スイッチを使用するために差し引かれる特定の金額もあり、この金額はトランザクションごとに基づいています。

つまり、そのスイッチに2つのトランザクションを送信する代わりに、最終的にはそのバンクに送信します。 PINが入力され、トランザクションの詳細が送信される1つのトランザクションのみが使用されます。PINが正しい場合、拒否されなければ、トランザクションは行われます。

上記のシナリオは同じ銀行取引にも使用できますが、手数料を節約するのではなく、わずかな帯域幅を節約するだけなので、金銭的なメリットはありません。

0
SajjadHashmi