2. Стандартизация магнитных карт

Как известно, формат так называемых кредитных карточек соответствует строгой стандартизации. Помимо них, данному стандарту отвечают и многие другие карты, благодаря чему они могут умещаться в самых разнообразных портмоне и обложках.


ПРИМЕНЯЕМЫЕ СТАНДАРТЫ

Наиболее широко распространенные карточки размером приблизительно 54x85 мм в действительности отвечают формату ID-1 стандарта ISO 7810 (1985 год), который также предусматривает два дополнительных формата ID-2 и ID-3. Именно формат ID-1 был взят за основу при разработке стандарта ISO 7816-1, в котором речь идет о чип-картах. Стандарт ISO 7811, опубликованный также в 1985 году, содержит пять частей, в которых приводятся основные характеристики «карточек идентификации» в широком смысле этого слова.

Стандарт ISO 7811-1 фиксирует спецификации (и в частности, формы), которым должны соответствовать группы рельефно заформованных (также говорят, выдавленных, тисненых) знаков на карточке, предназначенных для того, чтобы ее можно было идентифицировать визуально или с помощью устройства оптического считывания.

Стандарт ISO 7811-2 определяет: характеристики, которым должна отвечать магнитная полоса с низкой коэрцитивной силой (LoCo), расположенная на задней стороне карточки; требования к применяемой технике записи, а также способам кодирования информации.

Стандарт ISO 7811-3 определяет расположение зон тиснения, в которых может располагаться информация в соответствии со стандартом ISO 7811-1. Следует подчеркнуть, что информация двух зон, определенных стандартом (номер карточки и идентификация ее владельца), размещается во внутреннем кристалле карточки. Это высвобождает достаточно места в верхней части для магнитных дорожек и в средней части, в случае необходимости, для кристалла, расположенного в соответствии со стандартом ISO 7816.

Стандарт ISO 78.11-4 определяет физическое расположение так называемых дорожек ISO 1 и ISO 2 магнитной полосы, на которой они размещены, а также начало и конец зоны кодирования. Следует отметить, что магнитные дорожки обозначаются термином «только для считывания». Это означает, что в течение срока службы карточки предназначены лишь для считывания и что после этого их можно стереть и перезаписать для нового использования.

В стандарте ISO 7811-5 определяются те же самые характеристики, что и в ISO 7811-4, но только для дорожки ISO 3, на которой можно и писать, и считывать, например, чтобы зафиксировать след последней выполненной транзакции. Недавно была добавлена шестая часть (ISO 7811-6), где уточняются характеристики, которым должны соответствовать магнитные дорожки HiCo.

Стандарт ISO 7812 (1987 год) фиксирует правила, в соответствии с которыми составляются номера карточек, а также способ вычисления их управляющего ключа.

И наконец, стандарт ISO 7813 (1987 год) во многом опирается на стандарты, перечисленные выше, и определяет спецификации, предназначенные исключительно карточкам для ведения финансовых транзакций.

Приведенная информация подтверждает, что стандарты ISO 7810–7812 касаются «карточек идентификации» в широком смысле, и напоминает, что карточки, используемые в совершенно разных областях (финансовых и других), имеют много общих характеристик.

Эта тенденция к «тотальной» стандартизации, однако, не исключает возможности существования карточек стандартных размеров, где умышленно используются дорожки, расположение и кодирование которых не соответствуют стандартам, или карточек, у которых ведется запись на дорожках, предназначенных только для считывания. Наконец, стандарты ISO по своей природе — документы, с содержанием которых можно ознакомиться совершенно свободно, и информация, речь о которой пойдет ниже, не содержит ничего конфиденциального.


ТРИ СТАНДАРТИЗОВАННЫЕ ДОРОЖКИ

На рис. 2.1 представлено все необходимое, что нужно знать об основных характеристиках дорожек ISO 1, ISO 2 и ISO 3.



Рис. 2.1. Три стандартизованные дорожки ISO


