Дилеммы и мысли о защите корневого ключа
Дилеммы и мысли о защите корневого ключа

введение

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

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

Многоуровневая защита цепочки ключей.
Многоуровневая защита цепочки ключей.

Ключи и данные

Скрыть текстовые данные

Шифровать данные

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

Наиболее распространенные алгоритмы симметричного шифрования включают в себя: AES-CBC、AES-GCM、SM4 ждать,Эти алгоритмы одновременноПринимая во внимание как производительность вычислений, так и безопасность, влияние на бизнес-операции можно свести к минимуму.

напримериспользоватьПростой инструмент шифрованияруководить AES-CBC модель Шифровать данные:

Язык кода:python
кодКоличество запусков:0
копировать
# Инструменты для установки
❯ pip install easy-encryption-tool

# использоватьинструмент
❯ easy_encryption_tool aes -m cbc -a encrypt -i "Чжан Сан 13211092209 421097199809232342"

------ df05f9767a73cfe7 begin@2024-05-18_10:21:07.701 ------
plain size:37
key:kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
iv:vvvvvvvvvvvvvvvv
cipher size:48
cipher:+m+O07MYtdafbFXtpIJYc0B5K1SXMbC/z+4yTUeNG1C9dTMJfcwVZnNSQbUPRKz7
auth_tag_size:0
auth_tag:
------ df05f9767a73cfe7 took 1.841 milli-seconds to execute ------

В приведенном выше фрагменте кода моделирование конфиденциальных данных Чжан Сан 13211092209 421097199809232342 (Предположим, что данные здесь представляют собой: имя пользователя, номер телефона, удостоверение личности) зашифрованы;

Наконец получил зашифрованный текст:

+m+O07MYtdafbFXtpIJYc0B5K1SXMbC/z+4yTUeNG1C9dTMJfcwVZnNSQbUPRKz7

Используется для шифрования данных Ключ:kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Используется для шифрования данных IV да:vvvvvvvvvvvvvvvv

Расшифровать данные

Конечно, используя тот же ключ и IV, зашифрованный текст можно восстановить в открытый текст.

Язык кода:python
кодКоличество запусков:0
копировать
❯ easy_encryption_tool aes -m cbc -a decrypt -i "+m+O07MYtdafbFXtpIJYc0B5K1SXMbC/z+4yTUeNG1C9dTMJfcwVZnNSQbUPRKz7" -e -k "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" -v "vvvvvvvvvvvvvvvv"

------ cd5710a1a54718e1 begin@2024-05-18_10:29:04.131 ------
cipher size:48
plain size:37
str plain:Чжан Сан 13211092209 421097199809232342
------ cd5710a1a54718e1 took 1.824 milli-seconds to execute ------

Но если вы используете неправильный ключ или IV, вы не сможете получить данные в виде открытого текста или получите неправильные данные в виде открытого текста:

Язык кода:python
кодКоличество запусков:0
копировать
❯ easy_encryption_tool aes -m cbc -a decrypt -i "+m+O07MYtdafbFXtpIJYc0B5K1SXMbC/z+4yTUeNG1C9dTMJfcwVZnNSQbUPRKz7" -e -k "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" -v "vvvvvvvvvvvvvvvv"

------ 03b05e83d7782242 begin@2024-05-18_10:31:31.223 ------
decrypt +m+O07MYtdafbFXtpIJYc0B5K1SXMbC/z+4yTUeNG1C9dTMJfcwVZnNSQbUPRKz7 failed:Invalid padding bytes.
------ 03b05e83d7782242 took 1.921 milli-seconds to execute ------

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

«Полная серия AES за 30 минут (часть 1): основные функции»

«Серия покорите AES за 30 минут (часть 2): анализ и разъяснение Padding-атаки Oracle Padding»

«Полная серия AES за 30 минут (часть 2): исследование IV и семантической безопасности шифрования»

Сохраняйте характеристики данных для облегчения поиска или сравнения.

Использовать алгоритм хеширования

В некоторых бизнес-системах после успешного сокрытия данных также необходима возможность сравнивать данные на основе определенных характеристик данных.

например Для текстовых данных:Чжан Сан 13211092209 421097199809232342,После преобразования его в зашифрованные данные посредством симметричного шифрования.,О некоторой ключевой логике поиска,Мне нужно знать, можно ли сопоставить данные открытого текста в данный момент.,Однако открытый текст не может быть напрямую представлен или сохранен.,Таким образом, в настоящее время будут рассмотрены вопросы бизнес-системы.использовать hash Алгоритм выполняет извлечение признаков из открытого текста, например, используя sha256:

