Replies: 5 comments 2 replies
-
I believe (please correct me if I am wrong, pointing to specific FIPS requirements), FIPS mandates not using some algorithms if they are used for cryptography, but is does not tell you that it is forbidden to use certain algorithms if they are not used for security. Even python 3.9 introduced a flag "usedforsecurity" when hashlib is used: https://docs.python.org/3/library/hashlib.html
I think md5 in general is so universally used for many non-security context, that getting rid of it completely is a bad idea. So there is nothing wrong to use md5 hash if it is not used in security context. I believe in any kind of certification you can mark certain usages of certain algorithms for security. We are still Airlfow 3.7 and there is no "useforsecurity" and also we are using md5 probably in some javascript. I am not aware of any "security" context where we would use it, however if you are using it for security, then yeah, it should be changed. But I see no reason why we should change the algorithm if we are not using it in security context. In this context, I would be very open (but of course it should be revidwed by others) if you provide a PR (or several of them), but I tihnk it should be not straight replacing md5 use but make it more "pluggable" and prepared for "useforsecurity" parameter once we go Python 3.9+. I think the sequence/scope of implementation shoudl be:
I think if you do it in fully backwards-compatible way so that nothing changes for the users, this should be possible. |
Beta Was this translation helpful? Give feedback.
-
Any progress on this? I am interested in running in a FIPS-enabled environment. |
Beta Was this translation helpful? Give feedback.
-
Actually, I was able to get my production environment running with the following modifications:
Obviously, this may not work in every environment, and I have not tested it thoroughly outside of my own environment. Use at your own risk. You can quickly accomplish this by running: |
Beta Was this translation helpful? Give feedback.
-
latest versions use flask-2.2.5 which still use sha1 for digest. |
Beta Was this translation helpful? Give feedback.
-
Airflow 3 is going to get rid of Flask Application Builder as dependency. Currently Even 5.0* alpha/rc releases have flask<3. If you would like to help with Airflow 3 @r0ck37 development , that might be a good idea. |
Beta Was this translation helpful? Give feedback.
-
Currently, we are running a forked Airflow 1.10.15 with additional changes to make Airflow runnable in FIPs enabled production environment.
With fips enabled you can't use md5 hash. Related to the issues mentioned here. #14966
This is proven to be very problematic whenever we want to upgrade the airflow version and we would have to reapply the changes with a fresh fork of Airflow.
To avoid the hassle of forking every time we want to upgrade airflow, we can submit a PR to apply the changes we make so that Airflow is runnable in FIPs-enabled environments. Let me know if anyone has any thoughts.
Beta Was this translation helpful? Give feedback.
All reactions