Защита корневого ключа — важная и сложная проблема, поскольку корневой ключ — это основная часть всей системы шифрования.
За корневым ключом, упомянутым здесь, часто находится цепочка защиты ключей. Эта цепочка защиты ключей в конечном итоге обслуживает конфиденциальные данные в бизнес-системе.
Для разработчиков или продуктовых команд, которые понимают, что конфиденциальные данные не могут быть доступны напрямую в открытом доступе.,Часто для шифрования данных напрямую выбираются алгоритмы симметричного шифрования.,достичь Скрыть текстовые Эффект данных.
Наиболее распространенные алгоритмы симметричного шифрования включают в себя: AES-CBC、AES-GCM、SM4 ждать,Эти алгоритмы одновременноПринимая во внимание как производительность вычислений, так и безопасность, влияние на бизнес-операции можно свести к минимуму.。
напримериспользоватьПростой инструмент шифрованияруководить AES-CBC модель Шифровать данные:
# Инструменты для установки
❯ 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, зашифрованный текст можно восстановить в открытый текст.
❯ 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, вы не сможете получить данные в виде открытого текста или получите неправильные данные в виде открытого текста:
❯ 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:
❯ echo "Чжан Сан 13211092209 421097199809232342" > test_data.bin
❯ cat test_data.bin
Чжан Сан 13211092209 421097199809232342
❯ sha256sum test_data.bin
278dfdadc035c68bc6709c2efd0eb63035dfbf15a5e5c852020e63d78bf95a4f test_data.bin
Использование мощного алгоритма хэширования является хорошим выбором, но для некоторых фиксированных данных, таких как номера мобильных телефонов, идентификационные номера и т. д., из-за некоторых характеристик самого алгоритма хеширования для людей, которые уже освоили некоторые конфиденциальные данные, это по-прежнему легко столкнуться с данными. Например, если предположить, что у некоторых хакеров уже есть большое количество баз данных номеров мобильных телефонов или идентификационных номеров в виде открытого текста, то очень просто вычислить фиксированное значение хеш-функции этих данных. Если мы затем выполним сравнение коллизий данных бизнес-системы, сложность будет значительно уменьшена.
Использование HMAC, вероятно, более безопасно, чем хеширование.
❯ 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
,утечка обоих,Особенно утечка симметричных ключей,Это создаст большую скрытую угрозу безопасности данных.
Ключ сам по себе также является разновидностью данных. Следовательно, защита данных зависит от ключа данных, а защита ключа данных зависит от ключа, который защищает ключ данных. Здесь мы называем его корневым ключом.
Цепочка защиты ключей, основанная на корневом ключе, представляет собой парадигму защиты данных.
Корневой ключ — это доверительная основа всей системы защиты цепочки. Утечка корневого ключа приведет к краху всей информационной системы.
Общие системы защиты ключей включают следующее:
Из рисунка не видно, что статический корневой ключ имеет единственную точку риска, которую грубо можно описать так:
Динамизация корневых ключей — лучший метод реализации в системе защиты ключей цепочки.
Помогает повысить безопасность и гибкость всей системы шифрования.
Объединенные корневые ключи могут иметь следующие преимущества:
Автоматическая ротация корневых ключей дает следующие очевидные преимущества:
Для доступа к физическим криптографическим устройствам рекомендуется строгое соблюдение процедур многофакторного контроля доступа.
Теоретически мы можем проверить личность человека по следующим аспектам:
Для сетевых путей удаленного доступа процесс многофакторной аутентификации выглядит примерно следующим образом:
Аутентификация программ всегда является сложной проблемой, особенно когда речь идет о доступе программ к корневым ключам, где легко впасть в бесконечные зависимости.
Например, выдав программе цифровой сертификат, ей будет разрешен доступ к корневому ключу только в том случае, если проверка цифрового сертификата пройдет успешно. Однако, если цифровой сертификат будет утек или подслушан посредником, вы в конечном итоге попадете в бесконечную зависимость. в корневом сертификате удостоверения.
Основная проблема аутентификации личности в программе — найти баланс между безопасностью, доступностью, производительностью и стоимостью.、
Если для проверки личности программы также будут введены логические шаги, подобные многофакторной аутентификации, это принесет огромные затраты на эксплуатацию и обслуживание обычным распределенным и многокластерным предприятиям, а также повлияет на саму бизнес-систему. Масштабируемость окажет огромную медвежью услугу.
конечно,Кроме технических причин,Угроза, исходящая от инсайдеров, также вызывает огромную обеспокоенность. Инсайдеры, скорее всего, обойдут механизм аутентификации личности из-за халатности или злонамеренного поведения, в результате чего политика безопасности станет неэффективной.
Для низкочастотно запускаемых программ в сценариях эксплуатации и обслуживания можно соответствующим образом ввести многофакторную аутентификацию личности, чтобы решить проблему утечки корневого ключа, вызванную утечкой личности. Для обычных распределенных и кластерных бизнес-программ еще более необходимо взаимодействие с методами мониторинга до, во время и после события, чтобы свести зону взрыва и уменьшить ущерб, причиненный рисками.
Проблемы безопасности, которые не могут быть решены техническими средствами, в конечном итоге почти всегда являются человеческими проблемами.
Развитие профессиональной этики помогает создать атмосферу доверия, и сотрудники будут активно защищать корневые ключи и информацию для аутентификации личности, чтобы избежать внутренних угроз.
Профессиональная этика также предполагает обучение сотрудников этическим и правовым последствиям, информирование их о серьезных последствиях, которые могут возникнуть в результате нарушения правил техники безопасности.
Повышенная осведомленность о безопасности поможет сотрудникам правильно вести себя в повседневной работе, например, опасаться фишинговых писем, использовать надежные пароли и своевременно сообщать о подозрительном поведении.
Осведомленность о безопасности также отражается в сценариях кодирования, эксплуатации и обслуживания, таких как:
В целом, профессиональная этика и повышение осведомленности о безопасности являются краеугольными камнями защиты корневых ключей и защиты аутентификации личности, а также ключевой частью активной защиты безопасности.