繁体   English   中英

没有证书的TLS安全吗?

[英]TLS secure without certificate?

我想对我的Java应用程序(目前不实现任何加密)实施TLS。 然后,我阅读了更多有关TLS的内容,并看到应该使用证书。

所以我的问题是:如果我不使用证书,TLS是否也安全?

然后:如果没有以下条件,它是不安全的:如何创建这样的证书? 什么是好的CA? 在哪里可以免费获得证书? 以及如何用Java在服务器应用程序中实现证书?

请注意,我只需要一台服务器的证书。 不适合我或电子邮件地址。

所以我的问题是:如果我不使用证书,TLS是否也安全?

这取决于您选择的密码套件。 如果仅使用服务器身份验证的主要模型,则由于提供了密码套件(例如DHE-RSA-AES128-SHAEDH-RSA-DES-CBC3-SHA ,因此可能需要服务器证书。 DHE-RSA-AES128-SHAEDH-RSA-DES-CBC3-SHA要求使用服务器证书。

但是,如果允许使用匿名密码套件(例如Anonymous Diffie-Hellman(ADH)),则不需要服务器证书。

此外,如果您使用TLS-PSKTLS-SRP ,则不需要服务器证书。 PSK是预共享密钥; SRP是安全远程密码。 有88个专用于IANA的PSK和SRP的密码套件(请参阅传输层安全性(TLS)参数 )。

PSK和SRP提供相互认证和通道绑定。 就是说,双方都证明了对共享机密的了解,而没有像使用basic_auth方案那样将机密内容以纯文本形式发送到网上时就傻了。 如果一方(或双方)都不知道秘密,则通道设置将失败,并且不会泄漏任何信息。

PSK和SRP拥有所有的SSL / TLS密码套件的可取的安全属性。 如果可能,应始终使用它们。


然后:如果没有以下条件,它是不安全的:如何创建这样的证书?

这是留给读者的练习。


什么是好的CA?

我认为这些都不是。 没有理由将信任授予第三方。

为了加重侮辱性伤害,公共CA不保证您期望的结果,并尝试在其证书实践声明(CPS)中承担所有责任。 例如,以下是Apple Inc.的摘录。证书颁发机构证书实践声明

2.4.2. CA disclaimers of warranties
To the extent permitted by applicable law, Subscriber agreements,
if applicable, disclaim warranties from Apple, including any
warranty of merchantability or fitness for a particular purpose.

2.4.3. CA limitations of liability
To the extent permitted by applicable law, Subscriber agreements,
if applicable, shall limit liability on the part of Apple and shall
exclude liability for indirect, special, incidental, and
consequential damages.

因此,Apple向您出售的产品没有保修,并且不承担任何责任!!! 他们希望您信任他们并给他们钱……真是个球拍! 而且它不仅是苹果公司-其他CA也同样具有令人讨厌的CPS。


在哪里可以免费获得证书?

尝试StartCom

它们并非完全免费,但是它们是免费发行的。 如果您需要撤销StartCom证书,则必须付费。 那是因为费用是撤销而不是发行。 (其他CA会先向您收取撤销费用,然后在未使用时将其收入口袋)。


以及如何用Java在服务器应用程序中实现证书?

这取决于您的应用程序。 我们对您的应用程序一无所知,所以我们不能说。

您始终可以创建自签名证书。 它也将是安全的,但是在大多数未设置为信任该证书的机器上(无论是在Java密钥库中还是在其他地方),它都会发出红旗。

跑:

keytool -genkeypair -alias [certname] -keyalg EC -keysize 571 -validity 730 -keystore javakeystore_keepsecret.jks

keytool指定为完整路径(取决于OS和Java设置方式)。

然后,您可以使用以下命令导出公共证书:

keytool -exportcert -keystore javakeystore_keepsecret.jks -alias [certname] -file [somefilename]

然后用户可以导入创建的文件以信任它。

如果我不使用证书,TLS是否也安全?

RFC 2246开始

警告:完全匿名的连接仅提供防止被动监听的保护。 除非使用独立的防篡改通道来验证完成的消息没有被攻击者取代,否则在需要关注中间人攻击的环境中,需要服务器身份验证。

该系统仅与所支持的最弱的密钥交换和认证算法一样强大

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM