Что нового
Теневой форум

Добро пожаловать на FSELL- крупнейший теневой форум. У нас Вы сможете найти огромное количество заработка в интернете, купить паспорт, ксиву, оружие, куча многих товаров и услуг, в виде пробива, взлома, нанять киллера. Все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса, это убережет Вас от мошенников.

Как взломать PIN-код VISA

Чёрнокнижник

Администратор
Команда форума

Как взломать PIN-код VISA

Вы когда-нибудь задумывались, что произойдет, если вы потеряете свою кредитную или дебетовую карту, и кто-нибудь ее найдет. Будет ли этот человек иметь возможность снимать наличные деньги из банкомата, каким-то образом без вашего ПИН-кода? Более того, если бы вы нашли чью-то карту, вы бы попытались угадать ПИН и воспользоваться возможностью получить легкие деньги? Конечно, ответ на оба вопроса должен быть «нет». Эта работа не касается второго вопроса, это вопрос личной этики. При этом я пытаюсь ответить на первый вопрос.

Вся информация, используемая для этой работы, является общедоступной и может быть свободно найдена в Интернете. Остальное - вопрос математики и программирования, поэтому мы можем чему-то научиться и повеселиться. Я не раскрываю никаких секретов. Кроме того, цель (и окончательный вывод) этой работы состоит в том, чтобы продемонстрировать, что ПИН-алгоритмы по-прежнему достаточно сильны, чтобы обеспечить достаточную безопасность. Мы все знаем, что технология не является слабым местом.

В этой работе анализируется один из наиболее распространенных ПИН-алгоритмов VISA PVV, используемый многими банкоматами (кредитными и дебетовыми картами), и пытается выяснить, насколько устойчивы атаки ПИН-догадок. «Угадывая» я не имею в виду выбор случайного ПИН-кода и попытку его в банкомате. Хорошо известно, что, как правило, нам дается три последовательных испытания для ввода правильного PIN-кода, если мы отказываемся от того, что ATM хранит карту. Поскольку PIN-код VISA имеет длину четыре цифры, легко понять, что вероятность случайного угадывания PIN-кода составляет 3/10000 = 0,0003, он кажется достаточно низким, чтобы быть в безопасности; это означает, что вам нужно потерять свою карту более трех тысяч раз (или потерять более трех тысяч карт одновременно, пока какой-то человек угадает ваш PIN.

То, что я на самом деле подразумевал под «угадыванием», заключалось в нарушении алгоритма ПИН-кода, поэтому, учитывая любую карту, вы сразу можете узнать связанный с ней ПИН-код. Поэтому в этом документе рассматривается эта возможность, анализируя алгоритм и предлагая метод атаки. Наконец, мы даем инструмент, который реализует атаку и дает результаты о предполагаемой вероятности взлома системы. Обратите внимание, что до тех пор, пока другие алгоритмы, связанные с банковской безопасностью (другие форматы ПИН, такие как PIN-код IBM PIN или карты проверки подлинности карты, такие как CVV или CVC) аналогичны PIN-коду VISA, такой же анализ может быть выполнен с почти такими же результатами и выводами.

Алгоритм VISA PVV

Одним из наиболее распространенных ПИН-алгоритмов является значение проверки PIN-кода VISA (PVV). Клиенту предоставляется PIN-код и карта с магнитной полосой. Кодировка в магнитной полосе - это четырехзначное число, называемое PVV. Этот номер является криптографической сигнатурой ПИН-кода и других данных, относящихся к карте. Когда пользователь вводит свой PIN-код, банкомат считывает магнитную полосу, шифрует и отправляет всю эту информацию на центральный компьютер. Там пробный PVV вычисляется с использованием введенного пользователем PIN-кода и информации о карте с помощью криптографического алгоритма. Пробный PVV сравнивается с PVV, хранящимся на карте, если они соответствуют центральному компьютеру, возвращается к авторизации ATM для транзакции. См. Более подробно.

Описание алгоритма PVV можно найти в двух документах, связанных на предыдущей странице. Таким образом, он состоит в шифровании 8-разрядной (64-битной) строки данных, называемой Transformed Security Parameter (TSP), с алгоритмом DES (DEA) в режиме электронной кодовой книги (ECB) с использованием секретного 64-битного ключа. PVV выводится из вывода процесса шифрования, который представляет собой 8-байтовую строку. Четыре цифры PVV (слева направо) соответствуют первыи четырем десятичным цифрам (слева направо) на выходе из DES, которые считаются шестнадцатеричным шестнадцатеричным символом (16 x 4 бит = 64 бит). Если из 16 шестнадцатеричных символов нет четырех десятичных цифр, тогда PVV завершается (слева направо) не десятичными символами и децимализует их с помощью преобразования A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5.

Вот пример: Выход из DES - 0FAB9CDEFFE7DCBA

PVV: 0975

Стратегия избегания децимализации путем пропуска символов до четырех десятичных цифр (что происходит почти всегда, как мы увидим ниже) очень умна, поскольку она позволяет избежать значительного смещения в распределении цифр, которые оказались фатальными для других систем, хотя влияние на эту систему будет значительно ниже. См. Также связанную с этим проблему, не относящуюся к VISA PVV.

TSP, изображенный как шестнадцатеричная шестнадцатеричная (64-разрядная) строка, формируется (слева направо) с 11 крайними правыми цифрами PAN (номер карты), исключая последнюю цифру (контрольная цифра), одна цифра от 1 до 6 который выбирает секретный ключ шифрования и, наконец, четыре цифры ПИН-кода.

Вот пример:
ПАН: 1234 5678 9012 3445
Селектор ключ: 1
ПИН: 2468
TSP: 5678901234412468

Очевидно, что проблема взлома PIN-кода VISA заключается в поиске секретного ключа шифрования для DES. Метод для этого - выполнить поиск грубой силы в ключевом пространстве. Обратите внимание, что это не единственный метод, можно попытаться найти слабость в DEA, многие пытались, но этот старый стандарт все еще широко используется (теперь он заменен AES и RSA). Это демонстрирует, что он достаточно устойчив, так что грубая сила является единственным жизнеспособным методом (в нашем случае есть несколько лучших атак, но не практичны), см. Заметку LASEC см. 1 - Biham & Shamir 1990, 2 - Biham & Shamir 1991, 3 - Matsui 1993, 4 - Biham & Biryukov 1994 и Heys 2001).

