Наличие одного корневого центра для нескольких организаций в сети Hyperledger Fabric - PullRequest
0 голосов
/ 29 июня 2018

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

Есть ли проблема с одним и тем же корневым центром сертификации для нескольких организаций? Могут ли тематические поля в сертификатах быть достаточными для проверки личности в различных рабочих процессах фабрики?

1 Ответ

0 голосов
/ 29 июня 2018

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

Но, учитывая, что ваш вопрос касается в основном использования единой матрицы-ca для выдачи сертификатов для нескольких организаций, это возможно с помощью функции идентификатора подразделения организации, представленной в версии 1.1 и более поздних. По сути, вы можете различать организации, использующие подразделение в выданных сертификатах. В Fabric CA v1.1 и более поздних версиях вы можете создавать разные филиалы для каждой организации, и при выдаче сертификатов в OU будет установлена ​​принадлежность, связанная с удостоверением, в процессе регистрации. Вы можете либо доверять одному администратору для правильной регистрации идентификаторов для нескольких организаций, либо создать иерархический набор администраторов (то есть создать нескольких администраторов ЦС, но назначить каждому отдельную принадлежность, поскольку администраторы могут регистрировать пользователей только под своей собственной принадлежностью).

Затем в определениях MSP вы можете использовать файл config.yaml, чтобы указать подразделение, с которым нужно связать MSP. Например, если вы посмотрите на https://github.com/hyperledger/fabric/blob/release-1.1/sampleconfig/msp/config.yaml,, тогда

OrganizationalUnitIdentifiers:
  - Certificate: "cacerts/cacert.pem"
    OrganizationalUnitIdentifier: "COP"

означает, что эта организация идентифицируется корневым CA PLUS, имеющим OU = COP в сертификатах. Это также означало бы, что принадлежность к фабрике-ca будет также "COP"

...