<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">In response to sk post regarding FIPS and strongswan, Please find responses inline below:<div class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">Hello,<br class=""><br class="">I had a few questions about strongswan and FIPs mode. Some of the earlier discussions and threads on the subject have been great help, but I need help with some clarifications. Your help would be greatly appreciated.<br class=""><br class="">1. We use version 5.1.3 of strongswan with a few patches from later. Would there be any advantages (related to FIPs compliance) by moving to a more recent version? I understand moving to higher versions is better for general sense, but for FIPs - would it matter?<br class=""></blockquote></blockquote><br class="">Upgrading to wolfCrypt FIPS certificate 3389 is another option. See this blog post for more info: <a href="https://www.wolfssl.com/strongswan-wolfssl-fips/" class="">https://www.wolfssl.com/strongswan-wolfssl-fips/</a><br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">2. I was able to get our version to compile with FIPS mode 2, and was able to replace the ALG usage in ike (as seen in ipsec listalgs) to use openssl plugin. This plugin would use the underlying openssl library on the system and that openssl library is fips compatible and has the fips object module for openssl installed. Would that be sufficient to say we are running strongswan in fips mode? The strongswan libraries that implement crypto and hmac are not compiled and packaged. We want to get everything from openssl. <br class=""></blockquote></blockquote><br class="">Your FIPS lab should make the decision on this question, this is not something the mailing list could likely address.  Oh, by the way, just be aware OpenSSL FIPS certificates are both expired (links provided below) and according to OpenSSL’s FIPS page (<a href="https://www.openssl.org/docs/fips.html" class="">https://www.openssl.org/docs/fips.html</a>) OpenSSL is no longer planning on doing FIPS so you’ll need to validate OpenSSL on your own or use an alternate crypto library that has an up-to-date certificate!</div><div class=""><br class=""></div><div class=""><a href="https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/1747" class="">https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/1747</a> - Historical List</div><div class=""><a href="https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2398" class="">https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2398</a> - Historical List</div><div class=""><br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">3. Are there any other crypto implementations in strongswan that cannot be turned off by autoconf compile flags?<br class=""><br class="">4. Even when compiled in FIPS mode, I noticed that MD4, MD5, modp768 and  such are listed in ipsec stroke listalgs. To disable them, I had to pass in the appropriate OPENSSL #ifdef compile flags via CFLAGS during compilation. Is there a better way to do this, if I want to turn off the non-fips compliant weaker algs?<br class=""></blockquote></blockquote><br class="">Your FIPS lab will probably ask you to prove through profiling that these algos are not being called during operational testing and code-review phase of a FIPS validation effort.<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">5. Is there a difference between IKEv1 and IKEv2 compliance when it comes to FIPS? Canonical's FIPs document for strongswan at NIST only mentions IKEv2. I read that FIPS needs 128 bit keys and such, and since IKEv1 can support 8 bytes (64 bits) nonces, would IKEv1 be considered incompatible? Since strongswan uses 32 byte nonces, would that be considered compliant for FIPS?<br class=""></blockquote></blockquote><br class="">FIPS is clear about banned algos.  They are banned for good reasons.<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">Thank you for reading this. Any help with the answers would be greatly appreciated.<br class=""><br class="">regards,<br class="">sk<br class=""></blockquote></blockquote><div class=""><br class=""></div>If you have any other questions wolfSSL employs a few FIPS experts and would be happy to address any questions if you email "fips [at] wolfssl [dot] com”.</div><div class=""><br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Warmest Regards,</div><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""></div><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Kaleb Himes<br class="">Software Engineer<br class=""><a href="http://www.wolfssl.com" class="">www.wolfssl.com</a><br class=""><br class="">If you appreciate your experience with wolfSSL</div><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">please leave us a star at <a href="https://github.com/wolfSSL/wolfssl" class="">https://github.com/wolfSSL/wolfssl</a>!<br class=""><br class="">TLS1.3 IS AVAILABLE in wolfSSL!<br class=""><br class=""><br class=""></div></div></div></div></div>
</div>
<br class=""></div></body></html>