概要
磁気ストライプ リーダー (MSR) 入力は、クレジット カードやデビット カードなどの「磁気ストライプ」カードからデータを取得するのに使用します。黒い磁気ストライプに保存されている情報は、MSR にカードを「スワイプ」したときにデバイスに転送されます。情報は、ANSI x4.16 規格を使用したオープンな形式でエンコードされ、通常はキャリアの ID や金融機関に関連付けられています。DataWedge では、ANSI x4.16 形式を採用しているほとんどのカードから未加工データを取得して出力できます。ISO および米国銀行協会が発行する ISO/ABA 仕様にも準拠したカードの場合、開発者は Zebra 暗号化を有効にすることができます。これにより、取得直後にデータが保護され、その後ずっと保護されます。Zebra デバイスでいったん有効にすると、暗号化を無効にすることはできません。
ANSI 磁気ストライプ規格では、データは 3 つのトラックでカードに保存されます。暗号化されていないデータは、個々のトラックのいずれかから、または 3 つすべてから一度に取得できます。Zebra の拡張モード暗号化によって暗号化されたデータについても同様です。Zebra オリジナル モード暗号化では、3 つのトラックすべてが 1 つのエンティティとして扱われます。
MSR カードのエンコーディングの 3 つのモード。このうちの 2 つに暗号化が含まれる
暗号化の有効化
デバイスで暗号化を有効にすると、元に戻すことはできません。ISO/ABA データを暗号化するようにデバイスを構成すると、未加工の ISO/ABA データを出力するようにデバイスを構成することはできなくなります。このようなデバイスで行える変更は、オリジナル暗号化モードと拡張暗号化モードの切り替えのみです。暗号化は ISO/ABA データにのみ適用されます。MSR が取得した他のすべてのデータは、非 ISO モードを使用して暗号化されていない形式で出力されます。
暗号化を有効にして、暗号化されたデータを操作する方法については、ID TECH SecureHead のユーザー マニュアルを参照してください。
対応する Zebra デバイス
以下の Zebra デバイスは、DataWedge を使用して MSR データを取得できます (暗号化することもできます)。
- MSR 付き MC40 (モデル番号 MC40N0-SLK3RM1)
- MSR スナップオン モジュール付き TC70/TC75 (部品番号 MSR-TC7X-SNP1-01)
すべての MC40 構成オプション (.pdf) を参照してください。
MSR 入力
MSR 入力を受け付けるように DataWedge を設定するには:
目的のプロファイルの [MSR 入力] セクションの [有効] ボックスをオンにします。
「DWDemo」プロファイルで MSR 入力が有効になっている状態
注: DataWedge には、スキャン結果を示すビープ音やその他のフィードバックも用意されています。詳細については、「スキャン パラメータ」セクションを参照してください。
MSR 出力
DataWedge は、インテントを介してのみ MSR データを出力します。これは、取得したデータがオープンの場合も暗号化されている場合も同じです。このため、受信側アプリケーションでは、インテント バンドルからデータを受け入れて処理できる必要があります。アプリケーション開発者が MSR データを簡単に使用できるように、取得したデータは自動的に解析され、特定の用途に合わせて形式化されて、変更後のデータが特定のタグに配置されます。たとえば、レシートを印刷するコードでは、「マスキングされたデータ (ASCII)」タグのいずれかを使用できます。このタグでは、クレジット カード番号の末尾 4 桁を除くすべての番号がアスタリスクで表示されます。
取得したデータの変更に関して、DataWedge には、この後のセクションに示されている形式化オプションのみが用意されています。それ以外のデータ形式化オプションについては、ID TECH SecureHead のユーザー マニュアルを参照してください。カスタム データの形式化は、開発者の責任の下で行ってください。
MSR データを取得するには:
Intent.getStringtExtra()
上記のメソッド呼び出しは、カードから読み取り可能なすべてのデータを返します。この後の表に、タグに含まれるデータ フィールドを示します。
非 ISO モード
非 ISO モードは、暗号化が有効になっていないデバイスのデフォルト モードです。このモードは、カードから正確に読み取ったとおりに、暗号化せずにデータを出力します。3 つのステータス タグ (以下のマッピングの表) は、カード上の対応する各トラックにデータが存在することを示します。
暗号化が有効になっているデバイスでは、ISO/ABA に準拠していないカードを読み取る場合にのみ 非 ISO モードになります。そうでない場合、このようなカードからのデータは、オリジナル モードまたは拡張モードで暗号化され、他の方法で構成することはできません。
3 つのすべてのトラックからの MSR データが含まれるタグ: com.symbol.datawedge.msr_data
非 ISO フィールド - タグ マッピング
カード データ フィールド |
マップ先の DataWedge タグ |
トラック 1 ステータス | com.symbol.datawedge.msr_track1_status |
トラック 2 ステータス | com.symbol.datawedge.msr_track2_status |
トラック 3 ステータス | com.symbol.datawedge.msr_track3_status |
すべての MSR データ (以下のフィールドの表を参照) | com.symbol.datawedge.msr_data |
非 ISO フィールド
フィールド番号 |
説明 | 注意事項 |
1 | STX |
|
2 | 長さ |
|
3 | カード エンコード タイプ |
|
4 | トラック 1-3 ステータス |
|
5 | トラック 1 非暗号化長さ | 0 = 「トラック 1 データが存在しない」 |
6 | トラック 2 非暗号化長さ | (常に存在する) |
7 | トラック 3 非暗号化長さ | 0 = 「トラック 3 データが存在しない」 |
8 | トラック 1 データ | (存在する場合) |
9 | トラック 2 データ | (常に存在する) |
10 | トラック 3 データ | (存在する場合) |
11 | LRC |
|
12 | チェックサム |
|
13 | ETX |
|
|
拡張モード
Zebra 拡張モードでは、各トラックのデータが個別に暗号化されるため、必要に応じて各トラックからのデータを個別に処理できます。データを取得するためのタグを以下に示します。
3 つのすべてのトラックからの MSR データが含まれるタグ: com.symbol.datawedge.msr_data
上記のタグは、カードから読み取り可能なすべてのデータを返します。この後の表に、タグに含まれるデータ フィールドを示します。
拡張モード フィールド - タグ マッピング
カード データ フィールド | マップ先の DataWedge タグ |
トラック 1 ステータス | com.symbol.datawedge.msr_track1_status |
トラック 2 ステータス | com.symbol.datawedge.msr_track2_status |
トラック 3 ステータス | com.symbol.datawedge.msr_track3_status |
トラック 1 暗号化データが存在する | com.symbol.datawedge.msr_track1_encrypted_status |
トラック 2 暗号化データが存在する | com.symbol.datawedge.msr_track2_encrypted_status |
トラック 3 暗号化データが存在する | com.symbol.datawedge.msr_track3_encrypted_status |
トラック 1 マスク データ (ASCII) | com.symbol.datawedge.msr_track1 |
トラック 2 マスク データ (ASCII) | com.symbol.datawedge.msr_track2 |
トラック 3 マスク データ (ASCII) | com.symbol.datawedge.msr_track3 |
すべての MSR データ (詳細については、フィールドの表を参照) | com.symbol.datawedge.msr_data |
トラック 1 暗号化データ (16 進) | com.symbol.datawedge.msr_track1_encrypted |
トラック 2 暗号化データ (16 進) | com.symbol.datawedge.msr_track2_encrypted |
トラック 3 暗号化データ (16 進) | com.symbol.datawedge.msr_track3_encrypted |
トラック 1 ハッシュ化 | com.symbol.datawedge.msr_track1_hashed |
トラック 2 ハッシュ化 | com.symbol.datawedge.msr_track2_hashed |
トラック 3 ハッシュ化 | com.symbol.datawedge.msr_track3_hashed |
DUKPT シリアル番号 (KSN) | com.symbol.datawedge.msr_ksn |
拡張モードのフィールド
フィールド番号 | 説明 | 注意事項 |
1 | STX |
|
2 | 長さ |
|
3 | カード エンコード タイプ |
|
4 | トラック 1-3 ステータス |
|
5 | トラック 1 非暗号化長さ | 0 = 「トラック 1 データが存在しない」 |
6 | トラック 2 非暗号化長さ | (常に存在する) |
7 | トラック 3 非暗号化長さ | 0 = 「トラック 3 データが存在しない」 |
8 | クリア/マスキングされたデータ送信ステータス |
|
9 | 暗号化/ハッシュ化データ送信ステータス |
|
10 | トラック 1 マスク | (存在する場合) |
11 | トラック 2 マスク | (常に存在する) |
12 | トラック 3 マスク | (存在する場合) |
13 | トラック 1 暗号化 | (存在する場合) |
14 | トラック 2 暗号化 | (常に存在する) |
15 | トラック 3 暗号化 | (存在する場合) |
16 | トラック 1 ハッシュ化 | (存在する場合) |
17 | トラック 2 ハッシュ化 | (常に存在する) |
18 | トラック 3 ハッシュ化 | (存在する場合) |
19 | KSN (DUKPT シリアル番号) |
|
20 | LRC |
|
21 | チェックサム |
|
22 | ETX |
|
オリジナル モード
Zebra オリジナル モードでは、3 つのトラックのデータが単一のエンティティとして暗号化され、Zebra が最も一般的な使用事例に従って便宜的に作成した以下のタグに含まれる場合を除いて、トラック データが個別に処理されないようになります。カード上の 3 つのすべてのトラックからの読み取り可能なデータは、タグ com.symbol.datawedge.msr_data
に配置され、開発者が必要に応じて解析できます。
この後の表に、タグに含まれるデータ フィールドを示します。
オリジナル モード フィールド - タグ マッピング
カード データ フィールド | マップ先の DataWedge タグ |
トラック 1 ステータス | com.symbol.datawedge.msr_track1_status |
トラック 2 ステータス | com.symbol.datawedge.msr_track2_status |
トラック 3 ステータス | com.symbol.datawedge.msr_track3_status |
トラック 1 マスク データ (ASCII) | com.symbol.datawedge.msr_track1 |
トラック 2 マスク データ (ASCII) | com.symbol.datawedge.msr_track2 |
トラック 3 マスク データ (ASCII) | com.symbol.datawedge.msr_track3 |
すべての MSR データ (詳細については、フィールドの表を参照) | com.symbol.datawedge.msr_data |
トラック 1 暗号化データ (16 進) | com.symbol.datawedge.msr_track1_encrypted |
トラック 2 暗号化データ (16 進) | com.symbol.datawedge.msr_track2_encrypted |
トラック 3 暗号化データ (16 進) | com.symbol.datawedge.msr_track3_encrypted |
トラック 1 ハッシュ化 | com.symbol.datawedge.msr_track1_hashed |
トラック 2 ハッシュ化 | com.symbol.datawedge.msr_track2_hashed |
トラック 3 ハッシュ化 | com.symbol.datawedge.msr_track3_hashed |
DUKPT シリアル番号 (KSN) | com.symbol.datawedge.msr_ksn |
オリジナル モードのフィールド
フィールド番号 | 説明 | 注意事項 |
1 | STX |
|
2 | 長さ |
|
3 | カード エンコード タイプ |
|
4 | トラック 1-3 ステータス |
|
5 | トラック 1 非暗号化長さ | 0 = 「トラック 1 データが存在しない」 |
6 | トラック 2 非暗号化長さ | (常に存在する) |
7 | トラック 3 非暗号化長さ | 0 = 「トラック 3 データが存在しない」 |
8 | トラック 1 マスク | (存在する場合) |
9 | トラック 2 マスク | (常に存在する) |
10 | トラック 3 データ | (存在する場合) |
11 | 暗号化されたデータ | トラック 1 とトラック 3 は、存在する場合にのみ含まれる |
12 | トラック 1 ハッシュ化 | (存在する場合) |
13 | トラック 2 ハッシュ化 | (常に存在する) |
14 | KSN (DUKPT シリアル番号) |
|
15 | LRC |
|
16 | チェックサム |
|
17 | ETX |
|
|
構成
プログラムによる MSR の構成および構成の取得については、以下を参照してください。
関連ガイド:
- DataWedge プロファイル - DataWedge のすべての入力オプション、処理オプション、および出力オプションのガイド
- DataWedge API - DataWedge でサポートされているすべてのインテントの使用方法の仕様
- ID TECH SecureHead のユーザー マニュアル - Zebra MSR デバイスで使用されている ID TECH 読み取りヘッドの技術仕様
- ANSI x9.24-2016 - 暗号化キー (DUKPT) の仕様