ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

Время на прочтение


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

На самом-самом деле его секреты нафиг никому не нужны. И кстати, такой ключ за 5 баксов ещё надо поискать

Шифропанкам посвящается. Мы собрали тулкит из популярных программ (преимущественно с симметричным шифрованием), которые помогут защитить личные данные от несанкционированного доступа и попросили исследователя криптографии из компании «Криптонит» прокомментировать наш выбор.

Под катом безопасные решения для шифрования файлов при помощи браузера, для быстрой защиты, пересылки, загрузки в облако шифрованных данных, криптографические контейнеры с двойным дном, десяток консольных инструментов для криптографии и комбайн, объединяющий их под единым графическим интерфейсом. А еще ответы на животрепещущие вопросы, например: «Что лучше AES, Кузнечик, Serpent или Twofish»?

R-Crypto — утилита, с помощью которой можно защитить от несанкционированного доступа пользовательскую информацию и персональные данные, хранящиеся на любом носителе информации (жестком диске, USB-диске, CD, DVD). Защита данных обеспечивается посредством шифрования «на лету» виртуальных дисков при помощи криптографической инфраструктуры ОС Windows. При этом используется наиболее безопасный алгоритм шифрования Advanced Encryption Standard (AES) с длиной ключа в 128, 192 и 256 бит.

Основные возможности R-Crypto:


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

ТОП-сегодня раздела «Защита данных»

Anvide Seal Folder 5.30

TrueCrypt 7.2 / 7.1a

Folder Lock 7.8.8

My Lockbox 4.3.7

Отзывы о программе R-Crypto

«КриптоАРМ ГОСТ» — это универсальное приложение с графическим пользовательским интерфейсом для выполнения операций по созданию и проверке электронной подписи, шифрованию и расшифрованию файлов, управления сертификатами с использованием СКЗИ «КриптоПро CSP» версии 5.0R2.

Приложение «КриптоАРМ ГОСТ» является кроссплатформенным и представлено различными установочными дистрибутивами под платформы: Microsoft Windows, Linux, Mac OS X. На каждой из платформ реализована поддержка российских криптографических стандартов посредством использования СКЗИ «КриптоПро CSP» версии 5.0R2.

Сферы применения

Управление сертификатами и ключами

Просмотр и управление журналом операций

Сертификаты соответствия ФСБ России

«КриптоАРМ ГОСТ» сертифицирован в ФСБ России в составе СКЗИ «КриптоПро CSP» версии 5.0 R2 КС1 (Исполнение 1-КриптоАРМ) и СКЗИ «КриптоПро CSP» версии 5.0 R2 КС2 (Исполнение 2-КриптоАРМ). Соответствует требованиям 63-ФЗ «Об электронной подписи» от 06.04.2011 г. Срок действия сертификатов: до 1 мая 2024 г.

Официальная страница продукта на сайте разработчика https://trusted.ru/products/cryptoarm-gost/

Скачать

Раздел КриптоАРМ ГОСТ — Загрузка файлов

Активная разработка данного продукта прекращена. Продукт устарел.

КриптоПро EFS. Новое средство обеспечения защиты конфиденциальной информации

ПО «КриптоПро EFS» предназначенo для обеспечения защиты конфиденциальной информации при ее хранении на ПЭВМ.

ПО «КриптоПро EFS» предназначено для использования совместно с «КриптоПро CSP» версий 3.6.1, 3.9 или 4.0 в операционных системах Microsoft Windows XP / Server 2003 / Vista / Server 2008 / 7 / Server 2008 R2 / 8 / Server 2012 / 8.1 / Server 2012 R2 / 10 / Server 2016.

При использовании совместно с «КриптоПро CSP», «КриптоПро EFS» обеспечивает:

Интерфейс КриптоПро EFS

КриптоПро EFS полностью поддерживает интерфейс, предложенный Microsoft для шифрующей файловой системы ОС Windows. Работа с защищенными файлами не требует изменений в пользовательских приложениях, поддерживаются интерфейсы для шифрования, расшифрования файлов и папок, редактирования группы пользователей защищенных файлов, предлагаемых в ОС Windows.

Основные отличия КриптоПро EFS от встроенного в ОС Windows EFS

Для проведения криптографических операций КриптоПро EFS требуется, чтобы на рабочей станции был установлен КриптоПро CSP 3.6, 3.9 или 4.0. Для выработки сертификатов могут быть использован «КриптоПро УЦ», MS CA. Пользователь КриптоПро EFS может хранить свой секретный ключ на отделяемых ключевых носителях — дискете, флэш-диске, смарт-карте или USB-токене.

