这篇文章详细介绍了最好理解的HTTPS解释。我觉得挺好的。现在分享给你,给你一个参考。跟我回去看看。
中午了,有段时间没升级文章内容了。
其实肺炎流行期间我在家呆了一个多月,这是很多时间,因为我用这段时间写了2~3篇新文章。但是因为新写的文章大部分都是符合新小说的内容,我写的新小说因为肺炎疫情的危害而延迟不能发表,所以这篇文章的内容不能发表。我真的等得很急。期待肺炎疫情早日结束,大家能迅速恢复一切正常的日常生活。
所以今天,我们来发表一篇与Android无关的技术文章。
Https技术现在已经得到了广泛的应用。随着iPhone、Google等领先的互联网科技公司竞相在自己的电脑 *** 作系统、电脑浏览器等主要产品中强制应用https,http的替代也已宣布进入倒计时。
其实https对于移动开发者来说没什么好注意的,因为编码和写http没有两个要求。但也正因如此,很多移动开发者并不了解https,只知道它是一种安全的数据加密数据传输,却对其实际原理一无所知。
那么移动开发者想掌握https吗?我觉得还是有必要的。掌握https的原理可以帮助你更合理的理解和处理工作中的一些问题。另外,很多公司在面试的时候也喜欢问一些https相关的问题。如果你什么都不懂,在这里是非常容易被清除的。
我在学习和培训https的时候,查了很多网上的资料,但是大部分的文章都不是那么好理解,让很多人对https产生了畏惧。我觉得如果你想了解https的原理,并不一定要了解它的各个方面的重点(网上很多文章都太详细,很难理解)。其实你只要把握好它的整体工作内容,搞清楚它为什么能保证通信网络的安全就行了。所以,今天,我也给大家一个理解的https解读。
在开始解读https之前,我们要搞清楚两个定义:什么是对称加密,什么是非对称加密?这两个定义都属于数据加密的基础知识,其实很好理解。
对称很简单,就是手机客户端和网络服务器共享同一个密钥,可以用来加密一段内容,也可以用来解密。对称加密的优点是加密和解密效率高,但安全系数的高低可能会有一些问题,因为手机客户端存储的密钥有被窃取的风险。对称是指优化算法包括AES、DES等。
非对称加密稍微复杂一点,它将密钥分为两种类型:公钥和公钥。公钥一般存储在手机客户端,公钥一般存储在网络服务器。由公钥数据加密的数据只能由公钥解密,而由公钥数据加密的数据只能由公钥解密。非对称加密的优点是安全系数更高。因为手机客户端发送给网络服务器的加密信息内容,只能用网络服务器的公钥解密,担心被别人破译。但缺点是加解密效率远低于对称加密。非对称加密是指优化算法是RSA,ElGamal等。
掌握了这两个定义,大家就可以开始学习https了。这里提前问一个难题,也是求职面试中很可能经常被问到的难题:为了更好地保证数据传输的安全性,https是采用对称加密还是非对称加密?
写完一篇文章,你就能明白答案了。
首先我们来看看传统的http方式在数据传输中存在哪些问题。
因为我们传输数据时信息内容都是密文,所以数据非常容易被监听和窃取。计划如下:
此外,传输的数据也很可能被一些别有用心的人伪造,导致电脑浏览器收发的内容与网站不一致。计划如下:
换句话说,应用http传输数据至少存在数据被监听和数据被伪造的风险,所以http是一种不安全的传输协议。
那么解决的办法就是,大家无疑都知道使用https,但是先试着想一想如何保证http传输的安全系数,这样你才能一步一步的理解https的原理。
但是,数据以密文的形式在互联网上传输是不安全的,显然我们应该对数据进行加密。刚才提到,密钥加密算法有两种,对称加密和非对称加密。对称加密的优点是加密和解密的效率高,而我们在互联网上传输数据时非常注重高效率,所以这里显然要应用对称加密。计划如下:
是的,因为我们在网上传输的所有数据都是保密的,所以不怕被被监控的人获取,因为他们不可能知道全文是什么。收到保密后,电脑浏览器只需使用与网址相同的密钥即可解密数据。
这种工作方案看似保证了数据传输的安全系数,但存在一个巨大的系统缺陷:电脑浏览器和网站如何协商使用哪些密钥?
这绝对是电子计算机领域的难点。只有对电脑浏览器和网站应用相同的密钥,才能对所有数据进行正常的加密和解密,但是这个密钥怎么能只让他们两个知道,而不让所有的监控者知道呢?你可以发现,无论你怎么协商,电脑浏览器和网站最初沟通的全过程都必须是密文。这意味着根据所描述的工作,每个人从头到尾都无法建立一个安全的对称加密密钥。
所以,似乎只有对称加密一直解决不了这个问题。这时候就必须导入非对称加密来帮助解决对称加密密钥无法安全建立的问题。
那么为什么非对称加密可以解决这个问题呢?下面就按照平面图的方法来了解一下:
是的,我们可以。如果我们想要安全地建立一个对称加密密钥,我们可以让计算机浏览器在这里随机生成它。而形成的密钥并不能马上在网上传输,我们只需要用网址出示的公钥进行非对称加密即可。因为用公钥数据加密的数据只能用公钥解密,所以在互联网上传输这段数据是安全的。网站收到信息后,只需要用公钥解密,就可以得到计算机浏览器形成的密钥。
此外,使用这种方法,只有当计算机浏览器和网站第一次讨论密钥时,才必须应用非对称加密。网站一旦接收到计算机浏览器随机生成的密钥,就可以全部使用对称加密的方式相互通信,因此工作效率非常高。
那么,你认为这个工作计划已经很合理了吗?其实不是,因为大家还差很重要的一步,电脑浏览器如何获取网站的公钥?虽然公钥属于公开的数据,在网上传输也不用担心被监听,但是公钥被别人伪造了怎么办?计划如下:
换句话说,如果每个人都从网上获取所有网站的公钥,那么就存在公钥被伪造的风险。一旦使用假公钥加密数据,就有可能被别人用假公钥解密,造成的不良影响难以预料。
这里的设计似乎已经走进了一个死胡同,因为无论如何,每个人都不可能安全地获得一个网站的公钥,而且显然,每个人都不可能在电脑 *** 作系统中预设世界上所有网页的公钥。
这时候就需要引入一个新的定义来摆脱困境:CA组织。
CA专门为各个网站签署个人数字证书,从而保证计算机浏览器可以安全地获取各个网站的公钥。那么CA组织是如何执行这项艰巨的任务的呢?这里只是逐步分析的开始。
首先,作为一个网站管理者,你必须向CA组织申请,并向CA组织提交你的公钥。CA会使用大家提交的公钥,加上一系列其他的信息内容,比如域名,合理时间等。,来制作证书。
证书制作完成后,CA机构会用自己的公钥对其数据进行加密,并将加密后的数据发回给我们。你只需要把加密的数据装备到网络服务器上。
然后每次电脑浏览器向大家要网址的时候,首先会把这一段数据的加密数据发回电脑浏览器。这时电脑浏览器会用CA机构的公钥解密这一段数据。
如果解密成功,我们就可以获得CA组织为我们网站授予的资质证书,这里面自然包含了大家网站的公钥。点击电脑浏览器地址栏网址左边的小锁标志,可以查看资格证详情,如下图所示。
获得公钥后,接下来的步骤与计划中刚刚描述的步骤相同。
如果解密失败,说明这一段数据的加密数据没有经过合理合法的CA机构使用公钥数据加密,有可能是伪造的,所以会在电脑浏览器上显示信息,众所周知的异常页面,如下图所示。
那么你可能会问,有一个CA机构真的安全吗?我们需要使用CA机构的公钥来解密电脑浏览器中的数据,那么如何才能安全的获取CA机构的公钥呢?
这个问题很容易解决,因为全世界的网站层出不穷,而CA组织只有少数。所有原有的计算机 *** 作系统都会将所有流行的CA机构的公钥嵌入到计算机 *** 作系统中,所以你不需要额外获取。解密时,只需要分析xml系统软件中嵌入的所有CA机构的公钥。如果所有的公钥都能正常解密数据,说明是合理合法的。
Windows系统软件的嵌入式合格证书如下:
但是,即使CA机构的公钥可以正常解密数据,目前的步骤仍然存在一些问题。由于每个CA组织都会为无数网站制作证书,如果cyber-attack知道abc.com在申请某个CA组织的资质证书,他也可以向这个CA组织申请一个合理合法的资质证书,然后在电脑浏览器询问abc.com时更改加密的证书数据。计划如下:
可以,因为网络攻击应用的资格证书也是由可靠的CA机构制作的,所以这部分数据的加密数据当然可以成功解密。
也正是这个原因,所有CA机构在制作资质证书时,除了网站的公钥之外,还要包含很多其他数据,用来辅助校对,比如网站的网站域名就是其中一个关键数据。
这只是一个例子。如果把网站地址的网站域名加到资质证书上,那么网络攻击只会被摧毁。因为,即使加密的数据可以成功解密,但是最终解密的资质证书中包含的网站域名与电脑浏览器已经要求的网站域名不同,那么电脑浏览器仍然会显示信息异常的页面。计划如下:
嗯,设计方案在这里。其实大家的数据传输都已经保证了足够的安全性。自然,这其实也是https的原理。
所以回到开头的难题:https是应用对称加密还是非对称加密?答案也很明显。https采用对称加密和非对称加密紧密结合的方法。
自然,如果要再分析的话,https中有很多关键点值得探究。但是,如果再写下来,这篇文章很可能就不是最好的https解读了,所以我觉得写在这里刚刚好。
如果我跟你一样,重点业务是手机客户端定向的开发设计,那么掌握这么多https专业知识,就已经足够解决常见的求职面试和工作中遇到的问题了。
至此,这篇关于HTTPS最佳诠释的文章已经在这里详细介绍过了。如需大量HTTPS口译内容,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)