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

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

ベルギーの主要銀行のほとんど(Belfius、BNP Paribas Fortis、ING、KBC Bankなど)は、このようなカードリーダーを提供しています。これは主に2つの目的で使用されます。
デバイスにはオプションの USB ポートが装備されており、コンピューターにケーブルを接続せずにこれら 2 つの操作を使用できます。
これはオンライン決済で最も多く利用されている方法で、POSのPINに似た認証方法を提供しています。スマートフォンの普及に伴い、銀行はスマートフォンのローカルアプリ、QRコードのスキャン、人気のItsmeアプリなど、代替手段を提供しています。
このデバイスはベルギーのeIDカードとも互換性があり、納税申告、医療保険情報、失業などの政府サービスにアクセスできます。これらのサービスも、Itsmeを使用して一般的に利用できます。



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