2016-03-08 118 views
0

我正在构建我的第一个Web应用程序,我有两个关于安全性的问题。了解SSL证书类型

  1. 我会发送和POST要求我 API将在Azure上或AWS托管收到非常敏感的数据。我可以通过SSL以明文形式发送和接收 数据吗,它是否安全?我可以通过https访问我的 天蓝色网站,是否足够安全,还是应该购买另一个 SSL证书?

  2. 我已经搜查了一点,有不同类型的SSL证书 的,我读了一些证书提供绿色的挂锁或绿色地址栏,但因为我的web应用程序只 将我不需要这样的东西可用于我的移动应用程序,并且不会有内容可供浏览。只有一个页面带有下载链接到我的移动应用程序,以防有人发现这个网站。那么对于我的情况,所有证书都是安全的?

P.S.如果这是相关的,我不会添加自定义域名。

回答

2

一次回答您的问题;

  1. SSL的现代的实现一般被认为是相当 岩石固体;其使用的银行,医疗机构,和主要 互联网公司。以纯文本格式发送数据,通过SSL,对于这些应用程序来说足够安全,并且试图用 代替SSL,您自己的加密方案几乎肯定比它的价值更麻烦。 您应该可能获得自己的SSL证书;我不知道Azure在https访问上有什么限制(如果有的话),以及依赖于您无法控制的密钥的惯例。

  2. SSL依赖于信任网络;浏览器(和其他互联网应用程序)验证站点发送它们的证书是否与一组受信任的权限相关。如果证书已被批准 (使用授权机构的私钥签名),则浏览器接受 证书为真品,并使用该证书与网站协商SSL连接 ,而无需进一步投诉。这就是绿色 挂锁/地址栏的意思;一个网站提供了由浏览器信任的授权机构签署的有效的 证书。但这并不是 ,这意味着签名证书本质上比 未签名证书更安全。两者都使用相同的密码 算法,并且(可以)具有相同的长度密钥,并且每个可以设置的SSL连接都同样安全。两者之间的差异 是您无法验证 未签名/自签名证书的“真实性”;攻击者可能会拦截 连接,并用自己的 证书替换未签名的证书,并且浏览器无法判断它是否获得了 正确的证书。但是,您可以在 应用程序中克服此问题,但使用名为“certificate pinning”的技术。 实质上,您将您的证书的公钥与您的应用程序打包为 ,并且您的应用程序只在设置连接时接受与该密钥关联的证书 。

最终,它取决于您的攻击者模型。你是否保护这些数据免受犯罪分子和随意窃听者的侵害?或者你是否试图将它从政府监视和情报机构中隐藏起来?对于前者,由信誉良好的权威机构签署并签发的SSL证书是绰绰有余的。对于后者,你必须考虑你的证书来自哪里,谁可以访问发布它的根CA;最好自己创建一个,并在SSL之上设计一些进一步的方案。

+1

关于“生成自己的”证书的最后部分假定OPs网站是安全的。 – zaph

+0

如果他的网站足够危及攻击者可能会影响SSL证书的生成,那么攻击者当然可以窃取任何购买的证书OP。否则,我不确定你的意思? –

+1

同意。如果服务器不比CA更安全,为什么要生成自己的证书?对于被OS /浏览器识别的CA,CA保护优于高于普通用户的站点。 – zaph