Skip to content

Conversation

bmaidics
Copy link
Contributor

@bmaidics bmaidics commented May 14, 2025

No description provided.

@bmaidics bmaidics marked this pull request as ready for review May 20, 2025 13:00
@bmaidics bmaidics requested a review from jfallows May 20, 2025 14:44
@@ -66,7 +72,7 @@ public FileSystemVaultHandler(
: aliases -> null;

FileSystemStoreInfo trust = supplyStoreInfo(resolvePath, options.trust);
supplyTrust = (aliases, cacerts) -> newTrustFactory(trust, aliases, cacerts);
supplyTrust = (aliases, cacerts, crlChecks) -> newTrustFactory(trust, aliases, cacerts, crlChecks);
Copy link
Contributor

Choose a reason for hiding this comment

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

This forced API change suggests that the decision to enforce CRL checks might belong in the vault, not the TLS binding, what do you think?

@jfallows jfallows closed this Jun 6, 2025
@jfallows jfallows reopened this Jun 17, 2025
Copy link
Contributor

@jfallows jfallows left a comment

Choose a reason for hiding this comment

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

We need negative test coverage to verify that revoked client certificate cannot be used to successfully complete a TLS handshake.

@@ -143,6 +144,7 @@ public class EngineConfiguration extends Configuration
ENGINE_CACERTS_STORE_PASS = config.property("cacerts.store.pass");
ENGINE_ERROR_REPORTER = config.property(ErrorReporter.class, "error.reporter",
EngineConfiguration::decodeErrorReporter, EngineConfiguration::defaultErrorReporter);
ENGINE_REVOCATION = config.property("revocation");
Copy link
Contributor

Choose a reason for hiding this comment

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

We need a name with more context for clarity.

Suggested change
ENGINE_REVOCATION = config.property("revocation");
ENGINE_CERTIFICATE_REVOCATION_STRATEGY = config.property("certificate.revocation.strategy");

Suggest making this more strongly typed with an enum, say RevocationStrategy in io.aklivity.zilla.runtime.engine.security package.

public enum RevocationStrategy
{
    CRL,
    NONE
}

...and default to NONE.

We can also consider using this type (from lowercase string) in various vault options instead of string, encouraging consistency across different vault implementations.

Copy link
Contributor

@jfallows jfallows left a comment

Choose a reason for hiding this comment

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

Looks good, just need the negative IT to verify that a revoked certificate cannot be used to successfully complete TLS handshake.

Copy link
Contributor

@jfallows jfallows left a comment

Choose a reason for hiding this comment

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

Let's merge this now, given that you have already verified end-to-end.

@jfallows jfallows merged commit 0d97d3a into aklivity:develop Jun 18, 2025
32 of 41 checks passed
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.

2 participants