thegoodfellas/blogset-br huggingface dataset:
MiFare 1Kb) e organizada em 16 setores contendo 4 blocos e cada bloco possui 16 bytes de memoria.Um Setor pode ser representado da seguinte maneira: Sector ( 0 ~ 15 ){ Block 0 - 16 bytes de memoria - Livre para UsoBlock 1 - 16 bytes de memoria - Livre para UsoBlock 2 - 16 bytes de memoria - Livre para UsoBlock 3 - 16 bytes de memoria - Sector Trailer} O Bloco 3 de cada Setor e especial e reservado, nesse bloco ficam gravados duas chaves de 48 bits conhecidas por KEY A e KEY B, onde geralmente a Key A possui mais privilegios que a Key B, nesse bloco ficam ainda gravados uma Access Condition(Condicao de Acesso) composta por 4 bytes, que define a condicao de acesso para cada bloco do setor, como apenas leitura, apenas decremento, escrita e leitura apenas pela Chave A, etc.Uma unica ressalva fica por conta do Bloco 0 do Setor 0, esse bloco em especial e reservado nao podendo ser reescrito, nesse bloco encontra-se o ID unico do MiFare bem como informacoes industriais inerente a cada fabricante. Como podem ter notado, o MiFare e fundameltamente um cartao de memoria, onde essa memoria se encontra dividia entre blocos dentro de setores, porem como podemos contabilizar sao 16 Setores X 4 Blocos de 16 bytes = 1024 bytes, descontando o Bloco 0 do Setor 0 e os 16 Blocos Sector Trailer ficamos com 752 bytes disponiveis para uso.Por fim o MiFare utiliza-se de varios padroes definidos pela ISO/IEC 14443A, como por exemplo o protocolo de comunicacao definida pela ISO 14443A-4. Os Modelos de MiFareAbaixo segue uma pequena Linha do Tempo dos diversos MiFare existentes hoje no mercado:1994 - MiFare Classic, de 1Kb de Memoria.1997 - MiFare Pro, primeiro com co-processador 3DES.1999 - MiFare Prox / SmartMX, com co-processador PKI (Public Key Infraestruture), era oferecido tambem em dual interface (contato / sem contato) e alguns poderiam inclusive incluir o Java Card Open Platform.2001 - MiFare Ultralight, como proprio nome diz um MiFare de 192 bytes de Memoria.2002 - MiFare Classic, de 4Kb de Memoria. 2002 - MiFare DESFire, com microprocessador e avancado esquema de seguranca baseado em 3DES, suportando inclusive APDU's ISO7816-4, porem seu preco e proibitivo se comparado a versao Classic.2006 - MiFare DESFire EV1, com suporte ao AES de 128bits, porem ainda caro.2008 - MiFare Plus, concebido para substituir seus antecessores DESFire e Classic a um preco atrativo, e um chip dotado de um forte e complexo esquema de seguranca baseada em AES 128 bits.2008 - MiFare Ultralight C, gracas a um grupo russo que conseguiu quebrar a versao anterior, essa versao C traz um complexo esquema de seguranca utilizando autenticacao 3DES.Utilizacoes bem sucedidas:MiFare Utilizado no Sistema de Transporte Publico de Sao PauloMiFare utilizado no Sistem de Transporte do Rio de Janeiro E em outras milhares de aplicacoes, como carteira de estudante, bilhete em estadios de futebol, cartoes fidelidade, comandas para restaurantes e casas noturnas, etc.SegurancaTer optado por utilizar-se de um algoritmo criptografico proprietario como no caso do Crypto-1 talvez tenha sido uma das maiores falha
Xing Ling's.Atualmente a NXP trabalha com a Linha Conhecida como MiFare Plus, extremamente seguro e utilizando o Algoritimo AES 128 bits para tudo, desde a autenticacao por diversificacao de Chaves, protecao do Canal de comunicacao RF, cifragem/decifragem dos Dados e calculo de MAC (Message Authentication Code). O AES por ser um Algoritimo Criptografico aberto e conhecido nao desperta a curiosidade de alguns hackers em raspar o substrato de silicio e observa-los sobre um microscopio eletronico.O MiFare Plus tambem possui de 2 a 3 niveis de operacao sendo que o primeiro deles e totalmente compativel com o MiFare Classic (inclusive na vulnerabilidade), porem no ultimo nivel se torna uma peca realmente dificil de ser quebrada, nesse nivel ate o ataque de Men in the middle e impossivel de ser realizado pois o chip matem um rigoroso controle de Timming entre envio e resposta de dados para o Leitor.O MiFare Plus e com certeza um dos cartoes mais impressionantes o qual eu tive o privilegio de trabalhar, arrisco-me a dizer que e tao complexo de se trabalhar quanto e o Java Card. Porem se o seu projeto nao necessita de tanta seguranca assim, continue usando a versao basica e barata Classic, se precisa de seguranca, considere o MiFare Plus.Um Grande Abraco e ate a Proxima!
alguns modulos internos como GSM, servicos de criptografia SAM (Security Authentication Module), Global Platform e funcoes para cartoes MULTOS.Porem esses modulos sao muito mau documentados e pode acabar sendo um bom desafio coloca-los para funcionar.Espero que tenha gostado de aprender sobre esse excelente e simples software para Smart Cards.Um Abraco, e ate a Proxima!
sera vista mais para frente nesse artigo. Basicamente um cartao magnetico possui uma Cinta Magnetica conhecida tambem por Banda Magnetica, e funcionam exatamente da mesma forma que as antigas Fitas K7 de audio, video ou os antigos disquetes.Tanto que a cabeca de leitura de um cartao magnetico e identica as cabecas de leitura de um gravador antigo de fitas K7, diferenciando-se apenas por possuir tres pontos de leitura ao inves de uma do leitor K7.A Banda Magnetica de um cartao possui tres trilhas para armazenamento de dados sendo que para uso Bancario apenas as 2 primeiras sao usadas efetivamente a terceira trilha pode ser ignorada.Na primeira trilha geralmente podemos encontrar o PAN (Primary Account Number) ou seja o numero de sua conta bancaria (para cartoes bancarios) ou o numero do seu cartao de credito, seu Nome composto de ate 26 caracteres, Data de Expiracao do Cartao e o CCV (Card Verification Value) composta de uma Chave usada para autenticar seu PIN (Senha), a senha nao fica gravada no cartao.Na segunda trilha podemos encontrar novamente o PAN a Data de Expiracao e um registro de servico para este cartao, esse registro e responsavel por definir como o cartao sera tratado pelo Terminal seja ele Bancario ou pelo POS (as famosas maquininhas).Dependendo desse registro a Senha devera ou nao ser requisitada, o cartao possui ou nao um chip, determinada transacao devera se executada ou nao via chip, o cartao e ou nao internacional, o cartao e bancario ou credito ou ambos, etc.Sao cartoes extremamente faceis de serem lidos e replicados, a unica "barreira" seria a senha, antigamente o Terminal possuia a autoridade de autentica-la de forma off-line ja hoje em dia nao mais a autenticacao e executada on-line, por isso os estelionatarios tem tanto interesse em pega-las de voce.Afinidade EMV x Trilha MagneticaA afinidade mais notavel e na minha modesta opiniao, a mais Burra reside no Fato que as duas trilhas magneticas do cartao ficam gravadas em um arquivo de registro dentro do Chip, exatamente da mesma forma e podem ser lidas do chip sem o uso de autenticacao alguma!Ai voce meu leitor seleto e inteligente pode estar se perguntando "Sera que se eu copiar as informacoes deste arquivo e replica-los e uma Tarja Magnetica ele vai funcionar?" dizem que SIM eu porem nunca testei. =)Estrutura de Arquivos e Aplicativos EMVO EMV e organizado atraves de uma estrutura bem definida de Arquivos e Aplicativos de uma forma muito similar a estrutura de arquivos de um Sistema Operacional como o Windows por exemplo, e essa estrutura foi diretamente herdada da ISO7816 e levemente adaptada.Aplicativos comuns EMV podem ser a do famoso Credito e do Debito em Conta, porem o cartao pode ainda conter outros Aplicativos como um de Fidelidade, Vale Refeicao, etc.Cada aplicativo pode ser composto de diversos arquivos de dados, como por exemplo a da trilha 1 e 2 magnetica, chaves de seguranca, certificados digitais, etc.Aplicativos EMV tambem possuem a capacidade de executar operacoes como validacao de senhas e calculos criptograficos.EMV File SystemA Imagem acima demonstra uma estrutura de Arquivos EMV.Directory Definition File, tambem
conhecido por Payment System Environment (PSE) o DDF e responsavel por armazenar todos os aplicativos EMV disponiveis no cartao e ele pode ser acessado usando-se o comando select da ISO7816 pelo AID (Aplication Identifier): '31 50 41 59 2E 53 59 53 2E 44 44 46 30 31' (1PAY.SYS.DDF01 em caracter), apos o select o cartao ira retornar imediatamente o File Control Information (FCI). O FCI e retornado encapsulado no formato BER TLV (link), se acostume com o formato BER pois ele e a forma padrao do EMV retornar dados a voce.O FCI informa inicialmente as preferencias de linguagem do Cartao, como esta organizado a estrutura de arquivos se por FID (Fixed File Identification) ou SFI (Short File Identification), o primeiro (FID) e muito incomum pois obriga o Terminal a conhecer a estrutura de arquivos do cartao, ja o segundo (SFI) e maneira preferencial usada pois permite ao terminal escanear e montar dinamicamente em tempo real a estrutura de arquivos do cartao.Logo podemos adquirir a Lista de ADF s (Aplicativos EMV) simplesmente usando o comando read file da ISO7816 passando como parametro o SFI '01 0C', '02 0C', ... etc.Cada leitura de um arquivo do DDF se existir ira retornar dados no formato BER contendo encapsulado o AID da Aplicacao, o nome da Aplicacao, dados proprietarios, seria similar ao comando 'dir' dos DOS. Os Terminais executam essa varredura ate o cartao retornar o erro 'arquivo nao encontrado'. Com isso podemos montar a Lista de Aplicativos contido no Cartao.O DDF com AID '1PAY.SYS.DDF01' e muito comum em cartoes Visa porem nos cartoes Master Card o AID pode ser diferente ou o DDF pode ser simplesmente suprimido, isso porque nao e obrigatoria a presenca do DDF no cartao pois e possivel se acessar os Aplicativos sem a necessidade dele como veremos abaixo.Application Definition File, tambem conhecido por Payment Application (PA) o ADF e o aplicativo EMV, aplicativo esse que tem a funcao de realizar a transacao de credito quando voce realiza a compra dos seus produtos.Usualmente existem 1 ou 2 aplicativos destes no cartao, a de Credito e a de Debito, porem pode haver mais aplicativos geralmente do emissor do cartao.Existe duas maneiras de se acessar um Aplicativo EMV, listando-o atraves do DDF ou acessando diretamente atraves do comando select pelo seu AID, cada Bandeira possui sua lista de Aplicativos com seus AID s unicos, por exemplo vamos listar os das bandeiras mais comuns a Visa e a Master Card:Visa Credito / Debito - AID : A0000000031010Visa Electron - AID : A0000000032010Master Card Credito / Debito - AID : A0000000041010Master Card Maestro - AID : A0000000043060Entao quando o Caixa lhe pergunta se e "Debito ou Credito?" essa e a Aplicacao EMV responsavel pela autenticacao de credito das suas compras. Imediatamente apos selecionar a aplicacao EVM atraves do comando select, o cartao ira retornar o File Control Information (FCI) com os seguintes dados encapsulados no formato BER, o nome do aplicativo, as preferencias de linguagem, opcoes de processamento (PDOL), etc.Apos a selecao do Aplicativo EMV, podemos listar todos os arquivos disponiveis da aplicacao, executar uma
grande queda nos casos de fraudes no mercado financeiro e um substancial aumento das explosoes a caixas eletronicos.Isso porque a fraude sobre esse sistema e extremamente dificil. Porem Professores e Alunos do Laboratorio de Computacao da Universidade de Cambridge provam o contrario.Explorando as BrechasSe achou que eu iria vir com aquele papinho furado de que "as informacoes aqui contidas sao para uso educacional e bla bla bla" se enganou, sim o EMV possui Brechas e se voce quer se aventurar nisso, voce ja e bem grandinho(a) para discernir certo do errado, dito isso vamos ao que interessa. A Tarja MagneticaReconhecidamente vulneravel, ela ainda continua la mesmo em cartoes com chip, passiveis de serem lidas e clonadas, sabe qual a unica diferenca da Tarja de um cartao com Chip para a de um cartao sem Chip? Apenas 1 Bit !E se isso nao fosse o suficiente, os mesmos dados contidas nas Trilhas Magneticas estao contidas dentro de um dos arquivos EMV dentro do Chip, exatamente como uma Imagem, caso tenham curiosidade em um dos Livros da especificacao EMV que se referem a esses dados e "Track 1 Discretionary Data" e "Track 2 Equivalent Data".O Motivo disso? O cartao continua sendo compativel mesmo em sistemas onde nao existe leitura de Chip.A Clonagem de CartoesChip an PIN sao clonaveis? Seguramente que sim pois os niveis mais altos de seguranca dos cartoes ainda estao desativados, ai voce me pergunta porque?Porque alguns recursos nao estao presentes nos cartoes para diminuicao de Custos, por exemplo o Recurso de DDA (Dinamic Card Authentication Method), exige que o cartao implemente RSA, o que o torna mais custoso monetariamente, e em tempo de processamento.O Recurso de SDA (Static Card Authentication Metethod) utiliza dados estaticos do cartao assinado digitalmente pela Emissora no ato da pre personalizacao, entao caso voce clone o cartao integralmente sem realizar alteracoes nos dados o Terminal nunca percebera que se trata de um clone.O PIN raramente e verificado Online, entao caso voce sempre responda PIN OK para o Terminal ele dificilmente ira perceber que voce nao conhece o PIN Verdadeiro.O Terminal raramente criptografa o PIN ao eviar para verificacao no cartao, o seja e possivel capturar o PIN somente espionando o APDU Verify.O mais assustador sobre a Verificacao de PIN e que ele nao possui conexao alguma com a transacao de creditos e tambem nao bloqueia o uso dos outros comandos EMV, por exemplo se o Terminal realizar toda a transacao de creditos sem verificar o PIN ela se completara sem problemas. O EMV e um padrao aberto, sendo assim pode ser livremente desenvolvido para Smart Cards como por exemplo Java Card, Multos, .Net Cards, Basic Cards, etc. Inclusive e possivel de se criar um Cartao perfeito desde que voce tenha acesso as Chaves de Seguranca Estaticas 3DES utilizadas na Pre Personalizacao dos Cartoes, o Terminal sempre possui essa lista gravada internamente, e antigamente essas chaves eram Digitadas via Teclado durante a inicializacao do Terminal!YES Card Attack (Ataque por PIN OK)Um dos ataques mais basicos de todos, trata-se de um cartao clone, onde todos os arquivos EMV estaticos
sao copiados para dentro do cartao clone, cuja a unica funcao e responder PIN OK para qualquer PIN enviado pelo Terminal.Apos a copia o cartao ira se comportar como um autentico EMV para o terminal, porem esse cartao nao tem a capacidade de gerar os Criptogramas ARQC e TC.Em transacoes de creditos Offline esse metodo funciona, porem e facilmente detectavel em autenticacoes Online ou atraves do DDA (Dinamic Authentication Method).Relay Attack ou Man in the Middle (O Homem no Meio)Similar ao ataque desferido em redes TCP/IP, ou comunicacao entre cartoes MiFare Classic, esse ataque pode ser usado com o EMV.O objetivo desse ataque sera fazer Alice pensar estar pagando por um prato de comida de $20, quando na verdade estara pagando por um diamante de $2000.Alice e a vitima, Bob o criminoso que esta no caixa do Restaurante com um POS falso conectado a um notebook, Carol a criminosa com um notebook em uma mochila nas costas ligado a um cartao falso com fios e Dave o vendedor da joia.Basicamente esse ataque conectara o cartao de Alice ao POS de Dave sem que ela saiba que esta comprando uma Joia ao inves de um almoco.Ok, ok, obviamente voce rolou de rir com a fantasiosa historia, porem eis aqui o Kit que faz isso:Ainda nao acredita ser possivel??? E se eu te disser que esse Golpe foi ao Ar pela BBC de Londres?Formas de se defender desse tipo de ataque? Nenhum, e o unico metodo que poe por terra qualquer esquema de seguranca hoje conhecido, tambem e obviamente a forma de ataque mais improvavel de ser realizada.Terminal Tampering Attack (Ataque por Adulteracao do Terminal)Esse e o tipo de ataque mais invasivo e o mais facil (e certamente realizado), pode ser realizado de duas maneiras, via software ou via hardware.Para explicar esse ataque e importante que voce saiba diferenciar os equipamentos utilizados para realizar transacoes de creditos. Existem 2 tipos de equipamentos, o POS (Point of Sale) e o PED (Pin Entry Devices), ambos sao similares visualmente porem internamente sao bastante diferentes.O POSPOS sao equipamentos completos e independentes, eles possuem um MicroProcessador capaz de suportar um Sistema Operacional sobre ele, com isso aplicativos podem ser desenvolvidos para ele.Fora isso ainda possuem todos os dispositivos necessarios para realizar transacoes de credito de forma independente, como impressora termica, display colorido, slot para SIM Card GSM / GPRS, slot para SAM Card, Leitor de cartao com chip e tarja magnetica, modem telefonico, interface de rede ethernet, etc. Com isso dispensam estar conectado a um Computador. Um Tipico POSO PEDPED tambem conhecido por TEF, sao equipamentos mais modestos e baratos, sao dotados apenas de um Microcontrolador com apenas um teclado, um display verde, leitor de cartoes com chip e tarja e um cabo serial RS232 ou USB (que e na verdade uma Serial RS232).Exigem que seja conectado a um Computador e que um Programa para computador realize a maioria do trabalho necessario para realizar a transacao de credito.Tipico PEDSimples Barato e Perigoso, se um dia desconfiar que seu segurissimo cartao EMV tenha sido clonado, existe uma chance altissima
de ter sido por um desses. Software Attack (Ataques via Software)Sao voltados exclusivamentes a POS, esse ataque e para um POS o que um Trojan e para o Windows, antigamente os POS eram tao inseguros que bastava desenvolver uma aplicacao nociva e instalar no POS, hoje em dia pode ser mais complexo pois exige que as aplicacoes sejam assinadas digitalmente via Smart Card ou Online, entao basta voce ter um Cartao de Desenvolvimento ou um Login Magico, conhecer um pouquinho sobre cracking e um bom amigo motoqueiro para distribuir seu POS "especial" em postos de gasolina. Hardware Attack (Ataques via Hardware)Tambem conhecido por Tampering, esse e sem duvidas o ataque preferido do jeitinho brasileiro, bem mais elegante que sair por ai explodindo caixas eletronicos e claro.Nesse tipo de ataque o PED e aberto e uma placa e inserida internamente, essa placa tem 2 finalidades, a primeira espionar senhas digitadas no teclado, a segunda espionar o conector de dados do chip (incomum) ou o canal TX da serial RS-232 (nice).Hora mas porque a Serial RS-232? Simples porque nela trafega bonito e limpinho todos os arquivos EMV inclusive o arquivo com as 2 trilhas magneticas e demais dados.Consideracoes Finais.Como podem ter visto EMV e extremamente seguro, pois poe por terra muita das tentativas de criminosos de pouca inteligencia, porem uma pequena parcela ainda consegue dar seus pulinhos, isso porque de Longe o EMV e 100% seguro. E os especialistas de plantao que vier dizendo que o POS/PED possui Tampering Protection e bla bla, um conselho seja bonzinho para Papai Noel lhe trazer presente no fim do ano.Se possui falhas e sao conhecidas porque nao arruma-las? Simples, a quantidade em dinheiro perdida em fraudes ainda e muito baixa para as Emissoras se preocuparem com isso, qualquer contra medida adicionada ou habilitada ira consumir tempo e recurso com isso a quantidade de transacoes de credito por segundo diminuira, diminuindo o lucro.Isso tudo em comparacao como era antigamente com os cartoes de tarja que podia ser clonado por qualquer manezinho sem a menor instrucao.Tudo isso nao teria graca se eu nao lhe mostrasse como ler seu cartao EMV nao e? Pois entao aguarde que no proximo Artigo demonstrarei como acessar cartoes EMV usando o Jaccal aguardem!Nada do que mostrei aqui e novidade e esta livremente disponivel na internet, abaixo segue o link de um dos documentos que tomei como referencia desse artigo:Chip & PIN notes on a dysfunctional security system (link) E um ultimo Video:Chip and PIN PED security vulnerabilities (link) Ate a proxima, e um abraco a todos!PS. perguntas referentes a EMV serao prontamente IGNORADAS.
em outras IDE's como Eclipse e ate no Prompt de Comando (DOS) pois o exemplo e Pure Java nao dependendo de bibliotecas externas:Smart Card Test (Link)Caso queira se aprofundar mais na API Java Smart Card IO segue o link para estudos:Java Smart Card IO API (Link)Em artigos futuros, postarei um artigo identico porem escrito em C/C++, nesse caso nao e tao simples como no caso do Java porem ainda assim e muito similar. Um grande abraco a todos e ate a proxima!
1a Premissa : "O Nivel de Seguranca e aceitavel quando os custos de um ataque bem sucedido, e de uma ordem de grandeza maior que o lucro em potencial."2a Premissa : "Com tempo, esforco e dinheiro, qualquer solucao de seguranca pode ser comprometida." Nesse Artigo discutirei sobre Certificacao Digital e onde os Smart Cards entram nessa historia.Ja ha algum tempo tenho ouvido um barulho envolta desse assunto falando-se bastante sobre seguranca digital, sobre o quao incrivel e, sobre RIC (Registro de Identidade Civil), sobre NF-e (Nota Fiscal Eletronica), e-CNPJ / e-CPF, etc.Hoje compartilharei com voces um pouquinho da minha experiencia no assunto e o caminho das pedras a ser percorrido para implementacao da tal Certificacao Digital.Certificacao Digital e atualmente (2011) RSA e SHAPois bem essas duas siglas sao a base da Certificacao Digital. Sim so elas duas e mais ninguem e como sempre digo "e simples assim".O RSA trata-se de um algoritmo criptografico assimetrico criado por Ronald Rivest, Adi Shamir e Leonard Adleman e e sem duvida nenhuma um dos algoritmos de criptografia mais bem sucedidos pois chaves acima de 1024 bits tem se mantido inquebravel ate o momento em que este artigo estava sendo escrito (2011).A ultima chave RSA fatorada (decomposta ou quebrada), tinha 768 bits e ocorreu em Dezembro de 2009, esse feito foi realizado por 6 institutos de pesquisa ao redor do mundo Suica, Japao, Alemanha, Franca, Estados Unidos e Holanda.Levou 6 Meses para se selecionar os Polinomios em um cluster de 80 Processadores e a fatoracao levou 2 anos utilizando centenas de processadores.So a selecao de Polinomios em uma maquina com um Processador Opteron de 2.2GHz e 2 GB de RAM levaria cerca de 1.500 anos.Os resultados podem ser vistos aqui : http://eprint.iacr.org/2010/006.pdfEstima-se que a proxima Chave RSA de 1024 bits sera quebrada em meados do ano 2014 apenas.O funcionamento do RSA e muito simples, nao entrarei em detalhes de como o algoritmo e implementado ou como se gera os pares de chaves pois isso e de livre acesso na Internet e esta fora do escopo desse artigo.Por se tratar de um algoritmo de criptografia assimetrico isso implica em 2 chaves distintas mas que possuem uma afinidade matematica, ambas sao geradas a partir de 2 numeros Primos grandes e aleatorios.A isso se da o nome de Pares de Chaves, consistindo de uma Chave Privada e uma Chave Publica, obviamente a chave privada nunca deve ser exposta enquanto a chave publica pode ser distribuida e embora haja uma afinidade entre elas e impossivel matematicamente se calcular a chave privada a partir da chave publica.Entao uma vez gerada o Par de Chaves, basta distribuir a Chave Publica entre as pessoas interessadas em decifrar suas mensagens.O contrario tambem e possivel, por exemplo o portador da Chave Publica pode usa-la para cifrar uma mensagem, nesse caso somente o que tem a posse da Chave Privada pode decifrar e ler a mensagem.O SHA trata-se de uma familia de algoritmos criptograficos de resumo (hash), foi criado pela NSA (National Security Agency) e e recomendada pela FIPS 180-2.A versao utilizada geralmente pela Certificacao Digital e