Вероятно, клавиша выбора ключа была включена, чтобы покрыть вероятность компрометации. В этом случае им просто нужно выпустить новые карты, используя другой селектор ключей. Старые карточки могут быть заменены новыми или просто банкомат может прозрачно писать новый PVV (соответствующий новому ключу и сохраняя тот же PIN-код) в следующий раз, когда клиент использует свою карту. Для встряхивания безопасности все пользователи должны попросить изменить свои ПИН-коды, однако было бы неловко, чтобы банк объяснил причину, поэтому, скорее всего, они не сделают такой запрос.

Подготовка атаки

Атака грубой силы заключается в шифровании TSP с известным PVV с использованием всех возможных ключей шифрования и сравнением каждого полученного PVV с известным PVV. Когда матч найден, у нас есть ключ-кандидат. Но сколько ключей мы должны попробовать? Как мы сказали выше, ключ имеет длину 64 бит, это означает, что мы должны попробовать 2 ^ 64 клавиши. Однако это не так. На самом деле только 56 HFR эффективны в DES-ключах, потому что один бит (наименее значимый) из каждого октета исторически зарезервирован как контрольная сумма для других; на практике эти 8 HFR (по одному для каждого из восьми октетов) игнорируются.

Поэтому пространство ключей DES состоит из 2 ^ 56 клавиш. Если мы попробуем все эти ключи, мы найдем одно и только одно совпадение, соответствующее банковскому секретному ключу? Конечно нет. Мы получим много подходящих ключей. Это связано с тем, что PVV - это лишь небольшая часть (одна четвертая) вывода DES. Кроме того, PVV вырождается, потому что некоторые цифры (между 0 и 5 после последнего, увиденного слева направо, цифры между 6 и 9) могут исходить из десятичной цифры или десятичной цифры шестнадцатеричной цифры вывода DES. Таким образом, многие клавиши будут генерировать вывод DES, который дает одно и то же соответствие PVV.

