什么是钱包私钥,什么是钱包式手机壳

  

  上网时,你可能会注意到有些网站的地址栏边上有一个小锁,点击就会出现“此连接是安全的”字样。所以,这个所谓的“安全”就是这个网站采用了HTTPS技术,采用的证书也是经过认证的。   

  

  我们不需要担心这个证书是什么。让我们看看HTTPS。简而言之,HTTP是互联网应用层中广泛使用的协议。有了这个协议,我们就可以用其他协议上网了。但是HTTP协议有一个问题。它以明文形式传输数据,没有认证,这意味着任何人都可以有办法偷看你在做什么。这肯定是不可能的。如果有一天网上消费被拦截,不会造成财产损失吗?   

  

  因此,HTTPS应运而生。HTTPS的意思是安全HTTP,即HTTP加SSL。这里使用的手段有:加密、认证加完整性保护。接下来,我们一个一个来分。   

  

  数据传输(加密)在传输数据的时候,我们的第一反应肯定是加密。其实这个很好理解。如果不想让别人看到你的网络请求是什么,就把所有的数据加密。   

  

  所以现在有两个问题:   

  

  应该采用什么加密方法?应该如何让对方知道什么是关键,而别人不能?首先,对于第一个问题,加密算法目前分为对称加密和非对称加密两大类。对称指的是加密和解密使用同一个密钥,而非对称加密自然是指加密和解密不是由同一个公钥和私钥完成的。我们在这里应该采用对称加密,主要有两个原因:一是速度更快,消耗的资源更少;第二,非对称加密要求数据长度,生成的加密数据量较大。   

  

  接下来要解决第二个问题,关键的传输问题。   

  

  密钥传输(加密)首先,我们的第一反应一定是加密传输密钥。这里不可能用对称加密,否则直接就是死循环,所以这里我们就用非对称加密。   

  

  具体来说,客户端向服务器索要公钥,然后客户端用公钥加密密钥,再由服务器用私钥解密,所以不存在密钥泄露的问题。   

  

  但是问题又来了。如果这个公钥被截获泄露了怎么办?所以这就是认证“证书”登场的时候。   

  

  公钥传输(认证)我们不是直接传输一串明文公钥A,而是服务器向权威机构购买并申请数字证书A。证书A包含机构的信息和由机构的私钥B加密的公钥A。服务器把这个证书A发送给客户端,客户端内置了几个机构的公钥B,用来校验机构的信息,解密证书A得到公钥A,这样客户端只需要存储几个机构的公钥,用机构的权限背书即可。   

  

  看起来没有什么问题,但是如果这个时候,拦截你请求的人也向权威机构申请了证书C呢?他还是可以拦截证书A,用证书C替换,因为它的证书也是合法的,所以拦截还是可以成功的。或者这个人直接修改证书,替换公钥,也是一样的效果。   

  

  所以我们不仅需要加密,还需要数据的完整性,没有被篡改。   

  

  证书传输(完整性)在证书传输过程中,会有一个证书签名。解密后,客户端将获得公钥和签名。同时,证书将被散列一次以获得签名。通过比较两个签名,可以看出证书是否被中途修改过。   

  

  如果这个人强行替换了你证书的内容,那么他就有一个问题,就是他不知道机构的私钥,所以无法加密签名。如果他强行签名加密,在客户端是解不开的。   

  

  然后,服务器的域名信息将被记录在证书中。如果收到的证书的域名与你要访问的域名不一致,仍然可以视为验证失败,直接拒绝访问。   

  

  当这些都完成后,就可以认为建立了安全的HTTP连接,客户端和服务器端可以愉快地通信了。   

  

  接下来,第二篇文章我想试着用例子来实践HTTPS。如果你有任何问题,请纠正我。谢谢你。   

相关文章