КриптоПро EFS использует сертифицированное ФСБ России средство криптографической защиты КриптоПро CSP 3.6, 3.9 или 4.0.

КриптоПро EFS также сертифицирован в составе КриптоПро CSP 3.6.1 ЖТЯИ.00050-03 30 01 (Исполнения 3,5) и КриптоПро CSP 3.9 ЖТЯИ.00083-01 30 01 (Исполнение 3).

Для штатной работы необходимо устанавливать КриптоПро EFS с дистрибутива, полученного у производителя на материальном носителе.

Предупреждение. Срок использования КриптоПро EFS ограничен 90 днями с момента установки. Для дальнейшей эксплуатации необходимо получить лицензию на использование продукта в ООО «КРИПТО-ПРО» или у официального дилера.

Использование КриптоПро EFS регламентируется Лицензионным соглашением с ООО «КРИПТО-ПРО» или Договором, заключенным между ООО «КРИПТО-ПРО» (или дилером) и Пользователем (физическим или юридическим лицом).

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

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

С помощью программы «КриптоАРМ» вы можете зашифровать отдельный файл или папку файлов (при этом будет зашифрован отдельно каждый файл, входящий в указанную папку. Зашифрованные файлы автоматически сохраняются в папку с исходными данными).

Зашифровать файл вы можете через:

Чтобы зашифровать файл, следуйте рекомендациям Мастера выполнения операции:

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

2. Выберите папку с файлами или отдельный файл, которые необходимо зашифровать (кнопки Добавить папку и Добавить файл соответственно).


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

3. В открывшемся окне укажите настройки для выходного формата файла.


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

1) Кодировка и расширение;

2) Архивировать файлы перед шифрованием;
В строке Имя файла укажите путь до архива и имя создаваемого архива.

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

4) Сохранять структуру вложенности каталогов;

5) Отправить выходные файлы по электронной почте;

6) Удалить исходный файл после выполнения операции; Если вы решили создать файл совмещенной подписи, вы можете удалить исходный файл после выполнения операции.

7) Уровень безопасного удаления.
Подробнее о настройке параметров уровня безопасного удаления читайте в разделе Настройки каталогов хранения файлов.

4. В окне Свойства шифрования выберите режим шифрования данных.

Для этого поставьте переключатель напротив соответствующей строки:


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

Подробнее о настройке параметров шифрования вы можете прочитать в разделе Настройки операции шифрования.

5. На следующем шаге выберите сертификаты получателей шифруемого файла, используя кнопку Добавить.


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

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

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

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

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

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

8. Начнется процесс шифрования данных. Вы можете прервать его, нажав на кнопку Отмена.

9. При отправке зашифрованных данных по электронной почте (если вы указали «Открыть окно почтового клиента») откроется окно вашего почтового клиента для редактирования сообщения перед отправкой. Внесите необходимые изменения и отправьте письмо стандартным образом.

10. Далее возникнет окно Результат выполнения операции со статусом завершения операции.

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


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

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

1. Выделите запись в списке окна Результат выполнения операции и нажмите на кнопку Менеджер сообщения.
2. Откроется окно Управление шифрованными данными, в котором вы можете:


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

Сертификат расшифрования данных отмечается значком —

. Сертификатом расшифрования становится первый из списка сертификат получателей, имеющий закрытый ключ. Остальные сертификаты отмечаются стандартными значками.

Вы можете расширить/сократить список сертификатов получателей файла (кнопки Добавить и Удалить соответственно). При нажатии на кнопку Применить или ОК данные будут повторно зашифрованы в адрес измененного списка получателей.

Квалифицированнаяэлектронная подпись

Поддерживает сертификаты усиленной квалифицированной электронной подписи. Соответствует требованиям 63-ФЗ «Об электронной подписи». Используются российские алгоритмы и стандарты электронной подписи и хеширования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012. Совместим с СКЗИ «КриптоПро CSP 4.0» и выше.

Мобильнаяэлектронная подпись

Использование электронной подписи на мобильных устройствах под управлением ОС iOS и Android. Поддержка «облачных или дистанционных» ключей ЭП. Поддержка ключей, привязанных к SIM-карте абонента. Поддержка защищенных ключевых носителей USB Type-C, Bluetooth, NFC. Возможность установки сертификатов и ключей через QR-код.