Тогда что мы можем сделать, чтобы найти реальный ключ среди других ложных положительных клавиш? Просто мы должны зашифровать второй TSP, также известный PVV, но используя только ключи-кандидаты, которые дали положительное соответствие первой паре TSP-PVV. Однако нет никакой гарантии, что мы не сможем снова получить много ложных срабатываний вместе с истинным ключом. Если это так, нам понадобится третья пара TSP-PVV, повторите процесс и так далее.

Прежде чем начать атаку, мы должны знать, сколько пар TSP-PVV нам понадобится. Для этого мы должны вычислить вероятность случайного вывода DES для получения совпадающего PVV случайно. Существует несколько способов рассчитать это число, и здесь я буду использовать простой подход, который легко понять, но который требует некоторого понятия теории вероятности.

Вероятность всегда можно рассматривать как отношение благоприятных случаев к возможным случаям. В нашей задаче число возможных случаев задается перестановкой 16 элементов (шестнадцатеричные цифры от 0 до F) в группе из 16 из них (16 шестнадцатеричных цифр вывода DES). Это дается 16^16 ~ 1.8 * 10^19, что, конечно, совпадает с 2^64 (разные числа 64 HFR).

Этот набор чисел можно разделить на пять категорий:

1. Использйте по меньшей мере четырьмя десятичными цифрами (от 0 до 9) среди 16 шестнадцатеричных цифр (от 0 до F) вывода DES.
2. Используйте только три десятичные цифры.
3. Используйте только две десятичные цифры.
4. Введите только одну десятичную цифру.
5. Используйте без десятичных цифр (все между A и F).

