[ 
https://issues.apache.org/jira/browse/HDDS-7376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

István Fajth resolved HDDS-7376.
--------------------------------
    Resolution: Invalid

> Re-organize security bootstrap code
> -----------------------------------
>
>                 Key: HDDS-7376
>                 URL: https://issues.apache.org/jira/browse/HDDS-7376
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: Security
>            Reporter: István Fajth
>            Assignee: István Fajth
>            Priority: Major
>              Labels: pki
>
> The current security bootstrap code is kind of here and there in the codebase.
> We have some parts of it written as utility methods in different util 
> classes, and some of the logic is implemented as part of the service startup 
> code.
> The aim of this improvement, to create a standard logic that describes the 
> generic things that every service has to do in order to setup internal 
> certificates and corresponding keypairs if security is enabled for Ozone, and 
> also to enable the service specific parts to be implemented by the services 
> themselves.
> Update:
> CertificateClient has these responsibilities:
> 1. it handles loading other certificates from SCM on request, and caches 
> these certificates locally
> 2. it handles data signing with the private key material
> 3. it handles signature validation based on other certificates
> 4. it stores the SSL identity material of the service
> 5. it handles the initialization of the certificate and keypair of the 
> component and gathers the signed certificate from SCM
> 6. it provides CA related information
> 7. it provides CRL related information
> 8. it provides factory implementation for keystores and truststores
> The central role of security initialization therefore is pushed to the 
> CertificateClient instances, and all components have a very similar 
> initialization call sequence against this class.
> Based on this the proposal is to:
> - separate a CertificateStore that is responsible for #1 and used by 
> something that implements #4
> - separate an RSASigner for #2
> - separate an RSASignVerifier for #3
> - separate the SSLIdentity representation for #4 that is the in memory 
> representation of the RSA keypair and the certificate and provides accessor 
> and convenience methods to access this data or tp configure external things 
> that use this data (maybe 2 separate interface but one impl?)
> - separate the component SSL certificate initialization logic from components 
> and from CertificateClient and standardize the process for #5
> - functionalities for #6 should be part of the CertificateStore
> - #7 should be removed for now, along with the dependent CRL code, this is 
> related to HDDS-7397
> - #8 items should probably have their own separate class, or trust and 
> keystore may be provided by the CertificateStore.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to