6 февр. 2008 г.

Взломан Chip & PIN? Ха!

С удовольствием посмотрел полный "дюдюктивный" сюжет BBC с живой демонстрацией relay-атаки на Chip&PIN и запись выступления одного из участников сюжета на конференции с более подробным рассказом о деталях, с вопросами из зала и с демонстрацией сокращенного сюжета BBC. Зал в восторге, аплодируют стоя!

"Атака" начинается с установки поддельного терминала (и ПИН-пада, в данном случае он встроен в терминал), который для начала перехватывает ПИН и... на этом можно было бы уже остановиться!

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

Что можно сделать зная ПИН чиповой карты?

Самый частый ответ -- воспользоваться украденной копией трека в любом магнитном банкомате (съездить для этого в Россию, например, или в Америку). Другая возможность -- воспользоваться той же копией в чиповом банкомате, поскольку fallback транзакции никто еще не отменял все будет работать (с большой вероятностью)! Копию магнитного трека в "фальшивом" терминале получить не сложно (в "настоящем" терминале для этого нужно чуть больше потрудиться, ведь копия трека "на чипе" может отличаться от магнитного трека).

Однако ребята, получив ПИН код, не остановились и затеяли весь это relay фактически "подключив" настоящую карту, вставленную в фальшивый терминал в кафе, к настоящему терминалу в книжном магазине. Фальшивый терминал напечатал чек на 5 фунтов, а настоящая транзакция была совершена на 50.

Что это меняет?

Мне кажется, с точки зрения жуликов -- ничего! Лишнее усложнение. Как только получили ПИН и трек деньги уже в кармане!

Почему же такое внимание?

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

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

Так что на самом деле, в этой атаке продемонстрировано насколько уязвимым является ПИН в торговой сети, а весь relay происходит только от желание авторов куда-то применить свой протокол, который по их мнению решает проблему relay атак. (Ее то он может быть и решает, только вот есть ли сама проблема?)

Как же можно бороться с компрометацией ПИН?

  • Сильно могло бы помочь отсутствие магнитной полосы на карте (как Visa V-Pay)

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

  • Использование разных ПИН-кодов для чиповых и магнитных транзакций.

    Два ПИН кода было бы кошмаром для владельцев карт! Но можно наверное просто не использовать ПИН в торговых терминалах. Нет ПИН кода, нет проблемы.

  • Запрет fallback.

    Думаю это можно сделать хотя бы в банкоматах, но и это не спасает от жуликов, пока на рынке много не-чиповых банкоматов. Хотя от жуликов это не спасает эквайера, а банк эмитент и может быть его клиент будут защищены, если транзакция происходит в liability shift зоне.

    Мне кажется это самая разумная мера. Запретить" можно либо перенеся ответственность на эквайера (он тогда сам их запретит), либо эмитентам сообща посылать отказы по таким транзакциям.
There are nine and sixty ways of constructing tribal lays and every single one of them is right!

29 июл. 2007 г.

Как устроен билет Московского Метро?

Купил вчера (28.07.2007) билет метро Mifare Ultralight, номер 0024797406 на 10 проходов, "желтый ящик" говорит про него, что его надо использовать до 28.08.2007. Вот его содержимое:

04 E7 4E 25 D1 C4 02 80 97 48 00 00 00 00 00 00
41 87 50 17 A6 0D E4 16 37 1B C0 00 16 38 00 00
16 38 1E 40 0A 00 00 00 00 04 C1 43 00 00 00 00
16 38 1E 40 0A 00 00 00 00 04 C1 43 00 00 00 00

Насколько можно догадаться первый сектор
4187 -- не ясно, что это такое
5 -- бывает 5 бывает 6
0 -- может быть часть номера билета
17A60DE = 24797406 т.е. номер билета. (Не ясно начинается ли номер с 0?) Странно, если номер занимает не целое число байт.
4 -- не ясно, похоже на константу
1637 -- похоже на дату, дата изготовления билета (?)
1B C0 00 -- не ясно что такое, на всех билетах, которые я видел до сих пор -- константа
1638 -- похоже на дату, дата продажи билета (?)
00 00 -- не ясно, что такое

второй сектор (третий -- его резервная копия)
1638 -- дата первого использования, или дата начала действия билета, если билет новый
1E -- похоже на срок действия в днях (30) от даты продажи билета (?)
40 -- не ясно, что это такое, но при первом использовании превращается в 00, думаю, что "желтый" ящик именно по этому полю определяет, что билет новый и выдает другое сообщение ("использовать до ...")
0A -- количество оставшихся проходов
00 00 -- не ясно
00 -- бывает 01 на билетах 20 поездок
00 04 С1 43 -- похоже на MAC
00 00 00 00 -- не ясно

после первого использования в турникете 29.07.2007, второй сектор изменил значение на

16 39 1E 00 09 00 00 00 DB 0E F1 D5 00 00 00 00

интересно, что изменится при проходе завтра?

Превратится ли 1639 в 163A, что будет означать, что это дата прохода, или не изменится и тогда -- это дата начала действия билета и + 30 дней к ней -- срок окончания действия билета.

Новое значение "второго сектора"

16 39 1E 00 08 00 00 00 A1 46 F9 D4 00 00 00 00

что подтверждает, что дата 16 39 это дата первого прохода!

Видно так же, что кроме оставшегося количества проходов (стало 8) меняется и MAC или как там они его называют

Ясно, что билет можно "восстановить" в исходное значение, не видно что этому может помешать!

Скорее всего, система обнаружит подделку через некоторое время. Через час? Два? Сутки?

Надеюсь, что "MAC" включает в себя уникальный ID кристалла, иначе карту будет слишком легко клонировать!

Интересно так же. как система ведет себя если резервная копия трека отличается от основной... на магнитных билетах это одно время приводило к проблемам.

Надеюсь на Ultralight их нет, но с другой стороны зачем нужна копия? Что если оригинал говорит, что осталось 1 поездка, а копия, что осталось 10?

Все мои гипотезы легко проверить, одна беда -- я не пользуюсь метро! :)

Есть желающие помочь?