Skip to content

OpenSSL 1.1.1 cert verification port #239

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

Merged
merged 63 commits into from
Oct 25, 2021
Merged

OpenSSL 1.1.1 cert verification port #239

merged 63 commits into from
Oct 25, 2021

Conversation

kares
Copy link
Member

@kares kares commented Oct 17, 2021

an attempt to port over verify_chain (build_chain) and all related bits from OpenSSL 1.1.1.

JOSSL current certificate verification algorithm is rather straightforward and dates back to OpenSSL 0.9 days.

Several times we tried porting over newer code to enhance verification (e.g. to consider alternate chains) but failed due the magnitude of the task.

The PR is an attempt for a minimal viable product in terms of OpenSSL 1.1.1 compatible chain verification.
No relevant security features should be missing - if so than they are likely not present in the legacy algorithm as well.

The WiP here skips dane support completely (as well as a few other parts) - full port is far from complete.
There's also a number of (OpenSSL 1.1.1) features which are slightly changed or disabled :

  • EXFLAG_SS isn't working - switched cert_self_signed to only check EXFLAG_SI
    • this what legacy does to check self-signed - acceptable for now
    • should be investigated why tighter checks aren't working for JOSSL
    • unify/refactor EXFLAG_XXX checks to do less work?
  • drop duplicate check_chain_extension
    • check if OpenSSL still works with ENV['OPENSSL_ALLOW_PROXY_CERTS']
  • check_cert checking not ported - using old legacy checks
  • OpenSSL 1.1.1 check_crl differences - not passing when enabled
    • support/implement current_crl_score and current_reasons ?
  • review/implement auth_level checks
  • review/implement check_id

kares added 29 commits October 5, 2021 13:21
deprecated ones are for the current (legacy) verify_chain
an attempt to retrofit verification to consider alt-chains
@kares kares force-pushed the cert-verify-trusted branch from 28d5106 to 42a4b6a Compare October 20, 2021 15:38
@kares kares changed the title WiP: OpenSSL 1.1.1 cert verification port OpenSSL 1.1.1 cert verification port Oct 20, 2021
@kares kares linked an issue Oct 20, 2021 that may be closed by this pull request
@kares kares marked this pull request as ready for review October 20, 2021 16:15
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.

bundle install affected by DST Root CA X3 expiration
1 participant