これはHabrに関する私の最初の記事なので、不必要な混乱をおpossiblyびします。
最初に注意したいのは、記事で述べられていることすべてとコメントのほとんどすべてが真実であるが、一方的な真実であり、特定のケースを説明しているということです。 そして、これらは特別な場合ですが、情報が提示される方法では、準備ができていない読者は、それが言われたとおりにのみ起こるという印象を得るかもしれません。 そして、状況のいくつかの反対の説明がコメントに表示されましたが、誰も主要なことを発表しませんでした-これらはすべて特別なケースです。
1.カードとアカウント
フォーラムのメンバーの1人は、彼の経験を参照して、5分以内にカードに任意のアカウント(および任意の通貨)を追加できると主張しました。 本当にそうです。 この手順の可能性は、処理システム自体のソフトウェアの機能、インターネット/モバイルバンクからのサポート、そのようなサービスを住民に提供したいという銀行の要望、およびシステム開発者にこれに余分なお金を支払うという要望によってのみ決定されます。 私が関与しているシステムでは、カードとアカウントは2つの異なるエンティティです。
私たちの用語では、カードはトークンです。たとえば、パスワード、証明書、身分証明書などを覚えているように、一度も覚えていません。 トークンは、アカウントへのアクセスのみに使用されます。 さらに、アカウントには複数のトークンを介してアクセスできるため、トークンは複数のアカウントに対応できます。 たとえば、システムが動作する銀行では、カード取引中に特定のアカウントを示すように求められる場合があります-カードに複数のアカウントが関連付けられている場合。
2.詐欺師には逆のことが当てはまります
この機能は「False PIN」(iPIN)と呼ばれます。 一部の銀行がデフォルトでメインPINとして作成することを提供しているという事実は、逆に書き留められているが、覚えやすいという目的だけに役立つ。 コメントから判断すると、誰もがこれを理解しているわけではないという印象を受けました。
同僚から聞いた限りでは、この機能はあまり人気がありません。 マイナス面があります(どちらがわからない)。 実際には、非常にまれにしか使用されません。
3.コレクター/監督者のカード
繰り返しますが、これは必須のルールではなく、サービスの利便性のためだけに行われます。 私たちのシステムでは、この方法で行われますが、他のすべてで同じであると思われます:
そのようなカードを挿入すると、ホストはトランザクションを実行する代わりに、ATMに現在のカウンターを要求します(または、ATMアプリケーション自体がそのようなカードを判別し、すぐにカウンターを独自に送信できます-アプリケーションについては後で詳しく説明します)。 その後、端末の物理的な収集が行われ、新しいカウンターが導入されます(これは手動で行われますが、耳の端からカセットを自動的に記録することができると聞きましたが...今のところめったにないようです) ATMを閉じた後、ドアがスーパーバイザーボタンと呼ばれる特別なボタンを押すと、ATMは少なくとも「スーパーバイザーモード」センサーのステータスが変更されたことをネットワークに報告します。新しいカウンター(または古いカウンターを含む、アプリケーションの章で)。 レポートにセンサーに関する情報のみが含まれている場合、ホスト自体がカウンターを要求します。 この時点で、ホストは新しいカウンターを古いカウンターと比較し、コレクショントランザクションを作成できます。 繰り返しますが、これは私たちにとってどのように機能するかですが、それがどこでも機能するという意味ではありません。 しかし、回路は非常に柔軟で自律的であるため、この種のほとんどすべてのソフトウェア製品で使用される可能性が最も高くなります。
カードの代わりに、(収集のためにATMをスーパーバイザモードにする前の)カウンタの初期調査のためのコマンドをホストから与えることもできます。 この場合、収集は次のようになります。コレクターがその場所に到着し、処理センターを呼び出し、オペレーターがシステムを介してコマンドを実行すると、すべてが最初のシナリオのようになります。
4. ATMアプリケーション
すべてのアプリケーションは次の2つのタイプに分類できることに注意してください。
- 交換プロトコルは厳密に定義されており、ATM側では、このプロトコルで実行されているプログラムが実行され、それを拡張することは不可能です。 これらは、たとえば、NDC、DDC、およびTritonです。
- 交換プロトコルは厳密に固定されているだけでなく、逆に、ATMでのアプリケーションは特定のホストとの通信をサポートする拡張可能なプラグインです。 これがKalignite ATMの配置方法です-ところで、私が使用した中で最も柔軟なATMです。 Kaligniteアプリケーションは通常の.Netアプリケーションであり、ATM画面に表示される画面は、標準の.Netブラウザーコンポーネントを介して表示される通常のHTMLページです(これは、IEコアに基づいています。つまり、すべての脆弱性があります。コンポーネントが大幅にトリミングされます)。 スクリプトの視覚部分のこの開発のおかげで、Webデザイナーは、jQuery、仮想キーボード、およびあなたの心が望むすべてのものなど、すべての利点に従事して活用することができます。
コードはシステムの開発者自身が作成したATMで実行されるため、サービス機能のパフォーマンスは大幅に簡素化できます。たとえば、ATM自体で収集トランザクションを生成し、通常のトランザクションリクエストとしてホストに送信できます(これのみが管理トランザクションです)。
ホストとATM間の相互作用のこれらのスキームを区別する最も重要なことは、本格的なトランザクションが形成されるまで、どちらの側が中間データを保存するかです。 これは、たとえば、2つ以上のアカウントがカードに関連付けられている場合に発生する可能性があります。 相互作用シナリオは、事前にアカウントの数を知らず、単にトランザクション要求を生成してホストに送信します。 ホストは、「修正が必要」という理由でそれを拒否し、明確にする必要があるパラメータのリストを送信します。 そして、ここで2つのオプションが可能です:
- 端末は指定されたパラメータのみを送信します-この場合、ホストは以前のリクエストで送信されたATMの情報をどこかに保存する必要があります-ステートレスATM、ホストステートフル-これは、固定プロトコル(NDC / DDC、Tritonなど)を持つすべてのATMプログラムの動作ですなぜなら プロトコルは、このデータを保存する場所を提供しません。
- 端末は、すべての過去のデータと指定されたパラメーター(ステートフルATM、ステートレスホスト)を送信します。 これは、Kaligniteを使用する場合に最適です。 とにかく、便利なホストプロトコルを介した対話用に拡張機能を(できれば)記述する必要があります。
5.カードの引き出しと無効なPIN
選択されていないカードの検出時の動作は完全にカスタマイズ可能です。ATMはそれをキャプチャするか、パスに残すことができます。 同じことは、お金の前/後、仕事の始め/終わり、停電中にカードを発行する場合にも当てはまります(銀行が完全に貧弱でなければ、ATMにUPSが必要です)。 間違ったPINが入力された場合、間違ったPIN(存在する場合)が入力された場合、間違ったPINのカウンターがゼロにリセットされた場合、カードキャプチャが必要かどうか-ホストがすべてを決定します。 ホストがカードをキャプチャするようにATMに指示しなかった場合、10回偽造、盗難、紛失されたとしても、ホストはそれをキャプチャしません。
6.チップカード
チップを読み取れなかった場合のチップカードの処理は、スクリプトの設定によって異なります。 より狭い範囲のサービスが提供される場合もあれば、単にサービスを拒否する場合もあります。 他の銀行のカードについても同じことが言えます。
7.発行する最大40の請求書と発行アルゴリズム
どの発行アルゴリズムを使用し、ATMがそれをどのように認識するかは、設定に完全に依存します。 もちろん、現在、マスインターネットの時代では、ホストがすべての計算を自分で実行する方が収益性が高く、ATMはコマンドのみを発行します。 ただし、たとえば、CashDispenser(現金自動支払機)を管理するためのKaliginteオブジェクトは、さまざまなアルゴリズムに従って発行の購入金額を計算することもできます。 システムではこの機能を使用しません。 繰り返しになりますが、ユーザーが発行アルゴリズムを選択できるようにするか、コメントで誰かが言ったように、紙幣の特定の金種でさえ、そのようなシナリオを作成する銀行の欲求に完全に依存します(もちろん、ソフトウェアの機能にも依存します)。
40枚の紙幣の制限は、実際には物理的な制限によるものです。40枚の紙幣のパックは、ほぼ1センチの厚さです。 ATMは、物理的に一度に発行できない金額を、あいまいなミスで単に渡すことを拒否しているという事実について-スクリプト開発者のせいは、理由について明確なメッセージを提供しなかったことです。 Kaligniteのすべてはシンプルで、前述のようにプレーンなHTMLであり、実際にはローカルサイトであり、NDC / DDC ATMの場合、ホスト応答には更新された画面が含まれる場合があります。 、彼はエラーコードをほとんど持っていませんが、ロシアのトリトンはあまり一般的ではないようです。
8.オペレーティングシステム
私がテストしたのはWindows XPです。 そして、NDCおよびDDC ATMを備えたKaligniteスクリプトでテストされました。
よくここに。 それが面白くて、私の心の混乱が減ったことを願っています。 私が伝えたかった主なアイデアは、絶対にすべてが構成されているということです。 当然、どこかより少なく、どこかより多くですが、これは一見して見えるものよりも深いニュアンスに関心があります。