Облачная илидистанционная подпись

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

Шифрованиеэлектронных документов

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

Алгоритмышифрования

Поддерживаются ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования», ГОСТ Р 34.12-2015 и ГОСТ Р 34.12-2018 «Информационная технология. Криптографическая защита информации. Блочные шифры» — Кузнечик и Магма.

Шифрованиеи проверка подписи

Шифрование файлов и проверка электронной подписи выполняются бесплатно, не требуют ввода лицензии на КриптоАРМ ГОСТ. Единственное условие — на рабочем месте требуется установка КриптоПро CSP, также бесплатного для шифрования данных и проверки ЭП.

Создание запросав УЦ и генерация ключей

Возможность создать запрос на получение сертификата электронной подписи по выбранному шаблону. Генерация контейнера с ключами ЭП локально в системный реестр либо на специальный носитель. Сохранение созданных запросов и отправка их в УЦ. Установка полученного в УЦ сертификата в контейнер с ключами.

Защищенныеотчуждаемые носители

Поддерживается использование защищенных отчуждаемых носителей (токенов и смарт-карт) разных брендов: Рутокен, JaCarta, eSMART и разных видов: USB, Type-C, Bluetooth, ФКН, NFC. Поддержка интерфейса PKCS#11 осуществляется через КриптоПро CSP 5.0.

Импорт сертификатовиз LDAP

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

Чтобы начать подписывать, шифровать документы и обмениваться ими, рабочее место надо подготовить. Сервис диагностики рабочего места сделает это автоматически.

Любые размеры и форматы

Работайте с документами ифайлами без ограничения по формату и размеру.

Совместим с КриптоПро

КриптоПро CSP 4.0 и 5.0, КриптоПро TSP Client 2.0, КриптоПро OCSP Client 2.0, КриптоПро DSS 2.0

Поддержка российских ОС

КриптоАРМ ГОСТ работает на отечественных системах: Астра Линукс, РОСА, Альт, РЕД ОС.

Отечественный софт

Внесена в Единый реестр российского ПО. Номер записи5776 от 20.09.2019 г.

ver. 2.5.12 от 28.12.2021

Сейчас у нас нет доступных бета-версий КриптоАРМ ГОСТ

Для загрузки дистрибутивов, пожалуйста,

ver. 2.5.11 от 21.03.2021г.

Или выберите удостоверяющий центр

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

Как сформировать и подписать

9 марта 2022

Сдача алкогольной декларации в ФСРАР

1 июля 2022

Сферы применения КриптоАРМ ГОСТ 3

15 сентября 2023


ШИФРОВКА ИНФОРМАЦИИ СОЗДАНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ ПОДПИСЕЙ С ПОМОЩЬЮ ПАКЕТА PY CRYPTO

Долго мучился с PyCrypto, в итоге получилась эта статья и полная реализация следующего протокола:

1. Алиса подписывает сообщение своей цифровой подписью и шифрует ее открытым ключом Боба (асимметричным алгоритмом).
2. Алиса генерирует случайный сеансовый ключ и шифрует этим ключом сообщение (с помощью симметричного алгоритма).
3. Сеансовый ключ шифруется открытым ключом Боба (асимметричным алгоритмом).
Алиса посылает Бобу зашифрованное сообщение, подпись и зашифрованный сеансовый ключ.

Боб получает зашифрованное сообщение Алисы, подпись и зашифрованный сеансовый ключ.
4. Боб расшифровывает сеансовый ключ своим закрытым ключом.
5. При помощи полученного, таким образом, сеансового ключа Боб расшифровывает зашифрованное сообщение Алисы.
6. Боб расшифровывает и проверяет подпись Алисы.

Вышеописанный протокол является гибридной системой шифрования, которая работают следующим образом. Для симметричного алгоритма AES (или любого другого) генерируется случайный сеансовый ключ.

Такой ключ как правило имеет размер от 128 до 512 бит (в зависимости от алгоритма). Затем используется симметричный алгоритм для шифрования сообщения. В случае блочного шифрования необходимо использовать режим шифрования (например CBC), что позволит шифровать сообщение с длиной, превышающей длину блока. Что касается самого случайного ключа, он должен быть зашифрован с помощью открытого ключа получателя сообщения, и именно на этом этапе применяется криптосистема с открытым ключом RSA.

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

Начнем с генерации пары ключей для Алисы и Боба.

