Ох, ребята,
смотрю затронула вас тема таксофонных карт
за живое место. Да и не только вас, меня тоже.
Вышло две большие статьи на эту тему, а
отзывов хватило бы на “Войну и мир”.
Подумал я тут, подумал и решил выдать вам
цикл статей, конечной целью которого будет
создание общими усилиями эмулятора
таксофонной карты. Прошу всех желающих
присоединяться ко мне. Вся информация,
которая будет изложена в данном цикле,
является как собственной, так и творческой
переработкой других источников. Так что не
плюйтесь и не кричите, что этим дерьмом
заполнен весь И-нет. Заполнен то он заполнен,
но вот систематизировать эту информацию
никто не берется и плюс ко всем большинство
инфы устарело и к делу не относится. Поэтому
в данном цикле статей будет разбираться
пошаговое изготовление эмулятора
таксофонной карты на основе только самой
свежей и проверенной инфы, что будет весьма
полезным для начинающих “умельцев”. Но
информация будет подаваться малыми
порциями, чтобы можно было проверять ее
актуальность. Так что статьи будут
небольшие, но содержательные. Итак,
приступим.
Шаг первый. Что
представляет собой таксофонная карта и
какие они бывают.
Первые смарт-карты
(карты основанные на чипах) появились в
середине 80-х годов и буквально моментом
вытеснили магнитные карты и карты на
аналоговых элементах в области
телекоммуникаций. Новое поколение карт
обеспечивало и обеспечивает (к сожалению 🙁 )
более высокую степень защиты и
устойчивости к различного рода взломам.
Основное
применение смарт-карты нашли в области
общественной телефонии, и специальные
таксофоны заменили привычные всем автоматы
с монетками. До нас этот процесс докатился
где-то к середине 90-х годов, ну а бум
таксофонных карт приходится на нынешний
момент. Ну а поскольку есть бум, то есть и
монополия телефонных компаний, что нам,
хакерам, ессесно, весьма не по вкусу.
Поэтому, и начали люди выдумать способы
обмануть эту плоскую вещицу, весом в
несколько граммов, но содержащей в себе
столько халявы, что и представить трудно.
Мыслимое ли дело, иметь девайс, при помощи
которого можно звонить кенту в Штаты или в
Бундес, общаться с ним часами и не платить
за это ни копейки. Нравится такая
перспектива? Мне тоже, поэтому давайте
попробуем общими усилиями создать такой
девайс и утереть всем нос.
Таксофонная
карта представляет собой пластиковую
карточку со встроенным чипом (рис.1). Чип
представляет собой комбинированную
микросхему памяти, которая содержит как
область для записи данных, так и область
только для чтения. (обычно область read-only
содержит некоторые данные о типе карты, ее
производителе и кое-что еще). Эта микросхема
не что иное как EPROM - чип (ПЗУ
программируемое постоянным напряжением) на
основе NMOS или CMOS технологии и объемом 256 или
128 бит. Другие технические характеристики
приведены ниже:
- протокол обмена
данными: синхронный; - потребляемая мощность:
85 мВт в режиме чтения, 125 мВт в режиме
записи (NMOS - технология, господа!); - напряжение
программирования: 21 В; - время доступа: 500 нс;
- рабочий диапазон
температур: -100...+170 0С.
Насколько я знаю,
все современные смарт-карты основаны на
стандарте ISO-7816, описывающем микросхемы
синхронного обмена данными для таксофонных
карт.
Но почему же мы
не можем перезаписывать эти карты, если это
ПЗУ, которое как мы знаем стирается либо
ультрафиолетом, либо постоянным
напряжением, и перезаписывается при помощи
специальных девайсов, называемых
программаторами? Ну стереть-то карту УФ-лучами
мы сможем, предварительно аккуратно
вырезав чип из карты, но вместе с
информацией о том, сколько у нас единиц на
карте, мы сотрем и служебную информацию. А
вот эта служебная информация и находится
как раз-таки в той read only области, которая
закрывается путем пережигания
специального предохранителя, встроенного в
чип, и делается это производителем карты.
Вот это и есть основная степень защиты. Т.е.,
если бы смогли восстановить эту проволочку
внутри самого чипа, мы могли бы
перепрограммировать карту, но мы не Левши,
поэтому вряд ли у кого получится такой
фокус.
Поэтому нам
остается лишь один вариант - создать
эмулятор таксофонной карты. Чтобы его
создать, нам нужно знать служебную
информацию записанную в той самой read only
области, адресацию сегментов памяти внутри
чипа и “разводку” чипа, т.е. назначение его
контактов.
На сегодняшний
день используются два вида чипов: AFNOR и ISO.
Отличаются они только расположением
контактов. На рисунке 2 показаны типы чипов,
используемых в современных смарт-картах, (там
же – разводка контактов) так что сверяясь с
рисунком и своей картой, ты можешь
определить тип своей карты. Сейчас мной
создается БД чипов по внешнему виду, так как
она явно не полная, так что если у кого есть
возможность просьба скинуть на мыло
изображение чипа.. Упрощенная схематика
чипа показана на рисунке 3.
Назначение
контактов для старых карт (по стандарту ISO
7816):
1 - Vcc (напряжение
питания, 5 В)
2 - R/W (управляющий контакт чтения-записи)
3 - Clock (контакт синхронизации)
4 - Reset (сброс состояния)
5 - Ground (общий вывод)
6 - Vpp (напряжение программирования, 21 В)
7 - I/O (контакт чтения/записи данных)
8 - Fuse (тот самый пережженный предохранитель)
Назначение
контактов для новых карт (по стандарту ISO
7816-1):
1 - Vcc (напряжение
питания, 5 В)
2 – Reset (сброс состояния)
3 - Clock (контакт синхронизации)
4 - R/W (управляющий контакт чтения-записи)
5 - Ground (общий вывод)
6 - Vpp (напряжение программирования, 21 В)
7 - I/O (контакт чтения/записи данных)
8 - Fuse (тот самый пережженный предохранитель)
Назначение
контактов для модифицированных новых карт (по
стандарту ISO 7816-2):
1 - Vcc (напряжение
питания, 5 В)
2 – Reset (сброс состояния)
3 - Clock (контакт синхронизации)
4 – not connected
5 - Ground (общий вывод)
6 - not connected
7 - I/O (контакт чтения/записи данных)
8 - not connected
** Для этих карт
используется одно напряжение 5В как для
питания самого чипа, так и в качестве
напряжения программирования.
На сегодня все, в
следующий раз мы поговорим о стандарте ISO 7816
и о его спецификациях и тем самым определим
методику создания эмулятора.