https非对称加密

本文详细解释了HTTPS的工作原理,包括使用SSL/TLS协议、公钥私钥加密体系(如RSA),以及对称与非对称加密方法的应用。还讨论了如何确保数据安全,如使用数字证书和PKI系统,以及HTTP协议中的TCP和UDP的区别。
摘要由CSDN通过智能技术生成
  • 下面来说一下https是怎么工作的:
    • https是在http的基础上使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议实现。

        1当你要访问一个页面时,浏览器就告诉互联网把你的地址给我,2:服务端会把证书给他,这里面还包括publick key 。3:你的浏览器就会说我信你的证书,这是要传输数据给数据服务端时,你的浏览器会用服务端的公钥加密这些数据这里只用到了PSk(非对称加密算法),常用的是对称加密方法与非对称方法相结合的方式:具体来说,发送方首先使用对称密钥加密算法对数据进行加密,然后再使用接收方的非对称加密中的公钥对对称密钥进行加密(一方的公钥的加密的东西,只能用这一方的私钥来解密。),最终将加密后的数据和加密后的对称密钥一起发送给接收方。接收方收到数据后,首先使用自己非对称的私钥对加密的对称密钥进行解密,然后再使用解密后的对称密钥对加密的数据进行解密,得到原始的明文数据。

        RSA算法是第一个能同时用于加密和数字签名的非对称密码算法,算法的名字以发明者的名字Ron Rivest、AdiShamir和Leonard Adleman 命名。该算法也是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,成为被普遍认为是目前最优秀的公钥方案之一。它利用两个很大的质数相乘所产生的乘积来加密。这两个质数无论哪一个先与原文件编码相乘,对文件加密,均可由另一个质数再相乘来解密。但要用一个质数来求出另一个质数,则是十分困难的。因此将这一对质数称为密钥对(Key Pair)。在加密应用时,某个用户总是将一个密钥公开,让发信的人将信息用其公共密钥加密后发给该用户,而一旦信息加密后,只有用该用户一个人知道的私用密钥才能解密。具有数字凭证身份的人员的公共密钥可在网上查到,亦可在请对方发信息时主动将公共密钥传给对方,这样保证在Internet上传输信息的保密和安全。

  1. 密钥生成 RSA的算法涉及三个参数,n、e、d,其中n被称为模数,是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。e和d是一对相关的值,e可以任意取,但要求e与(p-1)x(q-1)互质;再选择d:要求(dxe-1)能被(p-1)x(q-1)整除。值e和d分别称为公共指数和私有指数。公钥是数对(n,e),密钥是数对(n,d)。 2)加密 获得信息接收者的公开密钥(n,e)。 (1)将明文分组:m=m0,ml,m2,…,mk-1。使得mi<n(i=0,1,…,k-1)。 (2)对每一组明文用一下公式做加密变换ci-E(mi)-mie(mod n)。 (3)得到密文c=c0,cl,c2,…,ck-1。
  2. 解密 (1)对每一密文做解密变换mi=D(ci)=cd(modn)。 (2)合并分组得到的明文m-mO,ml,m2,……mk一1。 知道公钥可以得到获取私钥的途径,但这取决于将模数因式分解成组成它的质数。如果选择了足够长的密钥,这样基本上不可能获取私钥。RSA实验室建议:普通公司密钥1024位就已足够。对极其重要的资料,就用双倍的大小的2048位。日常使用768位就能满足要求。 密钥长度增加时会影响加密/密的速度,所以这里有一个权衡。将模数加倍将使得使用公钥的操作时间大概增加为原来的4倍,而用私钥加密/解密所需的时间增加为原来的8倍。进一步说,当模数加倍时,生成密钥的时间平均将增加为原来的16倍。

        在RSA算法中,私钥是由两个大素数的乘积以及一些其他参数计算得出的,而公钥是由这两个大素数以及一些其他参数计算得出的。私钥和公钥的生成算法是一样的,但它们的参数不同,因此它们是不同的密钥。

        前面已经知道:普通的对称密码学中加密和解密使用同一个密钥。对称加密算法简便高效、密钥简短、破译困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是重要问题。因对称密码学中双方使用相同的密钥,故无法实现数据签名和不可否认性等功能。而非对称密码学,具有两个密钥,一个公钥一个私钥,它们具有这样的性质:用公钥加密的文件只能用私钥解密,而用私钥加密的文件只能用公钥解密。公钥是公开的,所有的人都可以用它;私钥是私有的,具有唯一性,不应被其他人得到。这就可以满足电子商务中的一些安全要求。比如说要证明某个文件是特定某个人的,这个人就可以用他的私钥对文件加密,别人如果能用他的公钥解密该文件,说明此文件就是这个人的,这可以说是一种认证的实现。如果只想让某个人看到一个文件,就用此人的公钥加密文件然后传给他,而该文件只有用特定私钥才可以解密,这就是保密性的实现。基于这种原理还可以实现完整性。这是PKI 依赖的核心思想。 当传送机密文件时,我们首先会想到用对称密码将文件加密,而在把加密后的文件传送给接受者后,我们又必须让接收方知道解密用的密钥,这就产生了新的问题:如何保密的传输该密钥?此时发现传输对称密钥不绝对可靠。后来改用非对称密码的技术加密。又产生了新的问题:如何确定该公钥就是某个人的?比如说我们想传给A一个文件,于是开始查找A的公钥,但是这时B从中捣乱,替换了A的公钥,让我们错误地认为B的公钥就是A的公钥,导致我们最终使用B的公钥加密文件,结果A无法打开文件,而B可以打开文件,这样B就实现了对保密信息的窃取行为。因此采用非对称密码技术,仍然无法保证保密性的实现,如何才能确切地得到想要的人的公钥是权威的仲裁机构CA(Certification Authority)的主要工作,CA能准确无误地提供我们需要的人的公钥。 PKI中,值得信赖而且独立的第三方机构充当认证中心(Certification Authority,CA),来确认公钥拥有人的真正身份。就像公安局发放的身份证一样,认证中心发放一个叫“数字证书”的身份证明。该数字证书包含了用户身份的部分信息及用户所持有的公钥。像公安局对身份证盖章一样,认证中心利用本身的私钥为数字证书加上数字签名。任何想发放自己公钥的用户,可以去认证中心申请自己的证书。认证中心在鉴定该人的真实身份后,颁发包含用户公钥的数字证书。其他用户只要能验证证书是真实的,并且信任颁发证书的认证中心,就可以确认用户的公钥。

        

http的请求部分

post 可以理解 为 贴 的意思数据发送到服务器以创建或更新资源,侧重于更新数据,对应update操作 post请求的请求参数都是请求body中

get请求会把请求的参数附加在URL后面,这样是不安全的,在处理敏感数据时不用,或者参数做加密处理。

:authority: aegis.qq.com表示请求的目标主机为aegis.qq.com。这个地址是qq的服务器地址

Accept: /:表示客户端可以接受任何格式的响应数据。

Content-Length: 810:表示请求内容的长度为810个字节。在延伸一个知识点这个文件的请求是post,post的请求是参数在请求体中的,参数长度没有限制,不过服务器会对请求体进行限制,而get的参数在url里,在http协议中是没有限制的,但在浏览器和服务器都对URL的长度有要求

  • User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Safari/605.1.15:表示客户端的浏览器类型及版本信息。

Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

响应部分

:status"是HTTP/2协议中的一个响应头,它表示HTTP响应的状态码。在这个例子中,":status"的值为204,表示服务器成功处理了请求,但不需要返回任何实体内容。

上面讲https的内容不全,不够完整,这张图是gtp回答我的内容,确实不一般,理一理顺一顺,如果看懂了我在上面讲的https的内容,在看一遍这张图,应该就OK了

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值