Некоторое время назад мы обсуждали криптографические хеши (такие как контрольные суммы MD5 и SH1) и как они помогают гарантировать, что загружаемый файл - это тот же файл, который его создатель намеревался загрузить, создав уникальный «отпечаток» файла, который можно сверяется с оригиналом.


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

Даже если вы загружаете программное обеспечение непосредственно с веб-сайта поставщика или разработчика, вы можете стать жертвой атаки «человек посередине» (MitM), или сам веб-сайт может быть скомпрометирован различными способами..

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

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

Диаграмма, показывающая, как применяется цифровая подпись, а затем проверяется.

PGP цифровые подписи

Различные криптографические системы используют разные механизмы для создания и проверки цифровых подписей. Например, в Windows используется технология инфраструктуры открытых ключей Microsoft (PKI) для автоматической проверки подписей при первой установке программного обеспечения..

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

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

Как проверить цифровую подпись с помощью графического интерфейса Kleopatra

Чтобы проверить цифровую подпись файла PGP, вы должны использовать клиент PGP (или, точнее, GnuPG - его клон с открытым исходным кодом). Версии GnuPG доступны для Windows (Gpg4win), Mac OSX и Linux (обычно предварительно установлены).

В этом руководстве мы проверим цифровую подпись Pidgin + OTR с помощью Gpg4win, но процесс очень похож на другие версии GnuPG..

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

Загружаемый файл Gpg4win сам по себе имеет цифровую подпись с ключом, который был подтвержден признанным центром сертификации (CA) и который можно независимо проверить для проверки с использованием доверенной более старой копии GnuPG (также доступен хэш SHA1). Вы никогда не должны доверять копии Gpg4win, которую вы не проверили.

После установки GnuPG нам потребуется три вещи для проверки цифровой подписи:

  • Файл, который мы хотим проверить (дух!), Например. установщик pidgin-otr-4.0.1.exe
  • Файл подписи PGP / GPG (.asc), например пиджин-отр-4.0.1.exe.asc
  • Открытый ключ / сертификат PGP, использованный для создания этой подписи, например, gpgkey.asc

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

Kleopatra

Kleopatra - это программа управления ключами в комплекте с Gpg4win.

1. Вам потребуется личный закрытый ключ для сертификации сертификата PGP. Если вы создали его ранее (например, с помощью GPA), вы можете импортировать его (Файл -> Импортируйте сертификаты…), или вы можете создать новую пару ключей (Файл -> Новый сертификат…).

Мастера проведут вас через весь этот процесс

2. Импортируйте открытый ключ / сертификат PGP в Kleopatra - используя «Импортировать сертификаты» или щелкнув правой кнопкой мыши файл и выбрав «Импортировать ключи»..

3. Сертифицируйте сертификат PGP, используя свой закрытый ключ - это говорит GnuPG, что вы доверяете человеку, подписавшему сертификат.

а) В Kleopatra щелкните правой кнопкой мыши на ключе и выберите «Сертифицировать сертификат»..

б) Выберите сертификат и подтвердите, что вы проверили его отпечаток (надеюсь, он будет опубликован на веб-сайте разработчика).

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

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

4. Теперь, когда вы сертифицировали сертификат, использованный для подписи файла, который вы скачали (вот так!), Вы можете использовать его для проверки подписи..

а) В Клеопатре зайдите в Файл -> Расшифруйте / проверьте файлы и перейдите к файлу подписи или щелкните его правой кнопкой мыши и перейдите к параметрам MoreGpgEX. -> проверить.

b) Убедитесь, что «Входной файл» является файлом подписи, и что в поле «Подписанные данные» содержится программа или файл, который вы хотите проверить, затем нажмите «Расшифровать / проверить».

в) Все хорошо, Клеопатра объявит подпись действительной.

Как я могу доверять сертификату?

Самый простой способ проверить, действителен ли сертификат PGP, - это проверить веб-сайт человека, который должен подписать сертификат ... если повезет, он опубликует отпечаток сертификата.

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

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

Pidgin + OTR является в некотором смысле плохим примером того, как должна работать цифровая подпись, потому что на веб-странице OTR почти нет инструкций по использованию опубликованных ключей, а его сертификат PGP было не только очень трудно найти, но и не было доступно. из https://otr.cypherpunks.ca/gpgkey.asc нет простого способа проверить его подлинность (тот факт, что использование 1024-битного ключа RSA также плохо показывается в наше время, когда АНБ, вероятно, может взломать такое слабое шифрование). ).

Это, однако, хороший пример того, почему само понятие цифровых подписей является таким беспорядком! Интересное обсуждение того, как вы можете попытаться проверить сертификат OTR, доступно здесь.)

Вывод

Как вы можете видеть, проверка цифровой подписи действительно является болью, поэтому неудивительно, что даже те, кто разбирается в тайном процессе с жаргоном, редко беспокоятся. Проблема усугубляется тем, что многие разработчики не объясняют, как проверять свои файлы, и / или выпускают небрежные сертификаты PGP, которые очень трудно проверить, являются подлинными (команда OTR, мы смотрим на вас!)

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

Однако до тех пор, пока кто-то не изобрел лучшую, более удобную для пользователя систему, мы надеемся, что разработчики предоставят четкие инструкции по использованию своих цифровых подписей и опубликуют содержательные гарантии подлинности своих сертификатов PGP… (вздох)

"Схема цифровой подписи" Acdx - собственная работа. Лицензировано в соответствии с CC BY-SA 3.0 через Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me