Безопасность : устройства безопасности электронной почты Cisco ESA

Как работают умные идентификаторы

20 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв

Введение

Этот документ описывает умные идентификаторы, которые являются встроенными образцами сканирования содержания, которые обнаруживают определенные типы данных. Для этого выпуска система внедрит умные идентификаторы для номеров кредитной карты, Номеров социального страхования США, Номеров CUSIP и номеров маршрутизации ABA.

Внутренне, умный идентификатор состоит из регулярного выражения, которое совпадает со строками кандидата, наряду с функцией проверки, которая проверяет соответствие кандидата в некотором роде. Например, функция проверки для номера кредитной карты гарантирует, что контрольный разряд корректен.

Регулярные выражения для каждого умного идентификатора будут включать привязки к границе слова ('b') в обоих конца. (Это препятствует тому, чтобы система совпала с номером социального страхования США, например, посреди более длинной строки цифр.) Для простоты они опущены из описаний приведенное ниже.

Умная реализация идентификаторов должна быть тщательна относительно наложения на соответствия, потому что подстрока, найденная регулярным выражением, может не проверить. Например, фильтр просматривает для номеров кредитной карты против строки 9999 4321 9999 9999, 9995 1234 5678 9000 должен найти допустимый номер кредитной карты 4321 9999 9999 9995, даже при том, что простой просмотр регулярного выражения для возможных номеров нашел бы 9999 4321 9999 9999 и 9995 1234 5678 9000.

Внесенный специалистами службы технической поддержки Cisco.

Номера кредитной карты

Номер кредитной карты начинается с типа карты переменной длины, который указывает, является ли номер VISA, MasterCard, AMEX, и т.д., и заканчивается контрольным разрядом. Другие типы карты используют другое количество цифр во всем номере, но вычисление контрольного разряда является тем же в каждом случае.

Обратите внимание на то, что с enRoute или картами JCB не совпадают. Кроме того, 13-разрядные номера VISA не существуют и не совпадутся в нашей реализации.

16-разрядные номера кредитной карты будут совпадать с одним из следующих регулярных выражений:

[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}

С префиксом, являющимся "4", "51" - "55", или "6011".

15-разрядные номера AMEX будут совпадать с одним из следующих регулярных выражений:

[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}

С допустимыми префиксами, являющимися "34" или "37".

14-разрядные номера Клуба Посетителей будут совпадать с одним из следующих регулярных выражений:

[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}

С допустимыми префиксами, являющимися "300" - "305", "36", или "38".

Обратите внимание на то, что регулярные выражения определяют определенную группировку цифр для данной длины кредитной карты, и что, если существует пунктуация между цифрами, это должно быть то же повсюду.

Заключительная цифра в номере кредитной карты является созданным использованием контрольного разряда алгоритма Luhn. Работая от правого конца номера, дважды каждой второй цифры. Затем сложите отдельные цифры получающихся номеров (и те, которые были удвоены и те, которые не были). Если результатом является множитель 10, то номер допустим.

Например, учитывая номер 1234 5678 9012 3456:

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

Дважды: 2 2 6 4 10 6 14 8 18 0 2 2 6 4 10 6

Добавление 2 + 2 + 6 + 4 + 1 + 0... + 1 + 0 + 6 дает 64, который не является множителем 10, таким образом, номер недопустим.

Учитывая номер 1234 5678 9876 3333:

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

Дважды: 2 2 6 4 10 6 14 8 18 8 14 6 6 3 6 3

Добавление 2 + 2 + 6 + 4 + 1 + 0... + 6 + 3 дает 80, который является множителем 10, таким образом, номер допустим.

США. Номера социального страхования

Номера социального страхования разделены на 3 номера области цифры, которые назначены географически, 2 номера группы цифры, назначенные в точном порядке в области и 4 серийных номерах цифры, назначенных последовательно.

Наша реализация будет использовать следующие регулярные выражения:

[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}

Вот некоторые примеры выражений выше:

555-55-5555
555.55.5555
555 55 5555

Управление социального обеспечения ведет список области/номеров группы, которые были назначены: SSN вышел [3]. Но так как этот документ периодически изменяется, мы не можем полагаться на него для проверки. Функция проверки проверит, что ни одно из этих 3 полей не все нули, и что первые 3 цифры - меньше чем 800. (Предыдущие базовые использования 771 как предел, но SSA уже имеет присвоенные номера с первыми 3 цифрами 771 и 772.)

(Номера начиная с 666 являются неприсвоенными, и номера в диапазоне 987-65-4320 до 987-65-4329 зарезервированы для объявления. Кроме того, 078-05-1120 наиболее неправильно используемый SSN; это был фактический SSN секретаря в компании бумажника, которая использовала номер в качестве примера.)

Номера CUSIP

CUSIP (Комитет по Универсальным Идентификационным Процедурам Безопасности) номера являются 9 алфавитно-цифровыми идентификаторами, которые определяют североамериканские ценные бумаги различных типов. Номер разделен на номер отправителя на 6 символов, который однозначно определяет отправителя (например, компания), суффикс на 2 символа, который определяет определенную безопасность; например, обычные акции, по сравнению с привилегированными акциями по сравнению с опцией по сравнению с инструментом фиксированного дохода.

CUSIP умный код идентификатора будет использовать следующие регулярные выражения:

[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]

Функция проверки подобна той, используемой для номеров кредитной карты. Единственная разница - то, что буквы в Номере CUSIP преобразованы в цифровое значение путем присвоения A=10, B=11..., Z=35.

Пример от cusip.com веб-сайта использует Номер CUSIP 392690 QT 3:

 3 9 2 6 9 0 Q T 3

Преобразуйте буквы: 3 9 2 6 9 0 26 29 3

Дважды: 3 18 2 12 9 0 26 58 3

Добавление 3 + 1 + 8 + 2 + 1 + 2 +... + 5 + 8 + 3 дает 50, который является множителем 10, таким образом, исходное число было допустимо.

Номера маршрутизации ABA

ABA (американская Банковская Ассоциация) номер маршрутизации является 9-разрядным значением. Первыми 4 цифрами является Федеральная резервная система, направляющая символ, следующие 4 идентификатор учреждения и последнее контрольный разряд.

Номер маршрутизации ABA умный код идентификатора будет использовать следующие регулярные выражения:

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

Функция проверки включила умножение каждой цифры 3, 7, 1...; если сумма продуктов является множителем 10, номер допустим.

Например, рассмотрите номер 123 456 789:

 1 2 3 4 5 6 7 8 9

Умножьтесь: 3 7 1 3 7 1 3 7 1
Продукт: 3 14 3 12 35 6 21 56 9
Добавление 3 + 14 + 3 + 12 + 35 + 6 + 21 + 56 + 9 дает 159, который не является множителем 10, таким образом, исходное число было недопустимо.
Учитывая номер 322 271 627:

 3 2 2 2 7 1 6 2 7

Умножьтесь: 3 7 1 3 7 1 3 7 1

Продукт: 9 14 2 6 49 1 18 14 7

Добавление 9 + 14 + 2 + 6 + 49 + 1 + 18 + 14 + 7 дает 120, который является множителем 10, таким образом, исходное число было допустимо.

(Несмотря на то, что определенные диапазоны Федеральной резервной системы, направляющей символы, зарезервированы, и поэтому не назначены, алгоритм проверки не проверит для зарезервированных номеров, чтобы избежать иметь необходимость пересмотреть ее, если ABA изменит свою политику.)



Document ID: 118543