Apple PayとTroikaカードを仕事のパスとして使用します

Apple Pay、Android Pay、Mastercard Paypass、Visa PayWave、Troikaをワークパスとして使用します



TL; DRこの記事では、アクセス制御システム(ACS)の作成プロセスについて説明しますこのプロセスでは、Troikaカード、非接触EMV銀行カード、Apple PayおよびAndroid Payを搭載した電話を識別子として使用できます。 システムは、Telegramボットを介して制御されます。



システムの主なタスク





これ以上カードを必要としないでください!



カードで膨らんだ財布






-すでにカードをお持ちですか?

-慈悲を持って...



ショップ、フィットネスクラブ、駐車場、ビジネスセンター、VIP割引、累積ポイントなど、誰もが自分のカードを提供したいと考えています。 人に別のカードを携帯するように申し出ることは、単に屈辱的です。 また、CISのアクセス制御システムで一般的なEM-Marine標準カード(125kHz)は、通常のISO 7810よりも3倍厚いことを考えると、これは3倍の屈辱です。

したがって、システムの最初の要件は追加のカードではありません



EM4100 EM-MarineおよびISO7810カードの厚さの比較






Em-MarineとISO7810カードの厚さの比較



物理的寸法に加えて、EM-Marineカードは技術的に遅れています。 このようなカードは、通行人のポケットから0.5メートルの距離から簡単に複製できます。



デモビデオ: www.youtube.com/watch?v=qvIIUny4EWI

ビデオでは、50cmの距離から薄いカードem4100を読み取り、厚いカードを遠距離から読み取ります。



すべてのACSは不快です



私たちの意見では、既存のアクセス制御システムはすべて複雑すぎて不便です。 個々のカードの発行、プログラムのインストール、スタッフのトレーニング、マスターカードでの一連のアクションの記憶などが必要です。



場合によっては、複雑なアクセス制御システムが必要です。多くのアクセスエリア、回転式改札口、セキュリティ、一時的な通過がある大きな建物では。



1つまたは2つのドアへのアクセスを制御する必要がある場合、そのような複雑さは正当化されません。 アクセス制御用のプログラムを備えた別のコンピューターのコンテンツでさえ、私たちにとっては大きすぎます。



バッジの発行に関与する個々の従業員はいません。一時的なバッジとセキュリティはありません。 システム管理は、新しい人が指示なしですぐに習得できるように非常に単純でなければなりません。 ACSの責任者がいない場合があるため、システム管理はリモートである必要があります。



識別子としての3つのカード



トロイカカードは、モスクワのあらゆる種類の公共交通機関での旅行に支払うための補充カードです。 これは、プラネタリウム、アイスリンク、動物園、トレチャコフ美術館、駐車場などの公共交通機関といくつかの都市サービスの支払いに最も有益で便利な方法です。 したがって、「トロイカ」は、定期的に公共交通機関を利用するすべての白雲母です。 地下鉄のチケット売り場で約1ドルでカードを購入できます。



技術的には、このカードはSL1モードで動作するMifare Plusチップ(Mifare Classic 1Kエミュレーションモード)に基づいています。 カードの裏面には、リモートでカードの残高を補充するために使用される10桁の数字があります。 この番号は、ACSで識別子として使用すると便利です。









カードの番号は「3」で、8番目のセクターの32番目のブロックのカードのメモリに記録されます。 メモリの保護された領域を読み取るには、6バイトのキーが必要です。これは長い間秘密にされていませんでした。



Troikaカードの番号(チップのUIDと混同しないでください)は、ブロック32の保護されたメモリの2番目のバイトから7番目のバイトの最低4ビットまで保存されます。 このメモリ領域を読み取るには、セクタ8のAキーが必要です。これらのキーは長い間秘密ではなく、データストレージ形式の詳細な説明とともにインターネットで簡単に見つけることができます。 カードにはデータを書き込まないため、必要なセクターを読み取るにはキーAのみが必要です。



したがって、データベースに新しいパスを入力するには、カード番号を視覚的に読み取り、管理者に通知するだけで十分です。 これはリモートでも実行できます。

このアプローチのセキュリティ問題については、記事の最後にあるFAQで説明しています。 Arduinoを使用してTroikaカード番号を読み取るためのコードの例は、最初のプロトタイプの章にあります。
サンクトペテルブルクにも同様のマップ「Plantain」があります。 必要に応じて、Troikaカードと同時に識別子としても使用できます。



Apple / Android PayおよびBank Card



Apple Pay、Android Pay、Samsung Pay、Visa PayWave、Mastercard PayPass-これらはすべて、同じEMV非接触仕様プロトコルに従って動作する支払い手段の商用名です。






異なる名前の支払い手段は同じEMVプロトコルで動作します



上の図に示されているすべての支払い方法は、 EMVco.comから無料で入手できる同じEMVプロトコルで動作します。 したがって、「EMVカード」とは、Apple Pay、Android Pay、Samsung Pay、Visa PayWave、MasterCard PayPassの両方を意味します。

POS端末はApple / Android Payを個別にサポートする必要があると誤解されているため、ユーザーはチェックアウト時に特別なアイコンを探して、支払い手段が​​サポートされていることを確認することを好みます。 実際、非接触型決済がサポートされているほぼすべての場所で、どのデバイスでも機能します。
非接触EMVカード(および接触カードも)を使用すると、以下に示すデータを許可なく、つまりPINコードを入力せずに読み取ることができます。 最後の章では、なぜそれが十分に安全であるかを検討します。



//   (  )
Cardholder Name:  IVAN IVANOV 

//  ,    
PAN:  4556 5386 2774 0649 

//  
Expiry date:  08/2019 

//  track 1    (  )
Track 1:  .... 

