2011-03-01 74 views
3

我还没有做过很多关于HTTPS的研究,所以我对此有疑问。HTTPS和数据完整性

是使用HTTPS保存数据完整性还是仅保密?例如,在文件上传中,HTTPS确保没有人能够更改上传的数据,或只保证没有人能够读取它?

+0

我认为这个问题已经回答了:http://stackoverflow.com/questions/3655516/does-encryption-guarantee-integrity – kojiro 2011-03-01 00:24:20

+0

@kojiro:这两者是相关的,但我认为可能值得有两个单独的问题给出这个是特定于HTTPS的。 – andersoj 2011-03-01 00:28:14

+0

@kojiro:在链接问题中的答案与此问题的答案完全相反。 – martin 2016-08-31 10:17:44

回答

1

在大多数情况下,是的,但最大的安全性,我建议除了使用HTTPS,我会建议配置您的服务器的SSL配置使用签名的证书,并使用以下SSL配置:

SSLProtocol -ALL +SSLv3 +TLSv1 
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!EXPORT 

另外,如果可能,请使用SSL版本3。

+0

+1,很好的答案。我删除了我的名字,并把我的头埋在耻辱之中。 ;-) – andersoj 2011-03-01 00:35:40

+0

我需要这种密钥管理系统(私钥将被存储在服务器上),所以我就这么问。你认为这应该足够安全吗?谢谢! – 2011-03-01 12:56:02

+0

我强烈推荐使用上面提到的SSL方法,如果你使用这种方法,你应该很安全。 – Eli 2011-03-01 13:18:56

1

简短的回答:

要求:

  • 的加密套件使用像SHA,SHA-2(256或394)或MD5摘要算法(请避开它!)来计算基于哈希的消息认证码(HMAC)。此消息随后用于检查每条记录的数据完整性。

实施例:TLS_RSA_WITH_AES_128_CBC_ SHA256

  • 的密码套件支持认证加密具有附加数据AEAD)如AES-GCM(AES-CCM,AES-EAX存在,但较不常见)或CHACHA20-POLY1305(推荐)。

实施例:TLS_ECDHE_RSA_WITH_ CHACHA20_POLY1305 _SHA256

关于第二示例中,需要注意的是SHA256不是HMAC算法,但它被用作PRF(检查this answer更多细节)是很重要的。