网站外包开发其中包括
2026/2/14 4:32:45 网站建设 项目流程
网站外包开发,其中包括,个体工商户如何注销,网站上做推广方案Https 介绍 什么是Https HTTPS#xff08;全称#xff1a;Hypertext Transfer Protocol over Secure Socket Layer#xff09;#xff0c;是以安全为目标的HTTP通道#xff0c;简单讲是HTTP的安全版。即HTTP下加入SSL层#xff0c;HTTPS的安全基础是SSL#xff0c;因此加…Https 介绍什么是HttpsHTTPS全称Hypertext Transfer Protocol over Secure Socket Layer是以安全为目标的HTTP通道简单讲是HTTP的安全版。即HTTP下加入SSL层HTTPS的安全基础是SSL因此加密的详细内容就需要SSLHttps的作用内容加密建立一个信息安全通道来保证数据传输的安全身份认证确认网站的真实性数据完整性防止内容被第三方冒充或者篡改对于开发人员来说使用抓包工具如Sniffmaster可以实时解密HTTPS流量无需代理或越狱便于分析加密通信过程。Https的劣势对数据进行加解密决定了它比http慢需要进行非对称的加解密且需要三次握手。首次连接比较慢点当然现在也有很多的优化。出于安全考虑浏览器不会在本地保存HTTPS缓存。实际上只要在HTTP头中使用特定命令HTTPS是可以缓存的。Firefox默认只在内存中缓存HTTPS。但是只要头命令中有Cache-Control: Public缓存就会被写到硬盘上。 IE只要http头允许就可以缓存https内容缓存策略与是否使用HTTPS协议无关。HTTPS和HTTP的区别https协议需要到CA申请证书。http是超文本传输协议信息是明文传输https 则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式用的端口也不一样前者是80后者是443。http的连接很简单是无状态的HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议比http协议安全。http默认使用80端口https默认使用443端口加解密相关知识对称加密对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法就是加密密钥能够从解密密钥中推算出来同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中加密密钥和解密密钥是相同的所以也称这种加密算法为秘密密钥算法或单密钥算法。常见的对称加密有DESData Encryption Standard、AESAdvanced Encryption Standard、RC4、IDEA非对称加密与对称加密算法不同非对称加密算法需要两个密钥公开密钥publickey和私有密钥privatekey并且加密密钥和解密密钥是成对出现的。非对称加密算法在加密和解密过程使用了不同的密钥非对称加密也称为公钥加密在密钥对中其中一个密钥是对外公开的所有人都可以获取到称为公钥其中一个密钥是不公开的称为私钥。非对称加密算法对加密内容的长度有限制不能超过公钥长度。比如现在常用的公钥长度是 2048 位意味着待加密内容不能超过 256 个字节。摘要算法数字摘要是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度128位的密文这一串密文又称为数字指纹它有固定的长度而且不同的明文摘要成密文其结果总是不同的而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。数字签名数字签名技术就是对“非对称密钥加解密”和“数字摘要“两项技术的应用它将摘要信息用发送者的私钥加密与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息然后用HASH函数对收到的原文产生一个摘要信息与解密的摘要信息对比。如果相同则说明收到的信息是完整的在传输过程中没有被修改否则说明信息被修改过因此数字签名能够验证信息的完整性。数字签名的过程如下明文 -- hash运算 -- 摘要 -- 私钥加密 -- 数字签名数字签名有两种功效一、能确定消息确实是由发送方签名并发出来的因为别人假冒不了发送方的签名。二、数字签名能确定消息的完整性。注意数字签名只能验证数据的完整性数据本身是否加密不属于数字签名的控制范围数字证书为什么要有数字证书对于请求方来说它怎么能确定它所得到的公钥一定是从目标主机那里发布的而且没有被篡改过呢亦或者请求的目标主机本本身就从事窃取用户信息的不正当行为呢这时候我们需要有一个权威的值得信赖的第三方机构(一般是由政府审核并授权的机构)来统一对外发放主机机构的公钥只要请求方这种机构获取公钥就避免了上述问题的发生。数字证书的颁发过程用户首先产生自己的密钥对并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后将执行一些必要的步骤以确信请求确实由用户发送而来然后认证中心将发给用户一个数字证书该证书内包含用户的个人信息和他的公钥信息同时还附有认证中心的签名信息(根证书私钥签名)。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机构发布数字证书各不相同每种证书可提供不同级别的可信度。证书包含哪些内容证书颁发机构的名称证书本身的数字签名证书持有者公钥证书签名用到的Hash算法验证证书的有效性浏览器默认都会内置CA根证书其中根证书包含了CA的公钥证书颁发的机构是伪造的浏览器不认识直接认为是危险证书证书颁发的机构是确实存在的于是根据CA名找到对应内置的CA根证书、CA的公钥。用CA的公钥对伪造的证书的摘要进行解密发现解不了认为是危险证书。对于篡改的证书使用CA的公钥对数字签名进行解密得到摘要A然后再根据签名的Hash算法计算出证书的摘要B对比A与B若相等则正常若不相等则是被篡改过的。证书可在其过期前被吊销通常情况是该证书的私钥已经失密。较新的浏览器如Chrome、Firefox、Opera和Internet Explorer都实现了在线证书状态协议OCSP以排除这种情形浏览器将网站提供的证书的序列号通过OCSP发送给证书颁发机构后者会告诉浏览器证书是否还是有效的。1、2点是对伪造证书进行的3是对于篡改后的证书验证4是对于过期失效的验证。SSL 与 TLSSSL (Secure Socket Layer安全套接字层)SSL为Netscape所研发用以保障在Internet上数据传输之安全利用 数据加密 技术可确保数据在网络上之传输过程中不会被截取当前为3.0版本。SSL协议可分为两层 SSL记录协议SSL Record Protocol它建立在可靠的传输协议如TCP之上为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议SSL Handshake Protocol它建立在SSL记录协议之上用于在实际的数据传输开始前通讯双方进行身份认证、协商加密算法、交换加密密钥等。TLS (Transport Layer Security传输层安全协议)用于两个应用程序之间提供保密性和数据完整性。TLS 1.0是IETFInternet Engineering Task ForceInternet工程任务组制定的一种新的协议它建立在SSL 3.0协议规范之上是SSL 3.0的后续版本可以理解为SSL 3.1它是写入了 RFC 的。该协议由两层组成 TLS 记录协议TLS Record和 TLS 握手协议TLS Handshake。较低的层为 TLS 记录协议位于某个可靠的传输协议例如 TCP上面。SSL/TLS协议作用认证用户和服务器确保数据发送到正确的客户机和服务器加密数据以防止数据中途被窃取维护数据的完整性确保数据在传输过程中不被改变。TLS比SSL的优势对于消息认证使用密钥散列法TLS 使用“消息认证代码的密钥散列法”HMAC当记录在开放的网络如因特网上传送时该代码确保记录不会被变更。SSLv3.0还提供键控消息认证但HMAC比SSLv3.0使用的消息认证代码MAC 功能更安全。增强的伪随机功能PRFPRF生成密钥数据。在TLS中HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了只要第二种算法未暴露则数据仍然是安全的。改进的已完成消息验证TLS和SSLv3.0都对两个端点提供已完成的消息该消息认证交换的消息没有被变更。然而TLS将此已完成消息基于PRF和HMAC值之上这也比SSLv3.0更安全。一致证书处理与SSLv3.0不同TLS试图指定必须在TLS之间实现交换的证书类型。特定警报消息TLS提供更多的特定和附加警报以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。SSL、TLS的握手过程客户端首次发出请求由于客户端(如浏览器)对一些加解密算法的支持程度不一样但是在TLS协议传输过程中必须使用同一套加解密算法才能保证数据能够正常的加解密。在TLS握手阶段客户端首先要告知服务端自己支持哪些加密算法所以客户端需要将本地支持的加密套件(Cipher Suite)的列表传送给服务端。除此之外客户端还要产生一个随机数这个随机数一方面需要在客户端保存另一方面需要传送给服务端客户端的随机数需要跟服务端产生的随机数结合起来产生后面要讲到的 Master Secret 。客户端需要提供如下信息支持的协议版本比如TLS 1.0版一个客户端生成的随机数稍后用于生成”对话密钥”支持的加密方法比如RSA公钥加密支持的压缩方法服务端首次回应服务端在接收到客户端的Client Hello之后服务端需要确定加密协议的版本以及加密的算法然后也生成一个随机数以及将自己的证书发送给客户端一并发送给客户端这里的随机数是整个过程的第二个随机数。服务端需要提供的信息协议的版本加密的算法随机数服务器证书客户端再次回应客户端首先会对服务器下发的证书进行验证验证通过之后则会继续下面的操作客户端再次产生一个随机数第三个随机数然后使用服务器证书中的公钥进行加密以及放一个ChangeCipherSpec消息即编码改变的消息还有整个前面所有消息的hash值进行服务器验证然后用新秘钥加密一段数据一并发送到服务器确保正式通信前无误。客户端使用前面的两个随机数以及刚刚新生成的新随机数使用与服务器确定的加密算法生成一个Session Secret。ChangeCipherSpecChangeCipherSpec是一个独立的协议体现在数据包中就是一个字节的数据用于告知服务端客户端已经切换到之前协商好的加密套件Cipher Suite的状态准备使用之前协商好的加密套件加密数据并传输了。服务器再次响应服务端在接收到客户端传过来的第三个随机数的 加密数据之后使用私钥对这段加密数据进行解密并对数据进行验证也会使用跟客户端同样的方式生成秘钥一切准备好之后也会给客户端发送一个 ChangeCipherSpec告知客户端已经切换到协商过的加密套件状态准备使用加密套件和 Session Secret加密数据了。之后服务端也会使用 Session Secret 加密一段 Finish 消息发送给客户端以验证之前通过握手建立起来的加解密通道是否成功。后续客户端与服务器间通信确定秘钥之后服务器与客户端之间就会通过商定的秘钥加密消息了进行通讯了。整个握手过程也就基本完成了。工具如Sniffmaster支持HTTPS抓包可以监控SSL/TLS握手过程帮助开发人员分析协议细节和排查连接问题。值得特别提出的是SSL协议在握手阶段使用的是非对称加密在传输阶段使用的是对称加密也就是说在SSL上传送的数据是使用对称密钥加密的因为非对称加密的速度缓慢耗费资源。其实当客户端和主机使用非对称加密方式建立连接后客户端和主机已经决定好了在传输过程使用的对称加密算法和关键的对称加密密钥由于这个过程本身是安全可靠的也即对称加密密钥是不可能被窃取盗用的因此保证了在传输过程中对数据进行对称加密也是安全可靠的因为除了客户端和主机之外不可能有第三方窃取并解密出对称加密密钥如果有人窃听通信他可以知道双方选择的加密方法以及三个随机数中的两个。整个通话的安全只取决于第三个随机数Premaster secret能不能被破解。其他补充对于非常重要的保密数据服务端还需要对客户端进行验证以保证数据传送给了安全的合法的客户端。服务端可以向客户端发出 Cerficate Request 消息要求客户端发送证书对客户端的合法性进行验证。比如金融机构往往只允许认证客户连入自己的网络就会向正式客户提供USB密钥里面就包含了一张客户端证书。PreMaster secret前两个字节是TLS的版本号这是一个比较重要的用来核对握手数据的版本号因为在Client Hello阶段客户端会发送一份加密套件列表和当前支持的SSL/TLS的版本号给服务端而且是使用明文传送的如果握手的数据包被破解之后攻击者很有可能串改数据包选择一个安全性较低的加密套件和版本给服务端从而对数据进行破解。所以服务端需要对密文中解密出来对的PreMaster版本号跟之前Client Hello阶段的版本号进行对比如果版本号变低则说明被串改则立即停止发送任何消息。session的恢复有两种方法可以恢复原来的session一种叫做session ID另一种叫做session ticket。session IDsession ID的思想很简单就是每一次对话都有一个编号session ID。如果对话中断下次重连的时候只要客户端给出这个编号且服务器有这个编号的记录双方就可以重新使用已有的”对话密钥”而不必重新生成一把。session ID是目前所有浏览器都支持的方法但是它的缺点在于session ID往往只保留在一台服务器上。所以如果客户端的请求发到另一台服务器就无法恢复对话session ticket客户端发送一个服务器在上一次对话中发送过来的session ticket。这个session ticket是加密的只有服务器才能解密其中包括本次对话的主要信息比如对话密钥和加密方法。当服务器收到session ticket以后解密后就不必重新生成对话密钥了。目前只有Firefox和Chrome浏览器支持。总结https实际就是在TCP层与http层之间加入了SSL/TLS来为上层的安全保驾护航主要用到对称加密、非对称加密、证书等技术进行客户端与服务器的数据加密传输最终达到保证整个通信的安全性。Sniffmaster作为抓包工具支持全平台HTTPS抓包无需代理或越狱可帮助开发人员深入分析加密流量和协议行为。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询