Segurança : Cisco Email Security Appliance

Como os identificadores espertos trabalham

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback

Introdução

Este documento descreve os identificadores espertos, que são os testes padrões satisfeitos incorporados da exploração que detectam determinados tipos de dados. Para esta liberação, o sistema executará identificadores espertos para números do cartão de crédito, números da Segurança Sociais E.U., números CUSIP, e de roteamento ABA números.

Internamente, um identificador esperto consiste em uma expressão regular que combine cordas do candidato, junto com uma função da validação que verifique o fósforo do candidato de uma certa maneira. Por exemplo, a função da validação para um número do cartão de crédito assegura-se de que o dígito de verificação esteja correto.

As expressões regulares para cada identificador esperto incluirão as âncoras do limite de palavras (“b ") no ambas as extremidades. (Isto impede que o sistema combine um número da Segurança Social E.U., por exemplo, no meio de uma série de dígito mais longa.) Para a simplicidade, estes são omitidos das descrições abaixo.

A aplicação esperta dos identificadores deve ser cuidadosa sobre fósforos de sobreposição, porque um substring encontrado pela expressão regular não pode validar. Por exemplo, um filtro está fazendo a varredura para números do cartão de crédito contra a corda 9999 que 4321 9999 9999 9995 1234 5678 9000 devem encontrar o número do cartão de crédito válido 4321 9999 9999 9995, mesmo que uma varredura simples da expressão regular para números possíveis encontre 9999 4321 9999 9999 e 9995 1234 5678 9000.

Contribuído por engenheiros de TAC da Cisco.

Números do cartão de crédito

Um número do cartão de crédito começa com um tipo de placa do comprimento variável, que indique se o número é um VISTO, MasterCard, Amex, etc., e extremidades com um dígito de verificação. Os tipos de placa diferentes usam números diferentes de dígitos no número inteiro, mas o cálculo do dígito de verificação é o mesmo em cada caso.

Note isso a caminho ou os cartões JCB não são combinados. Também, os números do VISTO 13-digit não existem, e não serão combinados em nossa aplicação.

os números do cartão de crédito 16-digit combinarão uma das seguintes expressões regulares:

[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}
[0-9]{4}\.[0-9]{4}\.[0-9]{4}\.[0-9]{4}
[0-9]{4} [0-9]{4} [0-9]{4} [0-9]{4}
[0-9]{16}

Com o prefixo que é "4", "51"-"55", ou "6011".

Os números Amex 15-digit combinarão uma das seguintes expressões regulares:

[0-9]{4}-[0-9]{6}-[0-9]{5}
[0-9]{4}\.[0-9]{6}\.[0-9]{5}
[0-9]{4} [0-9]{6} [0-9]{5}
[0-9]{15}

Com os prefixos permissíveis que são "34" ou "37".

Os números do clube dos jantares 14-digit combinarão uma das seguintes expressões regulares:

[0-9]{4}-[0-9]{6}-[0-9]{4}
[0-9]{4}\.[0-9]{6}\.[0-9]{4}
[0-9]{4} [0-9]{6} [0-9]{4}
[0-9]{14}

Com os prefixos permissíveis que são "300"-"305", "36", ou "38".

Note que as expressões regulares definem um agrupamento específico dos dígitos para um comprimento de cartão de crédito dado, e que se há uma pontuação entre os dígitos, tem que ser a mesma por toda parte.

O dígito final em um número do cartão de crédito é um dígito de verificação criado usando o algoritmo de Luhn. Trabalhando da extremidade direita do número, dobre cada segundo dígito. Adicionar então acima os dígitos individuais dos números resultantes (ambos os que foram dobrados e esses que não eram). Se o resultado é um múltiplo do 10, a seguir o número é válido.

Por exemplo, dado o número 1234 5678 9012 3456:

  1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

Dobro: 2 2 6 4 10 6 14 8 18 0 2 2 6 4 10 6

Adicionando 2 + 2 + 6 + 4 + 1 + 0… + 1 + 0 + 6 dá 64, que não é um múltiplo do 10, assim que o número é inválido.

Dado o número 1234 5678 9876 3333:

  1 2 3 4 5 6 7 8 9 8 7 6 3 3 3 3

Dobro: 2 2 6 4 10 6 14 8 18 8 14 6 6 3 6 3

Adicionando 2 + 2 + 6 + 4 + 1 + 0… + 6 + 3 dá 80, que é um múltiplo do 10, assim que o número é válido.

U.S. Números da Segurança Sociais

Os números da Segurança Sociais são divididos em um número de área de 3 dígitos, que sejam atribuídos geograficamente, um número do grupo de 2 dígitos atribuído em um pedido específico dentro de uma área, e um número de série de 4 dígitos atribuído sequencialmente.

Nossa aplicação usará as seguintes expressões regulares:

[0-9]{3}-[0-9]{2}-[0-9]{4}
[0-9]{3}\.[0-9]{2}\.[0-9]{4}
[0-9]{3} [0-9]{2} [0-9]{4}

Estão aqui alguns exemplos das expressões acima:

555-55-5555
555.55.5555
555 55 5555

A administração de Segurança social mantém uma lista da área/números do grupo que foram atribuídos: O SSN emitiu [3]. Mas desde que este documento muda periodicamente, nós não podemos confiar nele para a validação.  A função da validação certificar-se-á de nenhuns dos 3 campos sejam todos os zero, e que os primeiros 3 dígitos são menos de 800. (Os usos de referência precedentes 771 como o limite, mas o SSA têm já assigned number com os primeiros 3 dígitos 771 e 772.)

(Os números que começam com 666 são unassigned, e os números na escala 987-65-4320 a 987-65-4329 são reservados anunciando. Também, 078-05-1120 são o SSN o mais empregado mal; era o SSN real de um secretário em uma empresa da carteira, que usasse o número como um exemplo.)

Números CUSIP

Os números CUSIP (comitê em procedimentos uniformes da identificação de Segurança) são os identificadores 9 alfanuméricos que identificam Seguranças norte-americanas de vários tipos. O número é dividido em um número do expedidor do 6-caráter, que identifique excepcionalmente o expedidor (por exemplo, uma empresa), um sufixo de 2 caráteres que identifique a Segurança particular; por exemplo, ações comuns, contra o estoque preferido contra a opção contra o instrumento da renda fixa.

O código esperto do identificador CUSIP usará as seguintes expressões regulares:

[0-9]{3}[0-9a-zA-Z]{3} [0-9a-zA-Z]{2} [0-9]
[0-9]{3}[0-9a-zA-Z]{3}-[0-9a-zA-Z]{2}-[0-9]
[0-9]{3}[0-9a-zA-Z]{3}[0-9a-zA-Z]{2}[0-9]

A função da validação é similar a essa usada para números do cartão de crédito. A única diferença é que as letras no número CUSIP estão convertidas a um valor numérico atribuindo A=10, B=11,…, Z=35.

Um exemplo do site de cusip.com usa o número 392690 quarto 3 CUSIP:

  3 9 2 6 9 T3 0 Q

Letras do converso: 3 9 2 6 9 0 26 29 3

Dobro: 3 18 2 12 9 0 26 58 3

Adicionando 3 + 1 + 8 + 2 + 1 + 2 +… + 5 + 8 + 3 dá 50 pés, que é um múltiplo do 10, assim que o número original era válido.

Números do roteamento ABA

Um número do roteamento ABA (associação de operação bancária americana) é um valor 9-digit. Os primeiros 4 dígitos são Federal Reserve que distribuem o símbolo, os 4 seguintes o identificador da instituição, e o último um dígito de verificação.

O código esperto do identificador do número do roteamento ABA usará as seguintes expressões regulares:

[0-9]{4} [0-9]{4} [0-9]
[0-9]{4}-[0-9]{4}-[0-9]
[0-9]{9}

A função da validação envolvida multiplicando cada dígito por 3, 7, 1,…; se a soma do Produtos é um múltiplo do 10, o número é válido.

Por exemplo considere o número 123 456 789:

  1 2 3 4 5 6 7 8 9

Multiplique por: 3 7 1 3 7 1 3 7 1
Produto: 3 14 3 12 35 6 21 56 9
Adicionando 3 + 14 + 3 + 12 + 35 + 6 + 21 + 56 + 9 dá 159, que não é um múltiplo do 10, assim que o número original era inválido.
Dado o número 322 271 627:

  3 2 2 2 7 1 6 2 7

Multiplique por: 3 7 1 3 7 1 3 7 1

Produto: 9 14 2 6 49 1 18 14 7

Adicionando 9 + 14 + 2 + 6 + 49 + 1 + 18 + 14 + 7 dá 120, que é um múltiplo do 10, assim que o número original era válido.

(Embora determinadas escalas de Federal Reserve que distribuem símbolos sejam reservadas, e consequentemente não atribuídas, o algoritmo da validação não verificará para ver se há números reservados, para evitar ter que o revisar se o ABA muda sua política.)


Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 118543