前沿资讯!https 原理与实践
是一种http的安全协议,在tcp ip网络模型里,http应用层是在tcp 传输层之上的,https协议规定了在tcp传输层之上还有一层tls/ssl层,这一层对http应用层发出去和接收的报文做加密和解密。
为什么出现https原因,在我看来有两点
(资料图片仅供参考)
1,因为http是明文传输,极不安全,需要对报文进行加密。
2,我们无法确认浏览的网站的身份信息,如果是钓鱼网站,诱使我们输入银行账号密码之类的就麻烦了。
怎么做简而言之,「https规定了 加密算法对报文进行加密,解决明文传输的问题。采用数字证书的方式解决对服务端的身份认证问题」。
加密报文方式对称加密和非对称加密对称加密是加密和解密都采用同一个密钥。 非对称加密 将密钥分为公钥和私钥, 公钥进行加密的报文,用私钥可以解密。私钥加密的报文,用公钥可以解密(这种加密方式也是数字证书采用的原理)
一般对称加密会比非对称加密性能高几个数量级。但是就安全性而言,非对称加密安全性会更高,那么https采用的是什么加密方式呢?
两者结合的加密方式由于对称加密性能更好,所以https在真正加密报文时还是采用的对称加密方式,但是对称加密的密钥是通过非对称加密协商后传给对方的。这样的加密方式就能保证在性能更好的前提下也有不错的安全性。
数字证书原理以及应用数字证书是什么数字证书 是一个可信组织验证和签发的识别信息。有点类似于现实生活中的身份证,公安机关给我们颁发身份证为的就是证明个人身份,而在网络世界里,这个组织就是ca组织。
来看看向ca组织提交注册信息以及验证数字证书的过程。go语言精进之路截图
server.key是网站拥有的自己的私钥,ca.key是ca的私钥,server.crt是网站的数字证书。
1,首先网站服务将自身的一些基本信息通过自身的私钥进行加密,然后将自身的公钥和基本信息密文通过证书签名请求的格式传递给ca。 2,ca得到请求后,利用网站服务的公钥,对其基本信息进行解密。然后再按x509数字证书规范生成公钥证书。
这里涉及到ca对证书信息的加密方式,前面提到用私钥加密的数据,可用公钥解密,当将证书信息通过私钥加密后,客户端就能通过ca的公钥去解密证书,能成功解密,说明证书的确是ca颁发的。
但实际加密却不是这样,因为非对称加密算法 加密的信息越多性能越差,所以是将证书信息通过摘要算法生成固定长度的字符后,再采用ca私钥对其摘要进行加密。 摘要算法(常见的如MD5,sha)确保了数据的完整性,因为多次相同内容的数据用相同摘要算法计算的结果一致,所以能基本保证数据未被篡改。
3,x509数字证书里面包含 以下信息: 服务端公钥(server.pub); 证书相关属性信息,如域名、有效期等; 证书颁发机构的签名信息 4,然后就是客户端的解密过程,拿到证书以后,通过ca公钥对证书以及公钥信息的摘要密文进行解密,得到消息摘要,然后用摘要算法对证书信息以及公钥信息进行摘要计算,将客户端得到的摘要和密文解密后的摘要进行对比,如果相同,说明内容未被篡改,证书有效。
数字证书的加密算法总结通过私钥加密,公钥解密的方式提供证书的颁发证明,能成功解密说明证书的确是ca颁发的。 通过摘要算法,确保了证书的完整性,未被篡改的证明。
https握手过程简析建立在https要解决什么问题的基础上,理解https的握手过程,看看它究竟做了什么设计,让握手过程更高效,更安全。
https是为了解决明文传输的不安全性,以及对端身份认证的问题。
1,客户端发送client hello信息将自身支持的tls版本,密码套件的信息传给服务端。
2,服务端接收后会发送server hello信息 选择tls版本和加密算法发给客户端。
3,然后服务端发送server certificate 信息将自身的证书下发给客户端。
4,然后服务端接着又发送密钥协商请求 server key exchange, 在密钥协商环节,通常会使用到Diffie-Hellman(DH)密钥交换算法,这是一种密钥协商的协议,支持通信双方在不安全的通道上生成对称加密算法所需的共享密钥。注意这种交换算法使用的目的是既让通信双方都拥有一样的密钥,但是呢,密钥又不是通过数据传输到对面的,是协商产生的。
5 接着客户端收到证书后,先检验证书的有效性, 然后客户端生成接下来加密通信的密钥,同时将生成密钥的一些参数 用服务端的公钥加密后 发送给 服务端,这个阶段称为client key exchange阶段,服务端收到后按这些参数后用自身的私钥解密 然后也生成相同密钥。
6,最后客户端和服务端分别会将连接至今的所有报文进行加密发送给对方,以验证tls握手成功。
golang声明https服务器懂了交互逻辑以后,就知道了,声明一个https服务的时候,得有一个ca颁发的证书,证书里面包含服务端自身的公钥信息和一些基本信息,然后还得指明明服务器的私钥,用于tls握手过程中对密钥协商参数的加解密。
packagemainimport(//"fmt"//"io""net/http""log")funcHelloServer(whttp.ResponseWriter,req*http.Request){w.Header().Set("Content-Type","text/plain")w.Write([]byte("Thisisanexampleserver.\n"))//fmt.Fprintf(w,"Thisisanexampleserver.\n")//io.WriteString(w,"Thisisanexampleserver.\n")}funcmain(){http.HandleFunc("/hello",HelloServer)err:=http.ListenAndServeTLS(":443","server.crt","server.key",nil)iferr!=nil{log.Fatal("ListenAndServe:",err)}}
基于上述https原理,下面我将会用openssl 工具以及golang程序来演示下https加解密过程。
生成服务器私钥opensslgenrsa-outserver.key2048
生成x509证书opensslreq-new-x509-keyserver.key-outserver.crt-days3650
server.crt 就是我们的自签名证书了,然后启动go https服务
启动go https服务packagemainimport("log"//"fmt"//"io""net/http")funcHelloServer(whttp.ResponseWriter,req*http.Request){w.Header().Set("Content-Type","text/plain")w.Write([]byte("Thisisanexampleserver.\n"))//fmt.Fprintf(w,"Thisisanexampleserver.\n")//io.WriteString(w,"Thisisanexampleserver.\n")}funcmain(){http.HandleFunc("/hello",HelloServer)err:=http.ListenAndServeTLS(":443","server.crt","server.key",nil)iferr!=nil{log.Fatal("ListenAndServe:",err)}}
先测试下访问(base)➜~curlhttps://proxy.example.com:443/hellocurl:(60)SSLcertificateproblem:selfsignedcertificateMoredetailshere:https://curl.se/docs/sslcerts.html
curl 提示是自签名证书,因为我们使用的openssl 按x509标准生成的证书,不是ca颁发的,所以curl有这个错误。
让系统信任该证书不同操作系统添加信任的方式不同,我使用的是mac os,在钥匙串应用里将证书添加进来并设置为信任。 注意这里我设置了证书的域名是proxy.example.com ,所以我还需要设置下这个域名对应的ip
设置域名vim/etc/hosts255.255.255.255broadcasthost127.0.0.1localhost::1localhost##添加上这行127.0.0.1proxy.example.com
再次访问(base)➜~curlhttps://proxy.example.com:443/helloThisisanexampleserver.
发现当前访问已经成功了。
完美收工。。。
参考文献: go 语言精进之路
标签:
-
2023-05-26 18:20:00
前沿资讯!https 原理与实践<
https原理与实践经典三问,是什么,为什么,怎么做?是什么是一种http的安全协议,在tc
-
2023-05-26 16:35:19
面板升温信号又现?厂商酝酿下月大范围涨价 部分领域迎来急单<
此前业界预期6月份面板报价阻力可能稍有增强,主要是二季度末将至,且全球景气变数较多,客户下单态度谨慎
-
2023-05-26 15:49:52
转让和买卖的区别_买卖的区别<
1、楼上的……经济学也研究买和卖的问题。2、实质上,在物物交换的时候,买卖在交易的刹那就完成了,所以研
-
2023-05-26 15:22:10
海兔炖豆腐怎么做好吃?_天天简讯<
1 起锅烧油,油热后下入八角,葱姜蒜炝出香味后转小火,倒入豆瓣酱,不停地翻炒一分钟然后加入生抽继续翻炒
-
2023-05-26 14:29:35
2023内蒙古高考专科志愿填报时间几号 什么时候报志愿<
2023年内蒙古高考专科志愿预计8月上旬开始填报,内蒙古每年高考填报专科志愿的时间在本科志愿录取结束后。
-
2023-05-26 18:20:00
前沿资讯!https 原理与实践
https原理与实践经典三问,是什么,为什么,怎么做?是什么是一种http的安全协议,在tc
-
2023-05-26 16:35:19
面板升温信号又现?厂商酝酿下月大范围涨价 部分领域迎来急单
此前业界预期6月份面板报价阻力可能稍有增强,主要是二季度末将至,且全球景气变数较多,客户下单态度谨慎
-
2023-05-26 15:49:52
转让和买卖的区别_买卖的区别
1、楼上的……经济学也研究买和卖的问题。2、实质上,在物物交换的时候,买卖在交易的刹那就完成了,所以研
-
2023-05-26 15:22:10
海兔炖豆腐怎么做好吃?_天天简讯
1 起锅烧油,油热后下入八角,葱姜蒜炝出香味后转小火,倒入豆瓣酱,不停地翻炒一分钟然后加入生抽继续翻炒
-
2023-05-26 14:29:35
2023内蒙古高考专科志愿填报时间几号 什么时候报志愿
2023年内蒙古高考专科志愿预计8月上旬开始填报,内蒙古每年高考填报专科志愿的时间在本科志愿录取结束后。
-
2023-05-26 13:56:34
德班世乒赛:胜率分析惹争议!孙颖莎强势胜8场,韩国队被打崩了
德班世乒赛:胜率分析惹争议!孙颖莎强势胜8场,韩国队被打崩了,国乒,陈梦,八强,孙颖莎,王曼昱,东京奥运会,
-
2023-05-26 12:42:25
热点评!5月25日中山大道车站路路口抢修停水公告
【来源:武汉市水务集团有限公司】停水时间:2023年5月25日21:50预计完工时间:2023年5月26日0:50停水区域
-
2023-05-26 12:02:28
当前要闻:地贫血常规看哪些指标_地贫的血常规指标
1、地中海贫血要关注这三个指标:1红细胞平均体积(MCV)2 红细胞平均血红蛋白(MCH)3 红细胞平均血红蛋白浓度(M
-
2023-05-26 11:26:47
京东健康心理服务中心全新上线,可提供专业1对1心理咨询服务 天天通讯
该中心的服务已覆盖职场学习、亲子教育、婚姻恋爱、情绪困扰、心理康复等多个细分领域,可由国家认证的心理
-
2023-05-26 10:52:22
热头条丨全国45个港口进口铁矿库存为12793.83万吨 环比增7.62万吨
Mysteel统计全国45个港口进口铁矿库存为12793 83,环比增7 62;日均疏港量291 71增4 79。分量方面,澳矿587
-
2023-05-26 09:54:09
第五届中国歌剧节闭幕
据新华社报导,随着一首首参演歌剧选段在闭幕音乐会轮番上演,第五届中国歌剧节24日晚在浙江省嘉兴市的秀湖
-
2023-05-26 09:01:42
SSD要全面涨价!没买硬盘的赶紧买 时快讯
实际涨价的幅度最终还是要看市场的反馈。
-
2023-05-26 08:16:27
金斯瑞生物科技:传奇生物宣布向EMA提交扩大CARVYKTI®应用申请
金斯瑞生物科技(01548)发布公告,该公司非全资附属公司传奇生物科技股份有限公司(传奇生物)已向美国证
-
2023-05-26 07:39:42
宋高祖的儿子叫什么(中国南北朝时期南朝的第一个朝代)|天天热门
1、宋高祖刘裕的儿子叫刘义符,刘义真,刘义隆,刘义康,刘义恭,刘义宣,刘义季。2、刘宋(420-479)是中
-
2023-05-26 06:41:27
速讯:网易账户修复中心_网易账户中心
1、没办法,去年的时候,网易清空了一批小号。2、几月份我忘了,反正就是在哪2个月内,不管大号还是小号只
-
2023-05-26 05:56:37
信维通信(300136):5月25日北向资金增持400股-全球速看
5月25日北向资金增持400 0股信维通信。近5个交易日中,获北向资金减持的有2天,累计净减持67 25万股。近20
-
2023-05-26 04:46:22
英国央行委员哈斯克尔周四在华盛顿彼得森研究所的一次活动中表示-世界动态
英国央行委员哈斯克尔周四在华盛顿彼得森研究所的一次活动中表示:“一些指标表明劳动力市场正在有所放松”
-
2023-05-26 03:35:45
天霸电子竞技俱乐部_SPG立场电子竞技俱乐部
相信目前很多小伙伴对于SPG立场电子竞技俱乐部都比较感兴趣,那么小搜今天在网上也是收集了一些与SPG立场电
-
2023-05-26 02:53:49
《碟中谍7》7月12日上映, 阿汤哥牵手海莉·阿特维尔
《碟中谍7》公布全新剧照。在剧照上,影片主演汤姆·克鲁斯和海莉·阿特维尔携手出镜。他们正手拉手地走在
-
2023-05-26 02:22:18
天天要闻:郑州消防组织开展全市2023年火调实操比武竞赛活动
郑州消防组织开展全市2023年火调实操比武竞赛活动,火场,实操,火调,消防,郑州市,火灾事故
-
2023-05-26 01:44:38
环球快资讯:金山云:一季度收入18.644亿元,同比下滑14.2%
5月25日消息,金山云发布公告称,一季度总收入达18 644亿元,同比下滑14 2%;净亏损为6 088亿元,上年同期
-
2023-05-26 00:40:14
29省份2020年GDP出炉 数据具体如何?-环球新动态
据媒体报道,各地2020年经济成绩单近日陆续揭晓。截至1月26日,除了河北、新疆外,其余29个省区市均公布了2
-
2023-05-25 23:13:28
焦点滚动:5050贴片1W_5050贴片
1、5050贴片是一种电子元件,尺寸为5mm*5mm*1 6mm,光强可以达到5500-6000MCD(纯白光。2、暖光
-
2023-05-25 23:01:47
【天天热闻】CINNO Research | 2022年国内上市公司半导体设备营收排名Top10
导语:CINNOResearch统计数据表明,2022年中国大陆上市公司半导体设备相关业务营收前十大公司合计近300亿元
-
2023-05-25 22:28:42
15999元 三星新款49寸带鱼屏上架:1800R大曲率、240Hz高刷
15999元三星新款49寸带鱼屏上架:1800R大曲率、240Hz高刷
-
2023-05-25 21:26:32
中央企业7名管理人员接受纪律审查和监察调查-今亮点
中央纪委国家监委网站5月25日消息,日前,中央企业7名管理人员正接受纪律审查和监察调查,包括国家电网原国
-
2023-05-25 21:15:56
强国复兴有我丨知识竞赛为“安全生产月”开局-当前信息
为迎接第22个全国安全生产月的到来,5月25日,经开区安委办与南站街道开发区社区共同举办以“人人讲安全,
-
2023-05-25 20:20:25
北京朝阳医院地址变更!新增一处在这里
关于首都医科大学附属北京朝阳医院地址变更的通知京医保中心发〔2023〕15号各区医疗保障经办机构,各有关定
-
2023-05-25 19:12:24
焦点讯息:【世界说】民调:乌瓦尔德校园枪击案一周年 美国控枪呼声达到十年来最高
中国日报网5月25日电根据PBSNewsHour NPR Marist的最新民意调查,40%的美国人认为他们所在社区的学校不够安
-
2023-05-25 17:52:23
开学周记字汇总 全球新要闻
在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集