Использование DS1963 Monetary iButtons для финансовых транзакций в системах охраняемых DS1954 Crypto iButton
1 Введение
Система оплаты за проезд используемая в системе быстрой оплаты железнодорожных проездов (BART) в Сан-Франциско – это пример, в котором данные денежного эквивалента читаются и записываются электрически. В этой системе, пользователь может получить проездной билет и положить любую сумму денег в нее с помощью специального торгового автомата. Информация запоминается на билете в закодированном виде на магнитной полоске. Всякий раз, когда пользователь путешествует из одного места в другое, система удерживает стоимость проезда из суммы полученной при считывании закодированных данных, т.о. уменьшая стоимость билета. Когда ценность билета близко к исчерпанию, то ее можно восстановить, вставив билет в торговый автомат и положить дополнительные средства.
Система BART исключает необходимость в обращении денег и изменяет традиционный подход в оплате за проезд, уменьшая затраты труда и увеличивая эффективность. Подобные преимущества могут быть реализованы во многих других системах, где электрически читаемый и изменяемый «жетон» может уменьшить цену и задержку, связанную с обращением с деньгами в месте оплаты. Такой жетон может быть использован как талон на обед на территории колледжа, как проходной билет в парк аттракционов или там, где билеты или жетоны сейчас используются для денежных платежей и исключают лишний труд.
Система, описанная выше, страдает от трех значительных недостатков:
А. Бумажный билет с магнитными полосами, на которых хранится сумма депозита, может потерять данные о денежном эквиваленте при сморщивании или разрыве бумаги. Также магнитные полосы могут потерять информацию под воздействием окружающих магнитных полей, даже если несущая бумага и магнитный материал остались нетронутыми.
В. Так как магнитная регистрация – это технология чтения/записи, то имеется возможность, для технологически продвинутых личностей, считать содержимое магнитной полоски, когда билет имеет большую денежную ценность, использовать билет, пока денежный вклад не обесценится, потом переписать исходные данные в билет для восстановления ценности. Нет необходимости, для взломщика, понимания механизма шифрования денежного эквивалента, чтобы сделать это. Поэтому, использование технологии чтения/записи делает билеты уязвимыми для взломщика.
C. Технология магнитной записи требует равномерного движения магнитного материала через головки чтения/записи, чтобы считать и записать данные правильно. В связи с этим, необходимо использовать относительно сложный механизм обработки билетов для чтения, вклада и перезаписи данных денежного эквивалента.
DS1963 Monetary iButton (денежная кнопка) обеспечивает жизнеспособную, альтернативную технологию для запоминания данных денежного эквивалента, которая обеспечивает преимущества, описанные выше и не страдает от недостатков. Схема Monetary iButton запакована в прочную микро банку из нержавеющей стали, которая защищает ее от повреждения. Чтение и запись данных выполняется посредством кратковременного контакта с простым Blue Dot™ (голубая точка) приемником, не требующего сложного механического устройства. Monetary iButtons™ поддерживает не сбрасываемые счетчики, которые обеспечивают защиту от взломщика, поскольку невозможно восстановить счетчики в их исходные значения, если они были модифицированы.
Этот документ описывает систему защиты для исполнения малой финансовой транзакции, используя Monetary iButtons™ для хранения денежного эквивалента. В этой системе, дешевая Monetary iButtons, носимая пользователем, способна гарантированно хранить денежную стоимость для осуществления установленных малых транзакций, таких как приобретение вещей в торговых автоматах и в системах оплаты за проезд. Система является безопасной благодаря DS1954 Crypto iButton™(шифровальная кнопка), размещенной в торговом автомате. Crypto iButton™ охраняет вложенную сумму и поддерживает общую сумму поступлений. Надежные криптографические алгоритмы, примененные в разработке, обеспечивают прочную защиту от хакеров и взломщиков.
II. Компоненты системы
A. DS1963 Monetary iButton™
Monetary iButton™ состоит из шестнадцати 32-байтных страниц энергонезависимой оперативной памяти (NVRAM) и 32 байтного оперативного регистра. Четыре последние страницы связаны с ним 4-байтным счетчиком транзакций, который автоматически инкрементируется каждый раз, когда данные предаются из регистра в память. Данные могут передаваться в устройство и из него с нормальной скоростью 14.4 Кбит/сек и с повышенной скоростью 144 Кбит/сек. Назначение счетчика транзакций - отразить возможные атаки. При этих атаках, пользователь считывает информацию из устройства, которая представляет собой денежную стоимость, использует устройство, пока оно не обесценится и потом переписывает исходную информацию обратно в устройство. При такой попытке с Monetary iButton™, счетчик транзакций увеличивает свое значение. Так как оригинальное значение счетчика транзакций закодировано в сигнатуре данных о денежном эквиваленте, то увеличившееся значение счетчика транзакций делает сигнатуру недействительной. С помощью четырех страниц памяти, защищенных счетчиками транзакций, Monetary iButton™ обеспечивает четыре независимых TMEX файла, которые могут быть использованы для хранения денежного эквивалента. Оставшиеся двенадцать страниц памяти используются для файловой директории TMEX и для других TMEX файлов, содержащих любую другую дополнительную информацию, которая может быть необходима (например, имя пользователя и его адрес).
B. DS1954 Crypto iButton™
Crypto iButton™ выполнена на основе микропроцессора, который отвечает за сохранность данных. Он связан с Торговой Микроконтроллерной Системой, описанной ниже. Назначение Crypto iButton™ - устанавливать подлинность цифровой сигнатуры, которая делает денежный эквивалент, запомненный в Monetary iButton подлинным, а также для вклада денег и выдача новой сигнатуры в тот момент, пока она содержит все денежные средства, принятые из Monetary iButtons™. Во время считывания денег из Monetary iButtons™ Crypto iButton™ подобна крошечному сейфу, собирающему общую сумму вложенных средств, но она не может быть использована для увеличения значения, хранящегося в Monetary iButton™.
C. Торговая Микроконтроллерная Система
Торговая Микроконтроллерная Система состоит из обычного микроконтроллера, присоединенного к приемнику Blue Dot iButton™ и электрической схемы, которая приводит в действие механизм продажи, торговый автомат и др. В зависимости от назначения, в систему может входить алфавитно-цифровой дисплей и консоль ввода данных для выбора покупки. Микроконтроллер в этой системе не выполняет какую-либо охранную функцию. Он просто читает информацию из Monetary iButton™ и передает ее Crypto iButton™ вместе с суммой покупки. Crypto iButton™ рассчитывает оставшуюся сумму денег, вычисляет сигнатуру, которая затем с помощью микроконтроллера снова записывается в Monetary iButton™. После этого приводится в действие торговый автомат. В том случае, если сигнатура не действительна или имеющихся денег не хватает для покупки, Crypto iButton™ информирует об этом микроконтроллер, что транзакция не разрешена.
D. Система пополнения вклада
Пополнение вклада происходит в специальных системах, использующих другую Crypto iButton™, которая увеличивает значение в Monetary iButton™ в момент внесения вклада. Сумма вклада денег ограничена в этой Crypto iButtons™, чтобы в случае кражи, потери не превысили сумму ограничения. Система пополнения получает наличные средства от пользователя, и передает сумму наличных средств из кредитной Crypto iButton™ в Monetary iButton™ пользователя. Баланс в Crypto iButton™, предназначенной для кредита, проверяется на основе анализа полученных наличных средств.
III. Принцип действия
Crypto iButton™ в торговом автомате решает три важные системные задачи. Она проверяет действительность цифровой сигнатуры, полученной из Monetary iButton™; рассчитывает новую цифровую сигнатуру для нового, уменьшенного баланса, которую микроконтроллер записывает обратно в Monetary iButton™; и, в конечном счете, добавляет в свой надежный аккумулятор сумму оплаты из Monetary iButton™ для облегчения проверки отчетности. Для выполнения своих задач Crypto iButton™ должна быть запрограммирована, обслуживающим персоналом, секретным ключом. Crypto iButton™ расчитывает цифровую сигнатуру, применяя этот ключ к данным и потом обрабатывает получившийся пакет данных с помощью надежной односторонней хеш-функции. На выходе хеш-функции получается сигнатура. Для дальнейшего описания работы системы необходимо подробно рассмотреть формат, принятый для данных. Необходимо понимать, что существует много похожих решений этой проблемы, которые дают один результат. Решение, описанное ниже, обеспечивает надежность и возможность учета, что необходимо для жизнеспособности электронных торговых систем. Когда Monetary iButton™ приставлена к Blue Dot приемнику, микроконтроллер читает уникальный регистрационный номер устройства, нанесенный лазером. Затем он проверяет оглавление файла Monetary iButton™, чтобы определить способность существующей торговой системы поддерживать данный формат денежных данных. Если соответствие установлено, микроконтроллер читает содержимое страницы памяти, указанное в оглавлении файла и также читает значение счетчика транзакций, связанного с этой страницей. Страница содержит стандартный TMEX файл, который содержит 28 байтов полезных данных. Первые восемь байтов данных – это двоичное представление денежной суммы, запомненной на странице, и последние 20 байтов – цифровая сигнатура. Цифровая сигнатура – это результат обработка хеш-функцией SHA-1 (как описано в FIPS PUB 180-1) следующих входных данных:
Описание элемента данных |
Действительная длина данных |
Длина во внутреннем представлении |
1-ые 12 байт системного ключа |
12 Bytes |
14 Bytes |
Счетчик транзакций |
4 Bytes |
6 Bytes |
Денежная сумма |
8 Bytes |
10 Bytes |
Регистрационный номер и номер страниц |
9 Bytes |
11 Bytes |
Последние 12 байт системного ключа |
12 Bytes |
14 Bytes |
Всего: |
45 Bytes |
55 Bytes |
Внутреннее представление каждого элемента данных, описанных выше, увеличено двумя байтами, представляющих дополнительную информацию Crypto iButton™ (тип и длина). Эта дополнительная информация требуется, чтобы Crypto iButton™ могла распознать и оперировать над индивидуальными элементами данных. Микроконтроллер торговой системы посылает в Crypto iButton™ значение счетчика транзакций, цифровую сигнатуру и сумму денег, которая будет потрачена. Также прибавляет номер страницы памяти к уникальному регистрационному номеру, нанесенному лазером, и посылает все это в Crypto iButton™. Скрипт, выполняющийся в Crypto iButton™, собирает 55-байтную структуру, описанную выше, и применяет к ней алгоритм SHA-1 для вычисления 20 байт хеш-кода. Crypto iButton™ сравнивает результат полученного хеш-кода с цифровой сигнатурой. Если сравнение выявит разницу, Crypto iButton™ возвращает ошибку сравнения в микроконтроллер. Если сравнение успешно, то Crypto iButton™ инкрементирует счетчик транзакций, вычитает сумму платежа из денежной суммы, прибавляет сумму платежа к внутреннему аккумулятору платежей, и снова вычисляет с помощью алгоритма SHA-1 новую цифровую сигнатуру. Микроконтроллер торговой системы читает новую цифровую сигнатуру, прибавляет ее к уменьшившейся денежной сумме и записывает эту новую информацию назад в оперативный регистр Monetary iButton™. После проверки точности данных в оперативном регистре, микроконтроллер посылает команду на копирование данных из регистра в соответствующую страницу Monetary iButton™. Когда эта команда успешно выполнится, микроконтроллер открывает
турникет для выдачи торговым автоматом продукта. Заметьте, что когда выполнится копирование из оперативного регистра, счетчик транзакций автоматически увеличится, и его значение будет соответствовать значению, назначенному Crypto iButton™. Значение денежной суммы в Monetary iButton™ может быть считано любым компьютером или микропроцессором, но только процессор с правильно запрограммированной Crypto iButton™ сможет дебетовать или кредитовать, запомненное значение и вычислить правильную сигнатуру для осуществления имеющей силу транзакции. Денежный аккумулятор в Crypto iButton™ может быть прочитан любым компьютером, но не может быть изменен.
Crypto iButton™, используемые в системах пополнения вклада, для санкционирования операции кредитования, работают точно также, как Crypto iButton™ в системах дебета, исключая то, что направление течения денег реверсировано. В этих системах, микроконтроллер системы пополнения распознает сумму наличных средств и представляет эту сумму кредитовой Crypto iButton™ вместе со значением счетчика транзакций, уникальным регистрационным номером, нанесенным лазером, номером страницы, суммой денег и сигнатурой, как описано выше. После проверки действительности сигнатуры, Crypto iButton™ увеличивает сумму денег, прибавляя сумму поступивших наличных средств, и уменьшает свой денежный аккумулятор на эту же величину. Также как и в Crypto iButton™, предназначенной для дебита, происходит инкрементирование счетчика транзакций и вычисляется новая сигнатура, которая микроконтроллером системы пополнения, записывается в Monetary iButton™. Заметьте, что в этой системе, общая сумма денег всегда представлена суммой аккумуляторов в Crypto iButton™ для кредитования и Crypto iButton™ для дебита, и суммами денег во всех Monetary iButtons™, имеющих правильную сигнатуру. Здесь не может быть денежных сумм, которые не поддавались бы учету. (Для целей учета, может быть желательно, запрограммировать второй денежный аккумулятор в Crypto iButton™ и скрипт, который аккумулирует общую сумму денег, тоже содержащейся в Crypto iButton™, во второй денежный аккумулятор, В случае различия, имея возрастающий и убывающий денежный аккумулятор, будет легче решить проблему.) Crypto iButtons™, предназначенные для кредитования, используемые в системах пополнения, также запрограммированы скрипом, который позволяет аккумулятору денег увеличиваться посредством прямой передачи фондов из основной Crypto iButton™. (Это обычно имеет место всякий раз, когда наличные были убраны из системы пополнения. Применяемый Crypto iButton™ запросно-ответный протокол, позволяет передавать фонды через неохраняемую коммуникационную линию.) Станция пополнения может быть представлена как разменный автомат, который выдает цифровые деньги из расчета полученных физических денег, также как обычная разменная машина выдает монеты в обмен на бумажные деньги. Как и в случае с обычным разменным автоматом, система пополнения периодически опустошается и нуждается в пополнении запасов.
IV. Вопросы обеспечения охраны
A.Управление ключом сигнатуры
В конфигурационной области Crypto iButton™, хранятся две половинки секретного ключа. Они не могут быть прочитаны и изменены. Скрипт транзакции добавляет в конец каждого объекта для дальнейшей обработки половину секретного ключа. Это делается для того, чтобы сигнатура была более устойчива к попыткам распознать ключ посредством криптографического анализа. Секретный ключ, который используется всеми Crypto iButtons™ для кредитования и дебета, должен оставаться в тайне для обеспечения целостности системы. Это может быть выполнено сохранением в тайне процесса программирования Crypto iButton™ и полного секретного ключа. Тщательно разработанный протокол был создан для обеспечения этой цели. (Как пример возможной предосторожности, программирование скрипта транзакции, для загрузки одной части ключа, и блокировка другой части секретного ключа может быть выполнена для одной установки. Crypto iButtons™ может потом быть транспортирована к установке, расположенной в ином месте, для установки другой половины ключа, используя этот специальный скрипт.)
B.Эмуляция устройств
Так как Monetary iButton™ не скрывает какой-либо информации и ни реализует какие-либо вычисления, существует угроза эмуляции аппаратуры. Для защиты от этих атак, Monetary iButton™ имеет высокоскоростной режим коммуникации, который был назван overdrive. Он позволяет принимать и передавать данные со скоростью 144 Кбит/сек. Эмуляция Monetary iButton™ на таких скоростях обмена не может быть достигнута одним обычным микропроцессором. Специальная схема должна быть разработана и собрана для этих целей. Даже, если такое устройство будет сделано, оно может быть использовано только в одном месте в данное время одним человеком, что ограничивает величину потерь. К тому же, надежный механизм учета может быть задействован для обнаружения этой формы воровства и идентификации мошенника. Это возможно, потому что мошенник постарается повторно использовать прежнюю (действительную) сигнатуру и потом использует свое устройство эмуляции для подделки значения счетчика транзакций, переустанавливая его в меньшее значение. Периодическая проверка записей всех регистрационных номеров и связанных с ними счетчиков транзакций, может быть использована для определения какой из них был сброшен, а регистрационный номер может быть использован для идентификации мошенника, который это выполнил. Любая попытка представить регистрационный номер, отличный от оригинального, делает цифровую сигнатуру денежных данных не действительной. Другой эффективный, но менее желательный способ предотвращения эмуляции iButton™ - это метод «определение позиции». При этом методе торговый автомат определяет, с помощью физических средств (датчика), каким образом присоединена iButton™ к приемнику (blue dot). Так как очень не удобно для кого-либо сделать такую схему эмуляции, которая занимала столько же места, сколько настоящая Monetary iButton™. Этот способ очень эффективен против любых изощренных атак.
V. Производительность
В основе реализации системы, которая описана выше, лежит способность Crypto iButton™ скрывать секретный ключ и надежная хеш-функция, которая выполняется для создания сигнатуры. Хеш-функция (SHA-1) реализована в виде программы, зашитой в ПЗУ Crypto iButton™. Имея в виду, что при таком исполнении скорость выполнения хеш-функции мала, а также что она должна выполнятся дважды для каждой транзакции (один раз для проверки подлинности оригинальной сигнатуры, а другой раз, чтобы сгенерировать новую сигнатуру), скорость с которой транзакция может быть выполнена ограничена изначально накладными расходами вычисления хеш-функции. Для улучшения производительности, возможно применение функции, производной от хеш-функции. Преимущество состоит в том, что в Crypto iButton™ аппаратно реализована операция возведения в степень больших чисел, что дает высокую скорость такой операции. Поэтому, вычисление такой функции дает выигрыш в скорости вычисления. Одна из возможных производных функций, основанных на возведении в степень, получается путем выбора двух начальных чисел, P и Q, где Р имеет длину 512 бит и Q имеет длину 160 бит. Для генерации сигнатуры из последовательности М длиной 55 байт, описанной выше, вызывается скрипт, который вычисляет хеш значение H = (MX mod P) mod Q, где X это относительно малая экспонента, такая как 65537. Значения P и Q, так же как две части секретного ключа, содержащегося в М, составляют полный секретный ключ для проверки достоверности сообщения. Crypto iButton™ может вычислить значение Н очень быстро, потому что значение Х мало и из-за ускорения, обеспеченного аппаратной реализацией вычислений. Полученное значение имеет столько же бит, сколько хеш, полученный с помощью SHA-1, поэтому он может заменить SHA-1, как альтернативное средство проверки сообщений. Недостатком использования подобной или другой не стандартной функции в том, что она не подверглась внимательному математическому анализу, примененному к SHA-1, и может содержать некоторые спрятанные недостатки, которые не легко обнаружить. Опасность усиливается тем фактом, что существуют быстро развивающиеся цифровые теории, которые применимы к операциям возведения в степень.
VI. Выводы
Monetary iButtons™ и Crypto iButtons™ имеют следующие специальные характеристики, которые делают их подходящими для приложений, требующих охрану процесса кредитования, дебита и для хранения денежных сумм:
A. Monetary iButtons™ имеют уникальный, неизменный регистрационный номер, который позволяет сохранять денежный эквивалент в разных устройствах по разному. Это делает невозможным подделать денежное значение посредством копирования денежной суммы и сигнатуры из одной Monetary iButton™ в другую. Это также способствует раскрытию обмана, посредством прослеживания пути мошеннической транзакции к тому человеку, которому Monetary iButton™ была выдана.
B. Monetary iButtons™ имеют оперативную память, объединенную с не сбрасываемыми счетчиками, который может только быть инкрементирован каждый раз, когда выполняется запись в память. Это позволяет копировать данные о денежных суммах из устройства, использовать пока его значение исчерпано и затем восстановить значение, посредством копирования оригинальных данных обратно.
C.Monetary iButtons™ имеет малый размер корпуса из нержавеющей стали с простым способ связи, позволяющим читать и записывать данные во время моментального контакта.
D. Crypto iButton™ обеспечивает надежное сохранение секретного ключа, который используется для проверки действительности цифровой сигнатуры.
E. Crypto iButton™ обладает вычислительными ресурсами для генерирования цифровых сигнатур и проверки действительности прежде сгенерированных сигнатур.
F. Crypto iButton™ имеет денежный аккумулятор, который дает возможность проведения тщательного учета финансовых транзакций и всех денежных сумм, сохраненных в цифровой форме.
ремонт внедорожников и акпп - Ремонтируем внедорожники и акпп
|