Direct Anonymous Attestation

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Direct Anonymous Attestation (DAA, с англ. — «прямая анонимная аттестация») — это криптографический примитив, который делает возможным удаленную аутентификацию доверенного модуля[1], сохраняя конфиденциальность пользователя.

Прямая анонимная аттестация похожа на групповую подпись без опции раскрытия пользователя, однако она допускает создание псевдонимов, то есть позволяет создателю подписей связывать подписи между собой. Также она позволяет проверять то, что подпись была сгенерирована с помощью скомпрометированного секретного ключа. Безопасность схемы доказана в модели случайного оракула при условии выполнения допущений устойчивого RSA и Диффи — Хеллмана о принятии решений[2].

TCG (от англ. Trusted Computing Group) приняла прямую анонимную аттестацию в качестве метода удаленной аутентификации аппаратного модуля, называемого доверенным аппаратным модулем или TPM (от англ. Trusted Platform Module), сохраняющего конфиденциальность пользователя платформы, содержащей данный модуль[2].

Реализация[править | править код]

Проблема конфиденциальности может быть решена с использованием любой стандартной схемы аутентификации с открытым ключом (или схемы подписи). Можно создать пару секретный / открытый ключ, а затем встраивать секретный ключ в каждый TPM. После этого верификатор и TPM действуют в соответствии с протоколом аутентификации. Так как все TPM используют один и тот же ключ, то они будут неразличимы. Но это решение никогда не сработает на практике: как только один аппаратный модуль будет скомпрометирован, а секретный ключ извлечен и опубликован, верификаторы больше не смогут отличать настоящие TPM от мошеннических. Поэтому должна быть возможность обнаружения мошеннических TPM[2].

В первой версии спецификации TPM v1.1, принятой TCG, требуется пользующаяся доверием третья сторона, то есть центр сертификации или CA (от англ. Certification Authority) конфиденциальности . Каждый TPM имеет встроенную пару ключей RSA, называемую ключом подтверждения или EK (от англ. Endorsement Key). CA должен знать ключи подтверждения всех действующих TPM. В целях идентифицировать себя, TPM генерирует вторую пару ключей RSA, называемую ключом удостоверения подлинности или AIK (от англ. Attestation Identity Key) и отправляет открытый AIK, подписанный ключом подтверждения в CA, который проверяет его действительность и выдает сертификат для ключа удостоверения подлинности. При такой реализации центр конфиденциальности должен знать открытый ключ подтверждения TPM или администратор TPM должен предоставлять сертификат подтверждения. Существует два пути для обнаружения мошеннических TPM данным методом. Во-первых, центр сертификации конфиденциальности должен вести список TPM, идентифицируя их по ключами подтверждения, чтобы определить мошеннические, и отклонять запросы от них. Во-вторых, если центр сертификации конфиденциальности получает слишком много запросов от определенного TPM, то он может их отклонить и заблокировать ключ подтверждения данного TPM. Это решение является сложным, так как требования конфиденциальности могут быть нарушены, если центр сертификации конфиденциальности и верификатор вступают в сговор[3].

Формальная спецификация[править | править код]

В реальной системе существует ряд участников, которые взаимодействуют друг с другом в соответствии с криптографическими протоколами, есть нечестный участник (от англ. Adversary), контролирующий некоторых участников, и среда (от англ. Environment), которая предоставляет участнику входные данные и произвольно взаимодействует с . Среда передает входные данные честным участникам, получает их выходные данные и произвольно взаимодействует с нечестным участником . В идеальной системе участники не запускают никаких протоколов, но отправляют все свои входные данные и получают свои выходные данные от доверенной стороны (от англ. Trusted party). Ее роль заключается в том, чтобы вычислить выходные данные для каждого участника исходя их входных данных, таким образом реализуя функционал криптографических протоколов. Криптографический протокол считается надёжным, если для любого нечестного участника и для любой среды существует симулятор (от англ. Simulator), контролирующий поток данных тех же участников в идеальной системе, что и в реальной системе, такой что среда не может различить, действует ли она в реальной системе и взаимодействует с или действует в идеальной системе и взаимодействует с симулятором . Зададим функциональность прямой анонимной аттестации. Могут различаться следующие типы участников: эмитент (от англ. Issuer), модуль доверенной платформы с идентификатором (от англ. Identity), хост (от англ. Host) со встроенным TPM , верификаторы (от англ. Verifier) функция-оракул (от англ. Oracle), которая показывает мошеннические TPM[4].

Идеальная система доверенной стороны обеспечивает следующие операции:

