web-dev-qa-db-ja.com

NYS IDカードの裏側にあるANSI / AAMVAエンコードデータ(pdf417データマトリックス)について

バックグラウンド

私は、Android Zebra TC51バーコードスキャナーで動作する仕事用のアプリケーションを開発しています。これをいじくり回してきました。)今朝、NYS運転免許証をスキャンして、出力を検査しました(消毒済み)出力は以下のとおりです。出力には、20行のデータと1行のメタデータが含まれています。標準化本体はAAMVAとANSIです。2行に興味があります([〜#〜] ansi [〜#〜]とラベルが付いている)および[〜#〜] znb [〜#〜])。

ライセンスをスキャンしたところ、ANSIラベル付きの行に636001010102DL00910228ZN02790040DLDCADJに似た値の文字列が関連付けられていました(これはサニタイズされています。詳細は以下で説明します)。ググると、NYS Drivers Licenseデータダンプを含む大ざっぱなPastebin結果が返されましたが、どれもありませんでした。一致する他の情報(名前、ドブなど)そこで、さらに10枚のNYS IDカード(友人や家族)をスキャンし、結果をグーグルで調べました。それらのためのグーグルのヒットなし。

質問

私は2つのことを理解しようとしています

  1. [〜#〜] ansi [〜#〜]値の文字列はどのように作成されますか(例:636001010102DL00910228ZN02790040DLDCADJ)、それは何のために使用され、何に通信します。具体的には、この値の文字列が一意であることを意図している場合。
  2. [〜#〜] znb [〜#〜]値の文字列はどのように作成されますか、それは何のために使用されますか(あるタイプのハッシュ/署名のように見えます)、何を通信しますか?.

私が行った研究

私は大まかな調査を行い、以下の資料を読みました。

「バーコード」がPDF417データマトリックスであることを知っています。ほとんどのキーと値のペアを知っています(ラベルを付けました)。

[〜#〜] znb [〜#〜]はハッシュまたは署名のように見えます(AWS SQS残りの呼び出しに signする必要があることを思い出させます 。すべて実行しました[〜#〜] znb [〜#〜]の前のデータ。次のハッシュを介して、正常に見えるがヒットしないものがあるかどうかを確認します(ハッシュであるかどうかさえわかりません)。

  • SHA-1
  • SHA-256
  • MD5

残念ながら、これらの[〜#〜] ansi [〜#〜]および[〜#〜] znb [〜#〜]値に関する情報は見つかりません。他のすべてのキー/値ペアは明確に定義されています AAMVA DL/ID Card Design Standard で、これら2つを除きます。

データ

他の数字と数字を入れ替えてANSI評価者をサニタイズしましたが、値の文字列またはアルファ文字のカーディナリティは変更しませんでした(GitHubソースは最初の[〜#〜] dl [〜 #〜]が重要でした)別のソース状態も重要な値だったため、最初の6桁を残しました。

[〜#〜] znb [〜#〜]の英数字を他の英数字と入れ替えることでサニタイズしました。重要な場合に備えて、アルファベットの大文字と小文字は変更しませんでした。変更しませんでした。文字列のカーディナリティまたは特殊文字。

@

ANSI 636001010102DL00910228ZN02790040DLDCADJ   (???) 
DCB (????) 
DCD (organ donor?) 
DBA (date of birth)
DCS (Last name) 
DCT (first name, possibly with middle initial) 
DBD (date issued
DBB (date expired)
DBC (0 or 1 for male for female)
DAY (eye color abbreviated)
DAU (height in footinches) 
DAG (address line) 
DAI (city) 
DAJ (state)
DAK (Zip) 
DAQ (license number)
DCF (document number)
DCG (country)
ZNZNA(last name)@(first name)@(middle initial)
ZNB Eg3*#c+W^xmj(Ws8@B?]plW_Db;uk&y*V/d9"1=qG

標本、見本

  • サンプルサイズ10
  • すべてのニューヨーク州の身分証明書
  • すべてのフォーマットはほぼ同じでした
  • 改行/改行がエンコードされました(実際には上記のようにスキャンされました)
  • サンプル参加者の生年月日は1951年から2000年の範囲です
  • サンプルには、次の識別タイプの少なくとも1つが含まれています
    • 2013モデルの非ドライバーIDカード
    • 2013 [〜#〜] edl [〜#〜] IDカード
    • 2013標準(拡張されていない)ドライバーIDカード(拡張)
    • 2008標準ドライバーIDカード

奇妙なことに、おそらく10個のライセンスをスキャンして、ANSI文字列値をグーグル検索しました。 私の以外は何も思い付きませんでした。これに関するどんな助けや援助も大歓迎です

1
Chris Maggiulli

これは本当に基本的なものであり、AAMVA DL/IDカード設計標準で対処されています。あなたはAAMVAのウェブサイトでそれを見つけることができます。パーサーは、PHP)で作成しました。

ANSIで始まるすべてのデータは、目次のようなものです。これは、IIN(政府機関ID#)、AAMVAバージョン、このレコード内のサブレコードの数を示しています。各サブの開始位置と長さ-record ..そしておそらく私が忘れている他のいくつかのもの。 「目次」は、最初のサブレコードの位置に到達すると終了します。

DACのような一部のタグは、このレコードがどのバージョンのAAMVAであるかに基づいて使用されます。 AAMVAのバージョン番号を読むことが重要です。それに基づいて、AAMVAの特定のバージョンで使用/定義されたタグを探します。ほとんどのタグはすべてのバージョンで同じです。ただし、名や姓などの一部のタグは、長年にわたって変更されています。

ZNサブレコードは、発行機関に所有権があります。NYSは、ZNAとは何かを公​​開しています。 ZNBは謎です。おそらくDL#のハッシュ、名前、生年月日などです...

1
Robert Carsey