Нижче наводиться стаття, я виявив недавно. Це одне з найбільш повних описів PIN Контрольна вартість (PVV) зламу.
Я думав, я хотів би повторити це тут, на моєму місцевого ведення.
У коментарі були зроблені у зв'язку з граматикою, використовуваних у початковому тексті, я виправлені деякі очевидні помилки, зберігаючи при цьому контексті вихідного матеріалу.
http://69.46.26.132/ ~ biggold1/fastget2you/tutorial. PHP
--- Справжній текст ----
Передмова
Ви коли-небудь цікаво, що станеться, якщо ви втратите вашої кредитної або платіжної картки, а кто-то знаходить. Якщо ця особа може отримувати готівкові гроші з банкоматів гадать, каким-то образом, ваш пін-код? Крім того, якщо ви були, хто вважає, кто-то картка б ви спробуйте вгадати, PIN и шанс отримати легкі гроші? Звичайно, відповідь на обидва питання буде "ні". Ця робота не стосується другого питання, це питання особистої етики. При цьому я постараюсь ответить на перше запитання.
Вся інформація, яка використовується для цієї роботи є відкритою і може бути вільно знайти в Інтернеті. Остальное дело математики та програмування, таким чином, ми можемо дізнатися що-небудь і розважитися. Я не розкрити таємницю. Крім того, мета (і остаточний висновок) цієї роботи полягає в тому, щоб продемонструвати, що PIN алгоритмів все ще досить сильні, щоб забезпечити достатню безпеку. Ми всі знаємо, технологія не є слабким місцем.
Дана робота аналізує один з найпоширеніших PIN алгоритмів, VISA PVV, використовується в багатьох банкоматах карток (кредитних і дебетових карток), і намагається з'ясувати, наскільки стійкі є PIN вгадати нападів. Під "вгадати" Я не маю на увазі, вибираючи випадкові PIN і намагається її в банкоматі. Добре відомо, що в цілому ми з урахуванням трьох послідовних спроб введення право PIN, якщо ми не банкомат тримає картки. Як VISA PIN чотири цифри довго можна легко зробити висновок, що ймовірність випадкового PIN вгадали 3 / 10000 = 0.0003, здається низьким, щоб він був безпечним, воно означає, що вам треба втратити карту більш ніж у три тисячі разів ( або втратити більше, ніж три тисячі карт одночасно:) до тих пір, поки існує розумна ймовірність втратити гроші.
Те, що я дійсно мається на увазі під "вгадати" був розірвати PIN алгоритм так що при будь-якій карткою Ви можете відразу дізнатися, пов'язані PIN. Тому цей документ дослідження, можливості, аналіз алгоритмів і пропонується метод для нападу. На закінчення ми даємо інструмент, що реалізує атаку та представити результати, про можливий шанс вийти з системи. Зауважимо, що до тих пір, поки інший банківської безпеки, пов'язаних з алгоритмами (інші PIN форматів, таких як IBM PIN або картки перевірка підписів, такі, як CVV або CVC) аналогічні VISA PIN, той же аналіз може бути зроблено приносить майже ті ж результати та висновки.
VISA PVV алгоритм
Одна з найбільш поширених PIN алгоритмів VISA PIN Контрольна вартість (PVV). Клієнт отримує ПІН та магнітної смуги карти. Закодовані в магнітної смуги складається з чотирьох цифр, які називаються PVV. Це число є криптографічного підпису PIN та інші дані, пов'язані з картою. Коли користувач вводить свій PIN банкомат зчитує з магнітною смугою, шифрує і спрямовує всю цю інформацію на центральний комп'ютер. Там суду PVV обчислюється з використанням клієнт вступив PIN і карти з криптографічних алгоритмів. Судовий розгляд PVV порівнюється з PVV, що зберігаються в карті, якщо вони відповідають центральний комп'ютер повертається в банкоматі для авторизації трансакції. Див більш докладно.
Опис PVV алгоритму можна знайти в двох документах, пов'язаних в попередній сторінці. В цілому він полягає в шифрування 8 байт (64 біт) рядок даних, називається Преобразованние безпеки Параметр (TSP), з DES алгоритм (DEA) в електронних книг кодексу режиму (ЄЦБ) за допомогою таємного ключа 64 біт. PVV випливає з результатів шифрування процесу, який являє собою 8 байт рядка. Чотири цифри PVV (зліва направо) відповідає перших чотирьох десяткових цифр (зліва направо) від виходу з DES, якщо його розглядати як 16 шіснадцяткові символів (16 х 4 = бітні 64-бітних) рядок. Якщо немає Є чотири десяткових цифр з 16 шіснадцяткові символів потім PVV завершена прийняті (зліва направо), не десяткове символів і decimalizing них за допомогою перетворення-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Ось приклад:
Результат від DES: 0FAB9CDEFFE7DCBA
PVV: 0975
Стратегія уникнення decimalization на пропуск символів до чотирьох десяткових цифр знайдені (що буває практично весь час, як ми побачимо нижче) дуже розумний, оскільки він дозволяє уникнути упередженості важливо в розподілі цифр який виявився смертельним для інших систем, хоча вплив на цю систему буде набагато менше. Див також пов'язана з цим проблема, не відносяться до VISA PVV.
ОВЧ, бачили, як 16 шіснадцяткові символів (64 біт) рядок, формується (зліва направо) з 11 праворуч цифри PAN (номер картки), за винятком останньої цифри (контрольна цифра), одна цифра від 1 до 6 який обирає таємним ключем шифрування, і, нарешті, чотирьох цифр PIN. Ось приклад:
PAN: 1234 5678 9012 3445
Ключові селектору: 1
PIN: 2468
ОВЧ: 5678901234412468
Очевидно, що проблема руйнування VISA PIN полягає у пошуку таємного ключа для шифрування DES. Метод полягає в тому, що робити грубу силу пошуках ключа просторі. Зауважимо, що це не єдиний метод, можна спробувати знайти недоліки в ДЕА, багато намагалися, але це старий стандарт, як і раніше, в широкому використанні (в даний час замінений AES і RSA, однак). Це свідчить про його досить, щоб груба сила є єдиним реальним способом (Є кілька атак, але краще не практично в нашому випадку, в резюме див. LASEC пам'ятки і брудні подробиці див Biham І Шамірі 1990, Biham І Шамірі 1991 році, Мацуї 1993, Biham І Бірюков 1994 та Heys 2001).
Ключовим селектор цифра досить імовірно, представив на можливість компромісу ключа. У цьому випадку вони просто випустити нові картки, використовуючи інший селектор ключа. Раніше картки можуть бути замінені на нові або просто банкомати можуть прозоро писати нові PVV (відповідний новим ключем і збереження того ж ПІН) наступного разу клієнт використовує його / її карту. Для струси безпеки всі користувачі повинні попросити їх змінити PIN-коду, однак було б соромно за банківські пояснити причину, так що досить ймовірно, вони б не зробити такий запит.
Підготовка до нападу
Груба сила атаки полягає в шифруванні ОВЧ з відомими PVV, використовуючи всі можливі ключі шифрування і порівнювати кожен отримав PVV з відомими PVV. Якщо файл знайдений у нас є кандидат ключа. Але скільки клавіші ми спробувати? Як ми вже говорили вище ключ довжиною 64 біт, то це означає, що ми повинні спробувати 2 ^ 64 ключів. Однак це не так. На самом деле тільки 56 біт є ефективними в DES ключами, оскільки один біт (молодший) з кожної октете історично захищені як контрольна для інших, на практиці ці 8 біт (по одному для кожної з 8 октетов) ігноруються.
Тому DES ключа простір складається з 2 ^ 56 ключів. Якщо ми спробуємо всі ці ключі будуть знайдені один і лише один матч, у відповідності з банківським секретний ключ? Звичайно, ні. Ми отримаємо багато відповідності клавіш. Це відбувається тому, що PVV це лише невелика частина (одна четверта) від DES вихідних. Крім того PVV є вироділісь, оскільки деякі цифри (тих, від 0 до 5 після останнього, видел з лева на право, між цифрою 6 і 9) може виходити від десяткових цифр або decimalized шіснадцяткові цифри DES виробництва. Таким чином, багато хто ключі дасть DES виробництва, який дає до того ж відповідає PVV.
Тоді те, що ми можемо зробити для того, щоб знайти реальні ключові числі інших ложноположітельний ключі? Просто у нас є для шифрування другого різних ОВЧ, а також з відомими PVV, але тільки за допомогою ключів, які кандидат дав позитивну відповідність з першого ОВЧ-PVV пара. Однак немає жодних гарантій того, ми не зможемо отримати ще багато помилкові спрацьовування разом із справжнім ключем. Якщо це так, то нам знадобиться третій ОВЧ-PVV пара, повторіть цей процес і так далі.
Перед тим, як ми розпочнемо нашу атаку ми повинні знати, скільки ОВЧ-PVV пара нам потрібна. Для цього ми повинні обчислити ймовірність випадкового DES виведення приносити відповідності PVV тільки випадково. Є кілька шляхів для розрахунку цього числа, і тут я буду використовувати простий підхід легко зрозуміти, але яка вимагає певного фону в математиці імовірності.
Ймовірність завжди можна розглядати як співвідношення сприятливих випадків до можливих випадків. У нашій задачі число можливих випадках дається перестановка з 16 елементів (від 0 до F шістнадцятковий цифр) в групі з 16 з них (16 шістнадцятковий цифр DES вихідних). Це дає 16 ^ 16 ~ 1.8 * 10 ^ 19, який, звичайно, збігається з 2 ^ 64 (різні номери 64 біт). Цей набір номера можуть бути розділені на п'ять категорій:
Ті, принаймні чотирьох десяткових цифр (від 0 до 9) з 16 шістнадцятковий цифр (від 0 до F) від DES вихідних.
Ті, хто точно лише три десяткових цифр.
Ті, хто точно тільки двох десяткових цифр.
Ті, хто точно тільки одне десяткова цифра.
Ті, хто не десяткових