Может кто-нибудь дать мне пример для corporatePasswordStore
, который упоминается здесь:
https://docs.corda.net/node-administration.html?fbclid=IwAR0gRwe5BtcWO0NymZVyE7_yMfthu2xxnU832vZHdbuv17S-wPXgb7iVZSs#id2
Я провел много исследований в последние несколько дни, как скрыть простые пароли от node.conf
; это новый topi c для меня, и вот что я придумал:
- Создайте ключ priv / pub с помощью
gpg2
- Создайте хранилище паролей с помощью
pass
(используя ключ, который я сгенерировал ранее). - Храните все простые пароли из
node.conf
в этом хранилище паролей. - Заменить простые пароли в
node.conf
переменными среды (например, keyStorePassword = ${KEY_PASS}
) Создать файл сценария (например, start_node.sh
), который будет выполнять следующее:
а. Задайте для переменной среды один из паролей из хранилища паролей: export key_store_password=$(pass node.conf/keyStorePassword)
b. Запустите узел: java -jar corda.jar
c. Перезапустите агент gpg, чтобы очистить кэшированные пароли, в противном случае вы можете получить любой пароль из магазина без передачи ключевой фразы: gpgconf --reload gpg-agent
Плюсы:
- Использование bash файла
start_node.sh
позволяет установить множество паролей в качестве переменных среды одновременно (например, keyStore, trustStore, пароли базы данных, RP C пароль пользователя) - Поскольку мы являемся при запуске файла bash с
bash start_node.sh
, а не source start_node.sh
, переменная среды не предоставляется родительскому процессу (т. е. вы не можете прочитать это значение переменной среды внутри терминала, в котором вы запустили bash start_node. sh - Команды истории не включены по умолчанию внутри bash сценариев.
Минусы:
Вы больше не можете иметь службу, которая автоматически запускается при запуске виртуальной машины, потому что скрипт start_node.sh
запросит пароль для вашего ключа gpg, который использовался для шифрования паролей внутри хранилища паролей (т. е. это интерактивный скрипт).
A я слишком усложняю это? У вас есть более легкий подход? Нужно ли вообще прятать простые пароли?
Я использую Corda с открытым исходным кодом, поэтому я не могу использовать Configuration Obfuscator (который предназначен только для Enterprise): https://docs.corda.r3.com/tools-config-obfuscator.html#configuration -obfuscator (отредактировано)