Почему злоумышленники не могут просто подобрать все возможные ключи?
Люди, которые не знакомы с криптографией, не понимают, почему хакеры не пробуют все возможные комбинации единиц и нулей, которые могут быть применены в результате определенного размера ключа. Не мог ли кто-то с очень быстрым компьютером подобрать все возможные комбинации? Нет. Даже размер современного ключа в 2000 бит устойчив против «перебора грубой силой». Мало того что для этого не существует достаточно мощного компьютера, но даже если бы вы использовали все компьютеры в мире, которые уже изобрели или изобретут в будущем, им все равно не хватило бы мощности (по крайней мере, до тех пор, пока квантовые вычисления не станут реальностью). Следовательно, взлом криптографических средств связан с утечками или слабыми алгоритмами. Криптографические алгоритмы, мягко говоря, сложны, и то, что первоначально может выглядеть непобедимой математикой, часто оказывается полным недостатков, которые позволяют быстро взломать систему. Вот почему стандарты шифрования и размеры ключей постоянно меняются, поскольку старые шифры ослабевают, а новые, более устойчивые, появляются.
Симметричные и асимметричные ключи
Если ключ шифрования совпадает с тем, что используется для расшифровки в дальнейшем (например, в простом примере выше), то шифр называется симметричным. Если ключ, используемый для шифрования, отличается от ключа, используемого для расшифровки, шифр называется асимметричным. Асимметричные шифры также известны как шифрование с открытым ключом, когда шифрующая сторона имеет закрытый ключ, который знает только она, а расшифровывающая сторона – открытый, и до тех пор, пока посторонние не знают закрытый ключ, коммуникации защищены. Однако симметричное шифрование обычно выполняется быстрее и надежнее.
О криптографии популярно
В наши дни многие шифры хорошо известны и протестированы, чтобы стать отраслевыми, если не мировыми, стандартами.
Популярные симметричные ключи шифрования включают алгоритм для симметричного шифрования (DES), 3DES (тройной DES) и симметричный алгоритм блочного шифрования (AES). Первые два алгоритма устарели и больше не используются. Последний считается криптостойким и наиболее популярным симметричным шифром, используемым сегодня. Размеры ключей симметричных шифров обычно варьируются от 128 до 256 бит, но постепенно их размер увеличивается. Каждое увеличение, скажем, со 128 до 129 бит, обычно двукратно усиливает надежность ключа в пределах одного и того же шифра.
Популярные асимметричные шифры включают криптографический протокол Диффи – Хеллмана (о Мартине Хеллмане поговорим в следующей главе), протокол Ривеста – Шамира – Адлемана (RSA) и эллиптическую криптографию (ECC). Эллиптическая криптография – новая технология в этой сфере и только начинает использоваться. Размеры ключей асимметричных шифров обычно варьируются от 1024 до 4096 бит, хотя сегодня 2048 бит считается минимальным допустимым размером для протоколов Диффи – Хеллмана и RSA. Эллиптическая криптография использует меньшие размеры ключей, начиная с 256 бит. 384 бита считаются достаточно надежным вариантом. Как правило, асимметричные шифры используются для безопасной передачи симметричных ключей, которые выполняют бо́льшую часть шифрования между отправителем и получателем.
Хэши
Криптография также используется для проверки содержимого. Для этого применяют алгоритмы шифрования, известные как криптографические хэши. При этом содержимое открытого текста, подлежащее проверке, математически соотносится с ключом (опять же только в серии единиц и нулей) для получения уникального результата, называемого результатом хэширования, или хэшем. Идентификационные данные или контент могут быть хэшированы в любой момент и вновь хэшированы позднее (например, на другом устройстве). Хэши можно сравнить, чтобы убедиться, что хэш содержимого не изменился с момента начального хэширования.
Распространенные хэш-алгоритмы – Secure Hash Algorithm 1 (SHA-1), SHA-2 и SHA-3. Было обнаружено, что SHA-1 имеет некоторые криптографические недостатки (также схожие с SHA-2), и поэтому его упразднили. SHA-2 становится самым популярным хэшем, но эксперты криптографии уже рекомендуют использовать SHA-3.
Большинство криптографических решений используют симметричные, асимметричные и хэширующие алгоритмы для достижения требуемой защиты. Во многих странах, в том числе и в США, существует особый орган по стандартизации, который анализирует и утверждает различные шифры для использования правительством. Официально одобренные шифры используются во всем мире. В США Национальный институт стандартов и технологий (www.nist.gov) совместно с Агентством национальной безопасности (www.nsa.gov) проводят публичные конкурсы, в которых криптографам по всему миру предлагается представить собственные шифры для анализа и отбора. Он проводится открыто, и зачастую даже проигравшие соглашаются с разработками победителя. К сожалению, Агентство национальной безопасности и Национальный институт стандартов и технологий (НИСТ) как минимум дважды были обвинены в преднамеренном ослаблении официальных стандартов (особенно с DES и Dual_EC_DRBG [алгоритм, основанный на эллиптических кривых]). Возникла некоторая напряженность, и многие теперь не доверяют тому, что НИСТ и АНБ считают надежной криптографией.
Применение криптографии
Криптография лежит в основе бо́льшей части цифрового мира в сети. Криптография защищает наши пароли и биометрические удостоверения и используется в цифровых сертификатах. Криптография применяется каждый раз, когда мы садимся за свой компьютер и подключаемся к защищенному веб-сайту через протокол HTTPS. Она нужна для проверки загруженного программного обеспечения, безопасности общения по электронной почте и сверки компьютеров. Шифрование используется для защиты жестких дисков и портативных носителей от несанкционированного доступа, предотвращения повреждения загрузочного сектора жесткого диска и защиты беспроводных сетей. Криптография применяется при разработке программ, скриптов и верстке документов. Она позволяет организовывать приватные соединения через публичный Интернет и стоит почти за всеми банковскими картами и транзакциями в мире. Надежная криптография – враг шпионов, тиранов и авторитарных режимов. Можно без преувеличения сказать, что без криптографии Интернет не был бы Интернетом и наши компьютеры никогда не были бы под нашим контролем.
Криптографические атаки
Существует множество криптографических атак. Мы рассмотрим некоторые из наиболее известных.
Математические атаки
Многие атаки основываются на слабостях алгоритмов. Без нее шифр может выдержать атаку грубой силы, равную количеству битов в ключе минус один. Таким образом, 128-битный шифр (2128), такой как SHA-1, должен выдержать в среднем 2127 попыток, прежде чем будет взломан. Злоумышленники нашли недостатки алгоритма SHA-1, существенно ослабив его стойкость примерно до 257 бит.
Хотя шифр 2127 считается стойким (по крайней мере на данный момент), 257 можно взломать уже сейчас или в ближайшем будущем, и хакеру не понадобятся для этого огромные вычислительные мощности.
Атака на основе доступной информации
Многие атаки успешны, потому что у хакеров есть подсказка (также известная как шпаргалка). Обычно она представлена в форме известного набора битов или байтов в зашифрованном тексте, содержимом незашифрованного текста или закрытом ключе. Подсказка уменьшает возможное количество битов в криптографическом ключе.
Атаки по сторонним каналам
Атаки по сторонним каналам часто подразумевают атаку на непредвиденные дефекты реализации, позволяющие выявить секретные ключи. Например, когда процессор компьютера изменяет звук работы или электромагнитное излучение при обработке 0 и 1. Таким образом, злоумышленник с очень чувствительным прослушивающим устройством может определить нули и единицы, когда компьютер обрабатывает закрытый ключ. Другой пример: злоумышленник может определить, какие клавиши клавиатуры вы нажимаете, записав звуки нажатия.
Небезопасные реализации
Подавляющее большинство успешных криптографических атак в реальном мире не связаны со взломом алгоритмов или криптографических ключей. Вместо этого злоумышленники ищут недостатки реализации, подобные ключу от входной двери под ковриком в реальной жизни. Даже самые сильные алгоритмы не спасут слабую реализацию.
Существует много других типов криптографических атак, хотя перечисленные выше наиболее распространены. Единственная защита от них – надежные, проверенные алгоритмы, безопасные реализации и невидимые или понятные только конечному пользователю интерфейсы. Все остальное неважно.
Глава 3 посвящена Брюсу Шнайеру, который считается отцом современной компьютерной криптографии. В главе 13 мы поговорим об одном из самых известных криптографов в мире, Мартине Хеллмане, а в главе 15 познакомимся с доктором Дороти Э. Деннинг, написавшей одну из первых книг по компьютерной криптографии.
13. Профиль: Мартин Хеллман
Общаясь с лучшими специалистами, я сделал вывод о том, что они, как правило, хорошо разбираются не только в своей основной сфере деятельности. Обычно они увлекаются многими вещами, решая проблемы, никак не связанные с их специализацией. Отличным примером может служить Мартин Хеллман, один из создателей криптографии с открытым ключом. Будучи одним из лучших криптографов в мире, занимающихся актуальными проблемами криптографии, он также любит парить на планерах, улучшать брачные отношения и предотвращать ядерные войны… Причем необязательно именно в этом порядке.
В 1976 году Хеллман и его коллеги Уитфилд Диффи и Ральф Меркл создали криптосистему с открытым ключом, которую описали в статье