Дорожка ISO 1 часто называется IATA, по имени международной ассоциации воздушных перевозчиков, поскольку она участвует в некоторых процессах резервирования билетов на самолет. Дорожка ISO 2 известна под именем АВА, по названию американской банковской ассоциации. Эта дорожка — самая простая для считывания и даже кодирования с помощью устаревшего и экономичного оборудования.

Дорожка ISO 3 часто считается «свободной», но ее также называют THRIFT или MUNTS, по имени некоторых американских фирм, советующих ее использовать. Она предлагает достаточно широкие возможности применения, но уступает пальму первенства чип-карте, которая занимает все большие позиции в банковской сфере.


Расположение

Магнитная полоса наносится в нижней части зоны, расположенной приблизительно на расстоянии 15,8 мм от верхней^ кромки карты на ее обратной стороне. Наиболее частый формат ширины магнитной полосы — половина дюйма (12,7 мм). Однако оба эти размера лишь приблизительны, поскольку роль играют расположение и ширина самих дорожек, а не их носителей.

Каждая дорожка имеет ширину в 0,11 дюйма (2,79 мм) и отделена от соседней защитным промежутком, помогающим избежать случайного захождения одной дорожки на другую, а также обеспечивающим допуск на расположение головок.

Расположение каждой дорожки определено по отношению к верхней кромке карты и составляет 0,223 дюйма — для ISO 1; 0,353 — для ISO 2; 0,493 — для ISO 3. Именно на эти величины и следует опирается для оптимального расположения головок при построении считывающих устройств.


Плотность записи

Объем информации, который может быть вмещен магнитной дорожкой, обычно выражается в битах на дюйм, или bpi (bits per inch). Дорожки стандартизованных карт имеют плотность записи 75 bpi (ISO 2) и 210 bpi (ISO 1 и ISO 3) — значения, которые, конечно, можно встретить и на нестандартных носителях.

Длина дорожки 3,375 дюйма (длина карты) соответствует теоретическому максимуму в 253 и 708 бит. Эти цифры можно сравнить, например, с объемом памяти чип-карты, который не превышает 256 бит при гораздо более высокой стоимости, но, необходимо это подчеркнуть, обеспечивающей безопасность, не идущую ни в какое сравнение с магнитными картами.

Длина, занимаемая битом на дорожке, составляет 034 мм при 75 bpi и 0,12 мм при 210 bpi. Зная, что при записи логическая 1 кодируется удвоенной частотой, нетрудно представить, какой должна быть ширина воздушного зазора магнитной головки. И наконец, можно оценить скорость считывания данных при соответствующей скорости прохождения карты, составляющей от 100 до 1500 мм/с.

Разброс цифр достаточно типичный в практике: приблизительно 300-4500 бит/с (bpsbits per second или бод) при 75 bpi, 800-12500 bps при 210 bpi.

Учитывая, что логическая 1 кодируется удвоенной частотой, демодулятор должен работать в диапазоне частот от 300 Гц до 25 кГц, что не всегда просто осуществить.

В зависимости от дорожки данные обычно кодируются в виде символов, содержащих 5 или 7 бит. На дорожках ISO 2 и ISO 3 размещаются исключительно цифровые символы (цифры), в то время как дорожка ISO 1 может вмещать и алфавитно-цифровые данные (цифры и буквы). С помощью 4 бит удается представить 16 различных символов, что достаточно для кодирования цифр от 0 до 9 и нескольких специальных символов. Пятый бит — для контроля по четности, и применение его будет рассмотрено ниже. Шесть бит позволяют закодировать 64 различных символа — все буквы алфавита (без разделения на прописные и строчные), 10 цифр и некоторое число специальных символов. Вместе с битом контроля четности получается, таким образом, семиразрядное кодирование.


ПЯТИРАЗРЯДНЫЙ ЦИФРОВОЙ КОД

Ниже представлена полная таблица истинности с шестнадцатеричным эквивалентом каждого символа пятибитного кода ANSI, использование которого рекомендовано стандартами ISO.

Пятиразрядный ANSI-код (цифровой):



Следует отметить, что у данного кода младшие значащие разряды стоят в начале, что соответствует порядку следования битов на магнитной дорожке, когда карта проходит в нормальном направлении считывания (слева направо лицом к головке).

