AN152 Руководство по применению AN152 Секреты и запросы SHA iButton www.maxim/ic.com Некоторые приложения используют маркеры SHA iButton фирмы Dallas Semiconductor для электрон+ ных расчетов (eCash), торговли через автоматы, оплаты проезда, а также аутентификации пользо+ вателя. В таких приложениях, чтобы распознать аутентичные (подлинные) маркеры и защитить данные и денежные значения от несанкционированного использования, требуется применение секре+ тов. Безопасность всей криптографической системы основывается на ее способности надлежащим об+ разом генерировать и защищать свои секреты и запросы. В настоящем руководстве по применению описываются методы генерирования криптографических секретов и запросов. Здесь также описыва+ ются приборы, способные сохранять и защищать эти данные от атак, и приводятся методы, при ко+ торых секреты никогда не покидают защищенной среды прибора и не подвергаются компрометации. ВВЕДЕНИЕ Защищенные системы (такие, как электронные расчеты (eCash), торговля через автоматы, оплата проезда, аутентификация пользователя), в которых применяются маркеры SHA iButton фирмы Dallas Semiconductor, требуют использования секретов, чтобы распознать аутентичные (подлинные) маркеры и защитить данные и денежные значения от несанкционированного использования. Кроме того, в та> ких системах для осуществления процесса аутентификации требуется генерирование случайных запро> сов. Безопасность криптографической системы зависит от стойкости и защищенности используемых секретов и запросов. В настоящем руководстве описываются требования, необходимые для создания защищенных секре> тов и запросов, и рассматриваются некоторые особенности маркеров SHA iButton фирмы Dallas Semi> conductor, которые помогают удовлетворить эти требования. Некоторые используемые здесь термины: Секрет представляет собой числовое значение, которое известно действительным участникам крип> тографической системы, но неизвестно кому>либо еще. Знание данного секрета является абсолютным подтверждением аутентичности (подлинности). MAC (Message Authentication Code — код аутентификации сообщения) представляет собой результат вычисления хэш>функции SHA, когда некоторые из входных данных являются секретом. Данный ме> тод применяется для защиты несекретной информации от несанкционированного использования и для аутентификации источника информации. Во всех приборах SHA фирмы Dallas Semiconductor результа> том вычисления функции SHA является MAC>код длиной 20 байтов. (MAC>код иногда называют сиг> натурой, хотя правомерность использования этого термина в данном случае является спорной.) Запрос — это числовое значение, обычно генерируемое случайным образом, которое посылается маркеру, чтобы тот использовал его в качестве базового компонента для доказательства своей аутентич> ности (подлинности). Выполняя в ответ на запрос криптографическую операцию с использованием значения секрета и возвращая результат, маркер может доказать, что он знает секрет и, следовательно, является аутентичным. Случайные значения используются таким образом, что каждая аутентификация является уникальной и злоумышленник не может повторно применить эти данные для атаки против системы. Энтропия является мерой беспорядка и случайности. Термин «случайный» не всегда предполагает истинную, непостижимую случайность без какой>либо регулярности. 1 из 6 AN152 ГЕНЕРИРОВАНИЕ СЕКРЕТОВ Секреты приборов SHA представляют собой 64>битные двоичные числа, что обеспечивает 18 450 000 000 000 000 000 возможных значений. Стойкость секрета заключается в определенном време> ни, которое необходимо для осуществления лобовой атаки (атаки, при которой путем перебора подби> рается каждый секрет). Хороший секрет SHA будет использовать все поле возможных значений секре> тов, делая осуществление лобовой атаки как можно более трудным и занимающим как можно больше времени. Слабые секреты — это секреты, которые ограничивают область возможных значений секретов. Сек> рет, представляющий собой строку из заглавных букв в кодировке ASCII (например, «RCIKLEHB»), сокращает поле значений до 208 800 000 000, поскольку в алфавите намного меньше букв, чем то коли> чество двоичных чисел, которые можно составить из 8>битных символов. Секреты, которые формиру> ют слова (например, «MYSECRET») еще больше сокращают поле, так как существует намного меньше комбинаций букв, образующих слова, чем случайных наборов букв. Самыми лучшими секретами явля> ются генерируемые случайным образом двоичные числа. Понятно, что любые секреты, созданные с использованием открытой информации (кличка вашей собаки, номер вашего телефона и т.п.), являются слабыми из>за ограниченности публичной информа> ции, из которой они выбираются. Действительно, область действия такого секрета равна числу элемен> тов, из которых был выбран секрет, умноженному на число возможных вариантов этих данных, — совсем небольшое поле. Правило №1: Секреты всегда должны создаваться при помощи источника случайных двоичных чисел. СЛУЧАЙНЫЕ ЧИСЛА Дискуссия о характеристиках случайных чисел и о том, как они должны генерироваться, является, возможно, одной из самых горячих в криптографии. Даже само определение случайности является те> мой весьма оживленных споров. Для наших целей мы будем считать число криптографически случай> ным, если никто не сможет предсказать с вероятностью, большей, чем вероятность, определяемая об> ластью действия поля, какое это будет число. Другими словами, данное число — это не следующий шаг в последовательности, это число не имеет каких>либо преимуществ по сравнению с другими числами или диапазоном чисел, и оно не имеет какого>либо шаблона (по крайней мере, шаблона, который мо> жет быть известен возможному злоумышленнику). Случайные числа обладают рядом важных характеристик. Одна из характеристик, которая является критичной для создания безопасных секретов, называется распределением. Говорят, что случайное чис> ло имеет хорошее распределение, если оно имеет равные шансы быть любым числом из желаемого по> ля значений. Другими словами, любое случайное число от 1 до 100 (включительно) будет иметь абсо> лютно равные шансы быть как 1, так и 25, или 78, или 100, или любым другим числом из данного диа> пазона. Если генератор случайных чисел имеет тенденцию к выбору нечетных чисел, или бо[льших чи> сел, или чисел, расположенных вблизи центра определенного диапазона, то такой генератор не являет> ся статистически хорошим генератором. Псевдослучайные числа могут генерироваться алгоритмически или математически. Такие числа не являются истинно случайными, но их появление может казаться случайным для наблюдателя. Факти> чески эти числа имеют последовательность, которая будет повторяться с определенной точки в зависи> мости от размера имеющегося банка данных, откуда извлекается это число. Генераторы псевдослучай> ных чисел часто имеют превосходные статистические характеристики, но являются плохим источни> ком для создания секретов, поскольку выходной сигнал такого генератора можно предсказать. В самом деле, тот, кто знает принцип работы и какой>либо выходной сигнал генератора, может точно вычислить следующий выходной сигнал или значительно сократить поле последующих возможных значений вы> ходных данных. Прибор SHA iButton DS1963S фирмы Dallas Semiconductor может генерировать статистически на> дежные псевдослучайные числа и имеет очень большой банк данных, используемый при генерирова> нии чисел. Последовательность генерирования чисел может повториться только через миллиард мил> лиардов генерируемых битов. Сам по себе этот генератор является слабым источником данных для соз> 2 из 6 AN152 дания секретов или запросов. Однако, когда на вход прибора поступают истинно случайные данные, или энтропия, он становится превосходным инструментом для генерирования случайных секретов. Энтропия (истинная случайность) может встречаться где угодно. Время нажатия на клавиши опера> тором, время поступления пакетов данных по сети, синхронизм частоты линий электропередачи и так> тового генератора микроконтроллера — все это может быть источником реальной энтропии. Эти ис> точники могут содержать истинно случайные компоненты, но обычно они имеют плохие статистиче> ские характеристики. Например, время нажатия оператором на клавиши содержит как предсказуемую компоненту (нажатие на клавиши является более или менее регулярным и это время попадает в некото> рый допустимый диапазон), так и случайную (точное до доли секунды значение времени каждого нажа> тия). Решение состоит в отборе реальной энтропии и ее обработке другими псевдослучайными систе> мами, которые затем генерируют выходные данные, обладающие хорошими статистическими характе> ристиками. В сущности, псевдослучайные системы предназначены для распределения реальной энтро> пии по всему полю значений. Конечным результатом является криптографически случайное число, об> ладающее превосходными характеристиками, которое используется в качестве секрета или запроса. Правило №2: Случайные числа, используемые для создания секретов или запросов, должны иметь хорошие статистические, а также криптографические характеристики. ЗАЩИЩЕННЫЕ СЕКРЕТЫ Если после генерирования секрета его значение становится доступным, секрет можно считать поте> рянным. Фактически, как утверждают некоторые, секрет можно считать потерянным даже в том слу> чае, если существует только потенциальная возможность того, что секрет станет доступным. В любой криптографической системе хранение секретов в секрете может представлять самую большую пробле> му и являться самым важным вопросом безопасности. Поскольку человек всегда является слабым звеном в хранении секретов, самый лучший способ их защиты — генерировать и хранить секреты внутри криптографических приборов таким образом, чтобы они никогда не становились известными или доступными какому>либо человеку. Приборы SHA фирмы Dallas Semiconductor позволяют собирать секреты полностью внутри каждого прибора, вне доступа че> ловека или внешнего устройства. Приборы SHA фирмы Dallas Semiconductor хранят секреты в специальных ячейках памяти, которые не могут считываться или детально исследоваться извне. Секреты могут использоваться для выполне> ния криптографических функций SHA, но просмотреть их непосредственно нельзя. Поскольку функ> ция SHA не является обратимой, внутри прибора секреты всегда остаются в безопасности. Правило №3: Секреты всегда должны быть спрятаны внутри защищенных приборов и никогда не должны раскрываться. ОДИН СЕКРЕТ, МНОГО СЕКРЕТОВ Совершенный секрет — это секрет, который неизвестен никому. Но каким образом можно использо> вать такой секрет, если его никто не знает? Существует метод разделения секрета, при котором истин> ный секрет фактически представляет собой комбинацию нескольких неполных секретов. Истинный секрет можно воссоздать только путем объединения вместе всех неполных секретов в соответствующей последовательности. Обладатели неполных секретов не знают истинного секрета, и знание какого>ли> бо одного неполного секрета не дает никакой возможности раскрыть истинный секрет. (Представьте себе сейф с несколькими замками. Чтобы открыть сейф, все ключи должны использоваться вместе. Об> ладание каким>либо одним ключом или даже всеми ключами, кроме одного, оказывается для вора бес> полезным.) В приборах SHA фирмы Dallas Semiconductor предусмотрен внутренний механизм для разделения секрета. Каждый прибор SHA способен создать новый секрет из одного или нескольких неполных сек> ретов. При этом прибор использует текущий секрет и новый неполный секрет, поступающий извне, для вычисления MAC>кода. Часть MAC>кода затем заменяет первоначальный секрет. Это позволяет вы> полнять вычисление истинного секрета полностью внутри каждого прибора, по одному неполному 3 из 6 AN152 секрету за раз, и никогда не раскрывать его внешнему миру. Истинный секрет никогда не раскрывается и не может быть скомпрометирован. Конечно, неполные секреты еще требуют специальной обработки, поскольку получение всех секре> тов может привести к раскрытию истинного секрета. Но неполные секреты могут быть распределены по всему процессу введения секрета в действие, и поэтому возможность скомпрометировать все секре> ты существенно снижается. Правило №4: Всегда создавайте секреты мастера внутри маркеров, используя множество непол) ных секретов. ЗАПРОСЫ Приборы SHA аутентифицируются при помощи метода, называемого «Запрос и ответ». Этот метод представляет собой простой процесс, при котором маркер доказывает, что он знает секрет, но никогда не раскрывает его. Для того чтобы маркер мог доказать свою аутентичность, хост генерирует случайное число (запрос) и посылает его маркеру. Маркер генерирует MAC>код запроса, используя секрет, и воз> вращает этот MAC>код хосту. Хост выполняет собственное вычисление того же самого MAC>кода (так как он тоже знает секрет), и если ответ, полученный от маркера, совпадает с результатом вычисления, то маркер признается аутентичным. Только маркер, который знает секрет, может сгенерировать соот> ветствующий MAC>код. Запрос должен быть случайным, чтобы лишить злоумышленника возможности узнать, какое значе> ние запроса будет следующим. Это позволяет предотвратить использование злоумышленником ответа, полученного путем перехвата, при обмене данными с другим действительным маркером. Правила, которые применяются для генерирования секретов, применяются и для генерирования за> просов. Запрос должен быть истинно случайным (совершенно непредсказуемым) и должен использо> вать все поле возможных значений запроса, то есть иметь хорошие статистические, а также криптогра> фические характеристики. Правило №5: Так же как и при генерировании секретов, случайные числа, используемые для создания запросов, должны иметь хорошие статистические, а также криптографические характеристики. ПРИМЕНЕНИЕ ПРИБОРОВ DS1963S ДЛЯ ГЕНЕРИРОВАНИЯ СЕКРЕТОВ И ЗАПРОСОВ Результат выполнения функции SHA, в сущности, является случайным для наблюдателя, которому неизвестны входные данные для этой функции. Функция SHA создает свои выходные значения из до> вольно большого банка данных. Эти характеристики делают приборы SHA фирмы Dallas Semiconductor превосходными генераторами псевдослучайных чисел. Незначительные изменения во входных данных вызывают существенные изменения в получаемых выходных данных (это называется диффузией). В результате эти приборы являются превосходными постпроцессорами истинной энтропии, делая харак> теристики случайных чисел статистически и криптографически приемлемыми. Ниже приводится пример схемы для генерирования случайных запросов с помощью прибора SHA iButton DS1963S, использующейся в торговых автоматах. Те же методы применяются в схемах генери> рования секретов. Торговый автомат с микроконтроллерным управлением использует случайные запросы для аутенти> фикации подключаемых маркеров iButton. Плата микроконтроллера содержит прибор iButton DS1963S, используемый в качестве сопроцессора SHA. Микроконтроллер обрабатывает данные под> ключаемых для покупки товаров маркеров iButton и в то же время осуществляет последовательный обмен данными (опрос) с электроникой торгового автомата. Встроенное программное обеспечение каждый раз запускает 16>битный таймер с максимально возможной тактовой частотой. Когда бы ни приходило сообщение по последовательной шине от торгового автомата, значение таймера фикси> руется и добавляется в 16>битную ячейку памяти. Аналогично, когда бы ни подключался маркер 4 из 6 AN152 iButton, значение времени фиксируется и добавляется в еще одну ячейку памяти. Поскольку под> ключение маркера iButton к системе, также как и последовательный обмен данными с торговым ав> томатом, является асинхронным, эти значения содержат компоненты реальной энтропии. Когда требуется значение случайного запроса, система записывает сохраненные значения 16>битного тай> мера в сопроцессор DS1963S и выполняет команду генерирования запроса. Затем микроконтроллер считывает результирующий MAC>код из прибора DS1963S и использует некоторую часть этого кода в качестве значения случайного запроса. Он также записывает несколько байтов полученного ре> зультата в две ячейки памяти, увеличивая влияние (или диффузию) энтропии на будущие случайные значения. Команда генерирования запроса прибора DS1963S использует выбранный секрет. Это может быть один из рабочих секретов системы или случайное значение, введенное при конфигурировании при> бора. Каждый раз при использовании команды генерирования запроса прибор DS1963S увеличивает на 1 значение внутреннего счетчика, которое также является частью входных данных при вычисле> нии функции SHA. Это означает, что результирующий MAC>код будет каждый раз отличаться и из> меняться по псевдослучайному закону, даже если входные данные прибора будут оставаться неиз> менными. Приведенный выше пример показывает, что небольшое количество реальной энтропии может обра> батываться прибором SHA iButton DS1963S для создания случайного значения запроса со стойкими статистическими и криптографическими характеристиками. ДРУГИЕ ИСТОЧНИКИ ЭНТРОПИИ Для систем на микроконтроллерах необходимы источники истинной случайности, независимо от того, где можно найти эти источники. Важно, чтобы такими источниками невозможно было каким>ли> бо образом управлять или оказывать на них какое>либо влияние. Например, подключение прибора iButton могло бы управляться с помощью электронных переключателей. Хотя это остается действен> ным источником энтропии, он не должен быть единственным. Возможные источники энтропии (истинной случайности): Асинхронные внешние события (последовательный обмен данными, переход через нуль напряжения на линиях электропередачи и т.д.) Внешние события, инициируемые человеком (нажатие на клавишу или кнопку, подключение маркеров и т.д.) Временные параметры внешних приборов (ширина импульса, поступающего от маркера iButton, скорость движения носителя штрих>кода, время вывода на ЖКИ>дисплей сообщения READY после ввода символа, дребезг механического переключателя или контактов реле и т.д.) Специальная аппаратура для генерирования случайных значений (источники шумов, генератор с перекрестными связями и т.д.) Правило №6: Обеспечить как можно больше реальной энтропии и всегда использовать, по крайней мере, два независимых источника. УНИКАЛЬНЫЕ СЕКРЕТЫ МАРКЕРА Когда секрет критичной системы хранится в маркерах, которые в большом количестве могут попа> дать в руки не вызывающих доверия людей, всегда существует риск, что секрет каким>либо образом станет доступным. При большом объеме выпуска маркеров это было бы катастрофой. Несмотря на пре> восходные методы защиты секрета от физических и электронных атак, всегда желательно свести к ми> нимуму потенциальную возможность воздействия скомпрометированного маркера. Для этого в каждом маркере секрет делается уникальным. Конечно, хост должен быть способен вычислить этот уникаль> ный секрет, свидетельствующий об идентичности маркера, в противном случае хост не сможет выпол> нить аутентификацию маркера. Метод, дополняющий уникальные секреты маркера, состоит в применении функции SHA для гене> рирования MAC>кода идентификатора маркера, а возможно и нескольких других маркеров или данных 5 из 6 AN152 идентификации владельца (например, PIN>кода или пароля) с использованием секрета мастера систе> мы. Результирующий MAC>код (или его часть) применяется в качестве секрета для данного маркера. Злоумышленник, получающий этот уникальный секрет маркера, не будет знать секрет мастера (по> скольку алгоритм SHA не является обратимым и его нельзя использовать, чтобы раскрыть входные дан> ные). В системе, где применяются уникальные секреты маркеров, хост должен получить данные, требуе> мые для восстановления уникального секрета маркера, прежде чем он сможет использовать этот секрет для аутентификации маркера. Для этого хост должен считать идентификатор маркера (серийный но> мер) и запросить любую необходимую дополнительную информацию (например, PIN>код или пароль) от пользователя. Затем полученные данные вместе с известным сопроцессору секретом мастера ис> пользуются для восстановления уникального секрета маркера. Когда прибор SHA iButton DS1963S применяется в хосте системы в качестве сопроцессора, он может выполнять эту функцию полностью внутри прибора и, следовательно, никогда не раскрывать секрет мастера, уникальный секрет маркера или результаты вычисления MAC>кода внешнему миру. Правило №7: Используйте имеющиеся инструменты SHA, чтобы сделать секрет маркера уни) кальным и, следовательно, защитить секрет мастера критичной системы. ЗАКЛЮЧЕНИЕ Легко заметить, что безопасность всей криптографической системы основывается на ее способности надлежащим образом генерировать и защищать свои секреты и запросы. В настоящем руководстве по применению были описаны методы генерирования криптографических секретов и запросов, а также приборы, способные сохранять и защищать эти данные от атак. Кроме того, здесь были приведены схе> мы, при которых секреты никогда не покидают защищенной среды прибора и не подвергаются ком> прометации. Разрушение криптографической системы почти всегда происходит из>за недостатков реализации системы, а не самой криптографии. Причина обычно заключается в генерировании слабых секретов, плохо сгенерированных случайных числах, слабых запросах и недостаточной защите секрета. Для реа> лизации надежной криптографической системы критичным является внимание к деталям генерирова> ния секретов и вопросам обеспечения безопасности. 6 из 6