問題タブ [pyscard]
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.
python - Pythonでスマートカードを使用したWebサイトでの認証
そのため、会社から提供されたチップ付きのクレジットカードのようなスマートカードを持っています。このカードは、カードがカード リーダーに挿入された後、Web サイトにログインします。
ここで、カードを読み取り、Requests
モジュールを使用してその Web サイトにログインできるプログラムを Python で作成する必要があります。Pythonスクリプトを使用してカードからこの認証データを取得し、このデータを使用する方法を見つけようとしましたが、部分的に成功しています。私はインストールしましたpyscard
:
これまでのところ、データを送信したり、カードからデータを取得したりできます。INS (ソース: ISO 7816)でコマンド 88 を送信しました。これは、ある種の内部認証用です (この認証データは、Web サイトへのログインに使用されると想定しています)。
ISO 7816 でこの応答の意味を見つけることができませんでした。ここからさらに先に進むための正しいアプローチまたはヒントがあるかどうか誰か教えてもらえますか? 要するに、Python スクリプトとスマート カードを使用して Web サイトにログインする方法を知りたいですか?
python - SIM カードで ADM を認証して IMSI を変更する
私は ETSI TS 102 221 V8.2.0 (2009-06) を読んで、sim カードとのインターフェース方法を学び、pyscard を使用して Python でそれらとインターフェースする方法を学びました。
ICCID と現在の IMSI を正常に読み取ることができましたが、IMSI を更新しようとすると、「アクセス条件が満たされていないため、認証に失敗しました」という意味の「9804」が返されます。
PIN が無効になっており、IMSI ファイルの更新条件は、プロバイダーから取得した管理者番号のようです。
PIN は「Verify Pin」コマンドを介して認証されるはずですが、そのようなコマンドは ADM 番号に対して存在しないようです。
「認証」コマンドを見てきましたが、理解に苦しんでいます。ADM番号を認証する正しい方法であると人々が主張するいくつかのAPDUをオンラインで見つけましたが、どれも機能しません。
通常の APDU (CLA、INS、P1、P2、Lc(P3)、<data>、Le) を送信する以外に、ADM の認証に他に何かありますか?
要約する
と、ドキュメントから、ADM番号を認証するAPDUを作成する方法が見つかりません(おそらく十分に理解していません)。
この問題に関するすべてのヘルプまたは洞察は大歓迎です。
python - ACR1252 と pyscard を使用して、後続ブロックのキーの Mifare 4K 変更がエラー「99」を返す
各セクターのトレーラーを次のようにプリエンコードするサプライヤーから Mifare 4k カードを受け取ります。
その際、サプライヤはアクセス ビットを に設定しFF0780
、読み取りキー (キー A) と書き込みキー (キー B) は工場出荷時のデフォルトのままです。FFFFFFFFFFFF
pyscard とエンコーダ ACR1252 を使用して、新しい読み取りキー (キー A) と書き込みキー (キー B) とアクセス ビットを書き込もうとすると、文書化されていないエラー コードである応答コード "99" が返されます。これは、工場出荷時のブランク カードではこのエラーが発生しないため、アクセス ビットが変更されているために発生していると思われます。
この例では、キー A とキー B がFFFFFFFFFFFF
あり、アクセス ビットが であるようにトレーラー ブロックを更新し787788
ます。
サプライヤがアクセス ビットを設定したカードに対して応答コード 99 が返される理由は何ですか?
注: 認証は正常に機能します。失敗するのは書き込み手順だけです。