2013-06-25 7 views
3

은, 우리가이 시간에카드 소지자의 이름 (ICC 카드) APDU 명령에서 우리는 비자 카드 정보를 읽는

1. 00A404000E315041592E5359532E444446303100 
2. 00B2010C00 

을 전송하는 명령 시퀀스입니다 명령, 우리는 우리가 처리를 보낼 수 있다는 사실을 알고 명령을 80A80000048302084000으로 지정하면 오류가 발생하므로이 명령을 건너 뛰고 READ SFI 1 레코드를 보냈습니다.

00B2010C00 

이렇게하면 카드 번호와 만료일을 확인할 수 있지만 카드 소지자의 이름을 알 수 없습니다. 누군가가 무슨 일이 일어나고 있는지 알고 있으면 친절하게 도와주세요.

답변

5

칩의 카드 홀더 이름 및 기타 정보를 읽는 것은 & 핀 카드는 생각만큼 간단하지 않습니다.

간단하고 직선적 인 APDU만큼 간단하지는 않습니다. 먼저 몇 가지 단계를 거쳐야합니다.

먼저 애플리케이션을 선택해야합니다.

이 작업 방법은 카드와 터미널에 따라 다릅니다.

두 가지 표준 방법이 있습니다.

  • 1) 응용 프로그램 파일 선택
  • 2) AID 스캔
  • 1 형의 경우

, 일반적으로 파일 선택 APDU에게

(참고를 사용하여 알려진 파일 이름을 호출 나 ' 나는이 게시물에 충분한 관심이 있다면 그때 블로그 입력을 할 수 있습니다.)

대부분의 EMV 표준 카드에서 선택할 파일 이름은 비접촉식 카드의 경우 '1PAY.SYS.DDF01'또는 '2PAY.SYS.DDF01'입니다.

두 번째 방법은 긍정적 인 결과를 하나 이상 얻을 때까지 읽으려고하는 AID (응용 프로그램 식별자) 목록을 유지하는 것입니다.

A00000002501 
A0000000031010 
A0000000041010 

3 위 'AMEX', '비자'와 마스터 카드에 대한 부분 일치하고 모든 신용 카드입니다 에이즈 같은 식으로 그 숫자입니다.

신용/직불/충성도에는 모두 자체 AID가 있으며 인터넷을 통해 떠 다니는 비공식 목록이 있지만 일반적으로 현금을 껍질을 벗기고 금융 서비스를 받기 위해 전세계 기관에 문의하는 데 필요한 최종 목록을 얻으려면 .

응용 프로그램 선택을 수행하고 그 데이터를 가져 오면 카드의 내용을 알려면 반환 된 내용을 사용하여 카드 파일 식별자를 읽어야합니다.

반환 한 데이터를 디코딩하고 SFI (짧은 파일 식별자)를 추출하면 실제 응용 프로그램 목록이 포함 된 읽을 파일의 짧은 ID를 알 수 있습니다.

응용 프로그램 목록은 동일한 기본 BER-TLV (태그 길이 값) 개체를 따르고 기본 언어, AID (AID 선택에서 언급 한대로) 및 다른 몇 비트를 포함하는 항목 목록입니다.

일단 응용 프로그램 목록이 있으면 해당 응용 프로그램 항목 각각에서 디렉토리 기본 파일을 읽고 우선 순위에주의를 기울여 우선 순위에 따라 가장 중요한 것으로 처리해야하는 응용 프로그램 구조를 알려줍니다 (예 : 내 UK Visa 차변 나는 2 개의 신청이있다.

내 은행 전용 개인 네트워크 용 하나, 영국 & 유럽 'LINK'네트워크 용 하나. 내 은행의 현금 자동 인출기에서 카드를 사용하면 앱의 우선 순위가 높아지지만 다른 카드를 사용하면 '링크'가 우선적으로 적용됩니다. 이 지점에 도착하면

, 당신은 활성 AID가 (어느 응용 프로그램 선택 목록에서, 또는 목록을 검사를 통해 유효한 AID의 당신에 관심이)가 '최종 선택'

을 수행 할 수있는 시간은 지금이다 선택한 AID가있는 파일을 선택한 다음 완료되면 해당 선택 항목에 대해 TLV 개체에서 반환 된 데이터를 사용하여 GPO 호출을 수행해야합니다 (처리 옵션 가져 오기)

이 GPO 호출을 수행하면 아직 반환되지 않습니다. 더 많은 BER-TLV 데이터.

GPO를 사용하면 GPO 호출에서 반환 된 데이터를 트랜잭션을 시작할 준비가되었음을 카드에 알리고 이제 추출 할 수있는 PDOL 데이터가있는 'PDOL'(처리 데이터 개체 목록)을 작성합니다 마지막으로, 우리에게 짧은 파일 식별자 광고를 읽을 수 있기를 제공하는 AIP와 AFL (죄송합니다 그 사람이 :-) 위해 서 일을 기억하지 못할) (응용 프로그램 데이터 구조)

당신은 ADS는 일단, 그런 다음 카드 소유자 이름뿐 아니라 PAN, 만료 날짜, 발급자 임의의 데이터, 서비스 코드 X509 공인 인증서 및 기타 많은 것들이 있습니다.

이전에 언급했듯이 정확한 APDU 흐름과 다양한 TLV 개체 디코딩 분석을 실제로 문서화하려면이 게시물을 약 20 페이지 길이로 만들어야합니다 !!

그러나 나는 몇 년 동안이 코드를 사용하여 .NET 코드를 작성했으며 솔직히 1 년 넘게 블로그 게시물을 작성하고 있음을 알았습니다.

+1

AFL은 Application File Locator이고 AIP는 Application Interchange Profile입니다 .-) – ldemay

+0

감사합니다 .--) APDU 레벨 작업을 한 지 오래되었습니다. – shawty