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

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

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Отзыв

Введение

Этот документ описывает умные идентификаторы, которые являются встроенными образцами сканирования содержания, которые обнаруживают определенные типы данных. Для этого выпуска система внедрит умные идентификаторы для номеров кредитной карты, Номеров социального страхования США, Номеров 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 веба - узлы/URL использует Номер 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 изменит свою политику.)


Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.