Post Técnico
Um Leitor de Cartão com Chip que Gera Saída em Texto
Já mencionei nosso Augusta (veja a foto) em posts anteriores, e mencionei que Augusta com Quick Chip e M/Chip Fast possui patente pendente. Mas por quê? Por que a patente está pendente? O que há de patenteável nisso? O Quick Chip não está em domínio público? (Sim, na verdade. A Visa considerou patenteá-lo, mas decidiu não fazê-lo.) Afinal, o que há de tão inovador no Augusta com Quick Chip e M/Chip Fast?
Resposta curta: A grande inovação aqui é que Augusta é o único leitor de cartão com chip no mercado capaz de realizar transações EMV inteiramente no modo teclado. O que significa que ele pode ser adaptado para uso em aplicações de navegador: ou seja, aplicações de terminal virtual que capturam dados de caracteres a partir de um leitor.
Isso significa que você pode se comunicar com um cartão com chip — e receber dados ASCII comuns em retorno.
Isso é Muito Importante.
Não é difícil encontrar leitores de MagStripe que operam inteiramente no modo teclado. Você conhece esse tipo de leitor: aquele em que você conecta o dispositivo a um laptop ou tablet, passa um cartão, e os dados da trilha aparecem magicamente na tela onde quer que o cursor esteja. Isso é o modo teclado. Funciona porque o leitor de cartão é um dispositivo serial que engana o computador host, fazendo-o pensar que o dispositivo é, na verdade, um teclado!
Mas um leitor de cartão com chip é uma história diferente.
A maioria dos leitores de cartão com chip requer software especial para operar, pois o aplicativo host precisa se comunicar com o chip do cartão (afinal, é para isso que ele serve!), mas o chip só fala em binário. Na prática, a comunicação entre o aplicativo host e o chip é algo bastante complexo em nível baixo — com criptogramas, handshakes especiais e notificações de eventos (entre outras coisas) — que mantém o computador host ocupado por dez, vinte segundos antes de você ser solicitado a "remover o cartão".
Antes do Augusta, comunicar-se com um cartão com chip era algo bastante complexo, exigindo softwares extraordinariamente elaborados e computacionalmente intensivos no computador host (ou no caixa eletrônico). Com o Augusta, nenhum software especial é necessário para extrair dados do cartão. Após inserir um cartão, o leitor emite dados de teclas em ASCII de forma autônoma, sem intervenção de programador — dados que podem ser consumidos por qualquer aplicativo que espere receber texto. Você pode literalmente abrir o Bloco de Notas em um computador Windows, conectar o Augusta a uma porta USB, inserir um cartão e ver os dados do cartão com chip aparecerem no Bloco de Notas, em formato de texto. É isso que diferencia o Augusta. É isso que é patenteável. E é isso que você não encontrará em nenhum outro produto no mercado.
Como são esses dados? Bem, como você pode (ou não) saber, as transações EMV geram dados em formato TLV. TLV significa Tag, Length, Value (Tag, Comprimento, Valor). É uma forma de representar dados em um formato de fácil análise. Assim, por exemplo, um dos TLVs que você recebe do Augusta após inserir o cartão pode ser parecido com: 5F 24 03 18 01 31. A parte "5F24" é a Tag — um identificador padrão definido pela EMVCo para a Data de Validade. O "03" após a tag é o Comprimento: temos três bytes de dados. Os bytes de dados são 18 01 31, o que significa que a data de validade do cartão (AA-MM-DD) é 31 de janeiro de 2018.
Com o Augusta, uma transação EMV resulta em um fluxo de texto contendo dados TLV. Os dados exatos variarão (obviamente) conforme as circunstâncias, mas na maioria dos casos você receberá algo em torno de 40 TLVs, incluindo tudo o que é necessário para um recibo (como dados mascarados da trilha, na tag DFEF5D; data de validade na tag 5F24; nome do portador do cartão na tag 5F20; entre outros), além do PAN criptografado (tag 5A), dados do criptograma (9F27) e muito mais. Um bloco de dados real tem a seguinte aparência (com espaços inseridos entre os valores dos bytes para maior clareza); observe que as tags estão em azul, os comprimentos em laranja e os dados em marrom.
DF EE 25 02 00 02 DF EE 26 02 20 00 DF EE 12 0A 62 99 49 00 00 00 00 00 00 63 DF EF 5D 10 51 28 CC CC CC CC 28 77 D1 80 16 22 CC CC CC CC 57 18 03 8C CC 33 FB 1D 32 99 5F B6 F8 65 EA FE 54 69 90 55 A6 BC 18 A2 0D 50 DF EF 5B 08 51 28 CC CC CC CC 28 77 5A 10 44 B6 48 D3 53 D0 4B E1 DB DB B7 56 5D 4F D0 21 5F 20 1A 2F 43 48 49 50 20 54 45 53 54 20 43 41 52 44 20 20 20 20 20 20 20 20 20 20 20 5F 24 03 18 01 31 5F 25 03 15 01 01 5F 28 02 08 40 5F 2A 02 08 40 5F 2D 02 65 6E 5F 34 01 00 5F 57 01 00 50 10 44 65 62 69 74 20 4D 61 73 74 65 72 43 61 72 64 4F 07 A0 00 00 00 04 10 10 82 02 39 00 84 07 A0 00 00 00 04 10 10 8C 21 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 9F 35 01 9F 45 02 9F 4C 08 9F 34 03 8D 0C 91 0A 8A 02 95 05 9F 37 04 9F 4C 08 8E 12 00 00 00 00 00 00 00 00 42 03 44 03 41 03 1E 03 1F 03 9C 01 00 9F 02 06 00 00 00 00 00 00 9F 03 06 00 00 00 00 00 00 9F 10 12 01 10 20 00 05 62 04 00 00 00 00 00 00 00 00 00 00 FF 9F 13 00 9F 20 00 9F 26 08 D2 EC AA C1 36 04 A7 22 9F 27 01 00 9F 34 03 1E 03 00 9F 36 02 01 A9 9F 37 04 9A 4D 21 88 9F 38 00 9F 39 01 07 9F 4D 00 9F 4F 00 95 05 04 00 00 00 00 9B 02 E8 00 8A 02 5A 33 99 00 9F 5B 00
O seu aplicativo de terminal virtual filtrará esses dados conforme apropriado, exibirá parte deles na tela e enviará o restante ao gateway ou ao back-end para processamento.
Com a maioria dos leitores de cartão com chip, os desenvolvedores precisam se esforçar muito para obter exatamente os TLVs necessários, nos momentos exatos da transação. Com Augusta, porém, todos os dados de que você precisa estão disponíveis de uma só vez, em um único fluxo de caracteres; é possível capturá-los em uma página web com manipuladores de eventos de pressionamento de tecla em JavaScript comum. Em seguida, processe como desejar. Não é necessário abrir uma conexão USB com o leitor (ele dispensa drivers!), emitir comandos de firmware nem orquestrar interações complexas com o cartão. O kernel comum L2 certificado do Augusta cuida de todo o trabalho pesado e entrega os dados de uma só vez ao final do processo — é exatamente isso que o Quick Chip e o M/Chip Fast permitem fazer. Trata-se de uma modalidade de interação EMV que não exige nenhum esforço adicional por parte do desenvolvedor. (Bem, isso é um pouco de exagero. Requer um pequeno esforço. Mas nada comparado ao EMV convencional!)
Para o lojista, é um sonho realizado: basta conectar o Augusta, abrir o navegador e estar pronto para operar. Nenhuma instalação de software especial é necessária.
Portanto, se você é um desenvolvedor de aplicativos de pagamento, integrador de sistemas, ISV ou especialista em terminal virtual que precisa colocar o EMV em funcionamento rapidamente, simplesmente não existe maneira melhor ou mais fácil de começar do que com o Augusta da ID TECH, com patente pendente. É a forma mais simples de implementar EMV — com um dispositivo de teclado que não exige nenhum protocolo especial de handshake.
Quer saber mais? Temos todos os detalhes técnicos em nosso white paper, disponível para download imediato e gratuito (sem necessidade de cadastro) aqui. Ou ligue para o número a seguir e solicite uma unidade de demonstração:
1-800-984-1010
Naturalmente, Augusta suporta criptografia AES ou TDES (ou sem criptografia!), ou FPE, com gerenciamento de chaves DUKPT. Há até uma versão SRED disponível, caso você precise. E não deixe de conferir nosso vídeo curto! Confira também todos os recursos Augusta disponíveis para download em nossa Base de Conhecimento.
