https原理知识

一、证书准备过程

1.在本地服务器通过openssl指令生成私钥文件pem。
2.根据私钥文件生成对应的公钥文件(csr),即证书签名请求文件,提交给CA进行证书制作,私钥则自己留着部署在服务器上。
3.根据要申请的证书类型(DV,OV,EV),再提供相关材料给CA机构进行审核。
4.通过审核后,进行证书的签发(签发过程后面详细介绍)
5.使用者收到证书后,将证书部署在服务器上

二、证书签发过程

image.png
  1. 撰写证书元数据:包括 签发人(Issuer)、地址、签发时间、有效期 等,还包括证书持有者(Owner)基本信息,比如 DN(DNS Name,即证书生效的域名)、 Owner 公钥 等信息。
  2. 通过Issuer(CA)的证书指定的Hash 算法(如SHA-256)对证书元数据(Data/摘要)计算生成指纹。
  3. 使用 Issuer(CA)私钥对摘要进行非对称加密(RSA),生成一个加密的指纹,也就是Issuer(CA)的 数字签名。
  4. 将数字签名attach到证书(Certificate)上,变成一个签过名的数字证书(Digitally signed data)。
  5. 将签过名的数字证书发给使用者

三、https请求过程

1.客户端与服务端建立TCP连接,三次握手(ssl是在tcp层之上,基于tcp)

————————————接下来开始SSL四次握手过程———————————————

2.客户端请求建立SSL链接,发送Client Hello包:

  • 支持的协议版本,比如TLS 1.0版
  • 支持的加密方法(密文族),比如RSA公钥加密
  • 支持的压缩方法
  • 随机数(时间戳 + Client.random(客户端随机数))

3.服务端响应信息,ServerHello包:

  • 确认使用的加密通信协议版本,如果客户端与服务器支持的版本不一致,服务器关闭加密通信
  • 确认使用的加密方法,比如RSA公钥加密
  • 服务器证书(签过名的数字证书)
  • 随机数(时间戳 + sever.random(服务端随机数))
  1. 客户端回应:
  • 验证证书的合法性(验证过程后面详细介绍),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示
  • 如果证书可信,客户端再生成一个随机数(pre-master key),并用证书中的服务器公钥加密
  • 编码改变通知,表示随后的信息都将用双方协定的相同的会话密钥SessionSecret(Client.random + sever.random + pre-master生成对称密钥)进行加密通讯
  • 客户端握手结束通知,表示客户端的握手阶段已经结束。使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给服务器

5.服务器回应:

  • 使用服务器的私钥将随机数(pre-master key)解密。
  • 使用随机数(pre-master key)解密客户端发送的握手消息,并验证HASH是否与客户端发送的一致。
  • 编码改变通知,表示随后的信息都将用双方协定的相同的会话密钥SessionSecret进行加密通讯
  • 服务器握手结束通知,表示服务器的握手阶段已经结束,将前面发送的所有内容的HASH值,用来供客户端校验

————————————接下来开始对称加密通讯———————————————
6.对称加密通讯:客户端和服务端均用SessionSecret进行加密解密信息,进行通讯

四、验证证书过程

image.png

知识点:何正版操作系统都会将所有主流CA机构的公钥内置到操作系统当中,所以我们不用额外获取,解密时只需遍历系统中所有内置的CA机构的根证书公钥,只要有任何一个公钥能够正常解密出数据,就说明它是合法的。

4.1 单根证书认证
image.png

1.通过操作系统或者浏览器内置信任的CA机构的根证书公钥对数字签名进行解密,解密得到指纹A
2.将收到的服务器证书的摘要进行Hash计算得到指纹B
3.对比指纹A与指纹B是否一致,如果一致则认证通过,反之认证不通过

4.2 证书链认证
image.png

根证书:由CA机构分发,公钥会内置在操作系统或浏览器中。通过公钥能解密根证书的数字签名并获得指纹(单根证书认证过程),这种情况就叫做自签名(self-sign)

中间证书:包含根证书的名称(颁发者),需要使用根证书的公钥(Root CA's public key)才能解密中间证书的数字签名并获得指纹。

终端证书:包含中间证书的名称(颁发者),需要使用中间证书的公钥才能解密终端证书的数字签名并获得指纹

1.通过终端证书的信息,获取到对应的中间证书(方式一:客户端通过终端证书中的信息,主动下载中间证书。方式二:由服务器主动推动证书至客户端)
2.通过中间证书的信息, 在浏览器或系统中找到对应的根证书(找不到客户端就下载安装)
3.对根证书进行认证(认证过程类似单根证书认证过程)。
4.根证书认证通过,则使用根证书公钥对中间证书认证(认证过程类似单根证书认证过程)
5.中间证书认证通过,则使用中间证书公钥对终端证书进行认证(认证过程类似单根证书认证过程)
6.终端证书认证通过,则此证书可信。

五、名词解释

  • csr:证书签名请求文件(公钥),用于提交给证书颁发机构(CA)对证书签名

  • 数字证书(Digital certificate):由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,一般包含:证书格式版本号;证书序列号;证书签名算法;证书颁发者;有效期;对象名称;对象公开密钥;证书颁发者的数字签名;

  • openssl:一个自由的软件组织,专注做加密和解密的框架。

  • DV SSL:域名型证书

  • OV SSL:企业型证书

  • EV SSL:增强型证书

  • SSL:(Secure Socket Layer,安全套接字层),目前版本为3.0

  • TLS:(Transport Layer Security,传输层安全协议),最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立SSL 3.0协议规范之上,是SSL 3.0的后续版本,两者差别极小。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容