from Crypto. Cipher import PKCS1_OAEP
from Crypto. PublicKey import RSA

# key generation Alisa
privatekey = RSA.generate(2048)
f = open(‘c:cipher\alisaprivatekey.txt’,’wb’)
f.write(bytes(privatekey.exportKey(‘PEM’))); f.close()
publickey = privatekey.publickey()
f = open(‘c:cipher\alisapublickey.txt’,’wb’)
f.write(bytes(publickey.exportKey(‘PEM’))); f.close()
# key generation Bob
privatekey = RSA.generate(2048)
f = open(‘c:cipher\bobprivatekey.txt’,’wb’)
f.write(bytes(privatekey.exportKey(‘PEM’))); f.close()
publickey = privatekey.publickey()
f = open(‘c:cipher\bobpublickey.txt’,’wb’)
f.write(bytes(publickey.exportKey(‘PEM’))); f.close()

На данный момент система шифрования на основе RSA считается надёжной, начиная с размера ключа в 2048 бит.

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

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

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

Хэш-функции, представляют собой функции, математические или иные, которые получают на вход строку переменной длинны (называемую прообразом) и преобразуют ее в строку фиксированной, обычно меньшей, длинны (называемую значением хэш-функции). Смысл хэш-функции состоит в получении характерного признака прообраза — значения, по которому анализируются различные прообразы при решении обратной задачи. Однонаправленная хэш-функция — это хэш-функция, которая работает только в одном направлении: легко вычислить значение хэш-функции по прообразу, но трудно создать прообраз, значение хэш-функции которого равно заданной величине. Хэш-функция является открытой, тайны ее расчета не существует. Безопасность однонаправленной хэш-функции заключается именно в ее однонаправленности.

Переходим к написанию первого пункта протокола:

1. Алиса подписывает сообщение своей цифровой подписью и шифрует ее открытым ключом Боба (асимметричным алгоритмом RSA).

В следующем листинге код для следующих двух пунктов протокола:

2. Алиса генерирует случайный сеансовый ключ и шифрует этим ключом сообщение (с помощью симметричного алгоритма AES).
3. Сеансовый ключ шифруется открытым ключом Боба (асимметричным алгоритмом RSA).

from Crypto. Cipher import AES
from Crypto import Random
from Crypto. Cipher import PKCS1_OAEP
from Crypto. PublicKey import RSA

# creation 256 bit session key
sessionkey = Random.new().read

# 256 bit
# encryption AES of the message
f = open(‘c:cipherplaintext.txt’,’rb’)
plaintext = f.read(); f.close()
iv = Random.new().read

# 128 bit
obj = AES.new(sessionkey, AES. MODE_CFB, iv)
ciphertext = iv + obj.encrypt(plaintext)
f = open(‘c:cipherplaintext.txt’,’wb’)
f.write(bytes(ciphertext)); f.close()
# encryption RSA of the session key
publickey = RSA.importKey(open(‘c:cipher\bobpublickey.txt’,’rb’).read())
cipherrsa = PKCS1_OAEP.new(publickey)
sessionkey = cipherrsa.encrypt(sessionkey)
f = open(‘c:ciphersessionkey.txt’,’wb’)
f.write(bytes(sessionkey)); f.close()

Для режима шифрования CFB требуется вектор инициализации (IV) (переменная iv).

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

Далее Алиса посылает Бобу зашифрованное сообщение, подпись и зашифрованный сеансовый ключ.

4. Боб расшифровывает сеансовый ключ своим закрытым ключом.
5. При помощи полученного, таким образом, сеансового ключа Боб расшифровывает зашифрованное сообщение Алисы.

Безопасность RSA основана на сложности задачи факторизации произведения двух больших простых чисел. Факторизация целых чисел для больших чисел является задачей большой сложности. Не существует никакого известного способа, чтобы решить эту задачу быстро. Факторизация кандидат в односторонние функции, которые относительно легко вычисляются, но инвертируются с большим трудом. То есть, зная x просто рассчитать f(x), но по известному f(x) нелегко вычислить x. Здесь, «нелегко» означает, что для вычисления x по f(x) могут потребоваться миллионы лет, даже если над этой проблемой будут биться все компьютеры мира.

Литература:
Брюс Шнайер — Прикладная криптография

Простое файловое шифрование

Веб-приложения, которые обеспечивают локальное шифрование отдельных файлов в браузере с использованием известной библиотеки libsodium и криптографических алгоритмов:

