HTTPS大致解答

HTTPS是基于HTTP与SSL建立而成的,因http是为明文信息传输方式,容易被嗅探、窃取信息导致不安全的因素,所以渐渐诞生出一种能将传输过程进行加密的一种方式,是为HTTPS。

HTTPS有两种作用:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

 

HTTPS的作用:
    C I A(confidentiality integrity availability)

1、机密性:内容加密,不容易破解

2、完整性:防止数据被篡改、窃取

3、可用性:合法的用户,对有权限访问的资源是可用的

#该作用都是作用于传输过程中的,解决的是信息传输过程中数据被篡改、窃取。

三个要素全部基于加密算法:

1、对称加密:加密解密相同密钥

2、非对称加密:一次数学计算生成一对密钥,一对密钥有一个是拿出来发的:公钥;另一个是所有者严密保存在本机的:私钥

3、单向加密:hash计算

 

而对于HTTPS攻击方法大致三种:

1、降级攻击(攻击者将高安全级别的cipher suite降低,然后解密)

2、解密攻击(明文、证书伪造)

3、协议漏洞、实现方法的漏洞、配置不严格

 

对于SSL:(Secure socket layer)

它是保证网络通信安全的加密协议,1994年由Netscope开发成为统一标准(但其协议本身存在漏洞),直到1999年TLS(transport layer security)取代SSL v3(不安全) (但如今仍叫ssl),同时近年来发现的SSL协议漏洞使业界内认为其漏洞已不软件修复。

TLS/SSL、HTTPS、HTTP over SSL通俗上表示同一含义。

但因可能用户使用xp等老版本机器,而这些机器不支持TLS,所以很多企业为防止客户流失,不得已在网站上兼容SSL v3等老协议,这也是推广全站https面临的严峻问题。

 

SSL/TLS也被用于其他场景的传输通道加密:

1、邮件传输(服务器间、客户端与服务期间),走SMTP协议(明文)

2、数据库服务器间(比如执行sql查询语句等尽量隐蔽)

3、LDAP身份认证服务器间(企业中)

4、SSL VPN(连接到公司内网)

5、远程桌面RDP通信过程中的加密和身份认证

 

WEB通信中的SSL加密:

基于公钥证书实现(受信任的第三方证书颁发机构签名颁发),像一些机构:VeriSign、Thawte、GlobalSign、Symantec等。

访问https网站的加密过程:

1、握手

2、协商加密算法(即加密套件:cipher suite(一个对称加密、非对称加密、hash算法、密钥交换算法组合为一个suite))

3、获取公钥证书(生成对称密钥给服务器:因为会生成对称密钥,但防止被嗅探,所以再引入非对称算法,将发给服务器的对称密钥使用服务器公钥进行加密,到达服务器后服务器私钥再解密,再得到发送的公钥)

4、验证公钥证书

5、交换会话密钥

6、加密信息传输(使用对称会话密钥加密,形成密文,再对密文进行hash计算生成一串固定长度的字符串,再用公钥证书里的公钥在加密,生成加密的密文信息,最后会把加了密的信息及hash值还有加了密的hash值三部分一起传给服务器,到服务器它会用自己的私钥解开加了公钥密的hash值,拿这个hash值与客户端发的hash进行比较相等的话没被串改,完整性是有保障的,再用交换了的对称密钥解开加了密的信息,对这个信息再做个hash计算,拿这个hash值对解密出来的hash值进行比较,比较一致的话,数据完整性未被破坏,用对称密钥解出对称密钥加密的密文信息,再对解出来的明文计算hash值,拿这个hash与用私钥加密后的hash进行比较,没有变化,有保障,另外是由公钥加密的信息,那就实现了一个验证)

 

#对于浏览器、系统默认、服务器证书之间的交互:安装系统就会有受信任的根证书,凡是由这些根证书颁发机构颁发给网站的或者给任何网站的证书都会有这个颁发机构的私钥签名的一个签名信息,当拿到这个证书,在自己系统上,如果用这个根证书里面的私钥,把这个签名解密验证前后值是匹配的,那么网站提供的这个证书是由我信任的这个证书颁发机构颁发的,认可他了。

 

 

常见的一些算法:

非对称加密算法:只适合加密小量的数据

1、Diffie-Hellman key exchange 
2、Rivest Shamir Adleman (RSA) 
3、Elliptic Curve Cryptography (ECC) 

对称加密算法:

1、Data Encryption Standard (DES) / 3DES 
2、Advance Encryption Standard (AES) 
3、International Data Encryption Algorithm (IDEA) 
4、Rivest Cipher 4 (RC4) :WEP、TLS/SSL、RDP、Secure shell基本存在

单向加密算法(HASH)(加密的hash值固定):

就SHA-2谈一谈:

SHA-2是TLS 1.2 唯一支持的单向加密算法(hash值长度可变):虽然是加密算法,但依然可能存在碰撞攻击,即两个不同的文件生成相同的HASH值。

#碰撞攻击针对单向加密算法(一个证书,里面有签名的hash值,生成一个文件或者伪造证书,让hash值跟真正的证书hash值相同,基本可以生成证书(MD5、SHA-1))

 

SSL的弱点:

1、SSL是不同的对称、非对称、单向加密算法的组合加密实现(cipher suite)

2、协商过程中强迫降级加密强度

3、现代处理器计算能力可以在可接受的时间内破解过时加密算法

4、购买云计算资源破解(超级计算)

 

最后:

针对于SSL的检测机制做一个补充,常用的工具就:Openssl、SSLScan、SSLyze、Nmap,简单说明命令使用:

Openssl:(直接调用openssl库识别目标服务器支持的SSL/TLS cipher suite)

举例:

openssl s_client connect www.baidu.com:443 
openssl s_client -tls1_2 -cipher 'ECDH-RSA-RC4-SHA' -connect  www.taobao.com:443 
#ECDH-RSA-RC4-SHA为:密钥交换-身份认证-数据加密-HASH算法,随机一种的组合形式
openssl s_client -tls1_2 -cipher “NULL,EXPORT,LOW,DES” -connect  www.taobao.com:443
#协商低安全级别cipher suite

可被破解的cipher suite查询:

openssl ciphers -v "NULL,EXPORT,LOW,DES"

Openssl需要大量密码学相关知识,命令复杂,结果可读性差

 

 

SSLScan:(自动识别SSL配置错误、过期协议、过时cipher suite和hash算法)

#默认会检查CRIME、heartbleed漏洞,绿色表示安全’红色黄色需要引起注意

TLS支持的cipher suite举例:

sslscan --tlsall www.taobao.com:443 

分析证书详细信息举例:

sslscan --show-certificate --no-ciphersuites www.taobao.com:443

 

SSLyze:(Python语言编写、检查SSL过时版本、检查寻在的弱点的cipher suite 、扫描多站点时,支持来源文件、检查是否支持会话恢复)

举例:
 

sslyze --regular  www.taobao.com:443 

 

Nmap:(Nmap自带的扫描脚本有很多,其中就有关于扫描SSL信息的)

举例:

nmap --script=ssl-enum-ciphers.nse www.taobao.com

 

除了由上面的工具去检测,还可以用一个网站去检测,而且隐藏ip要方便的多:

https://www.ssllabs.com/ssltest

 

关于https的其他内容,在网络上依然存在,具体可以参考一下官方解释:HTTPS

 

发布了36 篇原创文章 · 获赞 19 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章