Что такое контрольная сумма? Основы криптографии

Введение в криптографические контрольные суммы, их использование и то, как они обеспечивают вашу безопасность.

Cryptography Basics: What is a checksum?

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


Что такое контрольная сумма?

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

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

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

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

Контрольные суммы обеспечивают целостность данных, а не их подлинность.

Контрольные суммы в основном используются для проверки целостности данных. Вы, наверное, помните из нашего введения в моделирование угроз, что целостность означает, что данные были переданы на вашу машину в цифровом идентичном формате. Это означает, что вы получаете данные, будь то файл или исполняемая программа, в том виде, в котором они были задуманы создателем контента. Следует отметить, что контрольные суммы подтверждают только то, что полученные вами данные на 100 % идентичны, но не подтверждают подлинность самого источника. Это еще один аспект информационной безопасности, который может быть достигнут с помощью цифровой подписи.

Почему важна целостность данных?

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

Если вы не можете доверять своим данным, их использование значительно снижается. Используя контрольные суммы, вы можете быть уверены, что ошибка, с которой вы можете столкнуться при работе с новой программой, имеет другой источник, а не возникла из-за того, что при первоначальной загрузке что-то пошло не так. Это позволяет сэкономить время и деньги. Если вы поддерживаете резервное копирование данных, создание и мониторинг контрольных сумм этих резервных копий - отличный способ следить за состоянием всех хранящихся данных. Если вы заметите разницу, не внося никаких изменений, вы сможете предупредить о том, что что-то идет не так.

Что вызывает неидентичные контрольные суммы?

Существует ряд проблем, которые могут привести к несовпадению контрольных сумм, как обычных, так и злонамеренных. Перебои в подключении к Интернету или проблемы с местом для хранения данных могут стать причиной отсутствия данных, что приведет к несовпадению контрольных сумм с теми, которые были предоставлены исходным курсом. После устранения проблемы новая загрузка обычно возвращает правильное значение.

Однако есть и злонамеренные случаи, которые могут вызвать тревогу. Несовпадение контрольных сумм может свидетельствовать о том, что кто-то из сторонних разработчиков внес изменения в исходные данные. Это может быть что-то незначительное, но может быть признаком того, что в загрузку было включено вредоносное ПО. Это становится еще более серьезной проблемой, когда программы используются для хранения конфиденциальных данных, таких как пароли или криптовалюта. Переупакованные вредоносные “менеджеры” паролей могут напрямую отправлять ваши данные третьим лицам, где они могут быть использованы не по назначению. В случае с криптовалютными кошельками-самозванцами несовпадение контрольных сумм может привести к полной потере цифровых активов.

Примеры алгоритмов, используемых для генерации контрольных сумм.

Независимо от того, какой алгоритм хеширования используется для создания контрольной суммы, их объединяет то, что все они являются односторонними функциями. Значение, сгенерированное функцией контрольной суммы, не может быть использовано для “воссоздания” исходного файла. Это не шифрование, и здесь нечего расшифровывать, так что мы не имеем дело с шифрованными текстами.

A visualization of the cksum utility when used to create a checksum Визуализация утилиты cksum, используемой для создания контрольных сумм из слов и фраз.

Некоторые из этих алгоритмов могут показаться знакомыми, и мы уже обсуждали некоторые из них в предыдущих частях цикла “Основы криптографии”.

MD5

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

SHA-1

Эта функция хэширования не считается безопасной с 2005 года, и NIST призвал полностью отказаться от нее к 2030 году. В 2017 году компания Google совместно с группой криптологов из Центра вискунде и информатики смогла создать два разных PDF-файла с одинаковым отпечатком SHA-1.

SHA256

Современным стандартом хеширования контрольных сумм является SHA256 (или SHA-3 для любителей нового). SHA256 также является функцией контрольной суммы, которую мы используем, чтобы вы могли проверять целостность данных каждый раз, когда загружаете Tuta Desktop Client.

A screenshot of the latest release of the Tuta Desktop Client checksums. Пример контрольной суммы для настольного клиента Tuta версии 244.240913.1

Как проверить контрольную сумму клиента Tuta Desktop Client.

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

С каждым новым выпуском настольного клиента Tuta мы публикуем контрольные суммы на Github, чтобы вы могли проверить их, независимо от операционной системы вашего устройства. Первым шагом будет посещение нашей домашней страницы и загрузка десктопного клиента, соответствующего вашей операционной системе. Продолжайте, я могу подождать…

Отлично! Вы вернулись! Теперь вы можете перейти к той ОС, которую используете в данный момент, и с помощью нескольких простых шагов проверить контрольные суммы загрузки. Для простоты я буду писать эти инструкции исходя из предположения, что вы сохранили загрузку в папке “Загрузки”.

Windows

В Windows откройте командную строку из меню “Пуск” или выполнив команду cmd в диалоговом окне “Выполнить”. Теперь, когда вы открыли командную строку, введите:

  1. cd Downloads

  2. certutil -hashfile tutanota-desktop-win.exe SHA256

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

How to verify the Tuta desktop client checksum on Windows Шаги командной строки для просмотра контрольной суммы загруженного клиента Tuta desktop для Windows.

Клиент для Windows можно скачать здесь.

Mac

На Mac вы можете открыть окно терминала из Launchpad. После его открытия введите следующее:

  1. cd Downloads

  2. shasum -a 256 ~/Downloads/tutanota-desktop-mac.dmg

Полученный результат можно сравнить с контрольной суммой, представленной на GitHub.

How to verify the Tuta desktop client checksum on MacOS Команды терминала для проверки контрольной суммы на macOS.

Клиент для Mac можно скачать здесь.

Linux

Наконец, но не в последнюю очередь, вы можете проверить контрольную сумму нашего бесплатного клиента для Linux, открыв терминал и введя:

  1. cd Downloads

  2. sha256sum tutanota-desktop-linux.AppImage

Затем вы можете сравнить полученный результат с контрольной суммой, предоставленной командой разработчиков Tuta, чтобы убедиться в целостности вашей загрузки.

How to verify the Tuta desktop client checksum on Linux Команды терминала для проверки контрольных сумм на машине Linux.

Клиент для Linux можно скачать здесь.

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

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

И не забудьте проверить контрольную сумму! 😉