XChaCha20-Poly1305 — ARX-шифр, который выполняет аутентифицированное шифрование, то есть помимо собственно шифрования обеспечивает целостность данных. Алгоритм достаточно быстр, надежен и проверен практикой.

Здесь и далее комментирует Степан Давыдов, старший специалист-исследователь лаборатории криптографии компании «Криптонит».

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

Picocrypt

Windows, macOS и Linux

Крошечная, весом 2MB, но функциональная утилита, которая не требует установки и прав администратора. Обычно использует XChaCha20 и функцию формирования ключа Argon2 для создания криптоконтейнеров. В «режиме паранойи» использует каскадное шифрование — последовательно шифрует данные при помощи XChaCha20 и Serpent, и использует HMAC-SHA3 вместо BLAKE2b для аутентификации. Все используемые в Picocrypt криптографические примитивы взяты из модуля golang.org/x/crypto.

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

Кроме того, Picocrypt может:

Шифрование файлов перед загрузкой в облако

Windows, macOS, Linux, iOS, Android

Cryptomator не заменяет клиенты для облачных хранилищ, однако он предназначен специально для шифрования каталогов, которые будут синхронизированы с их помощью. Эта программа скрывает структуру каталогов, шифрует файлы и их имена с помощью AES и 256-битного ключа, генерируемого на основе пароля при помощи scrypt.

AES выбран на конкурсной основе в качестве, де-факто, международного стандарта. A ES один из наиболее популярных и подробно исследованных шифров. Это не значит, что у него нет недостатков, например, разработан теоретический способ снизить стойкость AES на 2 бита ключа, однако с 1997 года не найдено ни одной практически полезной атаки.

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

Документация Cryptomator подробно описывает архитектуру безопасности. Некоторые криптографические библиотеки Cryptomator (cryptolib, cryptofs, siv-mode и cryptomator-objc-cryptor) прошли аудит Cure53. Исключение составляет cryptolib-swift — библиотека, используемая в Cryptomator для iOS. К тому же, исходный код мобильных приложений не опубликован.

Duplicati

Специализированное решение для безопасного резервного копирования файлов в облачные хранилища. Оно использует AES-256 для защиты данных средствами SharpAESCrypt или GnuPG.

Duplicati поддерживает инкрементное резервное копирование, то есть сначала загружает полную резервную копию, а затем сохраняет небольшие добавочные обновления. Кроме того, эта утилита позволяет создавать резервные копии открытых или заблокированных файлов с помощью службы моментальных снимков тома (VSS) Windows или диспетчера логических томов (LVM) в Linux.

RClone

Windows, macOS, Linux, .deb, .rpm, FreeBSD, Plan9, Solaris

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

Для криптографической защиты файлов в RClone используется 256-битный ключ и соль, создаваемые на основе пары разных пользовательских паролей.

Кстати, о паролях. Учитывая то, какие обширные словари и базы доступны злоумышленникам, наиболее безопасным вариантом и для криптоконтейнеров и любых других целей, будут пароли длиной от 16 символов. Либо полностью случайные, либо пароли, в которых часть случайная, а часть — ваша парольная фраза. Для их генерации и хранения можно пользоваться менеджерами, например, KeePass Password Safe.

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

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

Штатное полнодисковое шифрование

Для начала коротко о стандартных решениях, интегрированных в операционные системы.

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

Apple использует в macOS технологию FileVault на базе алгоритма XTS-AES-128 с длиной ключа 256 бит и криптографический чип T2 для работы с ключами. Это решение близко по надежности к шифрованию IPhone. В то же время Windows предлагает BitLocker, который шифрует систему при помощи 128- или 256-битного алгоритма AES и Encrypting File System для шифрования отдельных файлов, однако эти функции недоступны в Windows 10/11 Home. Они работают в профессиональных редакциях операционной системы.

Для Linux существует общий «стандартный» метод шифрования LUKS, но его реализации отличаются от дистрибутива к дистрибутиву. Обычно используется шифрование AES с 256-битными ключами, но LUKS работает с разными шифрами (Serpent, Twofish, CAST-128, CAST-256) и хеш-функциями (SHA-1, SHA-256, SHA-512, RIPEMD160, WHIRLPOOL). В итоге получается зоопарк, которому нельзя дать единую однозначную оценку.

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

Создание шифрованных архивов, контейнеров и томов

Windows, macOS, Linux, FreeBSD, Raspberry Pi

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

