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

Using the SDK with FIPS enabled #2645

Closed
phene opened this issue Feb 2, 2022 · 11 comments
Closed

Using the SDK with FIPS enabled #2645

phene opened this issue Feb 2, 2022 · 11 comments
Labels
service-api General API label for AWS Services.

Comments

@phene
Copy link

phene commented Feb 2, 2022

There appear to be a number of resources that require the use of OpenSSL::Digest::MD5 to operate:

  • aws-sdk-core's http_checksum plugin
  • aws-sdk-s3
  • aws-sdk-sqs

Since MD5 is not approved for use with FIPS, is there any plan to modify the APIs or SDK in order to work when FIPS is enabled?

As a point of comparison, botocore performs detection MD5 availability and sets a MD5_AVAILABLE constant. In a few places, it will not attempt to perform an MD5 digest (while others will raise an error).

Additionally, aws-cfn-bootstrap makes use of the usedforsecurity option to hashlib.new('md5') to allow the use of MD5 when not used for the purpose of security. This allows it to fetch objects from S3. I'm not aware of any similar option in Ruby's OpenSSL/Digest libraries, but maybe an alternative could be found.

@phene phene added guidance Question that needs advice or information. needs-triage This issue or PR still needs to be triaged. labels Feb 2, 2022
@alextwoods alextwoods added feature-request A feature should be added or improved. and removed needs-triage This issue or PR still needs to be triaged. labels Feb 2, 2022
@alextwoods
Copy link
Contributor

Hey - yeah this is unfortunately a known limitation (see #2397). I wasn't aware of the usedforsecurity option - if we can find support (or if its eventually added) to Ruby's OpenSSL libraries we could use that. In the meantime - I'll leave this open as a feature request and update if there are any new options or API changes.

@phene
Copy link
Author

phene commented Feb 3, 2022

Adding reference to #2645 as well...

@alextwoods
Copy link
Contributor

There are upcoming changes that will add support for using user defined/flexible checksums, see: #2667. This is just the start, as operations/services need to add support for this trait, but it does provide a path in the future for letting users avoid md5 and the http_checksum plugin.

@phene
Copy link
Author

phene commented Feb 22, 2022

This is excellent! Thank you for the update.

@alextwoods
Copy link
Contributor

An now, with version 1.113.0 of aws-sdk-s3, S3 now supports setting flexible checksums - allowing you to avoid using md5 and use instead another, user selected checksum. See:

@github-actions
Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@phene
Copy link
Author

phene commented Feb 25, 2022

@alextwoods I don't think this solves the aws-sdk-sqs case yet.

@akostadinov
Copy link

Does #2706 solve the issue? i.e. using the :use_fips_endpoint option?

@phene
Copy link
Author

phene commented Jun 17, 2022

@akostadinov That works for S3 -- We ended up solving the SQS issue by setting verify_checksums: false. I would like to see better support for FIPS + checksums, though.

@mullermp mullermp added service-api General API label for AWS Services. and removed feature-request A feature should be added or improved. guidance Question that needs advice or information. labels Mar 20, 2023
@mullermp
Copy link
Contributor

I've created a parent issue in the aws-sdk repo, since this is a service API feature request.

@github-actions
Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
service-api General API label for AWS Services.
Projects
None yet
Development

No branches or pull requests

4 participants