[
https://issues.apache.org/jira/browse/KNOX-3118?focusedWorklogId=964955&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-964955
]
ASF GitHub Bot logged work on KNOX-3118:
----------------------------------------
Author: ASF GitHub Bot
Created on: 07/Apr/25 08:02
Start Date: 07/Apr/25 08:02
Worklog Time Spent: 10m
Work Description: smolnar82 commented on code in PR #1015:
URL: https://github.com/apache/knox/pull/1015#discussion_r2030651750
##########
gateway-spi/src/main/java/org/apache/knox/gateway/config/GatewayConfig.java:
##########
@@ -92,6 +92,8 @@ public interface GatewayConfig {
String CREDENTIAL_STORE_ALG = "gateway.credential.store.alg";
String DEFAULT_CREDENTIAL_STORE_ALG = "AES";
+ String CREDENTIAL_SELF_SIGNING_ALG = "gateway.credential.self-signing.alg";
Review Comment:
Two notes:
- please use `.` as the separator character
- I'm not sure the property name is correct. I think
`gateway.self.signing.cert.alg` is more accurate
##########
gateway-server/src/test/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreServiceTest.java:
##########
@@ -814,7 +815,7 @@ private GatewayConfigImpl createGatewayConfig(Path baseDir)
{
}
- private void createKeystore(DefaultKeystoreService keystoreService, Path
keystoreFilePath, String alias, char[] password)
+ private void createKeystore(DefaultKeystoreService keystoreService, Path
keystoreFilePath, String alias, char[] password, String selfSigningAlgorithm)
Review Comment:
If I were you, I'd pass the `GatewayConfig` object here like this:
```
private void createKeystore(DefaultKeystoreService keystoreService, char[]
password, final GatewayConfig config)
```
and inline the `keystoreFilePath`, `alias`, and
`selfSigningCertificateAlgorithm` when they are used within this private method.
This way it will be more self-contained and resilient for future changes to
the gateway config (i.e. if more properties are added, no need to update the
method signature).
##########
gateway-spi/src/main/java/org/apache/knox/gateway/config/GatewayConfig.java:
##########
@@ -266,6 +268,11 @@ public interface GatewayConfig {
*/
String getCredentialStoreAlgorithm();
+ /**
+ * @return the algorithm that is used when generating a self-signing
certificate.
+ */
+ String getCredentialSelfSigningAlgorithm();
Review Comment:
According to the above, I think `getSelfSigningCertificateAlgorithm()` is a
better method name choice.
##########
gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultKeystoreService.java:
##########
@@ -117,6 +118,7 @@ public void init(GatewayConfig config, Map<String, String>
options)
}
this.credentialStoreAlgorithm = config.getCredentialStoreAlgorithm();
+ this.credentialSelfSigningAlgorithm =
config.getCredentialSelfSigningAlgorithm();
Review Comment:
nit: `selfSignedCertificateAlgorithm`
Issue Time Tracking
-------------------
Worklog Id: (was: 964955)
Time Spent: 40m (was: 0.5h)
> Upgrade Knox SSL Self-Signed Certificate from SHA-1 to SHA-256
> --------------------------------------------------------------
>
> Key: KNOX-3118
> URL: https://issues.apache.org/jira/browse/KNOX-3118
> Project: Apache Knox
> Issue Type: Improvement
> Components: Server
> Affects Versions: 1.6.0
> Reporter: ChenXi
> Priority: Major
> Labels: security
> Time Spent: 40m
> Remaining Estimate: 0h
>
> SHA-1, currently used in Knox's current SSL certificates, is
> cryptographically broken. Proven collision attacks (e.g., SHAttered attack in
> 2017) allow malicious actors to forge certificates, exposing Knox to
> man-in-the-middle (MITM) attacks.
> Major browsers (Chrome, Firefox) and operating systems deprecated SHA-1
> support by 2017, leading to trust warnings for SHA-1-based certificates.
> Therefore, it is necessary to upgrade the default self-signing algorithm of
> knox from SHA1 to the more secure SHA2(e.g. SHA256).
> *Reference:*
> * SHA-1 : [https://en.wikipedia.org/wiki/SHA-1]
> * SHA-2: [https://en.wikipedia.org/wiki/SHA-2]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)