問題タブ [emv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javacard - EMV カードの RSA キーのテスト
EMV 標準に従って、2 つの RSA キーが必要です。
1) 発行者 RSA キー (1408 ビットを使用)
2) ICC RSA キー (1152 ビットを使用)
ここでは、発行者の RSA 秘密鍵を使用して、ICC 公開鍵証明書を計算します。EMV カードには、SDA/DDA で使用する(発行者公開鍵証明書)
(ICC PUBLIC KEY CERTIFICATE) など8F
のさまざまな Tag が含まれています。90
9F46
本当はJava言語を使ってEMVカードをカスタマイズし、すべての計算を自分で処理したいのです。これには RSA キーが必要です (SDA/DDA には RSA スタッフが必要です)
また、EMVにはDGI8201-8205があります
CRT 形式の ICC RSA 秘密鍵が含まれています。
非常に複雑であることは承知していますが、これは EMV テクノロジーを深く理解するための唯一の方法です。私の目的を解決し、EMV 計算で使用できる RSA キーを取得する方法を教えてください。前もって感謝します。
encryption - MSR DUKPT の MAC バリアント?
現在、ChipCard EMV デバイスの復号化に取り組んでいます。以下は、トランザクションを使用した後の関連データです (タグ長値としての TLV 形式)。
このデバイスの BDK は0123456789ABCDEFFEDCBA9876543210
. 復号化命令ごとに、DFDF59 には次のタグが含まれていることが言及されています。
命令ごとに、 「 MSR DUKPT の MAC バリアント」と記載されています。ここで、MAC はメッセージ認証コードを表し、「TLV 形式でデータを解析します。暗号化されたデータ タグについては、TDES_Decrypt_CBC を使用して復号化します」。
KSN、BDK、暗号化データDFDF59を使って3DES DUKPTを使ってみました。それはうまくいきません。解読分野の誰かが私にアドバイスをくれますか? 私たちのベンダーは、彼らの知識を共有することに非常に消極的です...
ここで MAC が復号化で実際にどのような役割を果たしているのかわかりません.... MAC は単なる整合性チェックだと思っていました.... KSN と BDK から生成された 3DES DUKPT のセッション キーを使用しています。これは、このデバイスの他の復号化には機能しますが、DFDF59 (チップカード EMV 復号化) は解決しません.... そのため、正しいセッションキーを使用しているかどうか疑問に思い始めます....お気軽にそこにアイデアを投げ出すだけです。ありがとうございました!
credit-card - EMV カードのオンライン PIN 検証
オンライン PIN 検証をサポートしていない EMV カードはありますか? それとも、すべての EMV カードがオンライン PIN とオフライン PIN の両方をサポートし、端末がどちらを使用するかを決定しますか?
前もって感謝します。
iso8583 - J8583 API および EMV クレデンシャル
私は J8583 を見てきました: http://j8583.sourceforge.net/xmlconf.html。
これは素晴らしい Api であり、よく維持されています。作者/開発者に敬意を表します。
誰かがEMVトランザクションに成功したかどうか、および/またはライブラリがこのデータを処理できるかどうか、および/またはそうしても安全かどうか疑問に思っています.
プライマリ ビットマップのフィールド 55 を見ると、複合カスタム フィールドを使用する必要があるように見えます。データが存在する場合は、EMV タグを調査し、必要に応じて解析する必要があります。
サンプルの ISO メッセージは次のようになります。
6666 プレフィックスは、このシナリオをテストするためだけに設定したテンプレートです。タイプ LLLVAR のフィールド 55 しかありません。
EMV データのデコードを検討する場合は、http: //www.emvlab.org/tlvutils/ を使用して次のように貼り付けます。
私が効果的に再現しようとしている結果の表が得られます。
私の出力は単純です:
SO コミュニティに最初に彼らの考えを聞きたかったので、まだカスタム フィールドに取り組んでいません。
ヘルプ/提案をお寄せいただきありがとうございます。
また...これを読んでいる人が1500回の担当者を持っている場合、J8583 siは独自のタグに値するのでしょうか?
embedded - 克服すべき EMV TLV の長さ制限の制限
さまざまな EMV TLV から値を問い合わせるコードがあります。ただし、PED シリアル番号の場合、 http ://www.emvlab.org/emvtags/ のタグ「9F1E」の仕様には次のように記載されています。
名前 説明 ソース フォーマット テンプレート タグの長さ P/C インターフェイス デバイス (IFD) のシリアル番号 製造元によって IFD に割り当てられた一意かつ永続的なシリアル番号 端末 8 9F1E 8 プリミティブ
しかし、上記の制限は 8 ですが、VeriFone PED には 9 つの長い SN があります。
そのため、タグ「9F1E」に依存するサンプル コードでは、完全な長さを取得できません。
上記の GetTLV() は、タグ arg を受け取り、その値を char 配列に入力するように記述されています。
完全な 9 を取得する良い方法を見つけた開発者はいますか?
iso8583 - ISO8583 メッセージの標準テンプレート
したがって、ISO8583 メッセージは仕様ごとに異なることを理解し、認識していますが、どのフィールドが絶対に必要であるかを判断するのに役立つリソースがどこかにあるかどうか疑問に思っています。たとえば、「0200」メッセージには必ず PAN フィールドと Amount フィールドが必要ですか?
そのようなリソースを見つけるのは難しいと思います.追加情報が含まれている場合でも、いくつかの一般的なテンプレートを見てみるのは素晴らしいことです.
どんな助けでも大歓迎です。
payment - EMV でオンライン PIN 検証を設定する方法
オンラインのカード PIN 検証のみを受け入れるように端末の機能を変更しようとしています。オフラインで動作する例を次に示します。
1.ここで、端末がオンライン PIN 検証のみを受け入れるように値を変更する必要があります。
2.EMV 用にこれらのタグと値を生成するのに役立つツールを探しています
何か案は?
javacard - SELECT PPSE GIVES 6700,( VISA Paywave)
内部に Visa Paywave を搭載した 2 つの異なるスマートカード チップがあります (1 つはネイティブで、もう 1 つは Java Card です)。
select PPSE または select Application コマンドを実行しようとしていますが、1 つのカードが期待される結果を示しているのに、別のカードが status word を示しています6700
。
両方のカードで良好な結果を得ている独自のテスト ツールがいくつかあります。つまり、両方のカードに PPSE とアプリケーションが含まれています。ツールが同じコマンドを送信しているのに、異なる結果が得られるのはなぜだろうか。
ここでアドバイスがあれば助かります。
java - EMV カードの読み書き
これは新しいことであり、オンライン取引やデビット/クレジット カードに関連するコーディングを行ったことはありません。EMV(EuroPay Master Visa)カードをAndroidアプリに実装するために勉強しろと言われました。
これまでのところ、私はについての情報を収集しました
- APDU
- ファイル構造
- 「APDU コマンド」は、カードから有用な情報を取得するために送信されます。
- APDU フィールド (CLA、INS、P1、P2、Lc、Data、Le)
- カードからカードリーダーに「APDUレスポンス」が返ってきます。
これらのプロセスはすべて、カードとカード リーダーの間で発生します。私の場合、カードリーダーは Android デバイスに接続されています。Android アプリでユーザーにカードの詳細を表示する必要がある場合があります (例: カード番号の下 4 桁を表示する)。私の質問は
- カードを認証したい場合、APDUコマンドフィールドで可能な値は何ですか?
- Java を使用してカード リーダーとデバイス間で通信する方法。
PS: コードは必要ありません。簡単な説明が必要です。概念が理解できたら、研究開発を続けます。