Наибольшую важность представляют три особых символа: флажок начала (start), флажок конца (end) и разделитель поля данных (sep). Полезное содержимое дорожки (закодированные на ней данные) всегда заключено между start и end, разделитель sep может неоднократно использоваться внутри блока данных с тем, чтобы разграничить зоны, которые важно отличать друг от друга.

Символ start играет наиважнейшую роль, поскольку распознавание именно этого символа позволяет декодеру узнать, что он получает поток данных, закодированных на пяти битах, и точно определить его начало.

Мы знаем, что для синхронизации демодулятора запись всегда должна начинаться, по крайней мере, с десяти нулей, которые, естественно, требуется удалить при декодировании.

Блок «полезных» данных может начинаться с одного или нескольких битов в состоянии 0, но при этом флажок start позволяет избежать любого разночтения. В конце дорожки блок данных завершается флажком end, за ним сразу следует символ определения ошибки, так называемый LRC, речь о котором пойдет ниже.

Начало и конец дорожки заполняются нулями, что объясняет явное несоответствие между объявленными объемами: так, например, 40 символов На дорожке ISO 2 соответствует 200 бит, в то время как дорожка может вместить их до 253. Аналогичный расчет возможен и для дорожки ISO 3, которая в состоянии вместить 708 бит, а ограничена 107 символами, представляющими только 535 бит, так же, как и дорожка ISO 1, содержащая 79 полезных символов по 7 бит (то есть 553 бита).

Практический опыт подсказывает, что при кодировании следует примерно поровну распределить лишние нулевые биты, между началом и концом дорожки. Тогда полезные данные окажутся размещенными в зоне, наиболее благоприятной для считывания, а именно посередине дорожки.


АЛФАВИТНО-ЦИФРОВОЙ КОД

Ниже представлена таблица истинности семибитного кода ANSI в той же форме, что и предыдущая.

Семиразрядный ANSI-код (алфавитно-цифровой):




Помимо значительно большего числа специальных символов, редко используемых на практике, вновь можно отметить наличие флажков start, end и разделителя полей sep. Роль, выполняемая этими тремя флажками, идентична той, что они играют в пятибитном цифровом коде. Однако обратим внимание, что кодирование было выбрано так, чтобы наверняка не спутать оба стартовых символа (11010 и 1010001).

Правильно разработанный декодер будет полностью в состоянии распознать «на лету» флажок start и понять из этого, что данные закодированы семью битами.


КОНТРОЛЬ ЧЕТНОСТИ

При считывании магнитных носителей, таких как карты и билеты, ошибок бывает предостаточно. Дорожка может быть загрязнена, поцарапана или частично размагничена; кроме того, сам процесс вставки карт в считывающее устройство может быть не вполне удачным, в то время как качество считывающей головки также не всегда бывает безупречным.

Во избежание того, чтобы ошибка в одном единственном бите кредитной карточки не могла привести к вычитанию суммы одной из ваших покупок с банковского счета какой-либо знаменитости, совершенно необходимо внедрить целый комплекс мер по определению ошибок.

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

Принято выбирать значение бита чётности таким образом, чтобы общее число единичных битов в общем коде символа всегда оставалось нечетным (контроль на нечетность).

Например, в пятибитном коде цифра 6, записываемая как 0110 в двоичной системе и содержащая четное число битов в состоянии 1, будет тогда закодирована в виде 01101 путем прибавления в качестве бита четности 1, что в сумме приведет к 3 — нечетной цифре.

В семибитном коде буква Т, определяемая битами 001011, наоборот, будет закодирована как 0010110 путем добавления в качестве бита четности 0, что приведет общее число битов в состоянии 1 к 3 — также нечетной цифре.

Если во время считывания обнаруживается, что один или несколько символов содержат четное число битов, устройство заключает, что считывание было проведено с ошибкой, и, следовательно, необходимо еще раз вставить карту в считывающее устройство. В таком случае обычно прибегают к способу, состоящему в протирании карты о рукав одежды, что действительно может помочь очистить загрязнившуюся дорожку, но не является гарантированным средством решения любой проблемы.

