Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootstrapping gNOI/gNMI using the gNOI cert service #18

Merged
merged 3 commits into from
Aug 29, 2019

Conversation

samribeiro
Copy link
Member

No description provided.

@samribeiro samribeiro requested a review from robshakir April 2, 2019 15:39

The first installed certificate and CA certificate pool is used for the gNOI and
gNMI services. No other certificates should be installed during the default
stage. If the certificate ID is specified, then that becomes the associated

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This association is implicit. Why not do an explicit association by using the certificate-id leaf of openconfig-system-management.yang? I thought that was the intent (based on previous discussions).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reshad, that is a very good point. The guiding reason here is security. The gNOI/gNMI endpoint is at this stage accepting any connection, so it is at a securely fragile stage. The expectation here is to make sure that the only gNOI/gNMI action available is to install a certificate. This reduces the number of vectors an attacker has for meddling with the Target otherwise.

Please let me know what concerns you have with this approach and if you suggest an alternative.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sam, I now understand the motivation for doing this. The concern I had was because there's a well-defined explicit way, I prefer to avoid multiple ways of doing the same operation. But I get it now, and no I don't have an alternative.


##### Target behaviour

The Target must restart its gNOI/gNMI service in secure mode as soon as the

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

secure mode is applicable to the gNMI/gNOI service only if client authentication has been enabled via the ca_certificates bundle?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, however the wording here is not the best. There is no definition of "secure mode" in this document so its use is ambiguous. What it should say is:
"The Target must restart its gNOI/gNMI service and exclusively perform secure connections as soon as the...." Will send a Commit. Thanks for the highlight.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good.

@samribeiro samribeiro self-assigned this Apr 30, 2019
gNMI services. No other certificates should be installed during the default
stage. If the certificate ID is specified, then that becomes the associated
certificate ID for the gNMI/gNOI service. If none is specified then one is
assigned by the Target.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sam, what is the motivation for not providing a certificate-id? If the target assigns one, how will the client know which one got assigned by the target? And if the client does not know the certificate-id, how can the client do Rotate or Revoke.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The motivation was to allow the platform to use its own default CertID string for this. The Client could then identify the certificate ID by performing a GetCertificatesRequest.
However, I am now realizing that this is adding complexity, it is in addition breaking the cert Install spec where a CertID is required. This is therefore unnecessary. Thank you for pointing it out. I am updating this PR to correct this.

Copy link
Contributor

@robshakir robshakir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the persistence with this one after detailed on and offline reviews -- LGTM.

@samribeiro samribeiro merged commit 97c0112 into master Aug 29, 2019
@samribeiro samribeiro deleted the gnoi_bootstrapping branch August 29, 2019 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants