HTTP的信息安全问题
安全问题主要有一下几个地方:
1.无法确定接收请求的就是服务器,可能是被伪装的。
2.无法确定接收响应的就是客户端,可能是被伪装的。
3.无法确定通信对方是否具有访问权限。
4.无法确定请求来自何方,出自谁手,中途可能被篡改。
5.即使是无意义的请求也会照单全收,可能会被黑客发送海量请求,照成DOS攻击。
HTTPS如何使信息传递变得安全
1.检验身份
这里使用了SSL,SSL提供了加密处理,还使用了证书这个方法。证书由值得信赖的第三方颁发,用于证明服务器和客户端是实际存在的。另外,伪造证书从技术角度来说是困难的。所以验证身份就转化为了验证证书。
2.防止内容被篡改
使用HTTPS
3.HTTPS的【共享密钥加密】
HTTPS使用的是公开密钥加密的方法,让客户端和服务端同时拥有密钥,只有密钥才能对信息进行解密。(我在读书的时候做了一个十分简单的设想,假设使用随机数创造了一个随机数x作为密钥,那么客户端就可以将x与文件的字节码进行^的位运算操作,此时文件就失去了原本的意义,仅仅变成了一堆废料,待服务器,收到二进制码废料时,在此将其二进制码与密钥x进行^的操作,那么原本的二进制位又会恢复到原本的样子,文件就又可以使用了。通过这种方式,即便网络包被拦截,拦截放也不知道网络包到底是什么意思。那么此时最大的问题就是如何让两个人都知道这个x,也就是密钥,它是多少?)
4.使用两把密钥的【公开密钥加密】
两把密钥分别为公钥和私钥。那么现在就是假设有一把奇特的锁,他有两个钥匙孔,一个对应公钥的,一个对应密钥的。公钥就是任何人都能拿到的,而密钥是只有接收方所特有的。如果使用公钥进行加密,那么就只能使用私钥进行解密(这里就涉及到算法了,具体我也不清楚)。假设客户端要发送一个图片,客户端先通过SSL拿到目标地的认证确定对方就是目标对象,然后拿到目标对象的公钥,对自己的图片加密,加密后这个图片就仅仅是一个二进制乱码了,此时将二进制乱码发送出去,这时即使有人中间拦截,也无法通过目的地所给的公钥进行解密。当目标对象接收到请求后,使用私钥进行解锁,此时就获取了真实信息。
以上其实有一个不现实,但是理论上确实存在的问题,就是中间的黑客拿到了发送方的数据包,然后仅仅根据信息二进制码和公钥,破解了加密算法,知道了解密方法。这个以现在的科学技术来看不太现实。