//  track 2   
Track 2:  4556538627740649..... 

//     .  ,  .
//   
Paylog:  ........... 

      
      





Cardholder Name , PAN ( ) . .



PAN . , 10 . , , .



, 10 , , EMV-.



EMV-



EMV- NFC-, APDU-. , Arduino $3





, EMV. — EMV Arduino .



. ( )
EMV :





EMV. APDU EMVco, - .



EMV , , , .
APDU- . PC/SC , ..



SmartCard Scripter, PC/SC- HiD Omnikey. SmartCard Scripter pascal- . infintuary.org/scs_tut.php



APDU , :



//    UID 
begin
  APDU('FF CA 00 00 00');
end.
      
      





— SELECT (PPSE)



: EMV Contactless Specifications — PPSE and Application Management for Secure Element



EMV- PPSE (Payment System Environment) SELECT.



APDU- SELECT PPSE

'00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00'
  00 A4 04 00 //  select 
   0E //  command data (14 )
    32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 // command data 2PAY.SYS.DDF01
    00 //  

      
      





— SELECT AID



SELECT PPSE FCI (File Control Information) , . (VISA, MasterCard, AmericanExpress) , .



VISA SELECT PPSE



'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'
      
      





- TVL emvlab.org/tlvutils/. VISA, :







(AID). , A0000000031010, Visa International.



AID 4F. , . , AID 5 16 , 7 . AID , 4F 07 7 AID. , AID , , , Visa MasterCard. PPSE- : 6F, 90 00 4F 07, .



AID: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pix



AID



A0000000031010 Visa International
A0000000032020 Visa International
A0000000041010 Mastercard International
A0000000043060 Mastercard International United States Maestro (Debit)

      
      





AID, SELECT. Visa International, PPSE SELECT



APDU- SELECT AID



'00 A4 04 00 07 A0 00 00 00 03 10 10'
  00 A4 04 00 //  select 
   07 //  command data (7 )
    A0 00 00 00 03 10 10 // AID Visa International

      
      





PDOL (Processing Options Data Object List)



PDOL (Processing Options Data Object List). POS- — , , , , , .



PDOL . PDOL — . PDOL : eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.

, PDOL , , . - , — .



, PDOL. , PAN- , POS-. , PAN-. , PDOL.



. PDOL.



'6F 31 84 07 A0 00 00 00 03 10 10 A5 26 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 BF 0C 08 9F 5A 05 60 08 40 06 43 90 00'

      
      





:







, PDOL 9F38 9F66049F02069F03069F1A0295055F2A029A039C019F3704. emvlab.org PDOL, Android- Credit Card Reader.



, . PDOL:







, emvlab.org. .



PDOL



9F 38 18 //   PDOL.  18 (24 ) 
 9F 66 ( 04) // Terminal Transaction Qualifiers (TTQ).    
  9F 02 ( 06) //  
   9F 03 ( 06) //  
   9F 1A ( 02) //     ISO3166-1
   95 ( 05) // Terminal Verification Results
    5F 2A ( 02) //  ,    ,   ISO4217
     9A ( 03) //    YYMMDD
      9C ( 01) //   
       9F 37 ( 04) //    

      
      





PDOL EMV Contactless Specifications Book C-1/2/3 Kernel 1/2/3 Specification.



PDOL , , , PDOL. ( ), 33 . PDOL 33 .



, — PDOL, . , 6985 Conditions of use not satisfied.



, PDOL , Terminal Transaction Qualifiers (TTQ). VISA, , VCPS 2.1.1. TTQ :



'F0 00 00 00'

      
      





TTQ .



MasterCard, , PDOL PAN- PDOL.



PDOL:



'80A80000238321F0000000000000000000000000000000000000000000000000000000000000000000'
 80 A8 00 00 //  GET PROCESSING OPTIONS (GPO)
  23 //    (35 )
   83 //  PDOL-
    21 //  PDOL- (33 )
     F0 00 00 00 // Terminal Transaction Qualifiers (TTQ)
      00 00 00 00 00 00 //  
       00 00 00 00 00 00 //  
        00 00 //   
         00 00 00 00 00 // Terminal Verification Results (TVR)
          00 00 // 
           00 00 00 //  
            00 //  
             00 00 00 00 //   

      
      





, , 77 SW2=9000. PAN-, . ()



PAN-



EMV, , , , PAN-.



PAN- :





APDU- ( ? , )



'00 b2 01 1c 00'
'00 b2 01 0c 00'
'00 b2 02 0c 00'
'00 b2 01 14 00'
'00 b2 02 14 00'
'00 b2 04 14 00'

      
      





57 13 5A 08. 8 .



, .



PAN- -











10- , PAN- , «». , , , .



, 10- . , .



Arduino + PN532 breakout board.

: www.youtube.com/watch?v=aXNvjuRrCQk



Arduino, , : github.com/zhovner/Adafruit-PN532, examples/ApplePay_Troyka_ACS

, PDOL, - EMV- . .



Parsec



arduino raspberry pi, .



, , , .



, , Parsec.ru

PNR-P03E.





Parsec PNR-P03E



RFID-, , . Mifare, HiD iClass ..



, , EMV-.



PNR-P03E





-, . , Wiegand.









. , . .





— , . , , , .



. , API Telegram-.



, « ». rgmih , .



.





                           



Linux ARM-.



, :





, Wiegand. , .



, . .



, , , .





c Ethernet-. IP- . , , .



« ». , .





                    -



- , . , , , .



Telegram



, - , Telegram , / . REST API.



   Telegram-






                              Telegram-.

FAQ



, . :








, :



aquamine

ValdikSS

Telegram — Alexey Tsverov

Parsec

rgmih



All Articles