EFT Syetms e Dispositivo Considerations

05. De agosto de 2008 na Banca e Eftpos, Segurança

dispositivos e sistemas diferentes, dependendo vendedor, país e / agregador.
Abaixo está uma lista de coisas que você pode desejar a considerar. Esta lista está em cima da minha cabeça por isso provavelmente não é completa.

Olhando para os produtos e nos relacionamentos normalmente um bom começo.

Coisas a considerar:

Quebrar VISA PIN

02. De julho de 2008 na Banca e Eftpos

Abaixo está um artigo que encontrei recentemente. Esta uma das mais completas descrições do Value

Eu pensei que ela iria replicar aqui para o meu local de referência.

Como observação, foram feitas sobre a gramática usada no original, tenho corrigido alguns dos erros óbvios, mantendo o contexto do material original.

http://69.46.26.132/ ~ biggold1/fastget2you/tutorial.

--- original ----

Prefácio
Você já se perguntou o que aconteceria se você perder o seu ou e alguém encontra-lo. Será que essa pessoa seja capaz de retirar dinheiro de um caixa eletrônico adivinhação, de alguma forma, o seu Além disso, se você acha que alguém do que você tentar adivinhar a e ter a chance de obter algum fácil? Claro que a resposta às duas questões devem ser "não". Este trabalho não trata da segunda questão, é uma questão de Herewith tento responder à primeira pergunta.