Язык кода:shell
копировать
❯ echo "Чжан Сан 13211092209 421097199809232342" > test_data.bin
❯ cat test_data.bin
Чжан Сан 13211092209 421097199809232342
❯ sha256sum test_data.bin
278dfdadc035c68bc6709c2efd0eb63035dfbf15a5e5c852020e63d78bf95a4f  test_data.bin

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

Используйте HMAC

Использование HMAC, вероятно, более безопасно, чем хеширование.

Язык кода:shell
копировать
❯ easy_encryption_tool hmac -i "Чжан Сан 13211092209 421097199809232342" -k "my_hmac_key_for_data"

------ 84bcb95eb9a698a8 begin@2024-05-18_10:46:58.079 ------
data size:37Bytes
key:my_hmac_key_for_data
hmac:af66a2dd2fcc5d89b1d6ea019a169222bcf098ab177da672d4b8115054b7543e
------ 84bcb95eb9a698a8 took 0.028 milli-seconds to execute ------

использовать HMAC когда вы сможете представить HMAC ключ:my_hmac_key_for_data,увеличить сложность,Уменьшите вероятность коллизии данных.

Конечно, упомянутая здесь коллизия не относится к коллизии на уровне алгоритма, но, как упоминалось ранее, она относится к непосредственному вычислению его значения на основе данных открытого текста после освоения части данных открытого текста. HASH ценить,Затемиспользовать HASH Значение сравнивается с столкновением.


Содержание алгоритма HMAC можно найти в моей предыдущей статье:

«Атака с расширением длины хеша из-за коллизии хэшей MD5»

«Руководство по началу работы с кодом проверки сообщения MAC»

Безопасность ключа становится ключом

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

несмотря ни на чтода Симметричное шифрованиеключ:kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Или данные HMAC ключ:my_hmac_key_for_data,утечка обоих,Особенно утечка симметричных ключей,Это создаст большую скрытую угрозу безопасности данных.

Цепочка защиты ключей

Ключ сам по себе также является разновидностью данных. Следовательно, защита данных зависит от ключа данных, а защита ключа данных зависит от ключа, который защищает ключ данных. Здесь мы называем его корневым ключом.

Цепочка защиты ключей, основанная на корневом ключе, представляет собой парадигму защиты данных.

Пример защиты брелка
Пример защиты брелка

Важность корневого ключа

Корневой ключ — это доверительная основа всей системы защиты цепочки. Утечка корневого ключа приведет к краху всей информационной системы.

  • Отправная точка доверия: корневой ключ является отправной точкой для построения доверия.,Все операции шифрования и меры защиты данных основаны на безопасности корневого ключа.
  • Ядро защиты данных. Корневой ключ — это ядро ​​защиты данных, которое напрямую влияет на конфиденциальность, целостность и доступность данных.
  • Поддержка политик безопасности: корневой ключ поддерживает политики безопасности всей организации, включая контроль доступа, шифрование данных, аутентификацию и т. д.
  • Основа соответствия: Безопасное управление корневыми ключами имеет основополагающее значение для соблюдения законодательных, нормативных требований и требований соответствия.
  • Ключ к аварийному восстановлению. В плане аварийного восстановления безопасность и возможность восстановления корневого ключа являются ключом к восстановлению системы шифрования.
  • Направление управления рисками. Корневой ключ — это направление управления рисками, и его риски необходимо снижать с помощью различных мер безопасности.
  • Гарантия непрерывности бизнеса. Безопасность корневого ключа напрямую связана с непрерывностью бизнеса. Если корневой ключ окажется под угрозой, это может оказать серьезное влияние на бизнес-операции.

Проблемы, вызванные статическими корневыми ключами

Общие системы защиты ключей включают следующее:

Один ключ данных защищает все данные
Один ключ данных защищает все данные
Объединение ключей данных
Объединение ключей данных

Из рисунка не видно, что статический корневой ключ имеет единственную точку риска, которую грубо можно описать так:

  • Фиксированная цель атаки: статический корневой ключ предоставляет злоумышленнику фиксированную цель атаки. Если злоумышленник сможет взломать или получить этот ключ,Они смогут получить доступ ко всем данным, защищенным ключами, полученными из этого корневого ключа.
  • Долгосрочные риски: со временем ключи могут стать менее безопасными из-за технологических достижений (например, развития квантовых вычислений) или обнаружения уязвимостей безопасности. Утвержденные корневые ключи не могут адаптироваться к этим изменениям, что увеличивает долгосрочные риски безопасности.
  • Компрометация ключа: если корневой ключ скомпрометирован в любой момент.,Поскольку оно статично,Злоумышленник может продолжать использовать этот ключ для расшифровки данных.,Даже если данные были зашифрованы до того, как ключ был скомпрометирован.
  • Отсутствие гибкости. Статические корневые ключи ограничивают гибкость стратегий управления ключами. Например, когда требуется быстрое реагирование на инциденты безопасности или изменения политики, защищенный корневой ключ может не быть своевременно обновлен или заменен.
  • Проблемы развития технологий. По мере развития технологии шифрования могут потребоваться более безопасные или другие типы корневых ключей для соответствия новым алгоритмам или стандартам шифрования. Статические корневые ключи недостаточно гибки, чтобы адаптироваться к этим технологическим изменениям.
  • Проблемы соответствия. Некоторые правила или стандарты могут требовать периодической замены ключей для обеспечения безопасности данных. Статические корневые ключи могут не соответствовать этим требованиям соответствия.
  • Проблемы с одноточечной зависимостью. Системы и приложения могут чрезмерно зависеть от одного корневого ключа, что увеличивает системный риск из-за проблем с корневым ключом.