Давайте подсчитаем, сколько чисел приходится на каждую категорию. Если мы помечаем 16 шестнадцатеричных цифр DES-вывода asX1-X16, тогда мы можем пометить первые четыре десятичные цифры любого заданного числа первой категории как Xi, Xj, Xk и Xl. Число различных комбинаций с этим профилем определяется продуктом 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 l-k-1 * 10 * 1616-l, где приходят 6 из числа возможностей для цифры от A до F, 10-е из возможностей для цифры от 0 до 9, а 16 - из возможностей для цифры от 0 до F. Теперь общее число в первой категории просто определяется суммированием этого произведения по i, j, k, l от 1 до 16, но с i <j <k <l. Если вы выполните математическую работу, вы увидите, что это равно произведению 104/6 с суммированием по i от 4 до 16 of (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1.8 * 1019.

Аналогично, число случаев во второй категории определяется суммированием по i, j, k от 1 до 16 с i <j <k произведения 6i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 616-k, который вы можете использовать для этого 16!/(3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14/(3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7.3 * 1015. Аналогично для третьей категории мы суммируем по i, j от 1 до 16 с i <j из 6 i-1 * 10 * 6j-i-1 * 10 * 616-j, что равно 16!/(2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9.4 * 1014. Опять же, для четвертой категории мы суммируем по i от 1 до 16 из 16 of 6i-1 *10 * 616-i = 160 * 615 ~ 7.5 * 1013. И, наконец, количество случаев в пятой категории определяется перестановкой шести элементов (от A до F цифр) в группе из 16, т.е. , 616 ~ 2.8 * 1012.

Надеюсь, вы последовали вычислениям до этого момента, сложная часть выполнена. Теперь, как доказательство того, что все правильно, вы можете суммировать количество случаев в 5 категориях и видеть, что это равно общему числу возможных случаев, которые мы рассчитали ранее. Операции с использованием 64-битных чисел или округления (для поплавков) или переполнения (для целых) ошибок не позволят получить точный результат.

До сих пор мы подсчитали количество возможных случаев в каждой из пяти категорий, но мы заинтересованы в том, чтобы вместо этого получить количество благоприятных случаев. Очень легко получить последнее из первого, поскольку это просто фиксирует комбинацию четырех десятичных цифр (или требуемых шестнадцатеричных цифр, если нет четырех десятичных цифр) PVV вместо того, чтобы освобождать их. На практике это означает превращение 10 в формулу выше в 1 и требуемое количество 6 в 1, если нет четырех десятичных цифр. То есть мы должны разделить первый результат на 104, второй на 103 * 6, третий на 102 * 62, четвертый на 10 * 63, а пятый на 64. Тогда число благоприятных случаев в пяти категориях составляет приблизительно 1,8 * 1015, 1,2 * 1012, 2,6 * 1011, 3,5 * 1010, 2,2 * 109 соответственно.

Теперь мы можем получить, какова вероятность того, что выход DES будет соответствовать случайному PVV. Мы просто должны добавить пять чисел благоприятных случаев и разделить их на общее количество возможных случаев. Сделав это, мы получим, что вероятность составляет приблизительно 0,0001 или одну из десяти тысяч. Странно ли этот округлый результат? Совсем нет, просто взгляните на цифры, которые мы рассчитали выше. Первая категория доминирует на несколько порядков по количеству благоприятных и возможных случаев. Это довольно интуитивно понятно, поскольку кажется очевидным, что очень маловероятно, что у него не должно быть четырех десятичных цифр (10 шансов из 16 на цифру) среди 16-х цифр. Ранее мы видели, что связь между числом возможных и благоприятных случаев в первой категории была делением на 10 ^ 4, вот откуда и получается наш результат р = 0,0001.

Наша цель для всех этих вычислений заключалась в том, чтобы выяснить, сколько пар TSP-PVV нам нужно провести успешную атаку грубой силы. Теперь мы можем вычислить ожидаемое количество ложных срабатываний в первом поиске: будет число испытаний умножить вероятность одного случайного ложноположительного, т.е. t* p, где t = 2^56, размер пространства ключа. Это составляет приблизительно 7,2 * 10^12, довольно большое число. Ожидаемое количество ложных срабатываний во втором поиске (ограничено положительными ключами, найденными в первом поиске) будет (t*p)*p, для третьего поиска будет ((t*p)*p)*p. Таким образом, для n запросов ожидаемое количество ложных срабатываний будет t*p^n.

Мы можем получить количество поисков, ожидающих только одного ложного-положительного выражения, выражая уравнение t*p^n = 1 и решая для n. Итак, n равно логарифму в базе p из 1/t, что по свойствам логарифмов дает n = log (1/t)/log (p) ~ 4.2. Поскольку мы не можем выполнить дробный поиск, удобно округлить это число. Итак, каково ожидаемое количество ложных срабатываний, если мы выполним пять поисков? Это t*p^5 ~ 0,0007 или приблизительно 1 из 1400. Таким образом, использование пяти пар TSP-PVV безопасно для получения истинного секретного ключа без ложных срабатываний.

Атака

Как только мы узнаем, что нам нужны пять пар TSP-PVV, как их получить? Конечно, нам нужна хотя бы одна карта с известным PIN-кодом, и из-за характера алгоритма PVV это единственное, что нам нужно. В других ПИН-системах, таких как IBM, нам понадобится пять карт, однако это не обязательно с помощью алгоритма VISA PVV. Нам просто нужно прочитать магнитную полосу, а затем изменить PIN-код четыре раза, но после считывания карты после каждого изменения.

Необходимо прочитать магнитную полосу карты, чтобы получить PVV и селектор ключей шифрования. Вы можете купить коммерческий считыватель магнитных полос или сделать его самостоятельно, следуя инструкциям, которые вы можете найти на предыдущей странице и в ссылках на них. После того, как у вас есть читатель, посмотрите это описание стандартных магнитных дорожек, чтобы узнать, как получить PVV от прочитанных данных. В этом документе поле PVV в дорожках 1 и 2 называется длиной в пять символов, но фактически истинное PVV состоит из последних четырех цифр. Первым из пяти цифр является клавиша выбора. Я только видел карты со значением 1 в этой цифре, что согласуется со стандартом и с секретным ключом, никогда не подвергающимся риску (и поэтому им не нужно было переходить на другой ключ, меняющий селектор).

Я сделал простую программу C, getpvvkey.c, чтобы выполнить атаку. Он состоит из цикла, чтобы попробовать все возможные ключи для шифрования первого TSP, если полученный PVV соответствует истинному PVV, новый TSP проверяется и так далее, пока не произойдет несоответствие, и в этом случае ключ будет отброшен, а новый или пять полученных PVV соответствуют соответствующим истинным PVV, и в этом случае мы можем предположить, что мы получили секретный ключ банка, однако цикл продолжается до тех пор, пока он не исчерпает пространство ключа. Это делается для того, чтобы убедиться, что мы находим истинный ключ, потому что есть шанс (хотя и очень низкий), что первый найденный ключ является ложным.

Ожидается, что программе потребуется очень много времени, чтобы минимизировать риски отключения питания, выключения компьютера и т. Д. Время от времени он делает контрольные точки в файле getpvvkey.dat (точное время зависит от скорости компьютера, это около часа для самых быстрых компьютеров, которые в настоящее время используются). По той же причине, если найден положительный ключ, он записывается в файл getpvvkey.key. Программа отображает только одно сообщение в начале, исходную позицию, взятую из файла контрольной точки, если таковая имеется, после чего ничего больше не отображается.

Алгоритм DES является ключевым моментом в программе, поэтому очень важно оптимизировать его скорость. Я протестировал несколько реализаций: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, catacomb, libtomcrypt, cryptopp, ufccrypt. Функции DES первых четырех основаны на одном и том же коде Эрика Янга и являются наиболее эффективными (включая оптимизированный код ассемблера C и x86). Таким образом, я выбрал libdes, который был исходной реализацией и скомпенсировал весь соответствующий код в файлах encrypt.c (версия C) и x86encrypt.s (версия ассемблера x86). Код слегка изменен для достижения некоторых улучшений в атаке грубой силы: начальная перестановка является фиксированной общей крутизной в каждом шифровании TSP и поэтому может быть выполнена только один раз в начале. Еще одно улучшение заключается в том, что я написал совершенно новую функцию setkey (я назвал ее nextkey), которая является оптимальной для петли грубой силы.

Чтобы заставить программу работать, вам просто нужно ввести в соответствующее место пять TSP и их PVV, а затем скомпилировать их. Я тестировал его только на платформах UNIX, используя makefile Makeagepvvkey для компиляции (используйте команду make -f Makegetpvvkey). Он может компилироваться на других системах, но вам может понадобиться исправить некоторые вещи. Убедитесь, что определение типа long64 соответствует 64-битовому целому числу. В принципе, нет никакой зависимости от точности процессора. Я успешно скомпилировал и запустил его на Pentium-Linux, Alpha-Tru64, Mips-Irix и Sparc-Solaris. Если у вас нет и вы не хотите устанавливать Linux (вы не знаете, чего не хватает ;-) у вас все еще есть выбор для запуска Linux на USB и использования моей программы.

Как только вы найдете секретный банковский ключ, если хотите найти PIN-код на произвольной карточке, вам просто нужно написать подобную программу (извините, что я ее не написал, я слишком ленив, чтобы попробовать все 10^4 PIN-кода, соответствующий TSP, шифруя его секретным ключом (не более), получая PVV и сравнивая его с PVV в магнитной полосе карты. Вы получите одно соответствие для истинного PIN-кода. Только одно совпадение? Помните, что мы видели выше , у нас есть шанс 0.0001, что случайное шифрование соответствует PVV. Мы пытаемся использовать 10000 ПИН (и, следовательно, TSP), поэтому мы ожидаем, что в среднем 10000 * 0,0001 = 1 ложное срабатывание.

Это очень интересный результат, это означает, что в среднем каждая карта имеет два действительных PIN-кода: PIN-код клиента и ожидаемый ложный результат. Я называю это «ложным», но заметьте, что до тех пор, пока он генерирует истинный PVV, он является ПИН-кодом как действительный, как клиентский. Кроме того, нет способа узнать, что именно, даже для банкомата; только клиент знает. Даже если отрицательный-положительный недействителен в качестве ПИН-кода, у вас все равно есть три испытания в банкомате в любом случае, этого достаточно в среднем.

Поэтому необходимо исправить вероятность, которую мы вычислили в начале этого документа о случайном угадывании ПИН-кода. На самом деле это вдвое больше, т.е. 0,0006 или 1\1600, все еще очень низкий шанс.

Результаты

Важно оптимизировать компиляцию программы и запустить ее в самом быстром процессоре из-за долгого ожидаемого времени работы. Я обнаружил, что флаг оптимизации компилятора -O получает лучшую производительность, считая, что некоторое улучшение достигнуто, добавив флаг -fomit-frame-pointer на Pentium-Linux, флаг -spike на Alpha-Tru64, флаг -IPA на Mips-Irix и флаг -fast на Sparc-Solaris. Специальные флаги (-DDES_PTR -DDES_RISC1 DDES_RISC2 -DDES_UNROLL -DASM) для кода DES обычно имеют хорошие преимущества. Все эти флаги уже протестированы, и я выбрал лучшую комбинацию для каждого процессора (см. Makefile), но вы можете попытаться точно настроить другие флаги.

Согласно моим испытаниям, наилучшая производительность достигается с процессором AMD Athlon 1600 МГц, превышающим 3,4 миллиона ключей в секунду. Интересно, что он получает лучшие результаты, чем Intel Pentium IV 1800 МГц и 2000 МГц (см. Рисунки ниже, нажмите на них, чтобы увеличить). Я полагаю, что это связано с некоторой насыщенностью ввода / вывода, конечно же, кешем или доступом к памяти, что удается избежать процессора AMD (который имеет половину кеша Pentium) или материнской платы, в которой он работает. На первом рисунке ниже вы можете видеть, что скорость разрыва DES всех процессоров имеет более или менее линейную зависимость от скорости процессора, за исключением двух Intel Pentium, о которых я упоминал ранее. Это логично, это означает, что для двойной скорости процессора вы получите двойную скорость разгона, но следите за эффектами насыщения, в этом случае лучше AMD Athlon 1600 МГц, что будет даже дешевле, чем Intel Pentium 1800 МГц или 2000 МГц.

На втором рисунке мы можем увидеть более подробно то, что мы бы назвали внутренним разрывом DES процессора. Я получаю это значение, просто деля скорость прерывания на скорость процессора, то есть мы получаем количество DES-ключей, проверенных в секунду и на МГц. Это показатель производительности процессора независимо от его скорости. Результаты показывают, что лучшим процессором для этой задачи является AMD Athlon, а затем Alpha и очень близкий afterit - это Intel Pentium (за исключением более высоких скоростей, которые очень плохо работают из-за эффекта насыщения). Далее - процессор Mips, и в последнем месте Sparc. Некоторые процессоры Alpha и Mips расположены в нижней части шкалы, потому что они являются ранними выпусками, не включая усовершенствования поздних версий. Обратите внимание, что я включил производительность процессоров x86 для кода C и ассемблера, поскольку существует большая разница. Похоже, что gcc не является хорошим генератором оптимизированного машинного кода, но, конечно, мы не знаем, будет ли ручная оптимизация кода ассемблера для других процессоров (Alpha, Mips, Sparc) повысить их результаты по сравнению с собственными компиляторами C (Я не использовал gcc для этих других платформ), как это происходит с процессором x86.

Верхняя отметка, которую я запускал, составила около 3 423 922 ключа / секунду, используя процессор AMD. Итак, сколько времени потребуется AMD для разрыва PIN-кода VISA? Это будет просто соотношение между размером пространства ключа и ключевой скоростью, т. Е. 2 ^ 56 клавиш / 3 423 922 ключа / секунды ~ 2,1 * 10 ^ 10 секунд ~ 244 тыс. Дней ~ 667 лет. Это время для завершения программы, но в среднем истинный секретный ключ будет обнаружен наполовину. Использование коммерческих криптографических карт (таких как криптографический сопроцессор IBM PCI или ускоритель шифрования XL-Crypt) не очень помогает, они, как минимум, в 2 раза быстрее, чем мой верхний знак, то есть потребуется более ста лет, чтобы найти ключ, в лучшем случае. Может быть достигнута еще одна скорость (в два раза, максимум) с использованием выделенного гигабитного VPN-бокса или аналогичного оборудования, которое, безусловно, не предусмотрено производителем ;-)

Даже если вам удастся получить сотню новейших процессоров AMD или Pentium, работающих параллельно, все равно потребуется более 3 лет, чтобы найти ключ (если они снабжены криптокартами, время может быть сокращено до менее чем двух лет или меньше чем один год в случае сотен гигабитных VPN-боксов). Понятно, что только дорогостоящее выделенное аппаратное обеспечение (доступное только крупными учреждениями) или массивная атака на совместное интернет-сотрудничество будет успешной в разумные сроки (обе вещи уже были сделаны). Это хорошие новости. Плохая новость заключается в том, что я сознательно лгал немного (вы, возможно, уже заметили это): алгоритм VISA PVV позволяет использовать шифрование с тройным DES (3DES) с использованием 128-битного (всего 112 эффективных) ключей шифрования. Если 3-DES действительно используется системой PVV, вы все равно можете использовать одну и ту же атаку, но вам понадобится четыре дополнительных пары TSP-PVV (без проблем), и потребуется больше 3 * 2 ^ 56 раз больше, чтобы найти ключ двойной длины. Забудьте об этом. PVV-алгоритм с тройным DES состоит в шифровании TSP с левой половиной ключа шифрования, затем он расшифровывает результат с правой половиной ключа и снова зашифровывает результат левой половиной ключа. Обратите внимание: если вы используете симметричный 128-битный ключ, то есть левая половина равна правой половине, вы получите одно DES-шифрование с помощью одного 64-битного ключа. В этом случае алгоритм вырождается в тот, который я объяснил выше. Вот почему я сделал эту работу, потому что PVV-система устарела и, возможно, когда она была имплантирована, 3-DES не был жизнеспособным (из-за ограничений оборудования) или он казался чрезмерным (к тому времени) людям, ответственным за реализацию, так что возможно, что некоторые банки используют алгоритм PVV с одним DES-шифрованием.

Наконец, мы можем заключить, что алгоритм VISA PVV как в его общем виде с использованием 3-DES довольно безопасен. Его можно сломать только с помощью специально разработанного оборудования (подразумевая огромную инверсию и, следовательно, не стоит, см. Уэйнер и Винер), которая на много порядков превысит скорость шифрования новейших процессоров. Однако, по-видимому, бесконечное экспоненциальное увеличение вычислительных мощностей, а также интернет-сообщества заставляет думать, что система PVV может оказаться реальной угрозой в течение нескольких лет. Конечно, те банки, которые используют PVV с единственным DES (если таковые имеются), уже подвергаются реальному риску атаки на совместный Интернет. Вы можете поверить, что это очень сложно согласовать, я имею в виду убеждающих людей, но думаю о троянских и вирусных программах, и вы увидите, что это не так сложно продолжать.
 

Dimenko322

New Member
Эххх, зачем так себя мучать, если можно платить бесконтактно? А если в интернете, то и вовсе ПИН не надо
 

Prophet

Я вижу будущее!И ты по прежнему клепаеш говнокод
Можно ПЕРЕВЕСТИ БЕЗ ПИНА.ПРОСТО ЗНАЯ ПОСЛЕДНИЕ 4 ЦИФРЫ. ПЕРЕКАЗИВАЙ НА ЛЕВУЮ КАРТУ К КОТОРОЙ ЕСТЬ ДОСТУП.И простите за капс.Та й в инете с помощью карты можно обновить как который привязан к карте.На линию дзвонить не советую.Я работал сис админом в банке.Все записывают.И было чел хотел обновить пароль карты,а потом приходит реальний картхолде тут все стало ясно.А чела по голосу нашли(есть пронга которая делает фоторобот по голосу(пздц) правда делается все долго),через 1 день.Ну карту заморозили,потом возобновили.Кароче не дзвоните для обновление,повядут.Через инет можно обновить.Тунели(и дедик) в помощь
 
Вверх