Что такое хэш пан карты
Я, конечно, не получаю пачками вопросы по безопасности платежных карт, однако, время от времени кто-нибудь да и задаст мне такой вопрос, который заслуживает отдельной публикации в блоге. Буквально на днях одна читательница, Мишель, задала мне такой вопрос, который, в целом отражает часто встречающееся непонимание в сфере безопасности платежных карт:
Вчера я перечитывала PCI DSS 2.0, требование 3.4, и была немало удивлена тем, что для защиты хранимых номеров PAN не предлагается такая мера как «маскирование». Правильно ли я понимаю, что эти номера подлежат шифрованию перед помещением их на хранение, а при извлечении, они подлежат расшифрованию и маскированию? И потом, если мы получаем номер PAN уже в маскированном виде, а затем храним его, то попадает ли такое хранение под действие стандарта PCI DSS? С технической точки зрения, как я думаю, не попадает, т.к. PAN уже маскирован при получении, а значит нет возможности найти номер PAN в незашифрованном виде.
Метод сокрытия сегмента данных при отображении или печати. Маскирование используется, когда нет служебной необходимости в просмотре всего номера PAN.
Усечение (truncation)
Метод приведения номера PAN к нечитаемому виду посредством удаления сегмента данных PAN.
Представьте себе данные о держателе карты (далее – ДДК) в виде цифр на листке бумаги. При маскировании мы словно берем коррекционную ленту и наносим ее на большую часть цифр таким образом, чтобы человеку, которому передается этот листок, было видно только последние 4 цифры. Очевидно, что при этой операции данные по прежнему существуют под коррекционной лентой, хотя она их и скрывает. Разумеется, с этого листка бумаги, приложив некоторые усилия, можно счистить коррекционную ленту, а значит этот лист бумаги по прежнему нуждается в защите, при которой никакие злоумышленники не могли бы восстановить и использовать данные о держателе карты.
В свою очередь, если бы мы хотели выполнить усечение на этом листке бумаги, то мы бы либо вообще изначально не писали эти цифры, либо стерли их настолько надежно, что их никогда нельзя было бы воссоздать. Такие данные никогда не были бы написаны на листе бумаги, а значит никак не могли бы быть использованы для мошенничества с платежными картами. В таком сценарии, этот лист бумаги не имеет никакой ценности для злоумышленника, а значит нет необходимости его защищать, по крайней мере в той же степени, в которой следует защищать маскированные данные. Конечно, к этим усеченным данным могут быть привязаны какие-то дополнительные данные или значения, но сами по себе усеченные данные ценности не имеют.
Совсем иная ситуация в бэк-офисе, в бухгалтерии и в службе, отвечающей за предотвращение ущерба. По умолчанию, сотрудники этих отделов и служб должны видеть только 4 последних цифры номера платежной карты. Однако при возникновении претензионных платежей или подозрений на вероятное мошенничество, сотрудники компании в рамках расследования должны иметь возможность отменить маскирование полного номера карты. Эти номера по-прежнему существуют на сервере, однако, они там в основном хранятся в маскированном (скрытом) виде, и отображаются только должным образом уполномоченному персоналу. Поскольку имеется возможность извлечения этих данных на серверах, они полностью входят в область оценки на соответствие стандарту PCI DSS и подлежат соответствующей защите.
Таким образом, отвечая на вопрос читательницы, я скажу, что хранимые данные не могут быть «маскированы». Они маскируются только при извлечении и считаются маскированными, если отображены частично. Именно поэтому, в требовании 3.4 отсутствует маскирование. Если же ТСП получает ДДК, в которых имеется только сегмент номера PAN (например, сегмент из первых 6 или последних 4 цифр), то такие данные являются усеченными. В таком случае полный номер PAN отсутствует, воссоздание его невозможно, а значит нет необходимости его защищать так же, как и ДДК. Я не говорю, конечно, о том, что данные, привязанные к этому номеру не имеют ценности и не подлежат защите, просто усеченные данные не входят в область применения требований стандарта.
Если же ТСП получает полный номер PAN, но сотрудникам он отображается в маскированном виде, то, даже если никто в ТСП не имеет доступа к ДДК, оно все равно отвечает за их защиту согласно требованиям стандарта. Если в этих данных нет необходимости, есть смысл просить о предоставлении усеченных данных, тем самым, сэкономив кучу сил и нервов на общении с аудиторами, выполнении требований стандарта, да и вообще на процессе приведения среды в соответствие со стандартом PCI DSS. Например, я приятный в общении человек, но даже самые большие мои поклонники среди клиентов подтвердят, что я становлюсь противным и невыносимым, как минимум, раз в год, когда прихожу к ним для проведения аудита.
Банковские пластмассовые карты уже несколько десятков лет как вошли в жизнь населения земли . На нашем рынке банки начали массово внедрять их около 15 годов назад и на данный момент пластмассовые банковские карты получили достаточно обширное распространение.
Платежная карта , еще не так давно бывшая лишь модным аксессуаром предпринимателя , на сегодня может находиться в кармане студента, пенсионера, служащего, рабочего – словом хоть какого общественного и имущественного слоя современного общества.
Удобство использования, компактность, высочайшая безопасность транзакций, также прием платежей в любом гипермаркете и обширное распространение банкоматов и платежных терминалов, обусловило огромную известность этого вида системы расчетов, лишила необходимости всюду носить с собой валютные знаки, и одновременно иметь неизменный доступ ко всем своим средствам на счету и производить покупки при необходимости в любом магазине и на всякую сумму.
Кроме того, , важным фактором является возможность моментального предоставления кредита , в неких вариантах беспроцентного, в случае, если сумма на вашем карточном счету недостаточна для подходящей для вас покупки.
Что такое Pan? При настолько высочайшем распространении банковских пластмассовых карт , которые стали уже обычным спутником каждого человека, не много кто может понятно разъяснить , как они устроены и как работают.
Остановимся на данном мало по-детальнее . Любая платежная карта представляет собой маленький кусочек гибкого пластика, снабженного с одной стороны магнитной лентой. Данная лента является некоторым паролем , считываем?? устройством платежного терминала. Информация, которую считывают устройства с пластиковой карты , именуется Pan – типичный идентификатор. как отключить услугу альфа чек Хотите выяснить , как отключить услугу Альфа Чек?
Аннотация , а так же детальная информация по этому вопросу, размещена по предложенной ссылке . А если для вас любопытно , как оформить страхование жизни при ипотеке в Сбербанке 2016, то для вас просто нужно перейти по ссылке и прочитать статью. Для каких целей он нужен ?
Для обеспечения безопасности транзакций оплаты либо перевода средств с вашего карточного счета при помощи пластиковой карты вводится особенный неповторимый код , который состоит из последовательности цифр. Это и есть, так именуемый pan-код. Код написан на лицевой стороне карты и или написан при помощи краски, или является выпуклым, для обеспечения большей долговечности – ведь краска быть может стерта от времени и ношения в карманах одежки . Он бывает 13-ти либо 16-тизначный.
Кроме того, , код продублирован на магнитной ленте , которая расп оложена на задней части карты и записанный в виде компьютерного кода.
Что все-таки обозначают эти числа ? Индивидуальности пластмассовых карт ↑ Суть в том , что главной неувязкой , которой уделяется особенное внимание, является безопасность использования карты, чтоб злодей не мог совершить мошенничество и похитить либо пользоваться вашими средствами . 2-ое , что необходимо обеспечить – это неотказная и точная работа пластиковой карты , отсутствие просчетов при использования . Изготовка и устройство пластмассовых карт регламентируется интернациональным эталоном ISO/Mac 7812-1 , разрабатывающ?? и выдает организациям, интернациональная система SWIFT. В нашей стране сотворен схожий эталон ГОСТ Р-50809-95. кредиты пенсионерам в втб 24Вас интересует вопрос получения займа пенсионерам? Мы готовы предоставить для вас статью о банке ВТБ 24 и его критериях по кредиту пенсионерам. Публикация размещена по ссылке. Если вас интересует вопрос — почему сбербанк отказывает в займе , то для вас нужно ознакомиться со статьей , которая расположена по ссылке. А детальная информация о страховании займа в Сбербанке, размещена тут . Как его используют ? ↑ Для правильной и штатной работы пластмассовой карты предвидено последующее распределение существующих в пан-коде цифр: 1-ые 6 цифр – код эмитента карты –идентификатор банка , который выдал для вас ее, либо так именуемый , bin-код карты. Последующая последовательность из 7, 10 либо 13 цифр ( зависимо от конструкции) – фактически номер карты. Крайняя цифра- проверочная либо контрольная, служащая для недопущения просчетов . Обычно , в нашей стране употребляется последовательность из 16 цифр из которых 1-ые 6 – это бин карты. Необходимо подчеркнуть, что на магнитной ленте содержится большее количество инфы , разные доп проверочные знаки , разделители, указывается срок деяния карты и остальные сервисные коды, служащие надежности и безопасности работы. В сознании юзеров часто случается неурядица — люди путают pan и pin-коды собственной карты. Пан-код — это, как мы произнесли выше, сначала идентификатор, а пин-код — ваш индивидуальный скрытый пароль, который должен быть известен только юзеру и обладателю счета. Не передавайте и не сообщайте никому собственный пин-код и тем паче не записывайте его на самой карте – постоянно держите его в памяти, по другому вы рискуете столкнуться с огорчительными недоразумениями и потерей собственных средств . По собственному назначению существует достаточно много видов пластмассовых банковский карт, выпущенных в различное время, созданных для работы в различных платежных системах, но пан-код у всех схож по назначению и вне зависимости от количества цифр в нем сумеет быть прочитан хоть каким банкоматом либо терминалом. При осторожном и аккуратном обращении с картой и соблюдении нужных мер безопасности вы навряд ли столкнетесь с трудностями в использовании этой, на сегодня , наверное, самой комфортной системой расчетов – пластмассовой банковской картой.
В связи с появлением статьи «Путешествия банковской транзакции», в рамках которой стали появляться вопросы по механизму проверке PIN, хотелось бы несколько уточнить данный вопрос. В данной статье будет рассмотрен только вопрос проверки т.н. online PIN, т.е. PIN, который вводится на терминале и передается для дальнейшей проверки в систему, которая выполняет авторизацию транзакции.
Прежде чем приступать непосредственно к вопросу прокерки PIN'а карты, остановимся на некоторых теоретических вопросах.
Прикладная криптография
Алгоритм DES
В настоящий момент, основным алгоритмом шифрования для всех действия с банковскими картами является алгоритм DES (а не 3DES, который используется только для операций шифрования, преимущественно, транспортного уровня). Не вдаваясь в терминологию и классификацию алгоритмов шифрования, просто скажу, что это блочный алгоритм шифрования с размером блока 8 байт и ключом в 56 бит (7 байт). На практике, ключ DES принято представлять в виде блока из 8 байт, где в каждом байте старшие 7 бит ялвются значащими, а последний бит — незначащим. Он может использоваться для контроля целостности ключа (об этом — далее).
Т.к., в настоящее время, ключ длинной 56 бит является недостаточным, с точки зрения безопасности, то вместо алгоритма DES для шифрования принять использовать алгоритм 3DES в режиме EDE (здесь и далее под обозначением 3DES я буду подразумевать именно использование схемы EDE). Обычно, в банковской среде применяется алгоритм 3DES с ключом двойной длинны (112 бит, 16 байт), при которой на первом и третьем шаге (см. описание алгоритма) применяется один и тот же ключ.
Алгоритмы проверки PIN
На данный момент, в основном, используются следующие 2 алгоритма проверки PIN: Visa PVV и IBM 3624 PIN offset.
Visa PVV
Данный алгоритм первоначально был разработан платежной системой Visa, но, в настоящее время является рекомендованным алгоритмом проверки PIN как для карт Visa, так и для MasterCard. В основе данного алгоритма лежит значение PVV (PIN verification value), которое является криптограммой, получаемой на основе следующих величин:
- Номер карты (далее PAN)
- Индекс ключа проверки PIN (PIN verification key index, далее, PVKI)
- Ключ проверки PIN (PIN verification key, далее, PVK)
- Сам PIN код карты
- Принципиальная невозможность восстановления PIN из значения PVV
- Использование PIN кода размером строго 4 цифры
IBM 3624 PIN offset
Данный алгоритм первоначально был разработан компанией IBM для использования в банкоматах IBM 3624. Как именно планировалось его использовать, история умалчивает, а автори статьи не знает, но, в данном случае, это не принципиально. В настоящее время данный алгоритм считается устаревшим, но достаточно успешно используется по нескольким причинам:
- карточные системы «старых» регионов (Западная Европа, Северная Америка) достаточно консервативны и, во многом, работают на «достаточно» старых системах, что их вполне устраивает
- данный алгоритм позволяет восстановить значение PIN кода из проверочного значения (см. далее), что м.б. весьма полезно при определнных условиях
В основе данного алгоритма лежит значение PIN offset (PIN verification value), которое является криптограммой, получаемой на основе следующих величин:
- Контрольное значение (Validation data, далее VD) — некоторое значение (обычно — часть номера карты, но это не обязательно)
- Децимализационная таблица (Decimalization table, далее DT)
- Ключ проверки PIN (PIN verification key, далее, PVK)
- Сам PIN код карты
- Шифрование ключа под т.н. Мастер ключом HSM в различных вариантах. В этом случае само значение ключа хранится в зашифрованном виде на внешнем носителе (обычно — в процессинговой системе) и передается в HSM во время выполнения операции. В этом случае при выполнении операции HSM сначала расшифровывает ключ с помощью Мастер ключа, после чего уже выполняет, непосредственно, ту операцию, которая была запрошена
- Хранение ключа в защищенном внутреннем хранилище HSM. В этом случае, обычно, на вход подается идентификатор ключа, по которому HSM извлекает его из внутреннего хранилища.
Проверка PIN
Терминология
- PIN блок — значение PIN кода карты, некоторым специальным образом упакованной в блок из 8 байт. Стоит пояснить, что никакого шифрования в данном процессе не используется. Способы упаковки, в данном случае, бывают разные, но это не принципиально.
- Зашифрованный PIN блок — значение PIN блока, зашифрованное по алгоритму DES/3DES с помощью ключа (ключа терминала, банка, платежной сети, пр.), специально выделенного для целей шифрования PIN блока.
- Проверочное значение PIN — PVV или PIN offset в зависимости от того, какой метод проверки PIN используется.
- Дополнительные данные проверки PIN — данные, кроме PIN и проверочного значения PIN, необходимые для проверки PIN в соответствии с алгоритмами Visa PVV/IBM 3624 PIN offset в соответствии со списком, приведенным в описании алгоритмов (см. выше).
Требования платежных систем
- Открытые значения PIN и PIN блока не должны никаким образом передаваться, храниться или обрабатываться вне специально отведенных программно аппаратных комплексов (HSM на стороне процессинговых систем или EPP и некоторых других страшных абревиатур на стороне терминальных устройств(банкоматы, POS-терминалы и пр.)).
- Зашифрованный PIN блок не должен храниться после завершения операции в системах, отвечающих за онлайн/оффлайн обработку транзакций (есть еще системы, отвечающие за выпуск самих карт, их это требование не касается).
Проверка PIN
- Сам PIN, который мы будем проверять
- Проверочное значение PIN
- Дополнительные данные проверки PIN
Далее необходимо определиться с проверочным значением PIN и дополнительными данными.
Первый вариант — это хранение проверочного значения на магнитной полосе карты после поля Service Code. Модифицированную версию ISO 7813 с указанием того, где хранится PVV, можно посмотреть здесь. По приведенному описанию формата треков стоит добавить, что под 5-и символьным значением PVV подразумевается следующая последовательность 1 символ PVKI и 4 символа самого PVV, а для PIN offset — значение PIN offset для PIN из 5 цифр. Если PIN имеет отличную от 5 цифр длину, то размер PIN offset, соответственно, изменится. Какие плюсы у этого метода. Безусловно — возможность проверять PIN для любого, кто будет иметь необходимые для проверки ключи. Здесь стоит заметить, что при запуске нового карточного подукта в платежную сеть, обычно, передаются ключи, на которых выпущена карта. Таким образом, при использовании данного метода возможность проверки PIN появляется как у самого эмитента карты, так и у платежной сети. К недостаткам такого метода можно отнести то, что данный вариант делает PIN карты статическим до тех пор, пока карта не будет перевыпущена.
Второй вариант — это хранение проверочного значения в некотором хранилище, обычно, БД системы, отвечающей за выполнение проверок при авторизации карты. В этом случае при проверке PIN необхоидмо извлечь проверочное значение из этого хранилища, а уже потом, выполнять проверку, используя это значение. Как следствие, при использовании данного метода, невозможно вполнять проверку PIN во внешней системе (в той же платежной системе) и она м.б. выполнена только в той системе, которая имеет доступ к хранилищу проверочных значений. Однако, такая система позволяет изменять PIN код карты без каких либо затрат на смену пластика (для чего это нужно, что при этом необходимо сделать и какие после этого м.б. проблемы, описывать не буду, т.к. это находится за рамками данной статьи).
Независимо от того, каким образом и кем (эмитент карты или платежная сеть) была получена вся необходимая информация, сама проверка PIN выполняется на HSM, который для выполнения проверки получает ключ PPK в защищенном виде, ключ проверки PIN в защищенном виде, зашифрованный PIN блок, проверочное значение PIN и дополнительные данные проверки, в ответ на что возвращается только результат проверки: верный PIN, неверный PIN, прочая ошибка. Т.е. в процессе проверки система, отвечающая за авторизацию, с самим открытым значением PIN кода никак не соприкасается.
Используемые материалы:
[1] Visa Payment Technology Standards Manual, лет 5 назад, на просторах интернета можно было найти версию данного документа за 2007 год, сейчас, при беглом происке, доступна только версия от 2004 года
Какие бы криптографические вычисления вы ни делали - без хэширования обойтись, скорее всего, не получится. Электронная подпись, проверка целостности данных, сравнение двух текстов и т.д. - везде используется хэшировние, везде вычисляется хэш. И, конечно, блокчейн без хэша просто немыслим.
Попробую сегодня на пальцах рассказать, что это такое и зачем это нужно.
Этим постом открываю мини-рубрику "криптография на пальцах". Мне хотелось бы понять, нужно ли это моим читателям. Прошу вас активнее пользоваться лайками/дизлайками, чтобы дать мне обратную связь.
Хэш еще называют свёрткой, в этом очень точно описывается суть этой математической операции.
Мы все знаем, что любая информация в цифровом виде представляет собой последовательность чисел. Блок информации может быть очень большим - это может быть текст "Войны и мира", или вообще вся Санта-Барбара. А может быть очень коротким. В современном мире громадное количество блоков информации, и часто нужен какой-то простой способ уникально идентифицировать каждый блок. Или, как еще иногда говорят, получить "отпечаток текста".
В этом хэш очень похож на отпечаток пальца человека. В отпечатке пальца нет всей информации о человеке, но по отпечатку пальца человека можно уникально идентифицировать. Нечто подобное для блоков информации делает хэш-функция.
Берем огромный роман "Война и мир" и получаем от него короткий, тридцатидвухбайтный хэш (256 бит). И этот хэш (результат вычисления хэш-функции) уникально идентифицирует текст "Войны и мира".
Представим, допустим, что кто-то взял и изменил этот текст. Например, изменил одну букву где-то в середине романа. Снова вычисляем хэш от нового, измененного текста. Полученное значение будет очень сильно отличаться от прошлого. Т.е. новый текст даст другой хэш, пусть даже изменилась всего одна буква!
Вот почему эту операцию еще называют операцией свертки. Она как бы сворачивает большой блок информации до значения фиксированного размера. Причем назад развернуть, конечно же, уже не получится. Не получится из тридцатидвухбайтного значения получить многомегабайтный исходный текст.
Собственно, это главная функция хэша - получать некую уникальную числовую характеристику блока информации. И характеристика эта - фиксированного размера, не зависит от размера исходного блока информации. Вот для этого изначально хэш и придуман.
Как теперь сравнить два разных текста? А просто вычисляем хэш от каждого. Если хэши разные - то и исходные тексты разные. Даже если разница в одном символе в огромном романе. Кстати, в программировании так время от времени делают: чтобы не париться с посимвольным сравнением огромных текстов, просто сравнивают вычесленные от них хэши. Или чтобы организовать хранение данных по парам "ключ-значение", используют хэш-таблицу.
Иногда на некоторых сайтах можно увидеть интересные надписи, вроде "контрольная сумма MD5". Смысл такой: скачиваете файл, но вдруг возникает сомнение, а не подменил ли кто-то файл? Проверить это можно разными способами, один из них - вычислить контрольную сумму. Контрольная сумма, кстати - это один из способов хэширования, смысл практически тот же самый. Из большого текста получить маленькую числовую характеристику. А MD5 - это название конкретного алгоритма хэширования.
Так вот, скачиваете файл, вычисляете от него хэш MD5 (есть утилиты для этого) и сравниваете с тем, что на сайте написано. Совпадает? Все отлично! Нет? Упс. Или недокачался, или кто-то файл подменил. Кстати, антивирусы имеют базу данных, в которой для каждого системного файла есть его хэш. Если на компьютере пользователя у системного файла другой хэш - это значит, что файл поврежден и заражен. И иногда антивирус так и говорит: "не совпадают контрольные суммы системных файлов" или "не совпадают хэши файлов".
Как рассчитывают хэш? Можно придумать самый простой алгоритм вроде такого. Берем исходный блок чисел, и просто последовательно перемножаем их друг на друга. Когда число становится слишком большим (превышает размер требуемого хэша) - отрезаем лишнее . И дальше перемножаем. Снова слишком большое число? Снова отрезаем . В итоге получится какое-то число, которое и будет хэшем. Если в исходной последовательности байт (в исходном тексте) изменить одно значение - то произведение, скорее всего, изменится, и изменится (скорее всего) наше обрезаное значение. Это пример примитивной хэш-функции. На практике никто таким алгоритмом не пользуется, потому что он не стойкий к ряду неприятностей. Например, если просто поменять местами два символа рядом - произведение не изменится. А текст-то изменился!
Поэтому реальные алгоритмы хэширования включают в себя массу всяких дополнительных действий. Перемешивание бит, перемножения с разными коэффициентами и т.д. Всё для того, чтобы даже малейшее изменение исходного текста разительно меняло значение хэша. Только в криптографии говорят не "разительно", а "лавинообразно".
Вообще говоря, возможна ситуация, когда два разных текста вдруг дадут одинаковый хэш. Эта ситуация называется коллизией. И при разработке алгоритмов стремятся к тому, чтобы вероятность этого была предельно мала. Но время от времени в старых алгоритмах находят уязвимости (способ сформировать коллизию), потому и постоянно разрабатывают новые и новые алгоритмы хэширования. Только общеизвестных сейчас несколько десятков алгоритмов.
Чтобы представить себе, как вообще такое возможно - каждому тексту поставить в соответствие уникальную числовую характеристику, я в свое время придумал себе такую картинку. Допустим, каждый текст, написаный когда-либо человеком, имеет порядковый номер. Вот пусть этот поряковый номер и будет уникальной характеристикой (хэшем) текста. Если размер хэша у нас 256 бит (большинство алгроитмов генерируют хэш от 140 до 256 бит), то с помощью числа такого размера можно пронумеровать каждый электрон во вселенной! Потому что во вселенной всего 10 в степени 80 электронов, а это сопоставимо с двойкой в степени 256. Т.е. понятно, что человечесво не способно даже близко наделать столько текстов; так что для каждого из них найдется какой-нибудь отдельный номер из этого огромного количества возможных номеров. Так что это возможно - каждому тексту дать уникальный хэш.
Но как вы понимаете, из порядкового номера нельзя получить исходный текст. И это правда - при вычислении хэша информация обрезается . Поэтому, зная хэш, невозможно узнать исходный текст. Это свойство хэш-функции очень важно, и очень широко используется. Например, пароли ни в какой системе не хранятся, но хранятся их хэши. Пользователь вводит пароль - вычисляется хэш - если совпал с тем, который в базе данных - отлично, значит, пароль правильный.
И, конечно, хэш, благодаря этому свйоству необратимости, очень широко используется в блокчейне. Там очень важно именно это свойство - невозможность подобрать исходное значение, зная требования к хэшу. Думаю рассказать об этом немного подробнее в одном из следующих постов.
Подписывайтесь на канал "Технологии Денег" в Яндекс.Дзен и Телеграм ! У меня много интересного материала!
Читайте также: