В статье рассматривается концепция аутентичности на примере решений компании Maxim/Dallas, которая предлагает защищенные микросхемы памяти для обеспечения контроля безопасности и защиты информации и решения таких задач, как:
– защита интеллектуальной собственности;
– лицензирование встроенного аппаратного и программного обеспечения;– функция «защищенное ПО» и установка статуса;
– запоминающие устройства для хранения данных с защитой от несанкционированного копирования.
В эпоху все большего распространения электронного способа хранения личных и корпоративных данных, а также угрозы терроризма достоверная идентификация имеет первостепенное значение. Это важно не только для частных лиц, но и для электронной продукции. Производителям систем необходимо защищать свою продукцию от внешних хакерских атак, будучи в то же время уверенными, что безопасность не может быть нарушена изнутри по причине использования поддельных компонентов аппаратной части. Ключом для осуществления этих противоречивых требований является проверка аутентичности.
ЧТО ТАКОЕ АУТЕНТИФИКАЦИЯ?
Аутентификация — процесс, в котором два или более объекта доказывают друг другу свою подлинность (аутентичность). В случае односторонней аутентификации один объект доказывает свою подлинность другому. В случае двусторонней аутентификации обе стороны доказывают свою аутентичность друг другу. Самым распространенным методом аутентификации является пароль. Основная проблема паролей заключается в том, что они становятся видны при использовании, что создает риск их воровства.
Проанализировав историю применения криптографии, в 1883 г. бельгийский ученый Август Керкхоффс опубликовал революционную статью по военной криптографии, в которой утверждал, что вместо того, чтобы полагаться на скрытность, безопасность должна основываться на мощных ключах, поскольку в случае взлома необходимо будет заменить только ключи, а не всю систему.Система аутентификации, основанная на ключах, работает следующим образом: (секретный) ключ и данные, которые впоследствии необходимо будет аутентифицировать («сообщение»), принимаются в качестве входных данных для вычисления кода аутентификации сообщения (КАС). Затем КАС прикрепляется к сообщению. Получатель сообщения выполняет те же вычисления и сравнивает свою версию КАС с той, что была получена вместе с сообщением. Если оба КАС совпадают, сообщение считается подлинным. Слабость этой базовой модели заключается в том, что сообщение может быть перехвачено и впоследствии воспроизведено третьей стороной, и по ошибке принято за подлинное.
Чтобы получить доказательство подлинности создателя КАС, получатель генерирует случайное число и посылает его в виде запроса отправителю.
Отправитель КАС должен при этом вычислить новый КАС, основанный на секретном коде, сообщении и запросе, и послать его в качестве ответа получателю. Если отправитель может создать достоверный КАС для любого запроса, то с большой вероятностью можно утверждать, что он знает секретный код и может считаться аутентичным. Эта схема аутентификации по запросу и отклику проиллюстрирована на рисунке 1.
В криптографии алгоритм, генерирующий КАС фиксированной длины из самого сообщения, называется односторонней хеш-функцией. «Односторонность» означает здесь, что исключительно трудно восстановить из КАС фиксированной длины, как правило, более длинное сообщение. При шифровании, наоборот, размер зашифрованного сообщения пропорционален исходному сообщению.Разработанный Национальным институтом стандартов и технологии США (NIST) односторонний хеш-алгоритм SHA-1 тщательно исследован и сертифицирован во всех странах (см. www.itl.nist.gov/fipspubs/fip180-1.htm). На его основе был создан международный стандарт ISO/IEC 10118-3:2004. Математический аппарат данного алгоритма доступен на сайте NIST и в данной статье не рассматривается. Отличительные особенности алгоритма SHA-1: 1) необратимость — с помощью компьютера невозможно вычислить исходное сообщение, соответствующее КАС; 2) устойчивость к коллизиям — практически невозможно найти два исходных сообщения, дающих один КАС;3) сильный «лавинный» эффект — любое изменение в исходном сообщении ведет к значительным изменениям в КАС.По этим причинам, а также учитывая международную верификацию алгоритма, компания Dallas Semiconductor/Maxim выбрала алгоритм SHA-1 для проверки аутентичности методом запроса и отклика в своих микросхемах защищенной памяти.
ФУНКЦИОНАЛЬНОЕ ВОПЛОЩЕНИЕ НЕДОРОГОЙ БЕЗОПАСНОЙ АУТЕНТИФИКАЦИИ
Благодаря однопроводному интерфейсу 1-Wire микросхему DS2432 компании Dallas Semiconductor/Maxim можно легко включить в состав любой схемы обработки цифрового сигнала, например в схему с микроконтроллером. В простейшем случае потребуются только один свободный вывод входа/выхода и подтягивающий резистор для линии 1-Wire, как показано на рисунке 2.
Если вычислительные возможности микроконтроллера или свободный объем программной памяти недостаточны для вычисления КАС, можно применить сопроцессор DS2460 SHA-1 или предоставить выполнение этой задачи ближайшему процессору системы или сети. Дополнительное преимущество сопроцессора DS2460 SHA-1 состоит в безопасном хранении секретного системного ключа в защищенной памяти, а не в программном коде центрального процессора.
ВСТРОЕННОЕ УПРАВЛЕНИЕ ЛИЦЕНЗИРОВАНИЕМ ПРОГРАММНОГО И АППАРАТНОГО ОБЕСПЕЧЕНИЯ
Интеллектуальную собственность, вложенную в базовую разработку (образец продукции), которая в дальнейшем используется для производства по лицензии третьей стороной, необходимо защитить от возможного незаконного использования. С точки зрения возврата инвестиций также необходимо отслеживать число использований базовой разработки. Эти и другие требования с легкостью выполняются с помощью предварительно запрограммированной микросхемы DS2432 (параметры памяти и значения секретного кода задаются перед поставкой стороннему производителю).
В процессе самопроверки при включении базовое электронное изделие выполняет процедуру аутентификации с чипом DS2432. Только DS2432 с подлинным секретным кодом, известным лишь лицензирующей компании и базовому электронному изделию, выдаст в качестве отклика подлинный КАС. При обнаружении неверного КАС процессор изделия осуществит предусмотренные необходимые действия. Дополнительное преимущество такого подхода состоит в возможности селективного лицензирования и включения функций базового изделия с помощью установок в защищенной секции памяти DS2432 (подробнее об этом — в разделе Программное управление функциями). DS2432 с секретным ключом поставляется покупателю лицензии или стороннему производителю одним из двух безопасных методов: а) после предварительного программирования компанией-продавцом лицензии; б) после предварительного программирования компанией Maxim/Dallas согласно данным, предоставленным компанией-разработчиком. В любом случае количество устройств, отправленных покупателю лицензии или производителю, известно, и эта цифра может быть использована для контроля лицензионных отчислений.
ПРОВЕРКА ПОДЛИННОСТИ АППАРАТНОГО ОБЕСПЕЧЕНИЯ
Говоря о проверке подлинности аппаратной части, рассмотрим два случая: а) «клонированная» (поддельная) печатная плата с точной копией прошивки/ПЛИС и б) «клонированный» системный процессор.
В первом случае встроенная прошивка/ПЛИС пытается аутентифицировать поддельную печатную плату. Производитель подделки должен загрузить секретный код в DS2432, чтобы записать данные в пользовательское ЭСППЗУ. Хотя данные при этом могут выглядеть достоверно, секретный код не будет распознан системой. Прошивка/ПЛИС должна быть точной копией оригинала, как из-за сложности ее изменения, так и для совместимости с центральным процессором.
При включении питания плата выполняет процедуру аутентификации с DS2432 по запросу и отклику, поэтому КАС, генерируемый DS2432, будет отличаться от КАС, вычисленного микроконтроллером или ПЛИС. Это несовпадение КАС — весомое свидетельство неаутентичности платы. Несовпадение кодов будет обнаружено системой, выполняющей процедуру запроса и отклика с платой, и будут осуществлены необходимые действия. Во втором случае печатная плата пытается произвести процедуру аутентификации центрального процессора.
Плата может проверить подлинность процессора следующим образом:
1) сформировать запрос и дождаться, пока DS2432 вычислит КАС идентификации запроса и отклика;
2) отослать данные запроса (естественно, кроме секретного кода) на сетевой процессор, который на основе этих данных и собственного секретного кода вычисляет КАС и отсылает его назад. Если оба КАС совпадают, плата может заключить, что процессор подлинный. Однако совпадение может быть получено и в том случае, если поддельными являются как процессор, так и DS2432.
ПРОГРАММНОЕ УПРАВЛЕНИЕ ФУНКЦИЯМИ
Разнообразие электронных систем простирается от карманных устройств до приборов, занимающих несколько стоек. Чем больше устройство по размерам, тем дороже его разработка. Для оптимизации расходов на разработку большую систему желательно составлять из некоторого количества меньших по размеру подсистем (плат). Зачастую в приложении востребованы не все функции подсистемы.
Исходя из затрат, оптимально не удалять лишние функции, а реализовать запрет на их использование с помощью управляющего ПО. Однако возникает новая проблема: хитроумный покупатель, которому нужны несколько полнофункциональных систем, может приобрести один полнофункциональный блок и несколько блоков с ограниченными функциями. Копируя затем ПО полнофункционального блока, он может превратить блоки с ограниченными функциями в полнофункциональные за меньшие деньги, в ущерб продавцу электронных систем.
Микросхема DS2432, установленная на плате каждой из таких подсистем, может защитить продавца от подобного мошенничества: помимо аутентификации по запросу и отклику, эта же DS2432 записывает индивидуальные установки конфигурации системы в пользовательское ЭСППЗУ. Как рассказано ниже в подразделе Безопасность данных, эти данные защищены от неавторизованных изменений, что передает полное управление ими в руки продавца системы.
Параметры могут храниться в форме битовой матрицы или кодовых слов. Из практических соображений способ задания конфигурации должен быть наиболее простым. Благодаря все тому же интерфейсу 1-Wire все, что для этого требуется, — добавить один транзистор и терминал доступа, как показано на рисунке 3.
С этого терминала конфигурацию можно записать непосредственно в память DS2432, не включая при этом остальную часть платы. Транзистор MOSFET изолирует DS2432 от остальной схемы, не препятствуя нормальному доступу к этой микросхеме, когда подсистема работает в нормальном режиме.В качестве бонуса такой способ задания конфигурации позволяет проводить дистанционное обновление или изменение системы после установки ее у заказчика. Часть пользовательского ЭСППЗУ, не используемая для задания конфигурации, может быть задействована для идентификации платы в виде электронной фирменной этикетки. Данная функция не рассматривается в этой статье, ее детальное описание можно найти в руководстве по применению Dallas Application Note 178.
ОПИСАНИЕ ФУНКЦИЙ АУТЕНТИФИКАЦИИ DS2432
Архитектура устройства
Основные элементы и направления передачи данных 1-Кбитной микросхемы защищенной памяти DS2432 SHA-1 показаны на рисунке 4. Можно видеть 8-байтный секретный код и буферную (сверхоперативную) память, где временно хранится сформированный запрос. На рисунке также изображены ранее не упоминавшиеся уникальный ID-номер устройства (стандартная функция интерфейса 1-Wire), 4 страницы пользовательского ЭСППЗУ, регистры управления и системные константы.ID-номер устройства служит адресом узла в сети 1-Wire, а также участвует в процессе аутентификации. В пользовательской памяти хранится большая часть «сообщения», которое следует аутентифицировать. Начальные константы (генератора случайных чисел) необходимы для форматирования, а также для заполнения при формировании 64-байтного входного блока данных для вычисления SHA-1. Регистры управления выполняют специальные функции, такие как опциональная защита секретного кода от записи или режим эмуляции ППЗУ; они не используются в процессе аутентификации.ID-номер устройства и содержание пользовательского ЭСППЗУ можно считывать без ограничений.
Имеется полный доступ к чтению/записи буферной памяти. Секретный код можно загружать напрямую, но его нельзя прочитать. Изменение содержания пользовательской памяти или регистров возможно только если процессор и управляемое устройство (например, DS2432) вычислили одинаковые КАС, чтобы открыть путь из буферной памяти в ЭСППЗУ. Блоком SHA-1 микросхемы DS2432 можно управлять тремя различными способами в зависимости от цели вычисления КАС. В любом случае SHA-1 получает 64 байта входных данных и вычисляет на их основе 20-байтный КАС. Различия заключаются во входных данных. Одно из основных требований к защищенным системам заключается в том, что центральный процессор должен либо знать, либо быть способен вычислить секретный код управляемого устройства, который был бы подлинным/аутенти чным для данного приложения.
Аутентификация методом запроса и отклика
Основная задача DS2432 — аутентификация методом запроса и отклика. Центральный процессор посылает случайный запрос и дает команду DS2432 вычислить ответный КАС на основании запроса, секретного кода, данных одной из страниц памяти, выбранной процессором, и дополнительных данных (все это в совокупности составляет «сообщение»). Подробно это показано на рисунке 5.
После завершения вычислений DS2432 посылает КАС центральному процессору для проверки. Процессор повторяет вычисление КАС, используя подлинный секретный код и те же данные сообщения, которые были использованы микросхемой DS2432. Совпадение этого кода с КАС, полученным от DS2432, доказывает подлинность устройства, поскольку лишь аутентичная микросхема DS2432 правильно ответит на последовательность в процессе запроса и отклика. Важно, что запрос формируется на основе случайных данных. Использование неизменного, повторяющегося запроса делает систему беззащитной перед хакерской атакой методом «записи/воспроизведения», при которой вместо КАС, только что вычисленного аутентичной микросхемой DS2432, записывается и воспроизводится статичный (подлинный) КАС.
Безопасность данных
Помимо доказательства аутентичности управляемого устройства, весьма желательно знать, что данные, находящиеся в памяти устройства, надежны. С этой целью доступ на запись в ЭСППЗУ DS2432 строго ограничен. Перед копированием данных из буферной памяти в ЭСППЗУ или управляющие регистры микросхема DS2432 запрашивает у обращающегося к нему процессора КАС разрешения на запись для подтверждения его утентичности. DS2432 вычисляет этот КАС на основании новых данных в буферной памяти (8 байт), секретного кода (8 байт), данных из страницы памяти, которая будет изменена (28 байт), системных констант (12 байт), номера выбранной страницы (1 байт), кода семейства DS2432, серийного номера микросхемы DS2432 (6 байт). Аутентичный процессор знает секретный код и может вычислить подлинный КАС разрешения на запись. Получая от процессора этот КАС в составе команды копирования данных, DS2432 сравнивает его с собственным результатом. Данные из буферной памяти передаются по заданному адресу в ЭСППЗУ только если оба КАС совпадают. Естественно, защищенные от записи страницы памяти не могут быть изменены даже в случае правильного КАС.
Защита секретного кода
Архитектура DS2432 позволяет напрямую загружать секретный код в это устройство. Защита секретного кода достигается путем защиты как считывания, так и, при желании, записи, что гарантирует невозможность изменения кода. Такой уровень защиты достаточен, пока контролируется доступ к секретному коду. Пути повышения качества секретного кода следующие:
а) самостоятельное вычисление микросхемой DS2432 секретного кода;
б) вычисление микросхемой DS2432 собственного секретного кода на разных этапах работы на различных производствах;
в) создание секретных кодов для каждого отдельного устройства с использованием при его вычислении уникального идентификационного номера;
г) комбинация б) и в).
Если каждая микросхема DS2432 вычисляет свой секретный код, то известны лишь составляющие секретного кода, но сам код никогда не раскрывается. Если секретный код вычисляется на разных этапах работы на различных производствах, известны только локальные его составляющие, что дает возможность управлять знанием «конечного» секретного кода. Если имеется отдельный секретный код для каждого устройства, процессору необходимо дополнительное действие при вычислении, но в случае вскрытия секретного кода одного из устройств потенциальный ущерб минимален. Максимальный эффект секретности достигается, когда секретный код вычисляется на каждом этапе работы и для каждого отдельного устройства, но при этом процессоры и управляемые устройства надо устанавливать в разных местах для предотвращения нарушения секретности. Перед вычислением секретного кода необходимо сначала загрузить в качестве секретного кода некую известную последовательность. При помощи этого «известного» секретного кода необходимо записать на одну из четырех страниц памяти 32 байта данных, необходимых для вычисления нового секретного кода. Затем «частичный» секретный код должен быть записан в буферную память DS2432. В качестве «частичного» секретного кода, например, может служить номер страницы памяти, используемой для вычисления, плюс уникальный идентификационный номер устройства без байта контрольной циклической суммы или любые другие специфичные для данного приложения значащие 8 байт. При получении команды на вычисление секретного кода DS2432 запускает алгоритм SHA-1 и вычисляет КАС, используя перечисленные выше входные данные. Низшие 8 байт 20-байтного КАС автоматически копируются в ячейку памяти, предназначенную для хранения секретного кода, и немедленно активируются.
ЗАКЛЮЧЕНИЕ
Знание функций безопасной аутентификации и грамотное их применение дают ощутимое конкурентное преимущество.
Это не только помогает защитить интеллектуальную собственность, но также способствует снижению себестоимости за счет применения стандартных аппаратных платформ с программно управляемыми функциями защиты. Защищенность DS2432 позволяет даже осуществлять дистанционное изменение конфигурации системы, что экономит время инженеров и специалистов. Маленькая микросхема способна кардинально улучшить экономические показатели вашего бизнеса.