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

skip ov #5

Merged
merged 2 commits into from
Jul 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,11 @@ After loading all the provided data on first boot the device is still not in
2. The TLS connection **MUST** be secured on the client-side with the IDevId of the active control card.
3. The responses from the bootz-server are signed by ownership-certificate. The device validates the ownership-voucher, which authenticates the ownership-certificate. The device verifies the signature of the message body before accepting the message.
4. If the signature could not be verified, the bootstrap process starts from Step 1.

Note: though a device SHOULD validate ownership by default, in some environment (e.g. a lab) we might not want to do so.
In this case, the device can be explicitly configured to skip the ownership validation, and the device will then not set the `nonce` field in the `GetBootstrapDataRequest message`.
The bootstrap server may proceed without signing the response and without providing the ownership voucher and ownership certificate.

3. Ownership Voucher and Ownership Certificate
1. These artifacts have the same meaning as the original sZTP [RFC](https://www.rfc-editor.org/rfc/rfc8572#section-3.2). This document uses OC and PDC interchangeably for convenience. However, we should keep in mind that OV authenticates a PDC (Pinned Domain Cert), and OC might be a distinct certificate with a chain of trust to the PDC.
2. The contents of the GetBootstrappingDataResponse has an inner message body. The outer message contains the Ownership Voucher, the Ownership Certificate and a signature over the inner message body. The signature is generated using the OC and the nonce.
Expand Down
14 changes: 14 additions & 0 deletions proto/bootz.proto
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ message GetBootstrapDataRequest {
ChassisDescriptor chassis_descriptor = 1;
ControlCardState control_card_state = 2;
// A nonce that the bootstrap server should use when signing the response.
// Not settting this field indicates that the device is configured not to
// check for ownership voucher.
string nonce = 1001;
}

Expand Down Expand Up @@ -131,14 +133,26 @@ message GetBootstrapDataResponse {
// the nonce is added to verify the contents from the client.
message BootstrapDataSigned {
repeated BootstrapDataResponse responses = 1;
// This should not be set if the device does not check for ownership
// voucher, which is indicated by the device not setting the nonce field
// in the GetBootstrapDataRequest message.
string nonce = 2;
}

BootstrapDataSigned signed_response = 1;
// This should not be set if the device does not check for ownership
// voucher, which is indicated by the device not setting the nonce field
// in the GetBootstrapDataRequest message.
bytes ownership_voucher = 101;
// This should not be set if the device does not check for ownership
// voucher, which is indicated by the device not setting the nonce field
// in the GetBootstrapDataRequest message.
bytes ownership_certificate = 102;
// This is a signature generated over the bytes of the signed_response field,
// using the ownership_certificate.
// This should not be set if the device does not check for ownership
// voucher, which is indicated by the device not setting the nonce field
// in the GetBootstrapDataRequest message.
string response_signature = 103;
}

Expand Down