Динамизация корневых ключей

Динамизация корневых ключей — лучший метод реализации в системе защиты ключей цепочки.

Помогает повысить безопасность и гибкость всей системы шифрования.

Объединение корневых ключей

Объединенный корневой ключ
Объединенный корневой ключ

Объединенные корневые ключи могут иметь следующие преимущества:

  • Диверсифицируйте риски: используйте пул корневых ключей,Риск больше не сосредоточен на одном ключе. Даже если ключ скомпрометирован,При этом безопасность всей системы не будет поставлена ​​под угрозу.
  • Повышение доступности. Когда некоторые ключи недоступны или требуют обслуживания, корневой пул ключей может предоставить резервные ключи для обеспечения непрерывности и доступности службы.
  • Адаптируемость: пул корневых ключей можно быстро настроить в соответствии с изменениями требований безопасности, например, путем увеличения количества ключей или обновления алгоритма ключей.
  • Поддержка соответствия: некоторые правила или стандарты могут требовать более строгого управления ключами, и пулы корневых ключей могут лучше соответствовать этим требованиям.
  • Балансировка нагрузки: в случае высокой частоты использования ключей,Пул корневых ключей может распределить рабочую нагрузку по созданию ключей, а также шифрованию и дешифрованию.,Улучшите общую производительность системы.

Периодическая ротация корневых ключей

Корневые ключи периодически автоматически меняются.
Корневые ключи периодически автоматически меняются.

Автоматическая ротация корневых ключей дает следующие очевидные преимущества:

  • Уменьшите риск утечки: автоматическое вращение снижает долгосрочный риск компрометации ключа, поскольку время действия ключа ограничено определенным диапазоном.
  • Повышенная безопасность. Регулярная замена ключей гарантирует, что надежность шифрования будет соответствовать новейшим стандартам безопасности, что помогает предотвратить дальнейшее использование старых или взломанных алгоритмов.
  • Уменьшенное окно атаки: даже если злоумышленник обнаружит метод взлома, эффективность этого метода будет ограничена, поскольку ключи регулярно меняются.
  • Упрощенное управление ключами с вмешательством человека. Автоматизированные процессы ротации упрощают управление ключами, уменьшая человеческие ошибки и сложность эксплуатации.
  • Повысьте скорость реагирования системы безопасности: при возникновении инцидента безопасности,Автоматическое вращение позволяет быстро отрезать старые ключи.,Уменьшите потенциальные потери.
  • Повышенная устойчивость безопасности. В случае утечки ключа автоматическая ротация может быстро восстановить безопасность системы и снизить влияние на бизнес.
  • Адаптируйтесь к развитию технологий. Поскольку технология шифрования продолжает развиваться, механизм автоматической ротации может гарантировать своевременное обновление корневого ключа для адаптации к новым технологиям шифрования.

Управление доступом к корневому ключу

доступ Система управления ключами
доступ Система управления ключами

Проблемы аутентификации личности человека

контроль физического доступа

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

Теоретически мы можем проверить личность человека по следующим аспектам:

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

Управление удаленным доступом

Для сетевых путей удаленного доступа процесс многофакторной аутентификации выглядит примерно следующим образом:

  • Пароль или кодовая фраза. Пользователи должны ввести известный им пароль или кодовую фразу.
  • Одноразовый пароль (OTP). Система отправляет одноразовый пароль на мобильный телефон или электронную почту пользователя, и пользователю необходимо ввести этот OTP.
  • Двухфакторная аутентификация. Если возможно, также потребуйте от пользователей ответа на секретный вопрос или выполнения другой формы аутентификации.

Проблемы с аутентификацией программы

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

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

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

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

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

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

Комплексная парадигма защиты от проблем аутентификации личности в программах
Комплексная парадигма защиты от проблем аутентификации личности в программах

Воспитание профессиональной этики и осведомленности о безопасности.

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

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

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

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

Осведомленность о безопасности также отражается в сценариях кодирования, эксплуатации и обслуживания, таких как:

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

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose