#10 クレジットカード決済のIC認証〜ARQCとARPCの話〜
はじめに
今回はEMVにおけるOnline Processing(オンライン処理)の話です。
前回までで決済端末とICカードの間で様々な会話をして、「その取引をどうするかの決定」までのプロセスを説明しましたが、結果ARQC(オンライン要求)が選択された際の処理となります。
「#5 クレジットカード決済の仕組み」の中で「オーソリ」は、
「この金額使えますか?」の承認をとるためのオンライン手続き
であると説明しましたが、イシュアはそのカードが使えるかの確認と合わせて、EMV仕様で規定されているオンライン認証を実施しています。ICカード決済においてIC認証というとこのオンライン認証のことを指します。今回はIC認証の仕組みについて説明していきます。
IC認証
オンラインオーソリ時のIC認証は共通鍵暗号方式のクリプトグラム検証で、ざっくり以下の通りです(Online CAMとも呼ばれます)。
事前準備
ICカードと、ホストに共通の暗号鍵を格納しておくARQC検証(ARQC:Authorization Request Cryptogram)
取引時にICカードと決済端末で、ICカードに格納された暗号鍵を使って生成した暗号文(ARQC)の値をイシュアホストで検証する。
※ICカードと決済端末が生成したARQCの値と、オーソリ要求電文内のデータを基にイシュアホストが生成したARQCの値を比較し検証することで「カードの真正性」を確認する。ARPC検証(ARPC:Authorization Response Cryptogram)
イシュアホストが保有している暗号鍵で生成したARPCの値をICカードと決済端末が検証する。
※イシュアホストが生成したARPCの値と、オーソリ応答電文内のデータをもとにICカードと端末が生成したARPCの値を比較し検証することで「イシュアホストの真正性」を確認する。
IC認証時の暗号鍵
EMV仕様の暗号鍵において、「RSA(公開鍵暗号)」というと、オフラインデータ認証で使用する鍵ペアおよびイシュア公開鍵証明書と以前説明しました。
「DES(共通鍵暗号)」というと、大抵はオンラインIC認証で使用する暗号鍵を指します。国際ブランドによって呼び名が異なりますが、Visa/Mastercardにおける名称はそれぞれ以下の通りです。
Visa:MDK(Master Derivation Key)
Mastercard:IMK(Issuer Master Key)
以降、私の文章では便宜的に「MDK」を使っていこうと思います。
DES鍵(MDK)のインデックス
イシュアは複数の種類のカードを発行しています。提携企業との提携カードを発行してたりもするので、券種などの単位で異なるMDKを使用するのがポリシー的にもセキュリティ的にも一般的です。そのため、鍵にはインデックス番号を振って管理しています。
券種によって異なるMDKを格納するイメージは下図の通りです。
イシュアはHSMという暗号鍵をセキュアに管理できるハードウェアで複数の鍵をインデックスを振って管理しています。このインデックスをDKI(Derivation Key Index)と言います。16進数の2バイトで理論的には256個のインデックスを振ることができます。
当然ながら共通鍵のため、オーソリの要求電文にはMDKは設定されません。
その代わりICチップには「Issuer Application Data(IAD)」というどのDKIの鍵(何番の鍵?)で、どの方式でIC認証するかの情報を含むデータが設定されています。
このIADをオーソリ要求電文に設定することで、イシュアは何番の(どのDKIの)鍵を使ってARQCが生成されたのかを知ることができるため、検証とその後のARPCの生成ができるという仕組みになっています。
IC認証のネットワーク代行
国際ブランドネットワークにはIC認証(ARQC検証&ARPC生成)をイシュアの代わりに代行してくれる機能があります。IC認証ができないイシュアはこの機能を使うことでIC認証の機能を開発しない(=ネットワークに頼る)という選択肢もあります。
察しの良い方であれば、この場合、MDKを事前にブランドネットワークにも登録しておく必要があるよねということにお気づきになったかと思いますが、そもそもイシュアホストが被災している場合はブランドネットワークにIC認証を託して代行応答してもらう必要があるので、ブランドネットワークへのMDK登録は必然だったりします。
なお、IC認証代行の機能はCAFISにもあったりします。
まとめ
EMVにおけるオンラインのIC認証について説明しました。ここまでがEMV仕様における一連の流れで、特に重要なオンライン認証(IC認証)を#10で説明できたのは良い区切りになったなと思ってます。
オンラインオーソリにはEMV仕様の取引における様々な情報が設定されています。この情報をまとめてIC関連データなんて言いますが、ここまでに説明した本人確認方法や、TVR、今回説明したARQC、IADの他にも様々な情報が設定されており、それらは不正を検知・調査する上で非常に役立つものです。ネットワークによって項目の名前は異なるものの、オーソリ電文の国際標準仕様のISO8583のBit55というエリアに設定される情報です。
(Visa:Field55、Mastercard:DE55、JCN:Bit55、等)
今後はこれらについてもどこかで書こうと思います。また、非対面取引(EC取引)やモバイルペイメント(Apple Pay、Google Pay)の技術についてもまとめていければと思います。