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

[New Model]: Certificate Signing Requests 1.0.0 #705

Merged
merged 11 commits into from
Apr 23, 2024

Conversation

johannsvarela
Copy link
Contributor

@johannsvarela johannsvarela commented Apr 8, 2024

Description

Today, certificates for ECUs need to be provided by first and second tiers to the OEM. This is done by proprietary interfaces with the use of the CSR (Certificate Signing Request) approach. With this new aspect model, this process should be standardised based on the digital twins in accordance to the industry core. This will enable a data sovereign solution and reduce interfaces.

Closes #701

MS2 Criteria

(to be filled out by PR reviewer)

  • the model validates with the SAMM SDS SDK in the version specified in the Readme.md of this repository by the time of the MS2 check (e.g., 'java -jar samm-cli.jar aspect <path-to-aspect-model> validate ). The SAMM CLI is available here and in GitHub
  • use Camel-Case (e.g., "MyModelElement" or "TimeDifferenceGmtId", when in doubt follow https://google.github.io/styleguide/javaguide.html#s5.3-camel-case)
  • the identifiers for all model elements start with a capital letter except for properties
  • the identifier for properties starts with a small letter
  • all model elements at least contain the fields "preferred name" and "description" in English language. The description must be comprehensible. It is not required to write full sentences but style should be consistent over the whole model
  • Property and the referenced Characteristic should not have the same name
  • the versioning in the URN follows semantic versioning, where minor version bumps are backwards compatible and major version bumps are not backwards compatible.
  • use abbreviations only when necessary and if these are sufficiently common
  • avoid redundant prefixes in property names (consider adding properties to an enclosing Entity or even adapt the namespace of the model elements, e.g., instead of having two properties DismantlerId and DismantlerName use an Entity Dismantler with the properties name and id or use a URN like io.catenax.dismantler:0.0.1)
  • fields preferredName and description are not the same
  • preferredName should be human readable and follow normal orthography (e.g., no camel case but normal word separation)
  • name of aspect is singular except if it only has one property which is a Collection, List or Set. In theses cases, the aspect name is plural.
  • units are referenced from the SAMM unit catalog whenever possible
  • use constraints to make known constraints from the use case explicit in the aspect model
  • when relying on external standards, they are referenced through a "see" element
  • all properties with an simple type have an example value
  • metadata.json exists with status "release"
  • generated json schema validates against example json payload
  • file RELEASE_NOTES.md exists and contains entries for proposed model changes
  • all contributors to this model are mentioned in copyright header of model file

MS3 Criteria

(to be filled out by semantic modeling team before merge to main-branch)

  • All required reviewers have approved this PR (see reviewers section)
  • The new aspect (version) will be implemented by at least one data provider
  • The new aspect (version) will be consumed by at least one data consumer
  • There exists valid test data
  • In case of a new (incompatible) major version to an existing version, a migration strategy has been developed
  • The model has at least version '1.0.0'
  • If a previous model exists, model deprecation has been checked for previous model
  • The release date in the Release Note is set to the date of the MS3 approval

Copy link

github-actions bot commented Apr 8, 2024

Validation Report for io.catenax.ecu_certificates/1.0.0/EcuCertificates.ttl

Input model is valid

@johannsvarela
Copy link
Contributor Author

modeling_team

FYI @BenediktMuellerIML

@johannsvarela johannsvarela changed the title [New Model]: ECU Certificates 1.0.0 [New Model]: ECU Certificates 1.0.0 --> not ready! Apr 8, 2024
Copy link

Validation Report for io.catenax.ecu_certificates/1.0.0/EcuCertificates.ttl

Input model is valid

@johannsvarela johannsvarela changed the title [New Model]: ECU Certificates 1.0.0 --> not ready! [New Model]: ECU Certificates 1.0.0 Apr 16, 2024
Copy link

Validation Report for io.catenax.ecu_certificates/1.0.0/EcuCertificates.ttl

Input model is valid

Copy link

Validation Report for io.catenax.ecu_certificates/1.0.0/EcuCertificates.ttl

Input model is valid

Copy link

Validation Report for io.catenax.certificate_signing_requests/1.0.0/CertificateSigningRequests.ttl

Input model is valid

Copy link

Validation Report for io.catenax.ecu_certificates/1.0.0/EcuCertificates.ttl

Input model is valid

Copy link

Validation Report for io.catenax.certificate_signing_requests/1.0.0/CertificateSigningRequests.ttl

Input model is valid

Copy link

Validation Report for io.catenax.certificate_signing_requests/1.0.0/CertificateSigningRequests.ttl

Input model is valid

@johannsvarela johannsvarela changed the title [New Model]: ECU Certificates 1.0.0 [New Model]: Certificate Signing Requests 1.0.0 Apr 16, 2024
@johannsvarela
Copy link
Contributor Author

@agg3fe @catroest Since we will urgently need this aspect model (for several internal implementations), we wanted to ask you whether it would be possible to review this PR by Monday 22.04 so that we can get MS2 & MS3 approval next week?

The new aspect model is about information that is needed to validate and certificate an ECU against the encrypted CSR data. For more details have a look at issue #701 or the descriptions within the aspect model.

FYI @BenediktMuellerIML

Copy link
Contributor

@catroest catroest left a comment

Choose a reason for hiding this comment

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

small changes


:subjectSerialNumber a samm:Property;
samm:preferredName "Subject Serial Number"@en;
samm:description "The serial number of the assembly part generated by the manufacturer that is used to identifiy the ECU component in a unique way. The subject serial number is identical to the serial number (partInstanceId) specified in the aspect model SerialPart.\n\nThe value for the subjectSerialNumber is always the same for an ECU and its attached CSRs, but is required to additionally validate each individual CSR. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

typo: identify


:CertificateSigningRequests a samm:Aspect;
samm:preferredName "Certificate Signing Requests"@en;
samm:description "The certificate signing requests model contains the essential information needed to request specific certificates for a unique ECU component via a Certificate Signing Request (CSR) and to validate and certificate the ECU against this data. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end


:certificateSigningRequestList a samm:Property;
samm:preferredName "Certificate Signing Request List"@en;
samm:description "Describes one or more Certificate Singing Requests (CSR). Each set entry contains additional information (e.g. subjectCommonName, subjectLocality, etc.) in readable form, which is otherwise part of the encrypted CSR. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end


:subjectCommonName a samm:Property;
samm:preferredName "Subject Common Name\t"@en;
samm:description "Describes the common name on where the certificate is requested. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end


:subjectLocality a samm:Property;
samm:preferredName "Subject Locality"@en;
samm:description "Provides information about the specific type of the ECU that will be certified. \n\nThe value for the subjectLocality is always the same for an ECU and its attached CSRs, but is required to additionally validate each individual CSR. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end


:certificateSigningRequest a samm:Property;
samm:preferredName "Certificate Signing Request"@en;
samm:description "A CSR (Certificate Signing Request) is a 64-based PEM formatted and encrypted message to request and receive a digital certificate. The CSR validates the information required by a specific certification authority (CA) to issue the associated digital certificate.\n\nThe CSR consists of encrypted data, which can include, for example, basic information about the ECU and its manufacturer (common name, company, organizational unit, country, city/town, etc.), information about the public key attached to the certificate, as well as information on the key type and length. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end


:subjectSerialNumber a samm:Property;
samm:preferredName "Subject Serial Number"@en;
samm:description "The serial number of the assembly part generated by the manufacturer that is used to identifiy the ECU component in a unique way. The subject serial number is identical to the serial number (partInstanceId) specified in the aspect model SerialPart.\n\nThe value for the subjectSerialNumber is always the same for an ECU and its attached CSRs, but is required to additionally validate each individual CSR. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

delete space at the end

samm:characteristic :CertificateSigningRequestCharacteristic;
samm:exampleValue "MIIC2TCCAToCAQAwgZwxEzARBgNVBAgTClByb2R1Y3Rpb24xDDAKBgNVBAcMA0FUTTESMBAGA1UEChMJQk1XIEdyb3VwMRcwFQYDVQQLEw5WZWhpY2xlUEtJLUVDVTEXMBUGA1UEAxMOSVBzZWMtaW50ZXJuYWwxMTAvBgNVBAUTKEVDVS1VSUQ6QzAwMDgyNDI3MUREQTYwMDAwMDAwMDAwMjdBQTg0MjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAShNm4y5Mdzu4b9xDW3TfBZr".

:subjectSerialNumber a samm:Property;
Copy link
Contributor

Choose a reason for hiding this comment

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

should this link or reference through a "see-link" to the serial part aspect?


:subjectSerialNumber a samm:Property;
samm:preferredName "Subject Serial Number"@en;
samm:description "The serial number of the assembly part generated by the manufacturer that is used to identifiy the ECU component in a unique way. The subject serial number is identical to the serial number (partInstanceId) specified in the aspect model SerialPart.\n\nThe value for the subjectSerialNumber is always the same for an ECU and its attached CSRs, but is required to additionally validate each individual CSR. "@en;
Copy link
Contributor

Choose a reason for hiding this comment

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

typo identifiy

Copy link
Contributor

@agg3fe agg3fe left a comment

Choose a reason for hiding this comment

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

please check all comments

Copy link

Validation Report for io.catenax.certificate_signing_requests/1.0.0/CertificateSigningRequests.ttl

Input model is valid

@johannsvarela
Copy link
Contributor Author

please check all comments

@agg3fe @catroest thanks for your rapid review! :-) I've made changes as you commented. Please have a look at the adjustments.

Copy link
Contributor

@agg3fe agg3fe left a comment

Choose a reason for hiding this comment

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

LGTM

@agg3fe agg3fe added MS2_Approved Checklist "MS2 Valid Model" is approved. MS3_Approved Checklist "MS3 Release Model" is approved. The associated pull request can be merged to the "main-br labels Apr 21, 2024
@agg3fe agg3fe merged commit 6ceb4a4 into eclipse-tractusx:main Apr 23, 2024
4 checks passed
@johannsvarela johannsvarela deleted the new_ecu_certificates_1.0.0 branch July 10, 2024 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MS2_Approved Checklist "MS2 Valid Model" is approved. MS3_Approved Checklist "MS3 Release Model" is approved. The associated pull request can be merged to the "main-br
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[New Model]: Certificate Signing Requests 1.0.0
3 participants