1.HTTP与HTTPS区别
https与http相比,其在数据传输过程中对数据进行了加密,加密技术主要有对称加密和非对称加密两种。
2.对称加密/非对称加密
对称加密是指数据发送方和接收方在对数据进行加密和解密时使用的是同一个密钥,由于该密钥仅在当前双方用户之间使用,且在双方互不认识的时候,密钥需要通过网络传输进行传输,因此对称密钥有在传输过程中被截获的风险
非对称加密是指解密密钥和加密密钥不同的加密方式,一般一个用户有一对密钥,分为私钥和公钥,私钥仅自己保存,不能让任何人知道,公钥可以人尽皆知,私钥加密的数据只能由公钥解密,公钥加密的数据只能由私钥解密。A给B发送数据时,A用B的公钥对数据进行加密,这样加密后的数据只有B的私钥才能解密。
但是非对称加密在加密效率上比对称加密要低,主要体现在同样大小的数据用非对称加密所花时间要长不少,解决方法是,传输的数据依然用对称密钥进行加密,同时用非对称加密技术对对称密钥进行加密。对称密钥的数据相对与要传输的数据要小很多。
3.证书
但是对于进行通信,传输数据的双方很可能是互不相识的,任何人都可以产生一对公私钥,比如我在淘宝买东西,那别人是不是就可以随机产生一对公私钥冒充淘宝来跟我交易。因此需要有一个权威机构CA来对我的公私钥颁发证书,证书上有用户的公钥,用户的信息,证书的发布机构和有效期,只要通信双方都信任这个机构,那我们之间的通信就是信任的,CA也有一对公私钥,信任这个CA的用户都会保留一份CA的公钥,CA对一个用户颁发证书的时候,会用自己的私钥给证书签名,签名后生成一段字符串,是不可逆且唯一的,也就是说只有这个证书才能生成这个签名。这样用户A给用户B发送数据,A的公钥,A的证书,B用户收到数据首先查看A的证书,用可信任的CA公钥对A的证书进行解密查看A的公钥是否可信。CA的公钥也需要其他的CA给他签名。