7

Thales Payshield 9000 HSM を使用しています。これまでのところ、すべてのコマンドが機能し、私が望んでいたことがすべて達成されました。

問題は、ATM でピンを変更しようとしたときです。MasterCardのドキュメントを確認すると、ピン変更スクリプトが生成され、フォーマットはOKのようです。

PIN 変更スクリプトは次のようになります。86158424000210PPPPPPPPPPPPPPPPMMMMMMMMMMMMMMMMここで、16 個の P 文字は DE125 で送信される PIN ブロックであり、16 個の M 文字は MAC を表します。(私はそれらをマスクしましたが、以下は例のデータを使用します)

このスクリプトを使用すると、私の側からはすべて問題ないように見えます。今、問題はMAC生成だと思います。

MAC を生成するには、次の HSM コマンドを使用します。

  • HA (TAK を生成します (ランダムなキーです。このコマンドを呼び出すたびに (PIN 変更操作ごとに)、キーは異なります)) - 入力はkey = PVK key (U+32Hex symbols under LMK), delimiter = ';', keySchemeTmk = 'U',keySchemeLmk = 'U'です。次に、TAKキーを受け取ります
  • M6 (MAC の生成) - 入力: modeFlag = 0, inputFormatFlag = 2, macSize = 1, macAlgorithm = 3, paddingMethod = 0, keyType = '003', key = 'Tak key from HA command', (メッセージは上のスクリーンショットのように連結されます: コマンド ヘッダー + ApplicationtransactionCounter + ARQC + PIN ブロック) (メッセージ データはスクリーンショットの例からのものですmessagelength = '0030')message = '8424000210345755BFDC4F2903A392B3E1229A502C892680'

したがって、これらの 2 つのコマンドが実行されると、正確に必要な 16HEX シンボル MAC を受け取ります。したがって、スクリプトは次のように準備されます: 8424000210 B3E1229A502C8926 422A8FF11056ACD4: header => 8424000210pinBlock => B3E1229A502C8926およびMAC => 422A8FF11056ACD4

ATM に行って PIN を変更すると、PIN が変更されず、取り消しメッセージが表示されます。

また、誰でもこれらのフラグが何であるかを説明できますが、どのフラグを使用すればよいかわかりません (コマンド M6):

質問は次のとおりです。

  • HSM コマンド M6 は、PIN 変更/ブロック解除スクリプト用の MAC を生成する正しいコマンドですか? MasterCardのドキュメントにはSMIキーで行う必要があると明確に記載されていますが、TAKキーが必要です。
  • MAC ハッシュを取得しようとすると、M6 コマンドの構成が正しくありませんか?

更新しました

なんとか KU コマンドが機能し、応答が返ってきましたが、PIN の変更自体は正常に完了していません。以下に、KU コマンドに対して生成する要求を示します。

{ "mode_flag": "3", "scheme_id": "1", "mk_smi": "U25A22A6553A7F68ABACBD1E04BBD8889", "pan": "7891234567891200", "integrity_session_data": "55BFDC4F2903A392", "plaintext_message_data_length": "0018", "plaintext_message": "8424000210345755BFDC4F2903A392B3E1229A502C892680", "delimiter": ";", "confidentiality_session_data": "55BFDC4F2903A392", "offset": "000F", "cipher_text_message_data_length": "0008", "cipher_text_message_data": "B3E1229A502C8926", "delimiter2": ";", "source_pin_encryption_key_type": "0", "source_pin_encryption_key": "UBAAAA3488AA6AA564AAC8AA3AAC1AAA2", "source_pin_block_format_code": "01", "destination_pin_block_format_code": "35", "pan2": "891234567891" }

キーと機密データはマスクされるため、ここでは PAN が使用されます:5678912345678912と シーケンス番号000. 最初のpanパラメータには、最後の PAN 14 桁 + シーケンス番号の最後の 2 桁が使用されます。パラメータにはpan2、最後の 12 桁の PAN のみが使用され、チェック ディジットは除外されます。

プレーンテキスト データの PIN ブロックを新しい暗号化ピン ブロックに置き換えるために、正しいオフセット フラグを使用していますか?

4

2 に答える 2