Вы находитесь здесь:
Создание и сборка материала ключа
Служба кэш-ключей Shield Platform Encryption совместима с 256-разрядными ключами AES, возвращенными в ответе JSON, а потом добавленными посредством веб-шифрования JSON (JWE).
Материал кэш-ключа добавлен в формате JSON. Пример кэш-ключа используется в данной статье для иллюстрации изменения материала ключа при его сборке.
- Создайте 256-разрядный ключ шифрования данных AES. Вы можете использовать выбранный криптографически безопасный метод.
- Создайте ключ шифрования 256-разрядного содержимого AES посредством криптографически безопасного метода.
-
Создайте и загрузите сертификат, совместимый с BYOK.Важно! Salesforce соответствует единым требованиям отрасли по сокращению времени истечения срока действия сертификатов CA. Пожалуйста, ознакомьтесь с информацией в разделе «Сертификаты в Salesforce» и создайте соответствующий план.
-
Создайте защищенный заголовок JWE. Защищенный заголовок JWE является объектом JSON с тремя утверждениями: алгоритм, используемый для шифрования ключа шифрования данных, алгоритм, используемый для шифрования ключа шифрования данных и уникальный код кэш-ключа. Ниже указан пример заголовка для начала работы.
{"alg":"RSA-OAEP","enc":"A256GCM","kid":"982c375b-f46b-4423-8c2d-4d1a69152a0b"} -
Закодируйте защищенный JWE заголовок как BASE64URL(UTF8(Защищенный JWE заголовок)).
eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00iLCJraWQiOiI5ODJjMzc1Yi1mNDZiLTQ0MjMtOGMy ZC00ZDFhNjkxNTJhMGIifQ -
Зашифруйте ключ шифрования содержимого открытым ключом из сертификата BYOK посредством алгоритма RSAES-OAEP. Потом зашифруйте этот зашифрованный ключ шифрования содержимого как BASE64URL(Зашифрованный CEK).
l92QA-R7b6Gtjo0tG4GlylJti1-Pf-519YpStYOp28YToMxgUxPmx4NR_myvfT24oBCWkh6hy_dqAL7JlVO4 49EglAB_i9GRdyVbTKnJQ1OiVKwWUQaZ9jVNxFFUYTWWZ-sVK4pUw0B3lHwWBfpMsl4jf0exP5-5amiTZ5oP 0rkW99ugLWJ_7XlyTuMIA6VTLSpL0YqChH1wQjo12TQaWG_tiTwL1SgRd3YohuMVlmCdEmR2TfwTvryLPx4K bFK3Pv5ZSpSIyreFTh12DPpmhLEAVhCBZxR4-HMnZySSs4QorWagOaT8XPjPv46m8mUATZSD4hab8v3Mq4H3 3CmwngZCJXX-sDHuax2JUejxNC8HT5p6sa_I2gQFMlBC2Sd4yBKyjlDQKcSslCVav4buG8hkOJXY69iW_zhz tV3DoJJ90l-EvkMoHpw1llU9lFhJMUQRvvocfghs2kzy5QC8QQt4t4Wu3p7IvzeneL5I81QjQlDJmZhbLLor FHgcAs9_FMwnFYFrgsHP1_v3Iqy7zJJc60fCfDaxAF8Txj_LOeOMkCFl-9PwrULWyRTLMI7CdZIm7jb8v9AL xCmDgqUi1yvEeBJhgMLezAWtxvGGkejc0BdsbWaPFXlI3Uj7C-Mw8LcmpSLKZyEnhj2x-3Vfv5hIVauC6ja1 B6Z_UcqXKOc -
Создайте вектор инициализации для использования в качестве ввода в перенос AES ключа шифрования данных. Потом закодируйте его в base64url.
N2WVMbpAxipAtG9O -
Заверните ключ шифрования данных ключом шифрования содержимого.
- Закодируйте заголовок JWE как ASCII(BASE64URL(UTF8(Защищенный заголовок JWE))).
- Переформатируйте проверенное шифрование ключа шифрования данных посредством алгоритма AES GCM. Используйте ключ шифрования содержимого в качестве ключа шифрования, вектора инициализации (байты, а не зашифрованная версия URL-адреса base64) и значение дополнительных проверенных данных, запрашивая вывод 128-разрядного тега проверки подлинности.
- Закодируйте полученный шифрованный текст как BASE64URL(Ciphertext).
- Закодируйте тег проверки подлинности как BASE64URL(Authentication Tag).
and63wRVVKX0ZOxu8cKqN1kqN-7EDa_mnmk32DinS_zFo4HC7Ev5lmsbTgwyGpeGH5Rw -
Соберите JWE как компактную сериализацию всех предыдущих значений. Значения конкатенации, разделенные точкой.
eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00iLCJraWQiOiI5ODJjMzc1Yi1mNDZiLTQ0MjMtOGMy ZC00ZDFhNjkxNTJhMGIifQ.l92QA-R7b6Gtjo0tG4GlylJti1-Pf-519YpStYOp28YToMxgUxPmx4NR_myvf T24oBCWkh6hy_dqAL7JlVO449EglAB_i9GRdyVbTKnJQ1OiVKwWUQaZ9jVNxFFUYTWWZ-sVK4pUw0B3lHwWB fpMsl4jf0exP5-5amiTZ5oP0rkW99ugLWJ_7XlyTuMIA6VTLSpL0YqChH1wQjo12TQaWG_tiTwL1SgRd3Yoh uMVlmCdEmR2TfwTvryLPx4KbFK3Pv5ZSpSIyreFTh12DPpmhLEAVhCBZxR4-HMnZySSs4QorWagOaT8XPjPv 46m8mUATZSD4hab8v3Mq4H33CmwngZCJXX-sDHuax2JUejxNC8HT5p6sa_I2gQFMlBC2Sd4yBKyjlDQKcSsl CVav4buG8hkOJXY69iW_zhztV3DoJJ90l-EvkMoHpw1llU9lFhJMUQRvvocfghs2kzy5QC8QQt4t4Wu3p7Iv zeneL5I81QjQlDJmZhbLLorFHgcAs9_FMwnFYFrgsHP1_v3Iqy7zJJc60fCfDaxAF8Txj_LOeOMkCFl-9Pwr ULWyRTLMI7CdZIm7jb8v9ALxCmDgqUi1yvEeBJhgMLezAWtxvGGkejc0BdsbWaPFXlI3Uj7C-Mw8LcmpSLKZ yEnhj2x-3Vfv5hIVauC6ja1B6Z_UcqXKOc.N2WVMbpAxipAtG9O.63wRVVKX0ZOxu8cKqN1kqN-7EDa_mnmk 32DinS_zFo4.HC7Ev5lmsbTgwyGpeGH5Rw
Для получения более подробных примеров этого процесса ознакомьтесь с образцом обоймы кэш-ключей в Github. В этом хранилище можно использовать служебную программу или другую выбранную службу.