Настройка: Каждый TPM отправляет свой уникальный идентификатор доверенной стороне , который пересылает его соответствующему хосту .

Соединение:

  • Хост обращается к с просьбой стать участником.
  • отправляет определенному TPM значение счетчика (от англ. Counter value).
  • Затем спрашивает эмитента , может ли платформа с идентификатором и значением счетчика стать участником.
  • Если был помечен как мошенник в соответствии со значением счетчика, передает это тоже.
  • Если эмитент соглашается, то уведомляет , что он стал участником.

DAA Подпись/Проверка:

  • Хост хочет подписать сообщение относительно некоторого базового имени и некоторого значения счетчика для некоторого верификатора .
  • отправляет , и в .
  • Если или не являются участниками с учетом , то T отклоняет запрос.
  • Иначе пересылает и к соответствующему и спрашивает его о желании это подписать.
  • Если он согласен, то передает , что соглашается и спрашивает его какое базовое имя он хочет подписать (или хочет прервать).
  • Если не прерывает, то будет работать следующим образом:
    • был помечен как мошенник, тогда дает знать , что мошеннический TPM подписал .
    • , то отправляет , что m было подписано .
    • , то проверяет, подписали ли или сообщение с и . Если это выполнилось, то ищет соответствующий псевдоним в своих данных; в другом случае выбирает новый случайный псевдоним ( — параметр безопасности). В конце сообщает , что платформа с псевдонимом подписала .

Идентификация мошенников:

  • указывает платформу с идентификатором с учетом как на мошенника.
  • Если TPM с идентификатором не поврежден, то T отклоняет запрос.
  • Иначе помечает TPM с идентификатором как мошеннический в соответствии со значения счетчика cnt[5].

Модель безопасности[править | править код]

Протокол DAA основан на четырех типах объектов. Объектами являются некоторое количество доверенных аппаратных модулей или микропроцессоров с поддержкой EPID (от англ. Enhanced Privacy ID), эмитент, верификаторы и хосты. TPM и хост образуют платформу, которая обращается к эмитенту в соответствии с протоколом соединения. Эмитент должен проверить платформу и решить, разрешает ли он ей стать участником. Эмитент является объектом протокола DAA, который выдает учетные данные на основе ключевых атрибутов платформы. Далее TPM и принимающая сторона подписывают сообщения базовым именем — (от англ. basename). Если платформа подписана с помощью или нового базового имени, подпись должна быть анонимной и недоступной для предыдущих подписей. Это значит, что любой верификатор может проверить факт того, что подпись была получена от подтвержденной платформы с помощью детерминированного алгоритма. Но подпись не дает никакой информации о подписавшейся личности. Когда платформа подписывается , становится очевидно, что полученные подписи были созданы одной и той же платформой.[6].

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

Задача посложнее заключается в определении свойств безопасности, которые схема DAA должна давать в присутствии мошенника:

  • Стойкость 1: Когда эмитент и все доверенные платформенные модули честны, ни один мошенник не может создать подпись для сообщения m с базовым именем , если ни одна платформа не подписала с .
  • Стойкость 2: Когда эмитент честен, мошенник может подписаться только именем поврежденных TPM. Если TPM повреждены, мошенник может создать не более несвязанных подписей для одного и того же базового имени .
  • Анонимность: мошенник, которому даны две подписи с двумя разными базовыми именами или , не может найти отличить, были ли обе подписи созданы одной честной платформой или двумя разными[7].

Параметры безопасности[править | править код]

В схеме прямой анонимной аттестации используются параметры безопасности n — размер модуля RSA, f — размер fi (закодированная информация в сертификате), e — размер экспоненты, состовляющей часть сертификата, e — размер интервала, из которого выбирается экспонента,  — параметром безопасности, управляющий статистическим свойством нулевого разглашения, 𝑣 — размер 𝑣 (случайное значение, часть сертификата), 𝛨 — выходная длина хэш-функции, используемая для эвристического алгоритма Фиат-Шамира, r — параметр безопасности для уменьшения доказательства безопасности, G — размер модуля G, p — размеру порядка p подгруппы для маркировки ошибок.

При должны выполняться следующие неравенства:

Задача дискретного логарифмирования в подгруппе порядка , при условии, что , простые числа и , должны иметь одинаковую сложность с факторизацией -бит RSA. Для выполнения данного условия выбираются , .  — устойчивая к коллизиям хэш-функция : [8].

Функции эмитента[править | править код]