По умолчанию эта утилита использует 256-битное шифрование AES, но поддерживает и другие шифры: Camellia, Кузнечик, Serpent и Twofish с 256-битным ключем и различные их сочетания.

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

Наиболее надежными являются российский стандарт Кузнечик, а также международные стандарты ISO/IEC AES и Camellia при использовании с 256-битными ключами. Алгоритмы Serpent и Twofish не имеют известных уязвимостей, однако их анализу уделялось существенно меньше внимания.

ZuluCrypt

Эта программа фактически является графическим интерфейсом для работы с cryptsetup. Она задействует возможности криптографического API ядра Linux для создания и монтирования томов PLAIN dm-crypt, LUKS, контейнеров TrueCrypt, VeraCrypt и BitLocker. Не позволяет создавать разделы BitLocker, только просматривать их содержимое, но в остальном универсальна.

Kryptor

Консольный инструмент для шифрования и подписи файлов, который разрабатывается, как замена age и Minisign, а также современная альтернатива GPG. Использует алгоритм XChaCha20-Poly1305 для защиты файлов, argon2id для получения ключа на основе пароля, BLAKE2b для хеширования, X25519 для обмена ключами и Ed25519 для цифровых подписей. Все они реализованы при помощи библиотеки libsodium. Хорошо документирован.

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

Dexios

Linux, Windows, MacOS, FreeBSD (запускается на Android через Termux)

Еще один консольный инструмент шифрования. Написан на языке Rust и способен шифровать как отдельные файлы, так и каталоги. Как и Kryptor, снабжен подробной документацией.

Dexios поддерживает AES-256-GCM и ChaCha20-Poly1305 для шифрования файлов, а также BLAKE3-Balloon и argon2id для формирования ключа. Все криптографические примитивы взяты из набора RustCrypto. А еще, в 2022 году Dexios прошел проверку NCC без существенных замечаний (отчет по AES и отчет по ChaCha20-Poly1305).

Tomb

Командная оболочка для криптографического API ядра Linux. Tomb служит для управления cryptsetup и LUKS. По умолчанию применяет для защиты файлов и каталогов алгоритм AES-256 (XTS plain), однако может использовать все доступные в Linux криптографические примитивы.

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

Подобные аудиты — важная вещь.

Несмотря на все городские легенды о закладках в популярных алгоритмах шифрования, отечественных и зарубежных, ни одного такого свидетельства нет. Все перечисленные в статье алгоритмы известны криптографическому сообществу долгое время, по каждому из них проведен неоднократный анализ и ни одной атаки, сколько-нибудь близкой к практической, не найдено. Наилучший результат, полученный российскими криптоаналитиками для стандартизованных современных криптомеханизмов, относится к алгоритму генерации ключа MQ-DRBG. Авторам исследования удалось снизить криптостойкость с 256 до 153 бит, тем не менее практические атаки не найдены, а наличие закладки не доказано.

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

SiriKali

Решение в стиле «все в одном» — комбайн с графическим интерфейсом на Qt/C++, который управляет зашифрованными папками при помощи ряда инструментов.

В Linux в качестве бэкенда SiriKali выступают:

В Windows SiriKali работает с:

В macOS к утилите подключаются:

Все это консольные инструменты, которые можно использовать и отдельно от SiriKali. Достаточно широкий выбор, однако, не все они одинаково полезны. Так, во время аудита в 2014 году в EncFS были найдены уязвимости, которые до сих пор не исправлены. Проект не обновлялся с 2018 года и прямо скажем, устарел.

Что касается CryFS, то эта консольная утилита создана для использования вместе с Dropbox или другими облачными сервисами. В ней для криптографии используется библиотека Crypto++. Ее архитектура описана в магистерской диссертации и научной статье, опубликованной на DBSec 2017. В основе шифр AES-256.

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

У подхода есть минус — множество отдельных файлов, которые генерирует программа. В некоторых облачных сервисах можно быстро столкнуться с ограничением на максимальное число файлов. К тому же, при шифровании файлов, размером менее нескольких МБ, CryFS увеличивает занимаемое ими место, из-за фиксированного размера шифрованного блока. Но главный недостаток утилиты заключается в том, что она все еще находится в стадии бета-тестирования.

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

ЭЦП:  КАК ПОЛУЧИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ ДЛЯ ПОРТАЛА ГОСУСЛУГ
Оцените статью
ЭЦП64