Важно иметь в виду, что некоторые ошибки могут исказить два бита одного символа, и данная схема контроля четности в этом случае не определит ошибку. Поэтому для лучшей защиты следует предусмотреть, по крайней мере, дополнительный уровень безопасности, а еще лучше — два.


КОНТРОЛЬ С ПОМОЩЬЮ LRC

LRC (Longitudinal Redundancy Check) — продольный резервный контроль — наиболее простое из всех средств контроля за целостностью блока данных с помощью одного единственного дополнительного символа. Но при использовании только одного его не обеспечивается уровень безопасности больший, чем при контроле по четности, и многократные ошибки могут исказить контрольный символ, нарушить работу схемы контроля.

Защита с помощью LRC, применяемая к словам из любого числа битов, состоит в последовательном применении операции исключающего ИЛИ (XOR) ко всем словам, а затем в присоединении к ним результата такого вычисления в виде одного единственного слова.

Например, рассмотрим следующий блок данных (без бита четности, младший бит стоит в начале):



Определение LRC происходит по следующим этапам:



Защищенный блок данных будет тогда записан в следующем виде:



или, добавляя бит четности к каждому из составляющих его слову:



Предположим, что первое слово подвержено двойной ошибке. Это позволяет преодолеть контроль четности:



Вычислим LRC этого блока ошибочных данных (без учета входящих в него битов четности и LRC):



Вычисленный код LRC блока с ошибками (5) отличается от LRC, переданного в составе блока без ошибок (0), что индицирует наличие ошибки, не позволяя, однако, определить ее местоположение: LRC — механизм не исправления ошибок, а только их обнаружения.

В подобном случае следует повторно проводить считывание до тех пор, пока контроль четности и по LRC пройдет успешно.

В частном случае стандартизованных магнитных карт (а также большого числа нестандартных магнитных носителей) обычно прибегают к защите с помощью LRC всех символов, начиная с флажка start и заканчивая флажком end включительно. Таким образом, LRC занимает место сразу после флажка end, то есть непосредственно перед нулями заполнения.

Вероятность того, что одна или несколько ошибок смогут ускользнуть от такого двойного контроля, крайне мала. Несмотря на это, как правило, используется дополнительный третий уровень защиты.


КОНТРОЛЬ С ПОМОЩЬЮ LUHN CHECK

Рассматриваемая чисто арифметическая обработка, применимая только к цифровым данным, существует в двух вариантах в зависимости от четного или нечетного числа цифр контролируемого числа.

Если число включает четное количество цифр, необходимо, прежде всего, умножить на два каждую цифру из нечетного ряда и вычесть из полученного результата 9, если он превышает или равен 10. Все цифры, обработанные таким образом, затем складываются, и к ним добавляются все цифры четного ряда.

Контролируемое число считается верным тогда и только тогда, когда окончательный результат кратен 10. В случае карт с нечетным количеством цифр поступают наоборот: удваиваются цифры четного ряда.

На практике довольствуются добавлением одной цифры или «ключа контроля» к цифрам, правильность которых должна быть гарантирована, — и это вне зависимости от количества содержащихся в числе цифр.

Естественно, эта цифра выбирается таким образом, чтобы проверялись все перечисленные выше правила. Можно доказать, что это всегда возможно и что рассматриваемая цифра единственна.

К примеру, защищенные таким каскадным способом тройного контроля цифры кредитной карточки, считываемые на дорожке ISO 2, вполне могут считаться защищенными от любого случайного сбоя. Между тем, они не носят никакого конфиденциального характера, поскольку полностью отпечатываются кассовым аппаратом на любом чеке и хранятся продавцом в качестве доказательства.

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


ПРИМЕРЫ КОДИРОВАННОЙ ИНФОРМАЦИИ

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

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


Банковские карты

Прежде всего, обратимся к изучению банковских карточек, которые выпускаются в строжайшем соответствии со стандартами, и дорожки ISO 2, поскольку она используется чаще других.

Примерное содержимое банковской карточки



