我们的应用程序用于负载测试任意HTTP(s)服务器。我们使用带有Netty的java来发出大量的并发请求。使用Netty java SSL客户端和SSLEngine时,我们现在看到CPU处于100%的相对较低的并发水平。我怀疑客户端和服务器正在协商可用的最安全的选择,我想做的可能相反(选择将导致我们系统上最小CPU负载的选项)。我们必须使用SSL,但不担心安全性。我们如何配置SSLEngine以使用更好的算法?
我意识到服务器(不受我们控制)限制了选择。但是,如果可用,我们需要使用CPU密集度较低的选项。我们使用c3.large实例在Amazon的EC2上运行它。
答案 0 :(得分:1)
特定SSL / TLS密码套件的安全性与其性能之间没有任何关系。 使用eliptic曲线加密和AES加密的密码套件可能是最快的。 Eliptic曲线套件比标准算法更快,AES具有广泛的硬件CPU加速支持,AES-128应该比AES-256更快。
至于如何选择密码套件,请查看How to specify the ciphersuite to be used in SSL session
虽然要小心,但这可能会导致更多的问题,而不是最小的性能提升。