
チップ認証プログラム(CAP)は、オンラインバンキングや電話バンキングでユーザーと取引を認証するためにEMVバンキングスマートカードを使用するためのMasterCardのイニシアチブおよび技術仕様です。これはVisaでも動的パスコード認証(DPA)として採用されています。[ 1 ] CAP仕様では、スマートカードスロット、数字キーパッド、および少なくとも12文字を表示できるディスプレイ(例:スターバーストディスプレイ)を備えたハンドヘルドデバイス( CAPリーダー)が定義されています。銀行からCAPリーダーを受け取った銀行顧客は、チップとPIN(EMV)カードをCAPリーダーに挿入して、サポートされている複数の認証プロトコルのいずれかに参加できます。CAPは、スマートカードと有効なPINの両方が取引の成功に必要となるため、 2要素認証の一種です。銀行は、このシステムによって、いわゆるフィッシングメールを読んだ後に、疑うことを知らない顧客が不正なWebサイトに詳細情報を入力するリスクが軽減されることを期待しています。[ 2 ]
CAP仕様は複数の認証方法をサポートしています。ユーザーはまずスマートカードをCAPリーダーに挿入し、PINを入力して有効化します。次にボタンを押してトランザクションの種類を選択します。ほとんどのリーダーには、さまざまな名称で2つまたは3つのトランザクションの種類が用意されています。既知の実装例をいくつか挙げます。
上記のトランザクションタイプは、2つのモードのいずれかを使用して実装されます。これらのモードのうち1つは、動作可能な2つの形式を持ち、仕様書ではそのように命名されていませんが、合計3つの異なるモードが存在します。
Mode1はTDSを使用したMode2の特定の使用例によく似ていますが、決定的な違いがあります。Mode1の動作では、TDSを使用しないMode2で使用されるすべての値に加えて、トランザクションデータ(金額と通貨タイプ)が暗号化計算に使用されます。一方、Mode2では、トランザクションデータは暗号化計算ステップではなく、後続のステップで使用されます。この違いがなければ、すべての操作は、オプションのトランザクションデータが異なる単一の操作として一般化できるでしょう。