Пример, приведенный выше, естественно, не взят с персональной банковской карточки автора, а составлен на базе выдуманного номера, широко используемого на табличках, указывающих на то, что в данном месте принимаются банковские карточки: 4970 1012 3456 7890. И хотя этот номер недействителен (ключ контроля намеренно неверен), его первые цифры совершенно правдивы. Они идентифицируют изготовителя карточки, а следующие принадлежат ее владельцу. Таким образом, номера MASTERCARD и EUROCARD начинаются с 5, a VISA — с 4.

Например, цифры 4970 встречаются в начале номеров карт VISA, выпущенных La Poste, а номера карт, выпущенных, скажем, Societe Generale, начинаются с 4973. За границей встречаются другие номера, например 4567.

Первое поле данных (между флажком и разделителем) содержит только номер карты в том виде, в котором он выдавлен. Второе поле начинается сразу после разделителя с четырех цифр, указывающих срок действия данной карты в соответствии с форматом ААММ (год, год, месяц, месяц). Мы выбрали 9912 (декабрь 1999) совершенно произвольно.

Группа из трех цифр (101), которая следует затем, встречается, похоже, на всех банковских карточках. Речь идет о «служебном коде» данного приложения. Стоящие далее нули заменяют более конфиденциальные данные, которые никогда не пропечатываются ни на чеках продавцов, ни на билетах. Здесь содержится в зашифрованном виде копия четырехзначного конфиденциального кода владельца карты. Аналогичный код используется и в банковских чип-картах.

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

На рис. 2.2 представлено содержимое дорожки ISO 2, подтверждающее то, о чем мы так легко догадались сами, и вносящее некоторые полезные уточнения.



Рис. 2.2. Стандартизованное содержимое дорожки ISO 2


Например, из него мы узнаем, что «чистые» данные дорожки ISO 2 составляют 37 цифровых символов (по 5 бит). Учитывая биты start, end и LRC, получаем максимум 40 символов, речь о которых шла при рассмотрении рис. 2.1.

Интересно также отметить, что номер карточки (PAN — Primary Account Number, первичный банковский счет) может содержать до 19 цифр, хотя мы больше привыкли к номерам из 16 цифр (а когда-то существовали номера только из 13 цифр).

На рис. 2.3 показано содержимое дорожки ISO 1. Оно кажется более сложным, поскольку является алфавитно-цифровым.

Кроме данных, на дорожке ISO 2 расположено только имя владельца карточки, выраженное 26 символами (более короткие имена дополняются пробелами, а слишком длинные рискуют быть урезанными).



Рис 2.3. Стандартизованное содержимое дорожки ISO 1


Перед номером карты стоит символ формата (FORMAT), который, как нам кажется, для банковских карточек всегда обозначается буквой В.

На дорожке ISO 1 может размешаться до 76 символов данных, что в сумме с тремя так называемыми символами окружения дает 79. Стандартизованное содержимое цифровой дорожки ISO 3 представлено исключительно для информации на рис. 2.4, так как эта дорожка, являясь чисто цифровой, практически никогда не используется. Два символа формата (в данном случае речь идет о двух дополнительных цифрах) стоят в начале номера карточки, в то время как поле, рассчитанное минимум на 49 цифр, зарезервировано для данных, носящих название рабочих и данных безопасности. Предполагаемое использование этой зоны могло бы в значительной степени усилить безопасность магнитных карт, но, возможно, это стоило бы дороже, чем решение проблем, связанных с подделками.



Рис. 2.4. Стандартизованное содержимое дорожки ISO 3


Карты для оплаты проезда по скоростным дорогам

Помимо французских кредитных карточек и карточек других стран, которые принимаются практически во всех кассах для оплаты за пользование дорогами, существуют и другие типы так называемых «специальных» карточек. Как правило, они принадлежат к разряду карточек с предварительной оплатой (а значит, одноразовых); такие проездные документы действительны для определенного числа поездок и могут иметь срок использования.

Пример содержимого карты для оплаты проезда



Выше приведено содержимое дорожки ISO 2 реальной карточки для оплаты за проезд по скоростной дороге, имеющей номер 0000203158, выдавленный на обратной стороне в зоне тиснения. По ней было осуществлено только три поездки из двадцати, запрограммированных при покупке. Можно отметить, что срок ее действия не ограничен.