Todas as informações utilizadas para este trabalho é público e pode ser encontrado livremente na O resto é uma questão de e programação, assim podemos aprender e ter algum divertimento. Eu não revelam segredos. Além disso, o objectivo (e do presente trabalho é demonstrar que a algoritmos ainda são fortes o suficiente para proporcionar suficientes. Todos sabemos não é o

Este trabalho analisa uma das mais comuns algoritmos, utilizada por muitos e de e tenta descobrir como é resistente a guessing ataques. Por "adivinhar" Não me refiro a uma escolha aleatória e tentar-lo em um caixa eletrônico. É sabido que geralmente são dadas nos três ensaios consecutivos para entrar à direita se não ATM mantém o Como é quatro dígitos longa, é fácil deduzir que a chance de um aleatória adivinhação é de 3 / 10000 = 0,0003, parece baixo o suficiente para ser seguro, isso significa que você precisa perder o seu mais de três mil vezes ( ou a perder mais de três mil cartões ao mesmo tempo:) até que haja uma hipótese razoável de perder

O que eu realmente entende por "adivinhar" foi quebrar o de modo que, dado qualquer que você pode saber imediatamente os associados Por conseguinte, este documento estudos essa possibilidade, analisando o e propor um método para o Finalmente vamos dar uma ferramenta que implementa o e apresentar resultados sobre a estimativa chance de quebrar o sistema. Note que, enquanto outros relacionados com algoritmos (outros formatos, como a IBM ou assinaturas, como a validação ou CVC) são semelhantes aos a mesma análise pode ser feito rendendo quase os mesmos resultados e conclusões.



Um dos mais comuns algoritmos é o Value O cliente é atribuído um e uma Encoded na é um número de quatro algarismos, chamado Este número é um criptográfico assinatura do e outros relacionados ao Quando um usuário digita o seu a ATM lê a criptografa e envia todas essas informações para um computador central. Há um julgamento é calculado utilizando o cliente entrou e as informações de com uma criptografia O julgamento é comparado com o armazenados no se corresponderem a volta para o computador central ATM autorização para a Veja mais em pormenor.

A descrição da pode ser encontrada em dois documentos ligados na página anterior. Em resumo, consiste na de um byte 8 (64 bits) seqüência de chamado Transformado Parameter (SFT), com (DEA) em Código Livro modo (BCE), utilizando uma chave secreta 64 bits. O é proveniente da produção da processo, que é um byte 8 string. Os quatro algarismos do (da esquerda para a direita) correspondem aos quatro primeiros dígitos decimais (da esquerda para a direita) da saída do quando considerada como um 16 caracteres hexadecimais (16 bits x 4 = 64 bits) string. Caso não haja quatro dígitos decimais entre os 16 caracteres hexadecimais então o é completado tomada (da esquerda para a direita) não decimais caracteres e decimalizing-los usando a conversão A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Aqui está um exemplo:

Saída de 0FAB9CDEFFE7DCBA

0975

A estratégia de evitar decimalização saltando por até quatro caracteres dígitos decimais são encontrados (o que acontece com a quase totalidade das vezes como veremos mais adiante) é muito inteligente, porque evita um viés importante na distribuição de dígitos que tem sido provado ser fatal para outros sistemas, embora o impacto sobre o sistema seria muito menor. Veja também relacionada com um problema que não se aplicam a

O SFT, considerada como um 16 caracteres hexadecimais (64 bits) string, é formada (da esquerda para a direita) com os 11 dígitos direita do PAN (número de excluindo o último dígito (check dígito), um dígito 1-6 que seleciona o segredo encriptando-chave e, finalmente, a quatro dígitos do Aqui está um exemplo:

PAN: 1234 5678 9012 3445
Chave seletor: 1
2468

TSP: 5678901234412468

É óbvio que o problema da quebra consiste em encontrar a chave secreta de encriptação O método para isso é fazer uma pesquisa de força bruta a tecla espaço. Note-se que este não é o único método, pode-se tentar encontrar um ponto fraco na DEA, muitos tentaram, mas este padrão antigo ainda está em ampla utilização (agora substituído por AES e embora). Isto demonstra que é robusto o suficiente para que a força bruta é o único método viável (existem alguns ataques, mas não melhor prática no nosso caso, para um resumo ver LASEC memória e para ver os detalhes sujos Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 e Heys 2001).

A chave era muito provável algarismos selector introduzidas para cobrir a possibilidade de um compromisso fundamental. Nesse caso, eles só têm de emitir novos cartões usando outra chave selector. Antigas cartas podem ser substituídas por novas, ou simplesmente a ATM transparente pode escrever uma nova (que corresponde à nova chave e mantendo o mesmo próxima vez que o cliente usa o seu Para o shake de todos os usuários devem ser convidados a mudar os seus PINs, porém, seria embaraçoso para o a explicar a razão, muito provavelmente não teriam de fazer tal pedido.

Preparando o


A força bruta consiste em encriptando SFT com uma conhecida utilizando todas as possíveis chaves encriptando e comparar cada obtidos com as conhecidas Quando uma correspondência for encontrada, temos um candidato chave. Mas quantas chaves temos de tentar? Como dissemos acima da chave é de 64 bits de comprimento, o que significa que temos de tentar 2 ^ 64 chaves. Contudo, isto não é verdade. De facto, apenas 56 bits são eficazes na chaves porque um bit (o menos significativo) de cada octeto foi historicamente reservado como um checksum para os outros, na prática os 8 bits (uma para cada um dos 8 octetos) são ignoradas.

Assim, o tecla espaço é composto por 2 ^ 56 chaves. Se tentarmos todas estas chaves encontraremos um e só um jogo, o que corresponde ao chave secreta? Certamente que não. Iremos obter muitos correspondentes chaves. Isto porque o é apenas uma pequena parte (um quarto) do saída. Além disso, o é degenerada porque alguns dos dígitos (aqueles entre 0 e 5 após o último, visto a partir da esquerda para a direita, algarismos entre 6 e 9) podem ser provenientes de uma casa decimal de um dígito ou dígitos hexadecimais decimalized do saída. Assim, muitas chaves irá produzir uma saída que produz a mesma correspondência

Então o que podemos fazer para encontrar a verdadeira chave entre os outros falsos positivos chaves? Simplesmente temos de encriptar um segundo diferentes TSP, também conhecida com mas utilizando apenas o candidato que deu as chaves uma correspondência positiva com o primeiro-TSP par. No entanto não há garantia de que não irá receber novamente muitos falsos positivos, juntamente com a verdadeira chave. Se assim for, teremos um terceiro par, repita o processo e assim por diante.

Antes de começarmos o nosso temos de saber quantos pares vamos precisar. Por que temos que calcular a de um aleatória produção para produzir uma correspondência apenas por acaso. Existem várias formas de calcular este número, e aqui vou usar uma abordagem simples de fácil compreensão, mas que exige uma certa experiência em de

A pode ser sempre visto como a razão de casos favoráveis a possíveis casos. No nosso problema, o número de casos possíveis é dada pela de 16 elementos (de 0 a F dígitos hexadecimais) em um grupo de 16 deles (os 16 dígitos hexadecimais do de saída). Esta é dada por 16 ^ 16 ~ 1,8 * 10 ^ 19, que obviamente coincide com 2 ^ 64 (números diferentes de 64 bits). Este conjunto de números podem ser divididos em cinco categorias:

Aqueles com pelo menos quatro dígitos decimais (0 a 9) entre os 16 dígitos hexadecimais (0 a F) do saída.

Aqueles com exactamente apenas três dígitos decimais.

Aqueles com exactamente apenas duas casas decimais.

Aqueles com exactamente apenas um dígito decimal.

Aqueles que não dígitos decimais (todos entre A e F).

Vamos calcular quantos números caem em cada categoria. Se nos rótulos dos 16 dígitos hexadecimais do X1 como saída para X16 então podemos rotular os primeiros quatro dígitos decimais de um determinado número de primeira categoria como Xi, XJ, XK e XL. O número de combinações diferentes com este perfil é dada pelo produto 6 i-1 * 10 * 6 undecies-i-1 * 10 * 6k-j-1 * 10 * 6 lk-1 * 10 * 1616-l quando a 6 ' s vir a partir do número de possibilidades de um dígito A a F, os 10's provêm as possibilidades de um dígito de 0 a 9 e as 16 trata das possibilidades de um 0 a F dígito. Agora, os números totais na primeira categoria é simplesmente dado pelo somatório do produto ao longo do i, j, k, l 1-16, mas com i <j <k <l. Se você fizer alguma matemática trabalho você verá esta é igual ao produto de 104 / 6, com o somatório sobre i 4-16 de (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1/8 * 1019.

Analogamente, o número de casos na segunda categoria é dada pelo somatório sobre i, j, k 1-16 com i <j <k do produto 6i-1 * 10 * 6 undecies-i-1 * 10 * 6k-j -1 * 10 * 616-k, que você pode trabalhar para fora para ser 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 * 1015 ~ 7/3. Do mesmo modo para a terceira categoria que temos sobre o somatório i, j 1-16 com i <j, de 6 i-1 * 10 * 6 undecies-i-1 * 10 * 616-J, que é igual a 16! / (2! (16-14)!) * 102 * 614 = 2 * 103 * 615 * 1014 ~ 9,4. Mais uma vez, para a quarta categoria, temos o somatório sobre i 1-16 de 6i-1 * 10 * 616-i = 160 * 615 * 1013 ~ 7,5. E, finalmente, a quantidade de casos na quinta categoria é dada pela de seis elementos (A a F dígitos) em um grupo de 16, ou seja, 616 ~ 2,8 * 1012.

Espero que você seguiu os cálculos até este ponto, a parte mais difícil está feito. Agora, como uma prova de que tudo está a direita, você pode soma do número de casos em 5 categorias e ver o que equivale ao número total de casos possíveis é calculado antes. Será que as operações com números de 64 bits ou de arredondamento (para carros alegóricos), ou por transbordamento (para inteiros) erros não vão deixar você obter o resultado exato.

Até agora temos calculado o número de casos possíveis em cada uma das cinco categorias, mas estamos interessados em obter o número de casos favoráveis vez. É muito fácil obter o último dos antigos como esta é apenas a fixação do conjunto de quatro dígitos decimais (ou o exigido dígitos hexadecimais, se não houver quatro casas decimais) do vez de deixá-las livres. Na prática, isso significa transformar os 10's na fórmula acima em 1 e do montante exigido é de 6 em 1's, se não houver quatro casas decimais. Isto é, temos que dividir o primeiro resultado por 104, o segundo um por 103 * 6, o terceiro um por 102 * 62, a um quarto por 10 * 63 eo quinto um por 64. Em seguida, o número de casos favoráveis nas cinco categorias são aproximadamente 1,8 * 1015, 1.2 * 1012, 2.6 * 1011, 3.5 * 1010, 2,2 * 109, respectivamente.

Agora somos capazes de obter o que é a de um de saída para combinar uma por acaso. Só temos de somar os cinco números de casos favoráveis e dividi-lo pelo número total de casos possíveis. Fazendo isso obtemos que a é muito 0,0001 ou aproximadamente um em cada dez mil. É estranho esse bem arredondadas resultado? Nem por isso, basta ter um olhar para os números que acima calculada. A primeira categoria domina por várias ordens de grandeza do número de casos favoráveis e possíveis. Isto é bastante intuitivo como parece claro que é muito pouco provável que não tenha quatro dígitos decimais (10 chances de 16 por algarismos), entre 16 dígitos hexadecimais. Já vimos anteriormente que a relação entre o número de casos possíveis e favoráveis na primeira categoria foi uma divisão de 10 ^ 4, que é onde o nosso resultado p = 0,0001 vem.

O nosso objectivo para todos estes cálculos foi para descobrir quantos pares precisamos para transportar uma força bruta bem sucedido Agora somos capazes de calcular o número esperado de falsos positivos em uma primeira pesquisa: ele será o número de julgamentos vezes a de um único aleatória falso positivo, ou seja, p * t em que t = 2 ^ 56, o tamanho da chave espaço. Isto equivale a cerca de 7,2 * 10 ^ 12, um número bastante grande. O número esperado de falsos positivos no segundo pesquisa (restrito ao chaves positivo encontrado na primeira busca) será (t * p) * p, para uma terceira pesquisa será ((t * p) * p) * p e assim por diante. Assim, para pesquisas n é o número esperado de falsos positivos serão p * t ^ s.

Podemos obter o número de pesquisas necessárias para esperar apenas um falso positivo, expressando a equação t * p ^ n = 1 e para a resolução n. Então n é igual ao na base de 1 p / t, o que por propriedades dos logaritmos que produz n = log (1 / t) / log (p) ~ 4.2. Uma vez que não podemos fazer uma pesquisa fraccionária é conveniente ronda até este número. Portanto o que é o número esperado de falsos positivos quando realizamos cinco pesquisas? É p * t ^ 5 ~ 0,0007 ou aproximadamente 1 em 1400. Assim, usando cinco pares é segura para obter a verdadeira chave secreta, sem falsos positivos.

O


Uma vez que sabemos que precisamos cinco pares, o que fazer para obtê-los? Claro que precisamos de pelo menos um com conhecidos e devido à natureza do que é a única coisa que precisamos. Com outros sistemas, como a IBM, que precisamos cinco cartões, no entanto, este não é necessária com Só temos de ler a e, em seguida, alterar o quatro vezes, mas a leitura do após cada mudança.

É necessário ler a do para obter o e os encriptando chave selector. Você pode comprar um comercial ou fazer uma você mesmo, seguindo as instruções que você pode encontrar na página anterior e links nele. Uma vez que você tenha um ver esta descrição do padrão magnético trilhas para saber como obter o a partir dos lidos. Nesse documento, o campo em faixas 1 e 2 é dito ser cinco caracteres de comprimento, mas, na verdade, o verdadeiro consiste dos últimos quatro dígitos. O primeiro dos cinco dígitos é a chave selector. Só tenho visto cartas com um valor de 1 dígito no presente, o que é consistente com o padrão e com a chave secreta não seja comprometida (e, portanto, eles não precisam se deslocar para outra chave mudar o seletor).

Eu fiz um simples programa C, getpvvkey.c, para realizar o Consiste em um loop para experimentar todas as chaves possíveis para criptografar o primeiro TSP, se o derivado corresponde à verdade um novo TSP é julgado, e assim sucessivamente até que haja um desfasamento, caso em que a chave é descartado e um novo é julgado, ou a cinco derivados PVVs correspondem a verdade corre PVVs, caso em que podemos assumir que temos no chave secreta, no entanto o ciclo prossegue até que se esgota a tecla espaço. Isto é feito para garantir que encontramos a verdadeira chave, porque existe uma chance (embora muito baixo) a primeira chave encontrada é um falso positivo.

Espera-se que o programa iria demorar muito tempo para terminar e para minimizar os riscos de um corte de energia, computador sair, etc faz verificação no arquivo getpvvkey.dat de vez em quando (o tempo exato depende da velocidade do computador, é de cerca de uma hora para os mais rápidos computadores actualmente em uso). Pela mesma razão, se for encontrada uma chave positiva é escrito no arquivo getpvvkey.key. O programa só exibe uma mensagem no início, a tomada de posição inicial a verificação se algum arquivo, depois que nada mais é exibido.

O é um ponto fundamental no programa, é, pois, muito importantes para otimizar a sua velocidade. Eu testei várias implementações: libdes, SSLeay, openssl, cryptlib, NSS, libgcrypt, catacumbas, libtomcrypt, cryptopp, UFC-crypt. O funções dos primeiros quatro são baseados no mesmo código de Eric Young e é o que teve melhor desempenho (inclui C otimizada e x86 assembler code). Assim eu escolhi o que era o original libdes execução e condensado código relevante em todos os arquivos encrypt.c (versão C) e x86encrypt.s (montador versão x86). O código é ligeiramente modificada para realizar algumas melhorias em uma força bruta a primeira é um fixo comum íngremes em cada TSP e, portanto, podem ser feitas apenas uma vez no início. Outra melhoria é que eu escrevi uma função totalmente nova setkey (Chamei-a de nextkey), o que é óptimo para uma força bruta loop.

Para obter o programa de trabalho que você só precisa o lugar correspondente TSPs cinco e os seus PVVs e então compilá-lo. Eu testei-o apenas em plataformas UNIX, usando o makefile para compilar Makegetpvvkey (use o comando "make-f Makegetpvvkey"). Pode compilar em outros sistemas, mas pode ser necessário corrigir algumas coisas. Certifique-se de que a definição do long64 corresponde a um 64 bits inteiro. Em princípio não existe uma dependência do endianness do processador. Tenho compilado com sucesso e executá-la no Pentium-Linux, Alpha-Tru64, Mips-sparc-Irix e Solaris. Se você não tem e não quiser instalar o Linux (você não sabe o que está faltando ;-) você ainda tem a opção para executar o Linux em CD e usar o meu programa, ver a minha página executando o Linux sem instalá-lo.

Depois de ter encontrado o segredo chave se você quiser descobrir a de um arbitrário você só tem que escrever um programa semelhante (desculpe eu não tenho escrito, sou muito preguiçosa:) que julgar todos os 10 ^ 4 pinos por gerar o correspondente TSP, criptografando-a com a (não mais) chaves secretas, decorrentes da e compará-lo com o na do Você vai ter um jogo para os verdadeiros Apenas um jogo? Lembre-se do que vimos acima, temos uma chance de que uma 0,0001 aleatória corresponde à Estamos a tentar 10000 PINs (e, portanto, TSPs), assim esperamos 10000 * 0,0001 = 1 falso positivo em média.

Este é um resultado muito interessante, isso significa que, em média, cada tem dois PINs válido: o cliente eo esperado falso positivo. Eu chamo-lhe "falsas", mas nota que, enquanto que gera o verdadeiro é um como válida como a de um cliente. Além disso, não há maneira de saber qual é qual, mesmo para a ATM; único cliente sabe. Mesmo se os falsos positivos não foram válidos como você ainda tem três ensaios no ATM mesmo assim, suficiente, em média. Portanto, a é calculada no início do presente documento sobre aleatória guessing do tem de ser corrigido. Na verdade ele é o dobro desse valor, ou seja, é 0,0006 ou um dos mais de 1600, ainda pouco segura.

Resultados


É importante para otimizar a compilação do programa e para executá-lo no processador mais rápido possível, devido à longa espera correr tempo. Achei que o compilador otimização-O pavilhão obtém o melhor desempenho, o pensamento é conseguido adicionando algumas melhorias a-fomit-frame-pointer bandeira ontário Pentium-Linux, a espícula-bandeira na Alfa-Tru64, o IPA-bandeira na Mips-Irix e do fast-bandeira na Sparc-Solaris. Especial bandeiras (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) para o código, geralmente têm benefícios tão bem. Todas estas bandeiras já foram testadas e eu escolhi a melhor combinação para cada processador (ver makefile), mas você pode tentar afinar outros pavilhões.

De acordo com a minha testa o melhor desempenho é alcançado com o processador AMD Athlon 1600 MHz, superior a 3,4 milhões de chaves por segundo. É interessante que obtém melhores resultados do Intel Pentium IV 1800 MHz e 2000 MHz (veja números abaixo, clique nelas para ampliar). Penso que isto é devido a alguns I / O saturação, certamente cache ou de memória, que o processador AMD (que tem metade do cache do Pentium) ou da placa-mãe em que ela está funcionando, consegue evitar. Na primeira figura abaixo você pode ver que o quebrar velocidade de todos os processadores tem mais ou menos uma relação linear com a velocidade do processador, exceto para os dois Intel Pentium que eu mencionei antes. Isto é lógico, isso significa que, para um duplo processador velocidade você obterá dupla quebrar a velocidade, mas esteja atento para a saturação efeitos, neste caso, é melhor o AMD Athlon 1600 MHz, que será ainda mais barato do que o Intel Pentium 1800 MHz ou 2000 MHz.

Na segunda figura podemos ver em maior detalhe o que poria intrínseco quebrar o poder do processador. Recebo este valor simplesmente dividindo a velocidade por quebrar a velocidade do processador, ou seja, obtemos o número de chaves tentou por segundo e por MHz. Esta é uma medida do desempenho do processador independentemente da sua velocidade. Os resultados mostram que o melhor processador para esta tarefa é o AMD Athlon, em seguida, vem o Alpha e depois de muito perto, é o Intel Pentium (exceto para a velocidade mais elevada aquelas que desempenham muito pobre, devido à saturação efeito). Seguinte é o processador Mips e no último lugar está o Sparc. Alguns processadores Alpha e Mips estão localizados na parte inferior da escala porque são libertações antecipadas não incluindo acessórios da tarde versões. Note que eu incluído o desempenho dos processadores x86 para C e montador código, dado que existe uma grande Parece que o gcc não é um bom gerador de código otimizado máquina, mas obviamente não sabemos se uma otimização manual de montagem código para os outros processadores (Alpha, MIPS, Sparc) iria aumentar os seus resultados comparados com os nativos compiladores C (Eu não uso o gcc para essas outras plataformas), tal como acontece com o processador x86.

Atualizar

Aqui está um artigo em que estas técnicas podem ter sido utilizados.

http://redtape.msnbc.com/2008/08/could-a-hacker.html

Processamento de transação financeira

02. De julho de 2008 na Banca e Eftpos

Fui recentemente um trabalho no interior das maiores Bancos na
Através deste trabalho que tenho vindo a olhar para os controles e os em torno do de cartão de e ao redor da Ásia-Pacífico.

Recebo muitas executar e sistemas de avaliações.
Ao longo dos anos tenho sempre considerou a dos como uma das principais considerações.

Até ontem eu nunca tinha visto um ou ferramentas. Acho que alguns scripts uso dessas ferramentas pode ser muito interessante.
O site hziggurat29.com

Muitas das outras ferramentas neste site são também muito original e vale uma olhada.
Big graças a ziggurat29 para fornecer tais ferramentas awesome.

Como muitos desses sites são desta natureza são difíceis de encontrar e, muitas vezes, parecem desaparecer ao longo dos anos, tenho o escolhido para reproduzir o a partir desta página e fornecer cópias locais dos arquivos.
Vale a pena visitar periodicamente o site ziggurat29 cada agora e novamente para ver se quaisquer ferramentas adicionais foram enviados.

Um dos arquivos mais extraordinário é o ATALLA Module e ferramentas. Então eu pergunto se e estão agitando em suas botas. De alguma maneira eu não penso assim. ;-)

--- Ziggurat29 ---

Estes são os utilitários de linha de comando do Windows (exceto quando indicado); executar com a opção-ajuda
para determinar sua utilização.

DUKPT Decrypt (<- o próprio arquivo para download)

Este é um que irá Encriptados blocos que foram produzidos através do método. Eu usei isso para testar a saída de alguns Pad software que havia criado, mas é também útil para outros fins depuração.

VISA PVV Calculadora (<- o real
arquivo para download)

This is a that will compute and verify Values that have been produced using the .  It has a bunch of auxiliary functions, such as verifying and fixing a PAN (Luhn ), creating and encrypting blocks, decrypting and extracting PINs from encrypted blocks, etc.

VISA CVV Calculator (<- the actual file to download)

This is a that will compute Values that have been produced using the .  MasterCard CVC uses the , so it will work for that as well.  It will compute , CVV2, CVV3, iCVV, CAVV, since these are just variations on service code and the
format of the expiration date. is simply comparing the computed value with what you have received, so there is no explicit function.

Atalla AKB Calculator (<- the actual file to download)

This is a that will both generate and Atalla AKB cryptograms.  You will need the plaintext MFK to perform these operations.  When decrypting, the MAC will also be checked and the results shown.

BogoAtalla (<- the actual file to
download)

This is an Atalla (or simulator).  This software (simulation) of the well-known Atalla Module ( ) that is used by banks and processors for cryptographic operations, such as verifying/translating blocks, authorising transactions by verifying
/CSC numbers, and performing key exchange procedures, was produced for testing purposes.  This implementation is not of the complete HP Atalla command set, but rather the just
portions that I myself needed.  That being said, it is complete enough if you are performing acquiring and/or issuing functions, and are using more modern schemes such as and , and need to do generation, , and translation.

This runs as a listening socket and handles the native Atalla command set.  I have taken some liberties with the error return values and have not striven for high-fidelity there (ie, you may get a different error response from native ), but definitely should get identical positive
responses.  Some features implemented here would normally require purchasing premium commands, but all commands here implemented are available.  Examples are generating values and encrypting/decrypting plaintext values.

BogoAtalla for Linksys (<- the actual file to download)

This is the Atalla ported to Linux and build for installation on an OpenWRT system.  Makes for a really cheap ($60 USD) /test device.

Local Files

bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc

E-Commerce Glossary

Jun 18, 2008 in Banking and EFTPoS

Acquiring Institution
The which holds the partaking in a financial , typically the first involved in the of a .

Applet
A small computer program which facilitates the performance of particular tasks.

Bandwidth
The capacity of a to carry or process information. The higher the bandwidth the faster graphics-laden pages will download.

Browser
Short for browser, a software application used to locate and display pages. The two most popular browsers are Netscape Navigator and . Both of these are graphical browsers, which means that they can display graphics as well as . In addition, most modern browsers can present multimedia information, including sound and video, though they require plug-ins for some formats.

Caching
The automatic copying and storage of frequently used information onto a computer system – Typically caching is seen whilst surfing the (graphics, etc.) and used by Services Providers ( ’s) to reduce the amount of requested from the user onto the .

Issuer
The which issued the cardholder’s and .

Cardholder
The individual participating in the financial whose is being credited or debited.


The additional information printed on the to be processed. This is used to verify if the was present when the was initiated.  This is the additional digits imprinted on the usually on the reverse side for & Mastercard and on the front for AMEX.

Certificate
An x.509 certificate used to entities such as Merchants and Gateways. Certificates can be used to identify and/or encrypt sensitive such as numbers and personal cardholder information.

CGI
Common Gateway : A protocol that allows a page to run a program on a . Forms, counters, and guest books are common examples of CGI programs.

Any piece of software can be a CGI program if it handles input and output according to the CGI standard. Usually a CGI program is a small program that takes from a and does with it, like putting the content of a form into an e-mail message, or turning the into a database query. CGI “scripts” are just scripts which use CGI. CGI is often confused with Perl, which is a programming language, while CGI is an to the from a particular program.

Client
A computer or software that requests a service of another computer system or process (a “ ”). For example, a workstation requesting the contents of a file from a file is a client of the file . A browser is commonly referred to as a client.

Clients and Servers
In general, all of the machines on the can be categorised as two types: servers and clients. Those machines that provide services (like servers or FTP servers) to other machines are servers. And the machines that are used to connect to those services are clients.

When you connect to Yahoo at www.google.com to read a page, Google is providing a machine (probably a cluster of very large machines), for use on the , to service your request. Google is providing a . Your machine, on the other hand, is probably providing no services to anyone else on the . Therefore, it is a user machine, also known as a client. It is possible and common for a machine to be both a and a client !

Cookie
A file sent by some servers to your computer’s hard drive to enable you to quickly and easily return to particular sites. Cookies give rise to concerns as they are often used to store information used for marketing purposes.

The main purpose of cookies is to identify users and possibly prepare customised pages for them. When you enter a site using cookies, you may be asked to fill out a form providing such information as your name and interests. This information is packaged into a cookie and sent to your browser which stores it for later use. The next time you go to the same site, your browser will send the cookie to the . The can use this information to present you with custom pages. So, for example, instead of seeing just a generic welcome page you might see a welcome page with your name on it.

CRN
The Customer Receipt Number (CRN) is used to assist the holder, the gateway and the to confirm the has been processed and to track the throughout the end-to-end process. This is often used when making enquiries about a or for tracking.

Cybersquatting
Bad faith, abusive domain name registration. Cybersquatters register company and product names as domain names with a view to selling them at inflated prices to the “rightful” owners.

/CVC
The additional information printed on the to be processed. This is used to verify if the was present when the was initiated.  This is the additional digits imprinted on the usually on the reverse side for & Mastercard and on the front for AMEX.

Database
A collection of : part numbers, product codes, customer information, etc. It usually refers to organised and stored on a computer that can be searched and retrieved by a computer program.

Deep link
A hypertext link directly to a page, often bypassing home pages or other identifying pages.

Certificate
A pop up window that allows you to identify the level of used to secure a particular site.

Signature
A complex numeric “signature” designed to be used, in conjunction with special software, to the sender of a message and guarantee that the contents of the message have not been altered during to the recipient. The EU has adopted legislation which makes signatures legally valid. The Bill (Cth) 1999 has the same effect in .

Domain Name
The plain English name given to a host destination on the , for example, www.madrock.net. The suffix, dot.com is known as the generic top level domain, the prefix madrock. The domain name forms part of the Address or URL.

A name that identifies one or more IP addresses. For example, the domain name .com represents about a dozen IP addresses. Domain names are used in URLs to identify particular pages. For example, in the URL http://www.madrock.net, the domain name is madrock.net.

Download
To transfer information from one computer to your computer.

Dynamic page
A document that is created from a database in real-time or “on the fly” at the same time it is being viewed, providing a continuous flow of new information and giving visitors a new experience each time they visit the site.

Dynamic sites offer the user the ability to interact with the site. This interaction can take place in the form of a search for products, a questionnaire that automatically posts results or polls. Basically, dynamic pages and content are generated from the input of the user.

EC
.

Often referred to as simply e- , business that is conducted over the using any of the applications that rely on the , such as e-mail, instant messaging, shopping carts, services, and FTP, among others. can be between two businesses transmitting funds, goods, services and/or or between a business and a customer.

ECI
The Indicator (ECI), is used to determine the source of the original request. This is a program that the banks have developed and have mandated it’s