23 | HTTPS是什么?SSL/TLS又是什么?
23 | HTTPS是什么?SSL/TLS又是什么?
讲述:Chrono
时长11:58大小10.95M
为什么要有 HTTPS?
什么是安全?
什么是 HTTPS?
SSL/TLS
OpenSSL
小结
课下作业
赞 41
提建议
精选留言(49)
- djfhchdh2019-07-19机密性由对称加密AES保证,完整性由SHA384摘要算法保证,身份认证和不可否认由RSA非对称加密保证
作者回复: √
共 4 条评论112 - -W.LI-2019-07-25老师好!有个问题,之前调用第三方的支付走https协议都需要本地配置一个证书。为啥最近有个项目也是用的https协议(url里会放token)。直接和http一样调用就好了,不需要本地配置证书了呢?
作者回复: 本地证书是用来做双向认证的,服务器用客户端的证书来验证客户端的证书。 通常我们上网是单向认证,只验证服务器的身份,客户端(也就是用户)的身份不用证书验证。
30 - David Mao2019-07-20老师,请教一下,我们现在正在申请SSL证书,SSL证书有专门的机构颁发,文中老师提到HTTPS能够鉴别危险网站,防止黑客篡改,这些具体是怎么做到的呢?由专门机构颁发的原因是什么?谢谢老师。
作者回复: 如果网站是http而不是https,那么浏览器就会认为网站不安全,有风险。 如果证书内容不完善,或者被列入了黑名单,那么浏览器也可以提示用户有危险。 这些的关键都是证书,用证书里的信息,来验证网站的有效性、真实性。 因为证书用来证明网站的身份,就像身份证、学位证一样,如果随便颁发,那么它的可靠性就得不到保证,所以必须要由指定信任的专门机构来颁发,由ca来“背书”,保证证书和它关联的网站是安全可靠的。
共 2 条评论22 - 彩色的沙漠2019-07-191、HTTPS相对于HTTP具有机密性,完整性,身份认证和不可否认的特性,HTTPS是HTTP over SSL/TLS,HTTP> HTTP over TCP/IP 2、实现机密性可以采用加密手段,接口签名实现完整性,数字签名用于身份认证
作者回复: √
11 - Danpier2020-01-12有个疑问,维基百科 OSI 模型图表把 SSL\TLS 归到第6层(表示层),文中说 SSL 属于第5层(会话层),这里是不是写错了? 附: https://en.wikipedia.org/wiki/OSI_model#Layer_6:_Presentation_Layer
作者回复: 这个分层没有统一的定论,ssl/tls在tcp/ip里属于应用层,但不能准确对应到osi的某一层,因为它即有会话功能,又有加解密表示。 我们只要会用、理解就行,不要过于拘泥于学术。
10 - 纳兰容若2020-11-04老师您好 一直以来不太明白openssl的各版本,我看官网上还有2.0和3.0的,还有后面还有t、h、j字母跟在后面,这些大概有什么区别,正常使用不知道选择什么版本好,老师有什么建议么 感谢老师回复
作者回复: OpenSSL的官网上对各个版本写的很清楚,最早它是由ssleay发展来的,所以就沿用了0.98的版本号,后来又有好几个系列,比如1.01、1.10等等,小版本号用字母表示。 目前OpenSSL准备跳过2.0,直接出3.0,我们用最新的1.11就好了,之前的版本都将不再维护。
6 - 而立斋2019-11-081、https与http协议相比,最重要的是增加安全性,这种安全性的实现主要是依赖于两个协议底层依赖的协议是不同的,https在传输的应用层与传输层协议之间增加了ssl/tls,这就使得http在固有协议之上增加一层专用用于处理数据安全的工具。 2、机密性:数据使用非对称加密传输 完整性:数据用公钥加密,私钥解密,数据生成摘要算法,同步传输展开
作者回复: 1.正确。 2.机密性主要用对称加密实现,非对称加密虽然也可以,但是效率太低,不实用。
共 2 条评论6 - 何用2019-07-22P-256 是 NIST(美国国家标准技术研究所)和 NSA(美国国家安全局)推荐使用的曲线。而密码学界不信任这两个机构,所以 P-256 是有可能被秘密破解但出于政治考虑而未公开?
作者回复: 是的,可能有这个隐患,就跟des一样。
6 - 海绵薇薇2021-06-29老师好,我想问下,在HTTPS协议上传输的报文,是怎么被缓存的,因为传输的内容应该都是加密的,那么如何做到If-Match或者If-Modified-Since判断的呢?CDN可以解析加密过后的内容吗?
作者回复: 1.https传输过程加密,但在两边是解密的,所以可以看到头字段,然后再走正常的判断处理流程。 2.如果cdn有证书和私钥,就可以解密数据,否则就只能做透明代理,在tcp层面转发。
5 - zhangdroid2021-04-11HTTPS:即HTTP over SSL/TLS,用来解决HTTP明文传输导致的不安全问题。流程大致为: 使用对称加密算法加解密报文,保证机密性;使用摘要算法保证数据完整性;使用证书CA来进行身份认证;而不可否认则由非对称加密算法来实现。由于非对称加密算法耗时比对称加密算法长,所以用非对称加密算法来加解密给报文加密的对称算法的秘钥:即使用公钥对对称加密算法秘钥进行加密,私钥用来相应地解密。展开
作者回复: good。
5 - lesserror2019-12-11老师,以下问题,麻烦解答: 1. 这就是 HTTPS 与 HTTP 最大的区别,它能够鉴别危险的网站?这个仅仅从浏览器弹出不安全的提示来说的嘛?或者说怎么个鉴别法? 2. 网站是否真实也无法验证。加了https的网站也有可能是钓鱼网站吧?也没法验证啊?
作者回复: 1.如果网站的证书不可信(过期、失效、被废除、伪造),那么就可以说明网站是不安全的,而http不能对网站有任何的认证措施。 2.证书有dv、ov、ev三种,能从ca的层面证明网站的所有者。 3.当然,如果网站故意作恶,https也无法制止,它只能证明网站确实是如证书所声明的,不是假冒的。
5 - 蒋润2019-09-24老师你好 https能有效防止抓包然后篡改报文数据,防止xxs攻击吗
作者回复: https传输的内容是加密的,所以抓包后看不到明文,是无法窜改数据的。 但xss属于内容攻击,报文本身是合法的,所以它不能防止。 https只能保证数据传输安全,但在链接的两端不能提供保护。
共 2 条评论5 - 懒人一枚2021-03-18觉得大佬还可以再深入一些,比如浏览器是如何验证证书的,证书对浏览器对作用是什么,这个证书和我们平时接口调用使用的证书有什么区别呢,为什么有的网站有证书,浏览器却不认
作者回复: 这个问题跟浏览器实现有关,而与http协议就无关了,我个人对浏览器的工作原理不是很了解,只能说抱歉了。 其实对于http协议来说,浏览器就是一个普通的客户端,与wget、curl没有区别。而不认证书,那就是信任发生了问题,要么是过期失效,要么是上级证书有问题。 其他疑问可以看后面几讲,有不明白的随时问。
4 - mini💝2021-02-03请问老师 端口的作用是什么呢?为什么http和https的默认端口是不一样的
作者回复: 这个属于tcp/ip层次的知识了,我简单说一下吧。 互联网上的机器都用ip地址来标记,但只有ip还不够,一台机器上会有很多不同的服务,为了区分,就要再加上端口,这样才能完整地标记一个网络服务。 比如有台主机的地址是10.1.1.1,它在端口22上开了ssh服务,21上开了ftp服务,80是http,443是https,这样客户端就可以用地址加上不同的端口去访问主机上的服务了。 http和https的默认端口都是国际标准化组织分配的,比如etcd就用了2379。
共 2 条评论4 - 钱2020-03-301:你能说出 HTTPS 与 HTTP 有哪些区别吗? 正如文中所言HTTPS比HTTP多了一个S,这个S代表安全,是基于SSL/TSL实现的,SSL/TSL是专门用于安全传输的,具体咋实现的比较复杂还没弄明白,主要就是各种加密算法的应用,后面继续看。 2:你知道有哪些方法能够实现机密性、完整性等安全特性呢? 这个问题不知如何回答,不会,看答案如下。 机密性由对称加密AES保证 安全性由SHA384摘要算法保证 身份认证由RSA非对称加密算法保证 不可否认由RSA非对称加密算法保证 符合以上四点的才算是安全的通信方式,实现安全性看样子很不容易啊! 这些加密算法,他的发明者是否比较容易破解呢?还是说加密之后即使是发明者也无能为力,那如果解密的东西丢啦咋弄?展开
作者回复: 加密算法设计出来就是要任何人都无法破解的,否则就是有后门。 这个是密码学的基本原则,必须有密钥才能解密,至于如何保管就是另外的事情。
4 - 业余草2019-08-05老师,我的个人网站:https://www.xttblog.com 在mac上的谷歌浏览器最新版中控制台总是会报一个错误,而我已经是https了,这个问题,空扰了我很久
作者回复: 什么错误,说出来看看。
共 7 条评论4 - cake2022-02-23“明文”和“不安全”仅凭 HTTP 自身是无力解决的,需要引入新的 HTTPS 协议 老师,请问下明文和不安全不是同一个东西么?为什么要分开说呢
作者回复: 明文只是消息可见,而不安全的范围要更广一些,比如身份认证、防抵赖。
3 - 爱编程的运维2021-09-07像一般的web网站存储用户的密码,密码存在数据库表中都是加密后的,这个加密跟https中的加密有啥区别?
作者回复: 我们通常所说的加密和密码学里的加密不是一个概念。 密码的正式名称应该叫password,存在数据库里实际上是做了摘要hash,比如md5、sha1,不是密码学里的用密钥算法加密。 而https里的加密是真正的密码学,里面有对称算法、非对称算法、摘要算法、证书等等,非常复杂。 可以再看后面的课程来加深理解。
3 - fomy2021-01-23如果每个人都可以生成一个证书,钓鱼网站也可以申请呀,不就没有什么安全性可言了吗?
作者回复: 是的,但ca颁发证书有验证机制,钓鱼网站是无法伪装成官方网站的,因为它不拥有官方域名。
共 2 条评论3 - WL2019-07-19请问一下老师我这边用WireShark抓包,发现两个TLS请求和响应之间和两个HTTP请求和响应之间有很多个TCP的包,请问一下这些TCP的包是一个HTTP的响应没有发完后续一致在通过TCP包发HTTP响应的responseBody吗?
作者回复: 应该在wireshark里看一下这些tcp包的端口、发送方向,应该不是https相关的包,可以过滤一下试试。 https必须在ssl/tls握手之后才能发送http报文。
3