Как скрыть конфиденциальные данные из node.conf? - PullRequest
1 голос
/ 07 января 2020

Может кто-нибудь дать мне пример для corporatePasswordStore, который упоминается здесь:
https://docs.corda.net/node-administration.html?fbclid=IwAR0gRwe5BtcWO0NymZVyE7_yMfthu2xxnU832vZHdbuv17S-wPXgb7iVZSs#id2

Я провел много исследований в последние несколько дни, как скрыть простые пароли от node.conf; это новый topi c для меня, и вот что я придумал:

  1. Создайте ключ priv / pub с помощью gpg2
  2. Создайте хранилище паролей с помощью pass (используя ключ, который я сгенерировал ранее).
  3. Храните все простые пароли из node.conf в этом хранилище паролей.
  4. Заменить простые пароли в node.conf переменными среды (например, keyStorePassword = ${KEY_PASS})
  5. Создать файл сценария (например, start_node.sh), который будет выполнять следующее:

    а. Задайте для переменной среды один из паролей из хранилища паролей: export key_store_password=$(pass node.conf/keyStorePassword)
    b. Запустите узел: java -jar corda.jar
    c. Перезапустите агент gpg, чтобы очистить кэшированные пароли, в противном случае вы можете получить любой пароль из магазина без передачи ключевой фразы: gpgconf --reload gpg-agent

Плюсы:

  1. Использование bash файла start_node.sh позволяет установить множество паролей в качестве переменных среды одновременно (например, keyStore, trustStore, пароли базы данных, RP C пароль пользователя)
  2. Поскольку мы являемся при запуске файла bash с bash start_node.sh, а не source start_node.sh, переменная среды не предоставляется родительскому процессу (т. е. вы не можете прочитать это значение переменной среды внутри терминала, в котором вы запустили bash start_node. sh
  3. Команды истории не включены по умолчанию внутри bash сценариев.

Минусы:

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

A я слишком усложняю это? У вас есть более легкий подход? Нужно ли вообще прятать простые пароли?

Я использую Corda с открытым исходным кодом, поэтому я не могу использовать Configuration Obfuscator (который предназначен только для Enterprise): https://docs.corda.r3.com/tools-config-obfuscator.html#configuration -obfuscator (отредактировано)

1 Ответ

0 голосов
/ 24 февраля 2020

Я написал подробную статью здесь: https://blog.b9lab.com/enabling-corda-security-with-nodes-configuration-file-412ce6a4371c, которая охватывает следующие темы:

  1. Включить SSL для подключения к базе данных.
  2. Включить SSL для подключения RP C.
  3. Включить SSL для веб-сервера Corda.
  4. Включить SSL для автономной оболочки Corda.
  5. Скрыть простые текстовые пароли.
  6. Установка разрешений для пользователей RP C.
...