Крипто Защита Информации
Зачем
Обеспечение информационной безопасности передаваемых данных.
Паттерны
- На сетевом уровне (OSI L1-L3)
- СКЗИ
- на программном уровне
- на аппаратном уровне
Криптоалгоритмы
- подписание - состоит из операции хэширования и шифрования
- ГОСТ Р 34.10 2012, 2001
- шифрование
- хэширование
- ГОСТ Р 34.11-94, 34.11-2012
- ГОСТ Р 31.11
- HMAC SHA256 симметричный
- RS256 - ассиметричный. Приватным ключом подпись создается, публичным ключом проверяется подлинность
- кодирование
- base64urlas
- имитозащита - защита целостности сообщения
- В России принят алгоритм вычисления имитовставки по ГОСТ 28147-89
- Имитовста́вка (MAC, англ. message authentication code — код аутентификации послания)
- средство обеспечения имитозащиты в протоколах аутентификации сообщений с доверяющими друг другу участниками
- специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных
- Алгоритм Diffie-Hellman - транспортный ключ
ГОСТ
Криптоалгоритмы ГОСТ Р 34.10-2012, ГОСТ 34.10-18 256 бит:
- необходимо использовать сертифицированные ФСБ РФ СКЗИ
- Open Source
- на основе криптобиблиотеки OpenSSL 3.0 - полноценная криптографическая библиотека с открытым исходным кодом, широко известна из-за расширения SSL/TLS, используемого в веб-протоколе HTTPS.
- Поддерживает почти все низкоуровневые алгоритмы хеширования, шифрования и электронной подписи
- криптографических стандартов:
- RSA, DH, DSA, сертификаты X.509, подписывать их, формировать CSR и CRT, шифровать данные и тестировать SSL/TLS соединения
- ГОСТ через расширение библиотеки OpenSSL ГОСТ алгоритмами gost-engine
- Proxy nginx
- 2022 nginx 1.23.2 + openssl 3.0.5 + gost engine 3.0.1 + TLSv1.2 docker образ
- 2018 docker образ GIT
- Библиотека OpenSSL 1.1.0g
- gost-engine
- stunnel - программа, на которую можно переложить всю логику шифрования трафика между сервером и клиентом
- stunnel:port openssl-gost-stunnel (>=v.1.0.2)
- шифрование через криптобиблиотеку openssl и расширешение библиотеки ГОСТ алгоритмами gost-engine
- docker-openssl-gost
- криптотуннель с валидным ключом, подписанным самим «КриптоПро», и с алгоритмом шифрования GOST_2012, 512 бит
- на основе криптобиблиотек КриптоПро
- Nginx вариант с библиотекой КриптоПро
- 2018 Docker контейнер с CryptoPro 4 и nginx
- Win Server IPSec VPN с КриптоПро CSP и КриптоПро IPSec
- на основе криптобиблиотеки OpenSSL 3.0 - полноценная криптографическая библиотека с открытым исходным кодом, широко известна из-за расширения SSL/TLS, используемого в веб-протоколе HTTPS.
- Commercial
- аппаратные устройства КриптоПро NGate
- Аутсорс с арендой оборудования Ростелеком Солар
- аппаратные устройства TSS Diamond
- программно-аппаратный комплекс S-terra
- программно-аппаратный комплекс Infotecs VipNet
- выбор
Международные
Криптоалгоритмы международные:
- RSA\AES
- IPSec VPN Site-to-Site - CISCO
Алгоритм Diffie-Hellman
- Варианты алгоритмов:
- Diffie-Hellman (DH) Key Exchange - Диффи-Хеллмана
- Elliptic Curve Diffie-Hellman (ECDH) - Диффи-Хеллмана на эллиптических кривых
- Ипользуется для того, чтобы две стороны могли создать общий секретный ключ, его еще называют «транспортный ключ», который затем используется для шифрования и дешифрования сообщений
- Используется в TLS, IPSec, SSH
- Главное - этот ключ создается без прямого обмена им между сторонами
- Алгоритм
- Сначала сервер и клиент должны сгенерировать свои идентификационные номера
- На основе этих номеров сервер и клиент создают свои собственные открытые и закрытые ключи
- Затем происходит обмен открытыми ключами, в то время как закрытыми ключами обмениваться не нужно
- Используя свой закрытый ключ и открытый ключ сервера, клиент устанавливает общий секретный ключ, а сервер выполняет ту же последовательность действий
- С помощью закрытых ключей обе стороны генерируют общий секретный ключ, который затем будет использоваться выбранным алгоритмом шифрования для обеспечения безопасности связи.
- Общий секретный ключ остается конфиденциальным
- Параметры алгоритма
- Ключевая пара (public\private key)
- Длина ключа не менее 1024 байт
- формат X.509 Encoded
- Сгенерируем приватный ключ RSA зашифрованный AES 256 с паролем “password” длиной 4096 бит (меньше 1024 считается ненадежным)
- Ключевая пара (public\private key)
- Реализации
- Key Exchange
- ECDH - Диффи-Хеллмана на эллиптических кривых
- JAVA
- .NET Cryptography Next Generation (CNG) c функцией формирования ключа (KDF)
- Swift Apple CryptoKit Сurve25519 GitHub
- Используется алгоритм X25519 на curve25519
- OpenSSL X25519
Подписание ЭЦП
- Электронная подпись (ЭЦП) содержит номер, сгенерированный и зашифрованный при помощи криптографического программного обеспечения.
- Алгоритм
- Хэширование сообщения: на входе сообщение произвольной длины, на выходе хэш значение фиксированной длины
- Шифрование хэша - не обязательно
- При формировании ЭЦП закрытый ключ отправителя используется, проверка - открытым ключом отправителя
- При шифровании сообщения - открытый ключ получателя, расшифрование сообщения - закрытым ключом получателя
- Виды электронной подписи по №63-ФЗ «Об электронной подписи»:
- Простая электронная подпись
- представляет собой уникальную комбинацию символов, которая создаётся пользователем или информационной системой и не имеет физического носителя
- не может защитить документ от последующего изменения
- Усиленная электронная подпись (УЭП) может быть двух видов:
- Усиленная неквалифицированная электронная подпись (УНЭП)
- Усиленная квалифицированная электронная подпись (УКЭП)
- получают в аккредитованном удостоверяющем центре (УЦ)
- Простая электронная подпись
- Форматы ЭЦП
- Присоединённая
- содержится в самом документе
- чтобы прочитать документ потребуется ПО
- Отсоединённая
- содержится в отдельном файле .SIG
- чтобы прочитать документ НЕ потребуется ПО, не изменяет подписываемый документ
- Как создать программно в КриптоПро
- в формате
- pkcs 7 через Приложение cryptcp для КриптоПро CSP
- в кодировке DER или BASE64
- Base64String
- pkcs 7 через Приложение cryptcp для КриптоПро CSP
- Интегрированная
- Присоединённая
Имитозащита
Варианты решений