Skip to content
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

replace sha1 with sha2-256 #19779

Merged
merged 9 commits into from
Mar 24, 2023
Merged

Conversation

atoulme
Copy link
Contributor

@atoulme atoulme commented Mar 18, 2023

Description:
Stop using sha-1, a deprecated hashing algorithm which triggers security reports, and use sha2-256 instead.

Link to tracking Issue:
Fixes #4759 and #5576

Testing:
Updated tests

Documentation:
Fix comments in code.

@runforesight
Copy link

runforesight bot commented Mar 18, 2023

Foresight Summary

    
Major Impacts

build-and-test-windows duration(4 seconds) has decreased 35 minutes 35 seconds compared to main branch avg(35 minutes 39 seconds).
View More Details

✅  check-links workflow has finished in 49 seconds and finished at 23rd Mar, 2023.


Job Failed Steps Tests
changed files -     🔗  N/A See Details
check-links -     🔗  N/A See Details

✅  telemetrygen workflow has finished in 1 minute 10 seconds and finished at 23rd Mar, 2023.


Job Failed Steps Tests
build-dev -     🔗  N/A See Details
publish-latest -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  prometheus-compliance-tests workflow has finished in 3 minutes 16 seconds (3 minutes 29 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
prometheus-compliance-tests -     🔗  ✅ 21  ❌ 0  ⏭ 0    🔗 See Details

✅  build-and-test workflow has finished in 36 minutes 49 seconds (15 minutes 8 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
unittest-matrix (1.19, connector) -     🔗  ✅ 126  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, connector) -     🔗  ✅ 126  ❌ 0  ⏭ 0    🔗 See Details
correctness-metrics -     🔗  ✅ 2  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, internal) -     🔗  ✅ 583  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, internal) -     🔗  ✅ 583  ❌ 0  ⏭ 0    🔗 See Details
correctness-traces -     🔗  ✅ 17  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, extension) -     🔗  ✅ 543  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, extension) -     🔗  ✅ 543  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, processor) -     🔗  ✅ 1557  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, processor) -     🔗  ✅ 1557  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, receiver-0) -     🔗  ✅ 2611  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-0) -     🔗  ✅ 2611  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, exporter) -     🔗  ✅ 2499  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-1) -     🔗  ✅ 1965  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, exporter) -     🔗  ✅ 2499  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, receiver-1) -     🔗  ✅ 1965  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, other) -     🔗  ✅ 4762  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, other) -     🔗  ✅ 4762  ❌ 0  ⏭ 0    🔗 See Details
integration-tests -     🔗  ✅ 55  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details
checks -     🔗  N/A See Details
check-collector-module-version -     🔗  N/A See Details
check-codeowners -     🔗  N/A See Details
build-examples -     🔗  N/A See Details
lint-matrix (receiver-0) -     🔗  N/A See Details
lint-matrix (receiver-1) -     🔗  N/A See Details
lint-matrix (processor) -     🔗  N/A See Details
lint-matrix (exporter) -     🔗  N/A See Details
lint-matrix (extension) -     🔗  N/A See Details
lint-matrix (connector) -     🔗  N/A See Details
lint-matrix (internal) -     🔗  N/A See Details
lint-matrix (other) -     🔗  N/A See Details
unittest (1.20) -     🔗  N/A See Details
unittest (1.19) -     🔗  N/A See Details
lint -     🔗  N/A See Details
cross-compile (darwin, amd64) -     🔗  N/A See Details
cross-compile (darwin, arm64) -     🔗  N/A See Details
cross-compile (linux, 386) -     🔗  N/A See Details
cross-compile (linux, amd64) -     🔗  N/A See Details
cross-compile (linux, arm) -     🔗  N/A See Details
cross-compile (linux, arm64) -     🔗  N/A See Details
cross-compile (linux, ppc64le) -     🔗  N/A See Details
cross-compile (windows, 386) -     🔗  N/A See Details
cross-compile (windows, amd64) -     🔗  N/A See Details
build-package (deb) -     🔗  N/A See Details
build-package (rpm) -     🔗  N/A See Details
windows-msi -     🔗  N/A See Details
publish-check -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details
publish-dev -     🔗  N/A See Details

⭕  build-and-test-windows workflow has finished in 4 seconds (35 minutes 52 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
windows-unittest-matrix -     🔗  N/A See Details
windows-unittest -     🔗  N/A See Details

✅  load-tests workflow has finished in 7 minutes 29 seconds (4 minutes 19 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
loadtest (TestTraceAttributesProcessor) -     🔗  ✅ 3  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestIdleMode) -     🔗  ✅ 1  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetric10kDPS|TestMetricsFromFile) -     🔗  ✅ 6  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceBallast1kSPSWithAttrs|TestTraceBallast1kSPSAddAttrs) -     🔗  ✅ 10  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceNoBackend10kSPS|TestTrace1kSPSWithAttrs) -     🔗  ✅ 8  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetricResourceProcessor|TestTrace10kSPS) -     🔗  ✅ 12  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestBallastMemory|TestLog10kDPS) -     🔗  ✅ 18  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details

