Прикладная криптография

Рассматриваются распространенные в Internet способы защиты данных и их программные реализации.

Номинальный вклад этой работы в оценку — 10 баллов.

OpenPGP и GnuPG

  1. (1 балл) Зашифруйте файл небольшого объема (10 ÷ 100 KiB) симметричным алгоритмом используя gpg -c. Удостоверьтесь в возможности расшифровки по ключу.

  2. (1 балл) Создайте пару ключей и подключей (англ. subkeys) для формирования цифровых подписей и шифрования данных. Ограничьте срок действия пар несколькими месяцами. Опубликуйте открытый ключ на сервере ключей (англ. keyserver.)

  3. (1 балл) Найдите (например, во Всемирной паутине) какой-либо файл с цифровой подписью OpenPGP. Удостоверьтесь в действительности подписи.

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

ITU-T X.509, S/MIME, XML-Sig, GnuTLS, OpenSSL

  1. (1 балл) Установите защищенное соединение с каким-либо TLS-сервером используя «диагностический» TCP-клиент (например, gnutls-cli.)

  2. (1 балл) Создайте запрос на получение сертификата X.509 (certificate signing request, CSR) используя certtool.

  3. (2 балла) Получите заверенный третьей стороной «серверный» сертификат X.509. Запустите какой-либо сервер с поддержкой TLS (HTTPS, ESMTPS, IRC/TLS, NNTP/TLS, etc.) Удостоверьтесь в возможности установления с ним защищенного соединения.

    (Здесь можно воспользоваться, например, http://cacert.org/ или http://letsencrypt.org/. Обратите внимание, что в обоих случаях потребуется подтвердить владение DNS-именем, на которое выписывается сертификат.)

  4. (1 балл) Получите заверенный третьей стороной «клиентский» сертификат X.509. Удостоверьтесь в возможности его использования для аутентикации или формирования действительных цифровых подписей (certtool, xmlsec1, или иной программой.)

  5. (1 балл) Создайте собственный удостоверяющий центр (англ. certificate authority, CA; используйте, например, Easy-RSA.) Заверьте запросы на получение сертификатов двум другим пользователям. Удостоверьтесь в действительности сформированных сертификатов.

Оформление отчета

  1. (1 балл) Оформите отчет в виде документа HTML.

    Обратите внимание на то, что документ должен не только корректно воспроизводится соответствующим программным обеспечением, но и успешно проходить формальную проверку с использованием http://html5.validator.nu/ и (или) иных подобных средств. Элементы и атрибуты HTML должны быть использованы семантически-обоснованно — сообразно смыслу, которым их наделяет текущая практика и актуальные спецификации.

  2. (1 балл) Заверьте отчет цифровой подписью (OpenPGP, S/MIME, XML-Sig — в зависимости от ситуации.)