3つのモードすべてにおいて、CAPリーダーはEMVカードに対し、ユーザーが入力した詳細情報を含む架空のEMV決済取引のキャンセルを確認するデータパケットを出力するよう要求します。この確認メッセージには、スマートカードに安全に保存されているカード固有の秘密鍵を使用して生成されるメッセージ認証コード(通常はCBC-MAC / Triple DES)が含まれています。このようなキャンセルメッセージは、通常のEMV決済アプリケーションにセキュリティ上のリスクをもたらすものではありませんが、暗号学的に検証可能であり、正しいPINが入力された後にのみEMVカードによって生成されます。これにより、CAPの設計者は、既に使用されているEMVカードに新しいソフトウェア機能を追加することなく、PINで有効化されたEMVカードが存在し、特定の入力データを確認したことを示す強力な暗号学的証拠を作成する方法を得ることができました。
EMVスマートカードには、(通常16ビットの)トランザクションカウンタが含まれており、支払いまたはCAPトランザクションごとにインクリメントされます。CAPリーダーによって表示される応答は、基本的にカード応答のさまざまな部分(アプリケーショントランザクションカウンタ、MACなど)で構成され、カードに保存されている発行者認証インジケータ(IAI)レコードによって決定される特定のビットに縮小されます(これは発行者ごとに設定されますが、発行者が希望すれば、各カードのIAIのデータベースを保持しておけば、各カードに対してランダムに設定することもできます)。最後に、不要なビットが破棄されます(基本的にビットの絶対位置は関係ありません。IAIのビットが0の場合、カード応答の対応するビットは単に0に設定されるのではなく、破棄されます)。最後に、値はバイナリから10進数に変換され、ユーザーに表示されます。以下に、省略された例を示します。
実際のプロセスは当然ながらもう少し複雑で、カードは 2 つの形式 (単純なレスポンス メッセージ テンプレート フォーマット タイプ 1 (id. 80 16 ) またはより複雑なレスポンス メッセージ テンプレート フォーマット 2 (id. 77 16 )) のいずれかで ARQC を返すことができ、後者では ARQC データが個別の TLV 値に分割され、タイプ 1 フォーマットと一致するように順次再構成する必要があります。
識別モードでは、金額と参照番号がゼロに設定されているため、応答は IAI からの必要なビットのみに依存します。つまり、応答を選択して 00000000 を入力すると、有効な識別応答が生成されます。しかし、より懸念されるのは、銀行が応答要求を発行した場合、同じ番号と 0.00 ユーロの金額で署名モードを使用すると、再び有効な結果が生成され、詐欺師が顧客に 0.00 ユーロの「テスト」チャレンジ応答を実行するように指示できる可能性が生じることです。これは実際には詐欺師が応答コマンドを検証して被害者の口座に受取人として自分を追加するために使用されます。これらの攻撃は、少なくとも 0.01 ユーロの金額が入力されるまでアクティビティをキャンセルしない強力な認証デバイスを使用している銀行に対して実行可能でした。[ 4 ]こうした攻撃の可能性は、2009 年に新世代のデバイスが展開され、2010 年 10 月付けの MasterCard アプリケーション ノートに準拠したセキュア ドメイン分離機能が実装されたことで対処されました。同様に、identify コマンドを実装している銀行では、詐欺師が被害者に 00000000 を参照として使用して「テスト」応答トランザクションを実行するように要求し、その後被害者のアカウントに正常にログインすることが可能になります。[ 4 ]
他のEMV取引と同様に、カードに内蔵されたPIN再入力カウンターが使用されます。そのため、ATMやPOS端末と同様に、CAPリーダーにPINを3回連続で間違えて入力すると、カードがブロックされます。
当初のCAP仕様は、通常のEMVトランザクションを使用するように設計されており、必要に応じて既存のEMVカードのファームウェアを更新することなくCAPアプリケーションを展開できるようになっていました。推奨される実装では、CAPトランザクション用に別のアプリケーションを使用します。2つのアプリケーションはPINなどの特定のデータを共有する場合がありますが、他のデータは、一方のアプリケーションにのみ適用される場合(EMVの端末リスク管理データなど)や、分離する方が有利な場合(トランザクションカウンターなど、EMVトランザクションとCAPトランザクションでそれぞれ別のカウンターをインクリメントし、より正確に検証できる場合)には共有されません。リーダーには実装固有のデータも格納されており、その一部はカードの値によって上書きされる場合があります。そのため、CAPリーダーは一般的に、異なる発行銀行のカードとは互換性がありません。
しかし、カードリーダーを発行する英国の銀行のほとんどは、 APACSによって定義されたCAPサブセットに準拠しているため、ほとんどの場合、英国の銀行が発行したカードは、別の銀行が発行したカードリーダーで使用できます。
ケンブリッジ大学の研究者であるサール・ドリマー、スティーブン・マードック、ロス・アンダーソンは、CAPの実装に関する研究[ 4 ]を行い、プロトコルとリーダーおよびカードの英国版における多数の脆弱性を概説した。多数の弱点が発見された。ラドバウド大学の研究者は、オランダのABN AMRO e.dentifier2に脆弱性を発見し、攻撃者がユーザーの承認なしにUSB接続のリーダーに悪意のあるトランザクションに署名するように指示できるようになった。[ 5 ]

ベルギーの主要銀行のほとんど(ベルフィウス、BNPパリバ・フォルティス、ING、KBC銀行など)は、このようなカードリーダーを提供しています。これは主に2つの目的で使用されます。
このデバイスにはオプションのUSBポートが搭載されており、ケーブルをコンピュータに接続しなくても、これらの2つの操作を行うことができます。
これはオンライン決済で最もよく使われていた方法で、POS端末のPINコードと同様の認証方法を提供していました。スマートフォンの普及に伴い、銀行はスマートフォンの専用アプリを使ったり、QRコードをスキャンしたり、人気のItsmeアプリを使ったりするなど、代替手段を提供しています。
このデバイスはベルギーの電子IDカードにも対応しており、納税申告、医療保険情報、失業給付などの政府サービスにアクセスできます。これらのサービスは一般的にItsmeでも利用可能です。



[ 9 ]には、教育目的のみで使用するために、モード1、モード2、およびTDS付きモード2をサポートするPythonで書かれたソフトウェア実装が存在する。識別関数(チャレンジなし)は、チャレンジ「00000000」を持つm1関数に対応する。
このソフトウェアを実際の金融取引に使用すると、いくつかのリスクが生じる可能性があることに注意してください。実際、スタンドアロンリーダーを使用する利点は、PCに潜んでいる可能性のあるマルウェアから銀行カードを隔離できることです。セキュリティ対策が施されていないリーダーで使用すると、キーロガーがPINを傍受したり、POSマルウェアがカード情報にアクセスしたり、取引を傍受して改ざんしたり、独自の取引を実行したりするリスクがあります。