✅  changelog workflow has finished in 1 minute 36 seconds (43 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
changelog -     🔗  N/A See Details

✅  e2e-tests workflow has finished in 12 minutes 48 seconds (2 minutes 13 seconds less than main branch avg.) and finished at 23rd Mar, 2023.


Job Failed Steps Tests
kubernetes-test (v1.26.0) -     🔗  N/A See Details
kubernetes-test (v1.25.3) -     🔗  N/A See Details
kubernetes-test (v1.24.7) -     🔗  N/A See Details
kubernetes-test (v1.23.13) -     🔗  N/A See Details

🔎 See details on Foresight

*You can configure Foresight comments in your organization settings page.

@atoulme atoulme force-pushed the introduce_sha2Hasher branch from a6b0b44 to ad5e161 Compare March 18, 2023 08:31
@github-actions github-actions bot added the processor/attributes Attributes processor label Mar 18, 2023
@github-actions github-actions bot requested a review from boostchicken March 18, 2023 08:31
@atoulme atoulme force-pushed the introduce_sha2Hasher branch from ad5e161 to 1ecbaf3 Compare March 18, 2023 16:59
Copy link
Member

@dmitryax dmitryax left a comment

Choose a reason for hiding this comment

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

LGTM

.chloggen/introduce_sha2Hasher.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

@codeboten codeboten left a comment

Choose a reason for hiding this comment

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

Would this be considered a breaking change? Changing the output of the hash command may be unexpected for some.

@atoulme
Copy link
Contributor Author

atoulme commented Mar 20, 2023

I tend to agree, but I'm not sure. What do you think of my comment here as a way towards handling this?
#19779 (comment)

@codeboten
Copy link
Contributor

codeboten commented Mar 20, 2023

I tend to agree, but I'm not sure. What do you think of my comment here as a way towards handling this? #19779 (comment)

Rather than adding another function, i would follow the pattern of using feature gates to control this, the same way as any other breaking changes.

@atoulme
Copy link
Contributor Author

atoulme commented Mar 20, 2023

Sorry, I am not familiar with feature gates. I guess this is the doc I can follow. I'll give it a shot. Directions always appreciated.

@codeboten
Copy link
Contributor

Sorry, I am not familiar with feature gates. I guess this is the doc I can follow. I'll give it a shot. Directions always appreciated.

I can't find the doc with this info in it, but essentially breaking changes can be done over 3 releases:

  1. you define a feature gate that enables the new hash, but leaves the old behaviour by default
  2. change the default for the gate to be on by default
  3. remove the gate

@codeboten
Copy link
Contributor

@atoulme the contributing guide in the core repo contains the following details:

When deprecating a feature affecting end-users, consider first deprecating the feature in one version, then hiding it behind a feature flag in a subsequent version, and eventually removing it after yet another version. This is how it would look like, considering that each of the following steps is done in a separate version:

  • Mark the feature as deprecated, add a short lived feature flag with the feature enabled by default
  • Change the feature flag to disable the feature by default, deprecating the flag at the same time
  • Remove the feature and the flag

@atoulme atoulme force-pushed the introduce_sha2Hasher branch from 06d0950 to 09fb1d1 Compare March 22, 2023 04:43
.chloggen/introduce_sha2Hasher.yaml Outdated Show resolved Hide resolved
.chloggen/introduce_sha2Hasher.yaml Outdated Show resolved Hide resolved
internal/coreinternal/attraction/attraction.go Outdated Show resolved Hide resolved
internal/coreinternal/attraction/hasher.go Outdated Show resolved Hide resolved
processor/attributesprocessor/attributes_log_test.go Outdated Show resolved Hide resolved
@atoulme atoulme force-pushed the introduce_sha2Hasher branch from 3836fe0 to b04d8c3 Compare March 23, 2023 18:54
@codeboten codeboten added the ready to merge Code review completed; ready to merge by maintainers label Mar 23, 2023
@codeboten codeboten merged commit 024a11c into open-telemetry:main Mar 24, 2023
@github-actions github-actions bot added this to the next release milestone Mar 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal/core processor/attributes Attributes processor ready to merge Code review completed; ready to merge by maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Re-evaluate gosec error about using "weak cryptographic primitive"
3 participants