我是SSL的新手,无论我阅读并了解其付费数字证书以及在网站https://中使用SSL后,数据传输在网络层都是安全的。
在我的应用程序中,除了登录名和密码之外,我没有太多安全问题。
有没有办法在不使用SSL https://
的情况下保护登录名和密码答案 0 :(得分:3)
有许多身份验证方案可以通过普通HTTP安全地工作。其中最常见的是Digest,所有主要的Web浏览器和几乎所有的Web编程框架都支持它。
对网站使用摘要的缺点是:
身份验证由浏览器本身处理,而不是网站上的登录页面,这看起来不太好,并且不允许您拥有所有周围的帮助程序功能,例如“忘记了密码?”我们现在已经开始期待。
如果您没有SSL连接,精明的用户可能会担心他们不安全地发送密码(即使他们不是),因为他们在输入凭据时已接受过寻找SSL连接的培训。 / p>
还有其他方案,例如OAuth,它们也比普通的HTTP更安全,但对于API来说,这比网站更多,所以可能不是你想要的。
答案 1 :(得分:2)
除了在用户登录的每个页面上使用SSL之外,浏览器中没有HTTP安全性的替代方法。任何其他技术都是完全不安全的,只是隐蔽的层次。
任何基于HTTP的自制解决方案都容易受到MITM攻击以及其他漏洞的攻击。</ p>
即使使用SSL,登录&amp;会话机制必须是安全的,或者可以使用其他漏洞进行破解。
答案 2 :(得分:1)
证书可以是自签名证书。不一定是付费的:)
答案 3 :(得分:1)
您也可以尝试使用StartSSL.Org 我目前正在使用它并且它工作得很好,但它在某种程度上与cacert.org相同,默认情况下它们不受浏览器信任
答案 4 :(得分:0)
关闭主题,您可以使用openssl获取自己的(自签名)证书。
首先需要生成RSA密钥和CSR以生成自签名证书。在安装了openssl的linux机器上:
openssl genrsa -des3 -out mydomain.key 1024
openssl req -new -key mydomain.key -out mydomain.csr // fill in the details
mv mydomain.key mydomain.key.org
openssl rsa -in mydomain.key.org -out mydomain.key // creates passphraseless key
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
答案 5 :(得分:0)
我承认很难打败可验证的证书,但通常人们会为测试网站使用自签名证书。我很确定一个简单的自制软件解决方案可以和自签名证书一样好。
哎呀,我甚至会说有一些关键的预先存在(或像gpg这样的东西),它可能是安全的。
答案 6 :(得分:0)
考虑到这些凭据,我会尝试制作一些“结缔组织”。
https://stackoverflow.com/users/808354/iakovos-gurulian有一个很好的答案。 store api credential securely