Генерация ключей формирует неинтерактивное доказательство с использованием эвристики Фиат-Шамира того, что выбор ключей был сделан правильно. Это будет гарантировать требования безопасности хоста и его пользователя, следовательно анонимность и конфиденциальность подписей будут сохраняться.

  • Эмитент выбирает RSA модули с такими , что , , такими что являются простыми числами и имеет бит.
  • Эмитент выбирает генератор случайных чисел из (группа квадратичных вычетов по модулю ).
  • Эмитент выбирает случайные целые числа и вычисляет:
  • Эмитент предоставляет неинтерактивное доказательство того, что вычислены правильно, то есть , , и .
  • Эмитент генерирует группу простого порядка, то есть выбирает случайные простые числа так, чтобы для некоторого : и
и


Далее он выбирает случайное такое что и .
  • В конце он публикует открытый ключ и сохраняет в качестве секретного ключа.
Пусть и  — две устойчивые к коллизии хэш-функции, тогда:


 :
 : [9].

Существующие реализации[править | править код]

Брикелл Э., Камениш Я., Чэнь Л. сделали первую схему прямой анонимной аттестации на основе RSA[10]. Но схема была небезопасна и требовала исправлений. Брикелл Э., Чэнь Л., Ли Ц.. повысили эффективность первой схемы, используя симметричные пары, вместо RSA[11]. Чэнь Л., Моррисси П., Смарт Н. попытались увеличить эффективность, переключаясь с симметричного на асимметричный параметр, но к сожалению, асимметричная схема оказалась небезопасна[12][13]. Чэнь Л., Пейдж Д., Смарт Н. предложили новую криптографическую схему с использованием кривых Баррето-Наерига[14]. Эта схема реализуется как EPID 2.0, так и стандартом TPM 2.0[15].

Примечания[править | править код]

  1. TPM-Trusted Platform Module. Дата обращения: 22 декабря 2019. Архивировано 22 декабря 2019 года.
  2. 1 2 3 Brickell, 2004, с. 132.
  3. Brickell, 2004, с. 132—133.
  4. Brickell, 2004, с. 134.
  5. Brickell, 2004, с. 134—135.
  6. Camenisch, 2016, с. 237.
  7. Camenisch, 2016, с. 237—238.
  8. Brickell, 2004, с. 139.
  9. Brickell, 2004, с. 139—140.
  10. Smyth, 2015, с. 300.
  11. Li, 2009, с. 321.
  12. Chen, 2008, с. 156.
  13. Morrissey, 2008, с. 2.
  14. Page, 2010, с. 232.
  15. TPM Library. Дата обращения: 22 декабря 2019. Архивировано 21 декабря 2019 года.

Литература[править | править код]

  • Brickell E., Camenisch J., Chen L. Direct Anonymous Attestation // ACM Conference on Computer and Communications Security. — ACM New York, NY, USA, 2004. — С. 132—145. — ISBN 1-58113-961-6. — doi:10.1145/1030083.1030103.
  • Camenisch J., Drijvers M., Lehmann A. Universally Composable Direct Anonymous Attestation // Public-Key Cryptography – PKC 2016. — Springer Berlin Heidelberg, 2016. — С. 234—264. — ISBN 978-3-662-49387-8. — doi:10.1007/978-3-662-49387-8_10.
  • Smyth B., Ryan M., Chen L. Formal analysis of privacy in Direct Anonymous Attestation schemes // Elsevier. — Science of Computer Programming, 2015. — С. 300—317. — doi:10.1016/j.scico.2015.04.004.
  • Brickell E., Chen L., Li J. Simplified security notions of Direct Anonymous Attestation and a concrete scheme from pairings // International Journal of Information Security. — 2009. — С. 315–330. — doi:10.1007/s10207-009-0076-3.
  • Chen L., Morrissey P., Smart N.P. On Proofs of Security for DAA Schemes // 3rd International Conference on Trust and Trustworthy Computing. — Springer, Berlin, Heidelberg, 2008. — С. 156—175. — ISBN 978-3-540-88733-1. — doi:10.1007/978-3-540-88733-1_11.
  • Chen L., Morrissey P., Smart N.P. Pairings in Trusted Computing // Lecture Notes in Computer Science. — Springer, Berlin, Heidelberg, 2008. — С. 1—17. — ISBN 978-3-540-85538-5. — doi:10.1007/978-3-540-85538-5_1.
  • Chen L., Page D., Smart N.P. On the Design and Implementation of an Efficient DAA Scheme // Lecture Notes in Computer Science. — Springer, Berlin, Heidelberg, 2010. — С. 223–237. — ISBN 978-3-642-12510-2. — doi:10.1007/978-3-642-12510-2_16.