https的加密原理
A. 全站HTTPS能带来怎样的优势HTTPS原理是什么,如何加密
全站https会带来以下优势:
1、全网站加https会更安全
https的主要功能之一是确保数据在传输的过程中被加密,只有相应的服务器或用户浏览器接收时才能被解密,避免了被第三方拦截和篡改。https还有另外一个功能是提供可信的服务器认证,这是一套黑客不能随意篡改的认证信息,使相关用户确定他们正在与正确的服务器通信。
如果没有全网站加https,会导致一些页面为https,而一些也页面则还是http,当通过http或不安全的CDN服务加载其他资源(例如JS或CSS文件)时,网站也存在用户信息被泄露的风险,而全网站https是防止这种风险最简单且有效的方法。
2、帮用户识别钓鱼网站
上面提到了https可以进行服务器认证,当服务器的真实身份得到认证之后可以有效的区别于钓鱼网站。全网站加https后,浏览器则会内置安全机制,实时查验证书状态,通过浏览器向用户展示网站的认证信息,让用户能够轻松识别网站的真实身份,防止误入钓鱼、仿冒网站。
3、对搜索引擎更友好
当网站存在https和http两种协议时,需要以https这http两种方式管理整个网站,并且需要仔细、精确的控制重定向。网站很容易在两个协议中被一个或多个网页解析,导致搜索引擎抓取和索引出单个网页的两个版本,从而导致网页的搜索可见性降低(因为搜索引擎会认为这两个网页相互竞争)。即使没有这种风险,搜索引擎有时会索引某些错误协议的网页,从而对点击进入的用户进行不必要的重定向,反而对服务器造成了不必要的压力,稀释了搜索权限并会减慢网页加载速度。
B. https是如何加密的
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。
1. 客户端发起HTTPS请求
这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。
2. 服务端的配置
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。
3. 传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
4. 客户端解析证书
这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
5. 传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
6. 服务段解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
7. 传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。
8. 客户端解密信息
客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。
C. HTTPS 加密了什么内容
一般来说,HTTPS 主要用途有三个:一是通过证书等信息确认网站的真实性;二是建立加密的信息通道;三是数据内容的完整性。
那么加密的信息通道又加密了哪些信息呢?
签发证书的 CA 中心会发布一种权威性的电子文档——数字证书,它可以通过加密技术(对称加密与非对称加密)对我们在网上传输的信息进行加密,比如我在 Pornhub 上输入:
账号:cbssfaw
密码:123djaosid
可是这个数据被黑客拦截盗窃了,那么加密后,黑客得到的数据可能就是这样的:
账号:…≤˙
密码:§
最后一个就是验证数据的完整性,当数据包经过无数次路由器转发后会发生数据劫持,黑客将数据劫持后进行篡改,比如植入羞羞的小广告。开启HTTPS后黑客就无法对数据进行篡改,就算真的被篡改了,我们也可以检测出问题。
对称加密与非对称加密
对称加密
对称加密是指加密与解密的使用同一个密钥的加密算法。小编初中的时候传纸条使用了同一套加密密码,所以我用的加密算法就是对称加密算法。
目前常见的加密算法有:DES、AES、IDEA等
非对称加密
非对称加密使用的是两个密钥,公钥与私钥,我们会使用公钥对网站账号密码等数据进行加密,再用私钥对数据进行解密。这个公钥会发给查看网站的所有人,而私钥是只有网站服务器自己拥有的。
目前常见非对称加密算法:RSA,DSA,DH等。
HTTPS=数据加密+网站认证+完整性验证+HTTP
通过上文,我们已经知道,HTTPS 就是在 HTTP 传输协议的基础上对网站进行认证,给予它独一无二的身份证明,再对网站数据进行加密,并对传输的数据进行完整性验证。
HTTPS 作为一种加密手段不仅加密了数据,还给了网站一张身份证。
实现HTTPS,可以淘宝:Gworg 获取HTTPS加密协议。
D. https的加密机制,怎么加密
HTTPS加密是在签发信任机构的SSL证书。
数字证书的作用和原理概述:https://www.gworg.com/ssl/353.html
这种加密模式比较复杂的,他产生了中介数据交易验证。
E. 关于https原理
http叫超文本传输协议,使用TCP端口80,默认情况下数据是明文传送的,数据可以通过抓包工具捕获到,因此在interner上,有些比较重要的站点的http服务器需要使用PKI(公钥基础结构)技术来对数据加密!这也就是https了;
https叫安全的超文本传输协议,使用TCP端口443,他的数据会用PKI中的公钥进行加密,这样抓包工具捕获到的数据包也没有办法看包中的内容,安全性大大提高,要解密数据的话就要用到PKI中的私钥。所以一些安全性比较高的网站如:网上银行,电子商务网站都需要用https访问!
PKI技术说起来主要用公钥加密和私钥签名两种,工作机制和原理那太复杂了,你要去看专门的资料!
你补充的问题,办不到!如果一个站点用了https,就必须用https;//的形式访问!
F. https的基本原理。
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管自己的私钥,防止泄漏。
TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。正是由于HTTPS非常的安全,攻击者无法从中找到下手的地方,于是更多的是采用了假证书的手法来欺骗客户端,从而获取明文的信息,但是这些手段都可以被识别出来。
G. https 为什么是安全的
https是目前互联网中比较安全的一种信息传输方式,也是越来越受网民们的喜爱,因为它可以保障隐私数据在传输的过程中不被监听、窃取和篡改。那么https如何保证安全的呢?需要申请SSL证书吗?
想要了解https如何保证安全的,需要了解它的工作原理,一张图表示大致是这样的:
首先客户端发起https请求:客户端会发送一个密文族给服务器端。(采用https协议的服务器必须要有一张SSL证书,因此是需要申请SSL证书的。)
然后服务器端进行配置:服务器端则会从这些密文族中,挑选出一个。
然后是传送证书:这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构、过期时间等等。
接下来客户端解析证书:客户端会验证公钥是否有效。
然后进行传送加密信息:传送证书加密后的随机值。
服务器端进行解密信息:服务器端利用私钥进行解密,得到了客户端传过来的随机值,然后把内容通过该值进行对称加密。
传输加密后的信息:服务器端用随机值加密后的信息,可以在客户端被还原。
最后客户端进行解密信息:客户端用之前生成的随机值解密服务端传送过来的信息,于是获取了解密后的内容。
整个过程配合的非常完美,第三方是无法插手干预的,这就保障了数据在传输过程中的安全。
H. https是如何工作的
加密(Cipher)
在java 1.2时,引入JCR(java 加密扩展)系统,用来负责java中的密钥和证书。
我们都知道,如果我们想要加密或解密一些信息,我们必须要有一个密钥。这好比你想要开门或者锁门,必须要有钥匙一样。
在java中,密钥由KeyGenerator或KeyPairGenerator生成。前者用来生成对称密钥,后者用来生成非对称密钥。
对称密钥:使用同一个密钥进行加密和解密
非对称密钥:使用不同的密钥进行加密和解密,通常被称为公钥(public key)和私钥(private key)。 公钥可以广泛传播,但是私钥只有其所有者知道。在一个安全的非对称密钥加密方案中,当信息用公钥加密后,只有用私钥才能解密。所以,即使一个黑客拿到你公钥加密过后的信息,也无法解密它,因为它没有配对的私钥。这样,传输的消息就是安全的。
x.509
x.509证书通常用于包含一个公钥PKCS12
PKCS12证书通常用来包含一个私钥。因此,PKCS12需要密码才能打开。
证书(Certificate)
在现实中,如果你进入到钻石专卖店中想要买一颗钻石,你怎么知道钻石是真的?作为一个普通人来说,我们没有钻石方面的知识,但是如果这钻石有个由美国政府颁发的许可证,我们就会相信它是真的。(去过珠宝店的同学都知道,每件珠宝都有自己的鉴定书)
证书的作用也是如此。在计算机世界中,它可能是包含一些密钥,是另一个证书(姑且称之为证书B好了)。这些密钥是我们需要的,而证书B是一个许可证,用来证明这个证书是可信赖的。
做个简短的解释,每个钻石都有自己的“身份证书”,但是如何说明这个身份证书是合法的,而不是自己伪造的?因此,我们需要一个权威的机构来证明这个钻石的身份证书是合法的,如果这个钻石的身份是合法的,该权威机构就会为其颁发一个“许可证”,这个许可证就相当于上面我们说到的证书B。可以看到,证书B的目的就是证明这个身份证书是这个钻石的身份证书,即证明某某东西是某某东西的东西
问题来了:我们怎么确定证书B是可信赖的呢?这个问题非常棒。
Android已经把将近150个CA根证书(数字证书认证机构认证过的证书)内置在我们手机中。这150多个证书被全世界信赖,他们就像是美国的大法官。
这150多个证书类似我们刚才说的证书B,分别用来证明某某东西是某某东西的东西
B证书中里有另外一个证书(姑且称之为C证书),我们通过检查C来确定C是否是可信任的。。。通过这个证书链,如果我们找到的最后一个或根证书 和手机中预置的150个证书中某个相同,我们就可以这个证书原件(此处就是B)
这里我对证书链进行说明。证书之间的信任关系是可以嵌套的。比如,CA信任D,D信任C,C信任B
,B信任A。。。这就是证书链。只要我们信任证书链上的头一个证书,那么后续的证书都是可以信任的。这里也就是如果我信任了证书CA,那么后面的D,C,B,A都是可以信任的。这里来打个比方,架设军队中的每个士兵都只认识自己的直接上级,那么这时候总司令怎么确认某个士兵是自己部队 当中的呢?总司令(CA)会问的直接下级(D),而司令的直接下级又会找自己的直接下级,依次往下找…如果最后能找到这个士兵直属上级,那就说明这个士兵是该部队当中的。
附:证书有多种格式
Https
现在我们来了解https部分。Https(http over ssl)包含上面提到的加密和证书两部分,被设计用来在Internet安全进行通信。
如何安全的通信?
如何安全通信呢?对称加密是我们最先想到的方案:将数据进行加密,然后将加密过的数据和密钥同时传到服务器,服务器使用这个密钥解密加密过后的数据。
上面这张图片已经清楚的展示了HTTPS工作的流程。
1.[Server]生成一对密钥:公钥和私钥,我们称之为“KeyPub”,“KeyPri”
2.[Server]服务端将公钥(KeyPub)发送到客户端
3.[Client]生成一个对称密钥(姑且称之为key2),然后用key2加密数据。
4.[Client]使用公钥(KeyPub)加密key2.这时,key2是安全的,因为只有服务度有私钥KeyPri
5.[Client]发送用key2加密后的信息及用KeyPub加密过的key2到服务端
6.[Server]服务端使用KeyPri解密得到加密过的key2,得到真正的key2
7.[Server]使用key2解密消息正文。这样,数据就被安全的传输到了服务端。
结论
由于对称加密比非对称加密快,https决定使用对称加密来加密数据,使用非对称加密对称加密生成的密钥,以确保安全
I. HTTPS 协议原理
HTTPS的全称是Hypertext Transfer Protocol over Secure Socket Layer,即基于SSL的HTTP协议,简单地说就是HTTP的安全版。HTTPS协议由当时着名的浏览器厂商网景(Netscape)公司首创,虽然网景在与微软(Microsoft)的浏览器之争中败北,但是HTTPS这一项技术得到了传承,当前几乎所有的浏览器和服务器都能够很好地支持HTTPS 协议。
依托SSL协议,HTTPS协议能够确保整个通信过程都是经过加密的,密钥随机产生,并且能够通过数字证书验证通信双方的身份,以此来保障信息安全。其中证书中包含了证书所代表一端的公钥,以及一些其所具有基本信息,如机构名称、证书所作用域名、证书的数字签名等,通过数字签名能校验证书的真实性。通信的内容使用对称加密方式进行加密,通信两端约定好通信密码后,通过公钥对密码进行加密传输,只有该公钥对应的私钥,也就是通信的另一端能够解密获得通信密码,这样既保证了通信的安全,也使加密性能和时间成本可控。
J. 详解什么是HTTPS
HTTPS的全称是:Hyper Text Transfer Protocol over Secure Socket Layer,也就是HTTP安全连接,可以说是HTTPS协议的安全升级版,地址栏的URL表明这个网站有没有使用HTTPS加密,HTTPS的安全基础是SSL层,是一个加密/身份验证层,这个系统最初由美国的网景公司开发,并内置于浏览器中,提供了身份验证与加密通讯方法,现在HTTPS加密已被广泛应用于互联网上信息的安全通讯。
HTTP协议传送的信息是不加密的,传送的也就是明文信息,用户信息容易被篡改,网站也容易被劫持,而HTTPS多了一个加密层,传送的信息不是明文的,更安全,HTTPS最后的S也就是安全的意思。