На самом деле не составляет никакого труда опознать эти данные при рассмотрении карты, поскольку они пропечатаны на ней четко и ясно! Точная копия этих данных с аналогичной плотностью 75 bpi записана на дорожке ISO 3, плотность записи которой, как правило, составляет 210 bpi. Это — хороший пример нестандартной карты (кроме того, используемой для считывания и записи), а также пример приложения, использующего избыточность для устранения любой возможности потери части денег из-за сбоя в работе автомата оплаты за проезд или малейшего повреждения самой карточки.

Интересно отметить, что первая группа цифр (номер карты) успешно проходит контроль Luhn Check, несмотря на то что речь совершенно не идет о банковской карточке. Данные второй группы переписываются во время каждого расхода единиц (при каждой поездке), что механически ведет за собой изменение символа LRC.


Карточки постоянного клиента

Нетрудно представить себе принципы классификации постоянных клиентов, реализованные в магнитных или чип-картах:

• карты идентификации, роль которых сводится к опознаванию клиента, при этом подсчет набранных очков на получение подарка производится на уровне центрального компьютера (система TOTAL Le Club);

• карты-«собирательницы», на которых напрямую регистрируются очки (система MOBIL Plus), что не запрещает организатору оставлять в своих руках сведения о начислении и расходе очков по каждой карточке.


Пример содержимого карточки постоянного клиента


Выше приведено содержимое дорожки ISO 2 карточки постоянного клиента системы MOBIL Plus, выданной на станции 18 ноября 1996 года и содержащей два очка постоянного клиента. После проведения проверки от одного использования к другому изменяется только число очков, в то время как на дорожке ISO 3 происходят куда более сложные для анализа вещи.

Данный пример показывает, что содержимое совершенно произвольно выбранных карточек в очень большой степени похоже на содержимое банковских карточек и даже способно успешно проходить контроль Luhn Check. И наконец, из этого примера видно, что символ LRC может принимать все возможные значения используемого кода — в данном случае он имеет вид второго флажка end.


ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ

Если абстрагироваться от новых технологий «физического» обеспечения безопасности магнитных дорожек, которые начинают разрабатываться в настоящий момент, совершенно ясно, что магнитная карта должна рассматриваться в качестве носителя данных со свободным считыванием и записью. Тот факт, что не так просто найти устройства для записи и особенно для кодирования (эта книга поможет решить и эту проблему!), не должен считаться достаточной защитой от существующего реального риска подделок, которые угрожают всем важным приложениям на основе магнитных карт.

Естественно, чип-карта более надежна в том смысле, что некоторые зоны ее памяти могут быть защищены от несанкционированных операций записи и даже считывания. Однако отметим, что почти аналогичные возможности раскрываются перед приложениями на магнитных картах. Существование трех дорожек, которые никто не запрещает «синхронизировать» между собой (большего мы не скажем), могло бы в значительной степени усложнить попытки фальсификации.

Специальное кодирование записанной информации, со своей стороны, могло бы сделать доступ к карте таким же проблематичным, как и доступ к информации, содержащейся в памяти карты на микропроцессоре.

Кроме того, многие системы на магнитных картах работают в режиме online (то есть в постоянной связи с центральным компьютером), поэтому совершенно несложно наблюдать за использованием каждой карточки в режиме реального времени и своевременно принять необходимые меры в случае обнаружения анормальной ситуации.

К счастью, большое число приложений на магнитных картах обладает высоким уровнем безопасности, в то же время совершенно непростительно, что некоторые из них (и не самые примитивные) имеет достаточно слабых мест.

Использование только одной дорожки из трех, незадействование предусмотренных механизмов обеспечения безопасности, применение ключей кодирования, конфиденциальность которых не обеспечивается на должном уровне, — что это, как не грубые ошибки?

В некоторых случаях наибольшему риску подвергается не изготовитель, а владелец карточки в связи с существующими на сегодняшний день положениями, при ознакомлении с которыми охватывает дрожь.

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

Загрузка...