EMV Command

2014. 6. 25. 20:17IT관련

반응형

Command는 EMV Book3을 참고 하도록 한다.

여러 명령어들이 있지만 실제 거래에 필요한 명령어 위주로 설명을 하도록 하겠다.


  1. APPLICATION BLOCK(post-issuance command)
    • EMV application의 사용하지 못하도록 block 상태로 전환시킨다.
  2. APPLICATION UNBLOCK(post-issuance command)
    • Block된 EMV application을 다시 사용할 수 있도록 상태를 전환시킨다.
  3. CARD BLOCK(post-issuance command)
    • Application이 아니라 IC card의 life cycle을 아예 CARD_LOCKEC나 TERMINATED로 전환시킨다.
  4. EXTERNAL AUTHENTICATE
    • Terminal이 만들어낸 Cryptogram을 검증한다.
  5. GENERATE APPLICATION CRYPTOGRAM(GENERATE AC)
    • 이 명령어는 거래 승인을 할때 호출되는 명령어이다.
    • GENERATE AC의 구성은 아래와 같다.
    • P1의 구성은 아래와 같다.
    • 즉, Terminal이 거래 거절(AAC)를 할지 거래 승인(TC)할지 온라인으로 거래를 올릴지(ARQC)를 1차적으로 판단해서 전달해야 한다.
    • 그러면 EMV Application은 승인에 필요한 AC를 생성하여 Response Data로 전달하게 된다. 아래는 GENERATE AC command의 response data이다.
    • Response data 중에서 Application Transaction Counter(ATC, 2 bytes)는 거래할때 마다 증가하는 counter이다.
    • Response data 중에서 Application Cryptogram(AC, 8 bytes)는 카드에서 계산된 cryptogram이다. 이걸 검사하여 승인 여부를 결정할 수 있다.
    • Response data 중에서 Issuer Application Data(IAD, 8~16 bytes)는 online 거래시 issuer에게 전달하기 위한 application data이다.
    • Response data 중에서 CID는 1 byte로 아래와 같은 format으로 구성된다.
    • 실제로 GENERATE AC command는 1st GENERATE AC와 2nd GENERATE AC로 구분된다.
    • 1st GENERATE AC에서는 Terminal이 TC, ARQC, AAC를 결정해서 이 1st GENERATE AC command로 전달을 하게 되면 EMV application 역시 내부적으로 TC, ARQC, AAC를 결정하게 된다.
      • Terminal이 AAC로 결정하면 EMV application은 AAC로 밖에 결정할 수 없으며, Termial이 AQRC로 결정하면 EMV application은 AAC와 ARQC 중에 하나로 결정할 수 있다. Terminal이 TC로 결정하면 EMV application은 AAC, ARQC, TC 중에 하나로 결정한다.
      • EMV application이 ARQC로 응답을 했다면 Terminal은 online으로 접속하여 거래를 진행해야 한다. online으로 거래를 한다는 것은 issuer의 server에 붙어서 issuer가 승인 여부를 결정한다는 것을 의미한다.
      •  

         EMV Application

         Terminal

         

         AAC

        ARQC

        TC

         AAC

         AAC

        -

         ARQC

         AAC

         ARQC

         TC

         AAC

         ARQC

         TC

    • 2nd GENERATE AC는 1st GENERATE AC으로 online 승인 거래(ARQC)를 진행했을때 인증 데이터가 terminal로 전달이 되었다면 2nd GENERATE AC 명령어로 인증 데이터 검사를 해야 한다. 인증데이터 검사를 실패하게 되면 거래는 거절되어야 한다.
  6. GET CHALLENGE
    • Random data를 생성할때 사용된다.
  7. GET DATA
    • Data를 얻어온다.
  8. GET PROCESSING OPTIONS
    • 이 명령어는 신용카드 거래의 시작을 알리는 명령어이다.
    • 구성은 아래와 같은데 이 명령어의 Data는 EMV application을 SELECT 했을때 오는 FCI 값의 내용 중에서 PDOL 정보를 얻어올 수 있는데 그 PDOL의 해당하는 data를 의미한다.
    • 실제 PDOL은 카드사가 카드 발급할때 넣어 주는 데이터로써 카드사가 신용 카드 거래를 위해 필요한 데이터를 정의한 것이다. 만약에 EMV application의 FCI에 PDOL이 없으면 GET PROCESSING OPTIONS command의 Lc는 0x00으로 주고 data는 비어 놓으면 된다.
    • EMV application은 이 명령어를 받으면 내부에 정의해둔 변수들을 초기화 하고 아래의 데이터를 Response로 응답하도록 되어 있다.
    • Application Interchange Profile(AIP)는 2 bytes로써 EMV application이 지원하는 보안, Offline 거래 가능 여부등의 정보를 나타낸다. 아래 table 참조.
    • Application File Locator(AFL)은 EMV application이 가지고 있는 Element File(EF)의 ID와 해당 EF의 record number로 구성된다. 이 정보를 terminal이 얻어가면 READ RECORD command로 발급된 정보를 읽어가야 한다.
  9. INTERNAL AUTHENTICATE
    • Offline 거래에 사용된다.
  10. PIN CHANGE/UNBLOCK(post-issuance command)
    • EMV application의 PIN 값을 변경하거나 3~5회 이상 PIN verify가 틀리면 PIN이 block 상태가 되는데 block 된 PIN을 해지할 때에도 사용된다.
  11. READ RECORD
    • 이 명령어는 GET PROCESSING OPTIONS command 이후에 응답으로 오는 AFL을 가지고 EMV application의 발급 정보를 읽어갈때 사용된다.
  12. VERIFY
    • PIN 검사를 할 때 사용된다.

일반적인 신용 거래 Command Flow


여기서 Post-Issuance Command는 아래의 명령어들이다.

  1. APPLICATION BLOCK

  2. APPLICATION UNBLOCK

  3. CARD BLOCK

  4. PIN CHANGE/UNBLOCK

이 Post-Issuance Command는 GENERATE AC 명령어 다음에 올수도 있고 안올수도 있다. 즉, 일반적인 거래라면 GENERATE AC command 이후에 거래는 종료하게 된다.
READ RECORD가 여러번 불리는 이유는 읽어갈 데이터가 얼마나 많이 있으냐에 달려있다. 



반응형

'IT관련' 카테고리의 다른 글

The Java Card Applet Development Process  (2) 2015.01.09
신용거래(Transaction Processing) Flow  (1) 2014.06.25
EMV 용어  (0) 2014.06.25
PSE(Payment System Environment)  (0) 2014.06.25
Privileges  (0) 2014.06.10