我读过这个https://square.github.io/okhttp/https/,但是我对那些我从任何网站上找不到的东西并不怀疑。在Api端,为了安全起见,我在我的实例中使用下面的代码来使用自签名api(让我们加密),
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_2)
.cipherSuites(
CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256)
.build();
OkHttpClient client = new OkHttpClient.Builder()
.connectionSpecs(Collections.singletonList(spec))
.build();
我也在使用POST请求。以下是我的怀疑,
请任何人帮助我解决这些疑问。
发布于 2020-07-02 11:18:59
别选你自己的密码套。OkHttp有安全的缺省值,您的HTTPS连接将通过坚持这些默认设置而安全。
默认配置是MODERN_TLS,这是大多数应用程序应该使用的。
如果您只连接到组织维护的服务器,如果您只支持最新的JVM或Android设备(例如在微服务部署中),则可以配置RESTRICTED_TLS。这是OkHttp的TLS部署配置,您有一个专门的安全团队,并控制客户端和服务器上的整个软件栈。
相反的情况下,如果您需要支持一组特别广泛的设备或JVM,并连接到各种过时配置的服务器,那么COMPATIBLE_TLS就适合您了。它包括一组广泛的TLS版本和密码套件,这增加了漏洞的表面积,尽管目前还没有众所周知的漏洞。
另一种思考这些配置的方法是:我暴露在新发现的漏洞中的是什么?你可能还记得心血来潮,整个互联网都需要在短时间内升级OpenSSL。如果出现此漏洞,您可能需要更新客户端和/或服务器。下面是我对OkHttp内置配置的不科学和不合理的理解:
由于下一个
中由于新发现的缺陷而需要发送紧急更新。
现在一切都是安全的,但是你所支持的东西越多,它的表面积就越容易受到攻击。
https://stackoverflow.com/questions/62690569
复制相似问题