summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DEVELOPING.md4
-rw-r--r--include/ssl_key_handler.hpp17
2 files changed, 20 insertions, 1 deletions
diff --git a/DEVELOPING.md b/DEVELOPING.md
index 6a920bc8a3..f06ae816ad 100644
--- a/DEVELOPING.md
+++ b/DEVELOPING.md
@@ -92,6 +92,10 @@
authentication, session management, and security.
9. ### Performance
+ TLS uses cipher suites from the "OWASP Cipher String 'B'" to maintain as
+ much compatibility as we can with modern browsers, while still keeping a
+ strong security posture.
+
The performance priorities for the OpenBMC webserver are (in order):
1. Code is readable and clear
2. Code follows secure guidelines
diff --git a/include/ssl_key_handler.hpp b/include/ssl_key_handler.hpp
index 32d7a7368b..fc088ad01b 100644
--- a/include/ssl_key_handler.hpp
+++ b/include/ssl_key_handler.hpp
@@ -352,8 +352,23 @@ inline boost::asio::ssl::context getSslContext(const std::string &ssl_pem_file)
std::string aesOnlyCiphers = "AES128+EECDH:AES128+EDH:!aNULL:!eNULL";
+ // OWASP Cipher String 'B' (Broad compatibility to browsers)
+ // https://www.owasp.org/index.php/TLS_Cipher_String_Cheat_Sheet
+ std::string owaspBroadCompatibility = "DHE-RSA-AES256-GCM-SHA384:"
+ "DHE-RSA-AES128-GCM-SHA256:"
+ "ECDHE-RSA-AES256-GCM-SHA384:"
+ "ECDHE-RSA-AES128-GCM-SHA256:"
+ "DHE-RSA-AES256-SHA256:"
+ "DHE-RSA-AES128-SHA256:"
+ "ECDHE-RSA-AES256-SHA384:"
+ "ECDHE-RSA-AES128-SHA256:"
+ "ECDHE-RSA-AES256-SHA:"
+ "ECDHE-RSA-AES128-SHA:"
+ "DHE-RSA-AES256-SHA:"
+ "DHE-RSA-AES128-SHA";
+
if (SSL_CTX_set_cipher_list(mSslContext.native_handle(),
- mozillaCompatibilityCiphers.c_str()) != 1)
+ owaspBroadCompatibility.c_str()) != 1)
{
BMCWEB_LOG_ERROR << "Error setting cipher list\n";
}