最新公告
  • 欢迎光临可关玩日记,免费分享生活知识及创业资讯
  • 网站什么样(网站有啥用)

    网站什么样(网站有啥用)

    HTTPS(全称:超文本传输协议安全,Hypertext Transfer Protocol Secure)是一个安全的HTTP通道,简单来说就是HTTP的安全版本。在本文中,我们来深入探讨一下它的原理。

    1

    为什么需要https

    使用https的原因真的很简单,是由于http的不安全性。

    当我们把私人数据(比如你的银行卡和身份证)发送到服务器时,如果我们使用http进行通信。那么安全性将得不到保证。

    首先,在数据传输的过程中,数据可能会被中间人抢走,然后数据会被中间人窃取。

    其次,中间人获取数据后,可能会对数据进行修改或替换,然后发送给服务器。

    最后,服务器收到数据后,无法确定数据是否被修改或替换。当然,如果服务器无法判断数据是否真的来源于客户端。

    综上所述,http有三个缺点:

    无法保证新闻的保密性
    无法保证新闻的完整性和准确性
    无法保证新闻泉源的可靠性

    Https就是为了理解和解决上述问题而应运而生的。

    2

    基本概念

    为了理解http中存在的问题,https采用了一些加密、解密、数字证书和数字签名的技术。我先介绍一下这些工艺的基本概念。

    对称加密与非对称加密

    为了保证新闻的保密性,需要加密和解密。加解密算法现在主要分为对称加密和非对称加密。

    1.对称加密(共享密钥加密):客户端和服务器共享一个密钥对新闻进行加密和解密,称为对称加密。客户端和服务器就加密密钥达成一致。客户端在发送新闻前用这个密钥加密,发送到服务器后,服务器用这个密钥解密得到新闻。

    对称加密的优势:

    对称加密解决了http中新闻保密性的问题

    对称加密的缺陷:

    对称加密虽然保证了新闻保密性,然则由于客户端和服务器共享一个密匙,这样就使得密匙稀奇容易泄露。
    由于密匙泄露风险较高,以是很难保证新闻泉源的可靠性、新闻的完整性和准确性。

    2.非对称加密(公钥加密):既然对称加密中密钥如此容易泄露,我们可以接受一种非对称加密的方法来解决。

    当接受非对称加密时,客户端和服务器都有一个公钥和一个私钥。公钥可以对外公开,私钥只能自己看到。

    用公钥加密的新闻只能用相应的私钥解密。相反,用私钥加密的新闻只能用公钥解密。这样,在发送消息之前,客户端使用服务器的公钥对消息进行加密,服务器收到消息后使用自己的私钥进行解密。

    不对称加密的优势:

    非对称加密接纳公有密匙和私有密匙的方式,解决了http中新闻保密性问题,而且使得私有密匙泄露的风险降低。
    由于公匙加密的新闻只有对应的私匙才气解开,以是较大程度上保证了新闻的泉源性以及新闻的准确性和完整性。

    不对称加密的缺陷;

    非对称加密时需要使用到接收方的公匙对新闻举行加密,然则公匙不是保密的,任何人都可以拿到,中间人也可以。那么中间人可以做两件事,第一件是中间人可以在客户端与服务器交流公匙的时刻,将客户端的公匙替换成自己的。这样服务器拿到的公匙将不是客户端的,而是服务器的。服务器也无法判断公匙泉源的准确性。第二件是中间人可以不替换公匙,然则他可以截获客户端发来的新闻,然后窜改,然后用服务器的公匙加密再发往服务器,服务器将收到错误的新闻。
    非对称加密的性能相对对称加密来说会慢上几倍甚至几百倍,对照消耗系统资源。正是由于云云,https将两种加密连系了起来。

    数字证书和数字签名

    为了理解非对称加密中公钥spring的不安全性。我们可以使用数字证书和数字签名来解决这个问题。

    1.申请数码证书

    现实中有一些专门的颁发数字证书的机构,我们称之为CA认证机构。

    我们(服务器)可以向这些ca申请数字证书。

    申请流程大致如下:

    我在内地生了一对密钥,然后我带着我的公钥和其他信息(比如公司名称)去CA申请数字证书。

    CA在得到信息后,会选择一种单向哈希算法(例如常见的MD5)对信息进行加密,加密后的设备称为abstract。

    单向哈希算法的一个特点是单向不可逆。只要原始内容有一点点变化,加密后的数据就会有很大的不同(虽然有很小的重复可能性,感兴趣的朋友请理解鸽笼原理),从而防止信息被篡改。

    摘要未完成后,CA会用自己的私钥对摘要进行加密,摘要的加密数据称为数字签名。

    如何推广赚钱(新手运营淘宝客月入三万)

    最后,CA会将我们的申请信息(包括服务器的公钥)与数字签名进行整合,从而生成一个数字证书。然后CA会通知我们数字证书。

    2.数字证书是如何工作的?

    服务器获取数字证书后,会将数字证书发送给客户端,客户端需要用CA的公钥解密数字证书,并验证数字证书的合法性。那怎么才能得到CA的公钥呢?我们的计算机和浏览器内置了权威部门的根证书,这些根证书包含CA的公钥。

    之所以说是根证书,是因为在现实生活中,认证中心是分层级的,也就是说有一个顶级的认证中心和下面子层级的认证中心,是一个树形结构。顶级组织的根证书内置在电脑里,但并不忧郁。根证书的公钥也适用于子级别。

    客户端用CA的公钥解密数字证书。如果解密成功,则意味着该证书来自合法的证书颁发机构。解密乐成后,客户端得到摘要。

    此时,客户端将使用与CA相同的哈希算法生成应用程序信息的摘要,并与解密后的摘要进行比较。如果相同,说明内容完整,没有被篡改。最后,客户端可以从证书中安全地获得服务器的公钥,并与服务器进行安全的非对称加密通信。服务器也可以用同样的方式获得客户端的公钥。

    下图以图形方式说明了一个常见的证书申请及其使用过程。

    3

    https原则

    通过以上学习,我们了解了对称加密和非对称加密的特点和优缺点,以及数字证书的作用。Https不接受单一的工艺来实现,而是根据这些工艺的特点将其充分集成,以最大限度地提高性能和安全性。这种集成技术被称为SSL(安全套接字层安全套接字层)。所以https并不是一个新的协议,它只是在http上加了一个加密的外壳。

    https的建立

    首先看一下既定的流程图:

    这里把https建立到断开分为6个阶段,12个过程。下面将对12门课程逐一进行点评。

    1.客户端首先通过发送客户端问候消息与SSL进行通信。该消息包括客户端支持的SSL的指定版本和密码套件列表(加密算法和使用的密钥长度等。).

    2.当服务器可以保持SSL通信时,它将使用服务器Hello消息进行回复。与客户端一样,SSL版本和加密组件也包含在消息中。从接收到的客户机加密组件中过滤出服务器加密组件的内容。

    3.服务器发送证书消息。该消息包含公钥证书。

    4.最后,服务器发送服务器Hello Done消息,通知客户端初始SSL握手协商部门完成。

    5.5的第一次握手后。SSL,客户端用客户端密钥交换消息进行响应。该消息包含一个随机密码字符串,称为通信加密中使用的预主密钥。在步骤3中,消息已经用公钥加密。

    6.然后,客户端继续发送更改密码规范消息。该消息将提醒服务器,该消息之后的通信将接受预主密钥加密。

    7.客户端发送完成的消息。该消息包括到目前为止所有相邻消息的总体检查值。握手协商能否成功,取决于服务器能否准确解密消息。

    8.服务器还发送更改密码规范消息。

    9.服务器也发送完成的消息。

    10.在服务器和客户端之间完成消息交换之后,SSL邻接关系就建立了。当然,通信会受到SSL的珍视。从这里开始,首先持有应用层协议的通信,即发送HTTP请求。

    11.应用层协议通信,即发送HTTP响应。

    12.最后,客户端断开邻接关系。当邻接断开时发送close_notify消息。上图已省略,在此步骤后发送TCP FIN消息,关闭与TCP的通信。

    另外,在上面的流程图中,应用层在发送数据时会附加一个名为MAC(消息认证码)的消息摘要。MAC可以发现消息是否被篡改,从而保证消息的完整性。

    我们用一张图来形象地解释一下。这个图比上面的数字证书图详细一倍(图片来源于图文HTTP)。

    从上面的介绍可以看出,https首先行使数字证书,保证服务器的公钥能够安全正确的到达客户端。然后使用非对称加密来共享密钥,最后使用共享密钥安全地交换数据。

    4

    使用https

    Https这么安全,我们是不是任何情况下都要用https进行通信?答案是否定的。

    1.1.https虽然提供了安全传输新闻的通道,但是每次加密和解密新闻都要花费大量的时间,浪费新闻系统资源。所以,我们真的不需要使用https,除非在一些安全控制要求高的场景,比如银行系统、购物系统,以及其他安全要求不高的场景,必须使用https进行通信。

    2.https的使用需要使用数字证书,但是像往常一样,权威机构颁发的数字证书是要收费的,价格也贵。所以,对于一些个人和私人网站,如果安全性要求不高,就没必要使用https。