Депонирование, резервное копирование и восстановление ключей
Спроектируйте стратегию резервного копирования ключей с разделением секрета Шамира и восстановлением m-из-n
«Депонирование, резервное копирование и восстановление ключей» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Проблема хранения ключей у доверенной стороны
Хранение ключей у доверенной стороны означает хранение копии закрытого ключа у третьей стороны, которой доверяют (регулятора, работодателя, правоохранительного органа). Это обеспечивает восстановление, но создаёт цель для атак: такие системы являются особо ценными поверхностями атаки.
Требования к корпоративному хранению ключей
Компании передают ключи шифрования на хранение доверенной стороне, чтобы IT мог расшифровать корпоративные данные, если сотрудник недоступен. Это предписывается политиками и нормативными требованиями, например обязательствами GDPR по доступу субъектов данных.
Дебаты о хранении ключей для правоохранительных органов
Правительства периодически предлагают обязательное хранение ключей у доверенной стороны (Clipper Chip, 1993 год, и инициатива FBI «Going Dark» с 2015 года). Криптографы утверждают, что это создаёт чёрные ходы, которыми могут воспользоваться злоумышленники, и технически невыполнимо на практике.
Разделение секрета Шамира для резервного копирования ключа
Разделите master key на n долей с помощью пороговой схемы Шамира (k,n). Любые k долей восстанавливают key, а менее k долей не раскрывают ничего. Классический вариант хранения у доверенной стороны: 5 хранителей, любые 3 из которых могут выполнить восстановление.
from cryptography.hazmat.primitives import hashes
# Note: Shamir SSS is not in the stdlib cryptography package.
# Use: pip install secretsharing
# from secretsharing import PlaintextToHexSecretSharer as SS
# shares = SS.split_secret("my_hex_key", 3, 5) # 3-of-5
# recovered = SS.recover_secret(shares[:3])
print("Shamir 3-of-5 split: any 3 of 5 custodians reconstruct the key")Хранители аппаратных токенов
Каждая доля Шамира записывается на аппаратный токен (смарт-карту, USB HSM). Токены передаются хранителям. Для восстановления хранители должны собраться в защищённом помещении и предъявить свои токены.
Церемония ключей M-of-N
Во время настройки: сгенерируйте key в HSM, разделите его на n долей Шамира, запишите каждую долю на смарт-карту хранителя и уничтожьте объединённый key в HSM. Задокументируйте и проверьте аудитом всю церемонию.
Зашифрованная резервная копия ключа в автономном хранилище
Зашифруйте (encrypt) the резервную копию key или доли Шамира с помощью надёжной парольной фразы. Храните её на автономном носителе (зашифрованном USB или бумажном QR-коде в сейфе). Проверяйте восстановление ежеквартально. Распределяйте копии географически.
Процедуры восстановления ключа
Документируйте пошагово: кто разрешает восстановление (двойной контроль), как собираются хранители, какой слот HSM получает восстановленный key, как проверяется восстановленный key и как регистрируется инцидент.
Двойной контроль и разделение знания
Двойной контроль: два человека должны действовать вместе, чтобы использовать key (у одного PIN, у другого карта). Разделение знания: ни один человек по отдельности не знает полного значения key. PCI-DSS требует и то и другое для ключей шифрования ключей.
Проверка восстановления
Непроверенная резервная копия key — это резервная копия, которой не существует. Планируйте ежеквартальные учения: соберите k хранителей, восстановите key, убедитесь, что он расшифровывает тестовый шифртекст, а затем заново передайте свежие доли на хранение доверенной стороне.
Проверка знаний
Что PCI-DSS требует для операций с ключами шифрования ключей?
Итоги урока
Хранилище ключей позволяет сбалансировать потребность в восстановлении и риски безопасности. Разделение секрета Шамира разбивает ключи для восстановления по схеме m-из-n с участием хранителей. Хранители используют аппаратные токены. Двойной контроль и разделение знаний предотвращают угрозы со стороны инсайдеров. Регулярно проверяйте процедуры восстановления.
Часто задаваемые вопросы
Урок «Депонирование, резервное копирование и восстановление ключей» бесплатный?
Да — полный текст урока «Депонирование, резервное копирование и восстановление ключей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Депонирование, резервное копирование и восстановление ключей»?
Спроектируйте стратегию резервного копирования ключей с разделением секрета Шамира и восстановлением m-из-n Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Депонирование, резервное копирование и восстановление ключей»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Жизненный цикл ключа: создание, хранение, обновление, уничтожение
- Архитектура HSM и интерфейс PKCS#11
- AWS KMS, GCP Cloud KMS и Azure Key Vault
- Депонирование, резервное копирование и восстановление ключей