microsoft / microsoft/go

List OpenSSL providers available when FIPS mode can't be honored

Open
#1,774 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
431
Forks
44
Avg merge
21h 18m
Merged PRs (30d)
30

Description

We have seen several teams using AZL3 using an incorrect OpenSSL configuration, mostly because the /etc/pki folder has been mounted from the container host. The host might not know about OpenSSL 3 or SCOSSL, so the result is that OpenSSL might not use SCOSSL, but the default build-in providers. This issue is tricky to debug and even to detect, as the default build-in provider are supported by Microsoft Go.

The easiest way to detect this situation is running the application with GODEBUG=fips140=on, in which case the application will panic at start time because the default built-in provider doesn't support FIPS mode.

One thing we could do to facilitate debugging OpenSSL instanced that can't honor FIPS mode os to list the available OpenSSL providers. This way it will be more obvious that SCOSSL is not available.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the startup panic with GODEBUG=fips140=on under an incorrect /etc/pki mount. Trace the FIPS-mode failure path and identify where OpenSSL provider information can be surfaced. Done means the failure lists available providers clearly enough to reveal when SCOSSL is unavailable.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
security
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.