Найти в Дзене
Dev Articles

Что такое SHA-1 и как он используется для проверки подлинности данных?

В этой статье рассматривается, что такое SHA-1, как и зачем он используется, а также как создавать контрольные суммы SHA-1. SHA-1 (Secure Hash Algorithm 1) — одна из нескольких криптографических хеш-функций. Чаще всего её используют для проверки неизменности файла. Это делается путём создания контрольной суммы до передачи файла, а затем — после его доставки. Переданный файл считается подлинным только в том случае, если обе контрольные суммы идентичны. SHA-1 — лишь один из четырёх алгоритмов семейства Secure Hash Algorithm (SHA). Большинство из них были разработаны Агентством национальной безопасности США (NSA) и опубликованы Национальным институтом стандартов и технологий (NIST). SHA-0 имел размер дайджеста сообщения (хеш-значения) 160 бит и был первой версией этого алгоритма. Его хеш-значения состояли из 40 цифр. Он был опубликован под названием «SHA» в 1993 году, но не нашёл широкого применения, поскольку в 1995 году его быстро заменили на SHA-1 из-за уязвимости в системе безопаснос
Оглавление
ФОТО: David Silverman / Getty Images News / Getty Images
ФОТО: David Silverman / Getty Images News / Getty Images

Что нужно знать

  • SHA-1 (Secure Hash Algorithm 1) — это алгоритм, используемый для проверки подлинности данных.
  • Его применяют для аутентификации паролей и проверки файлов.
  • Специальный калькулятор может найти контрольную сумму SHA-1 для текста или файла.

В этой статье рассматривается, что такое SHA-1, как и зачем он используется, а также как создавать контрольные суммы SHA-1.

Что такое SHA-1?

SHA-1 (Secure Hash Algorithm 1) — одна из нескольких криптографических хеш-функций.

Чаще всего её используют для проверки неизменности файла. Это делается путём создания контрольной суммы до передачи файла, а затем — после его доставки.

Переданный файл считается подлинным только в том случае, если обе контрольные суммы идентичны.

История и уязвимости хеш-функции SHA

SHA-1 — лишь один из четырёх алгоритмов семейства Secure Hash Algorithm (SHA). Большинство из них были разработаны Агентством национальной безопасности США (NSA) и опубликованы Национальным институтом стандартов и технологий (NIST).

SHA-0 имел размер дайджеста сообщения (хеш-значения) 160 бит и был первой версией этого алгоритма. Его хеш-значения состояли из 40 цифр. Он был опубликован под названием «SHA» в 1993 году, но не нашёл широкого применения, поскольку в 1995 году его быстро заменили на SHA-1 из-за уязвимости в системе безопасности.

SHA-1 — вторая версия этой криптографической хеш-функции. Она также имела дайджест сообщения размером 160 бит и была направлена на повышение безопасности путём устранения недостатков, обнаруженных в SHA-0. Однако в 2005 году в SHA-1 также были обнаружены уязвимости.

После обнаружения криптографических уязвимостей в SHA-1 NIST в 2006 году призвал федеральные агентства к 2010 году перейти на использование SHA-2, и в 2011 году NIST официально прекратил поддержку SHA-1. SHA-2 надёжнее SHA-1, а атаки на SHA-2 при нынешних вычислительных мощностях маловероятны.

Не только федеральные агентства, но даже такие компании, как Google, Mozilla и Microsoft, либо начали планировать прекращение приёма SSL-сертификатов SHA-1, либо уже заблокировали загрузку таких страниц.

Google доказал наличие коллизии SHA-1, что делает этот метод ненадёжным для генерации уникальных контрольных сумм, будь то пароль, файл или любые другие данные.

Вы можете скачать два уникальных PDF-файла с сайта SHAttered, чтобы посмотреть, как это работает.

SHA-2 и SHA-3

SHA-2 был опубликован в 2001 году, через несколько лет после SHA-1. Он включает шесть хеш-функций с различными размерами дайджеста: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 и SHA-512/256.

SHA-3 (ранее Keccak) — ещё один представитель семейства Secure Hash Algorithm, разработанный не NSA и выпущенный NIST в 2015 году. SHA-3 не предназначен для замены SHA-2, как предыдущие версии были предназначены для замены более ранних. Вместо этого он был разработан как ещё одна альтернатива SHA-0, SHA-1 и MD5.

Как используется SHA-1?

Один из реальных примеров использования SHA-1 — ввод пароля на странице входа на веб-сайт. Хотя это происходит в фоновом режиме без вашего ведома, именно этот метод может использоваться веб-сайтом для надёжной проверки подлинности вашего пароля.

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

Если значения различаются, это означает не только то, что содержимое файла отличается, но также возможно наличие скрытого вредоносного ПО в файле, повреждение данных, которое может нанести ущерб вашему компьютеру или файл вообще не имеет отношения к исходному файлу и т.п.

Однако это также может означать, что один файл представляет собой старую версию программы, поскольку даже такое незначительное изменение приведет к созданию уникального значения контрольной суммы.

Также вам может понадобиться проверить, являются ли файлы идентичными, если вы устанавливаете пакет обновлений, потому что проблемы часто возникают, если некоторые файлы отсутствуют во время установки.

Калькуляторы контрольной суммы SHA-1

Для определения контрольной суммы файла или группы символов можно использовать специальный калькулятор. Например, SHA1 Online — бесплатный онлайн-инструмент, который может генерировать контрольную сумму SHA-1 для любого текста, символов и/или чисел.

На том же сайте доступен инструмент SHA1 File Checksum, если у вас есть файл вместо текста.

Оригинал статьи читайте по ссылке