Академический Документы
Профессиональный Документы
Культура Документы
com
1Исследования Майкрософт
2УниверситетМичигана
3
Университет Пенсильвании
1. Введение
Криптография на эллиптических кривых (ECC) [32, 37] все чаще используется на практике для
реализации протоколов шифрования с открытым ключом, например, для реализации цифровых
подписей и согласования ключей. Спустя более 25 лет после их появления в криптографии
практические преимущества использования эллиптических кривых хорошо известны: они
предлагают меньшие размеры ключей [34] и более эффективные реализации [6] при том же
уровне безопасности, что и другие широко распространенные схемы, такие как RSA. [44]. В этой
статье мы приводим два вклада:
• Первый (и самый большой) набор данных получен из цепочки блоков Биткойн. Биткойн — это
электронная криптовалюта, и криптография на основе эллиптических кривых занимает центральное
место в ее работе: биткойн-адреса напрямую выводятся из открытых ключей на основе
эллиптических кривых, а аутентификация транзакций осуществляется с использованием цифровых
подписей. Открытые ключи и подписи публикуются как часть общедоступной и проверяемой
цепочки блоков, чтобы предотвратить двойную трату.
• Второй по величине набор данных, который мы собрали, основан на сканировании HTTPS-серверов в
масштабах всего Интернета. Наборы шифров на эллиптических кривых, которые обеспечивают
прямую секретность путем установления сеансового ключа с использованием обмена ключами
Диффи-Хеллмана на эллиптических кривых [19], были представлены в 2006 году, и их популярность
для TLS растет. Этот набор данных включает сообщения обмена ключами сервера Диффи-Хеллмана, а
также открытые ключи и подписи с серверов, использующих ECDSA.
• Мы также выполнили сканирование SSH-серверов в Интернете. Наборы шифров на эллиптических кривых
для SSH были представлены в 2009 году, и они также становятся все более распространенными по мере
расширения поддержки программного обеспечения. Этот набор данных включает сообщения обмена
ключами сервера Диффи-Хеллмана на эллиптической кривой, общедоступные ключи хоста на эллиптической
кривой и подписи ECDSA.
Уязвимые подписи.ECDSA, как и DSA, обладает тем свойством, что плохая случайность,
используемая во время генерации подписи, может поставить под угрозу ключ долгосрочной
подписи. Мы обнаружили несколько случаев плохой случайности подписи, используемой в
биткойнах, что может позволить (и позволило) злоумышленникам украсть деньги у этих
клиентов. По-видимому, существуют различные причины плохой случайности, в том числе
тестовые значения для редко используемых реализаций и, что наиболее заметно, ошибка
Android Java, обнаруженная ранее в этом году (см. [35] для обсуждения этой ошибки в
Android и связанных реализациях Java). .
2 предварительных
В этом разделе мы рассмотрим развертывание криптографии на основе эллиптических кривых в реальном мире и
предоставим статистику по использованию.
возможно, так как фактические ключи ECDSA требуются только тогда, когда деньги на этих счетах
потрачены. Учитывая биткойн-адрес или значение HASH160, невозможно вычислить
соответствующую пару криптографических ключей (поскольку это требует вычисления прообразов
используемой хеш-функции). В этом разделе мы предполагаем, что интересные (или странные)
значения, с которыми мы сталкиваемся, не соответствуют действительной паре
криптографических ключей. Конечно, возможно (но маловероятно), что они были сгенерированы
допустимым образом.
Дублирование открытых ключей.Сканирование SSH в августе 2013 года собрало 1 353 151 действительный
открытый ключ на эллиптической кривой, из которых 854 949 (63%) являются уникальными. В данных
сканирования за октябрь 2013 г. было 1 246 560 действительных открытых ключей эллиптической кривой,
из которых 848 218 (68%) являются уникальными. Мы кластеризовали данные по открытому ключу. Многие
из наиболее часто повторяющихся ключей получены от провайдеров облачного хостинга. Для этих типов
хостов повторяющиеся ключи хоста могут быть связаны либо с общей инфраструктурой SSH, доступной
через несколько IP-адресов, и в этом случае повторяющиеся ключи не будут уязвимостью, либо из-за
ошибок во время развертывания виртуальной машины, которые инициализируют несколько виртуальных
машин для разных клиентов из моментального снимка, который уже содержит пару ключей хоста SSH.
Похоже, что оба случая представлены в нашем наборе данных. В июле 2013 г. компания Digital Ocean
выпустила рекомендации по безопасности [20], в которых рекомендуется, чтобы клиенты повторно
генерировали ключи хоста SSH из-за повторяющихся ключей, развернутых на моментальных снимках
виртуальных машин; мы нашли 5 614 хостов, которые обслуживали открытый ключ, отпечаток которого
указан в руководстве по установке Digital Ocean.
Мы также смогли определить несколько типов сетевых устройств, которые, по-видимому, несут ответственность за повторяющиеся ключи хоста либо из-за ключей
по умолчанию, присутствующих в оборудовании, либо из-за плохой энтропии при загрузке. К ним относятся Juniper Web Device Manager, Juni FemtoAP и беспроводной
контроллер ZTE. Мы смогли приписать повторяющиеся ключи этим реализациям, потому что эти устройства обслуживали страницы входа через HTTP или HTTPS, которые
идентифицировали производителя и торговую марку. Нам не удалось легко дать объяснение большинству повторяющихся ключей, так как (в отличие от результатов,
представленных в [28]) многие из кластеров повторяющихся ключей не имели почти ничего общего: разные версии SSH и операционные системы, разные открытые порты,
разные результаты с использованием идентификации хоста nmap, разный контент, обслуживаемый через HTTP и HTTPS, и блоки IP, принадлежащие множеству различных
хостинг-провайдеров или домашних/небольших коммерческих интернет-провайдеров. Мы можем предположить, что некоторые из них могут быть образами ВМ, но во
многих случаях у нас нет никакого объяснения. Мы можем исключить слабые ключи Debian в качестве объяснения для этих хостов, потому что ошибка Debian была
зарегистрирована и исправлена в 2008 году, в то время как OpenSSH (который почти всегда указывается в строках клиентской версии для результатов эллиптической
кривой) представил поддержку криптографии на эллиптической кривой. в 2011 году. Мы проверили повторяющиеся одноразовые номера подписи и не нашли ни одного.
Мы также проверили совпадение с набором ключей TLS, которые мы собрали, и ничего не нашли. Мы можем исключить слабые ключи Debian в качестве объяснения для
этих хостов, потому что ошибка Debian была зарегистрирована и исправлена в 2008 году, в то время как OpenSSH (который почти всегда указывается в строках клиентской
версии для результатов эллиптической кривой) представил поддержку криптографии на эллиптической кривой. в 2011 году. Мы проверили повторяющиеся одноразовые
номера подписи и не нашли ни одного. Мы также проверили совпадение с набором ключей TLS, которые мы собрали, и ничего не нашли. Мы можем исключить слабые
ключи Debian в качестве объяснения для этих хостов, потому что ошибка Debian была зарегистрирована и исправлена в 2008 году, в то время как OpenSSH (который почти
всегда указывается в строках клиентской версии для результатов эллиптической кривой) представил поддержку криптографии на эллиптической кривой. в 2011 году. Мы
проверили повторяющиеся одноразовые номера подписи и не нашли ни одного. Мы также проверили совпадение с набором ключей TLS, которые мы собрали, и ничего не
нашли.
Дублирование открытых ключей.Хотя мы собрали в общей сложности более 5,4 миллиона открытых
ключей из обменов ключами ECDH и ECDHE, только 5,2 миллиона из них были уникальными. Как отмечено
в [12], поведение OpenSSL по умолчанию заключается в использовании эфемерного статического ECDH
(пара ключей является эфемерной для каждого экземпляра приложения и не обязательно для каждого
экземпляра рукопожатия), что может объяснить некоторые наблюдаемые дубликаты ключей. Мы нашли
120 900 различных ключей, которые были представлены более чем одним IP-адресом, причем наиболее
распространенный дублированный ключ был представлен более чем 2 000 хостами. Многие из этих
дубликатов ключей, по-видимому, обслуживаются из одного
или небольшой набор подсетей и, по-видимому, обслуживают веб-страницы с одинаковой конфигурацией
для различных URL-адресов, что позволяет предположить, что они являются частью одного общего
хостинга. Мы также обнаружили один случай использования ключа по умолчанию на устройстве,
проданном разным потребителям. Мы нашли около 1 831 устройства Netasq с одинаковыми секп256р1
открытый ключ для обмена ключами ECDHE. Каждое устройство также должно иметь один и тот же
закрытый ключ, что позволяет злоумышленнику, купившему или взломавшему одно устройство, пассивно
расшифровывать трафик на другие устройства.
Дублирование случайных серверов.Мы также были удивлены, обнаружив, что несколько хостов
дублировали 32-байтовый случайный одноразовый номер, используемый в приветственном
сообщении сервера. Мы обнаружили 20 различных одноразовых номеров, которые
использовались более одного раза, 19 из которых повторно использовались более чем одним IP-
адресом. Самый повторяющийся серверный случай повторялся 1541 раз и представлял собой
просто строку ASCII из 32 символов «f». Все эти устройства представляют собой монитор мощности
ИБП, который, судя по представленному сертификату, передает свою реализацию SSL на
аутсорсинг компании Ingrasys. Однако нам не удалось успешно установить какие-либо сеансы TLS с
этими устройствами ни с помощью браузера, ни с помощью OpenSSL.
Очевидно, что для серверов, которые всегда дублируют случайный сервер, существует проблема с
реализацией, которую необходимо исправить. Однако для серверов, которые лишь изредка производят
один и тот же случайный сервер, это действительно вызывает больше беспокойства. Требуется
дополнительное исследование, чтобы найти основную причину этих коллизий и определить,
распространяется ли проблема на криптографические ключи.
В этом наборе данных мы не обнаружили каких-либо аномалий с ключами ECDSA. Из 477 985
открытых ключей эллиптической кривой, которые мы извлекли из базы данных сертификатов
Austrian Citizen Card, 24 126 ключей появляются несколько раз. Однако во всех случаях, кроме 5961,
субъекты сертификатов были равными. Из неравных испытуемых все, кроме 70, имели
одинаковые поля «CN». Все эти оставшиеся сертификаты с идентичными открытыми ключами,
выданными неравным именам, по-видимому, были связаны либо с незначительной кодировкой
символов, либо с различиями в пунктуации, либо с изменением имен.
5. Выводы
использованная литература
1. Барбер С., Бойен X., Ши Э., Узун Э. Горько к лучшему — как сделать биткойн лучшей
валютой. В AD Керомитис, редактор,Финансовая криптография, том 7397 изLNCS,
страницы 399–414. Спрингер, 2012.
2. Диджей Бернштейн. Программная реализация NIST P-224.http://cr.yp.to/
talks.html#2001.10.29,2001.
3. Диджей Бернштейн. Curve25519: Новые рекорды скорости Диффи-Хеллмана. У М. Юнга,
Ю. Додис, А. Киайяс и Т. Малкин, редакторы,Криптография с открытым ключом — PKC
2006, том 3958 изLNCS, страницы 207–228. Спрингер, 2006.
4. Д.Дж. Бернштейн, Ю.-А. Чанг, К.-М. Ченг, Л.-П. Чоу, Н. Хенингер, Т. Ланге и Н. ван
Сомерен. Факторинг ключей RSA с сертифицированных смарт-карт: Coppersmith в дикой
природе. К. Сако и П. Саркар, редакторы,АЗИАКРИПТ, том 8270 г.LNCS, страницы 341–
360. Спрингер, 2013.
5. Д.Дж. Бернштейн и Т. Ланге. Safecurves: выбор безопасных кривых для эллиптической кривой
криптография.http://safecurves.cr.yp.to,по состоянию на 31 октября 2013 г.
6. DJ Bernstein и T. Lange (редакторы). eBACS: Сравнительный анализ
криптографических систем ECRYPT.http://bench.cr.yp.to,Октябрь 2013.
7. И. Биль, Б. Мейер, В. Мюллер. Дифференциальные атаки на криптосистемы с
эллиптическими кривыми. В М. Белларе, редактор,КРИПТО, том 1880 г.LNCS, страницы
131–146. Спрингер, 2000.
8. биткойнкард.орг. Образец сделки. http://bitcoincard.org/blog/?page=
post&blog=bitcoincard_blog&post_id=sample_yransaction,2012.
9. С. Блейк-Уилсон, Н. Болярд, В. Гупта, К. Хоук и Б. Меллер. Наборы шифров криптографии на
эллиптических кривых (ECC) для безопасности транспортного уровня (TLS). RFC 4492, 2006 г.