https中的数字证书认证过程解析

Https中间人攻击 1 、针对安全性要求比较高的 app,可采取客户端预埋证书的方式锁死证书,只有当客户端证书和服务端的证书完全一致的情况下才允许通信,如一些银行类的app,但这种方式面临一个问题,证书过期的问题,因证书有一定的有效期,当预埋证书过期了,只有通过强制更新或者要求用户下载证书来解决。服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。 阅读详情

RSA非对称加密的2个用途:加密和签名

加密(防窃听)

RSA非对称加密会用到一对密钥,分别称为公钥和私钥,公钥加密之后的数据可以通过私钥来进行解密,私钥加密的数据也同样可以用对应的公钥进行解密。在web数据传输过程中,由于客户端和服务器端是多对一的关系,因此可以让所有的客户端持有相同的公钥,服务器持有私钥,这样一来就能方便地实现数据的加密传输。

在网络传输过程中,一旦客户端发送的用公钥加密过的数据被第三方截获,由于第三方没有服务器上的私钥,因此无法对客户端发送的加密数据进行解密从而获得明文,这样就起到了防窃听的作用。

签名(防篡改)

由于私钥只在某一个体手中,因此可以通过这一点来进行身份识别。比如用户A和B分别有一对密钥中的私钥和公钥,现在A向B发送消息abc,可进行如下操作:A用私钥对该文本进行加密之后变成密文#¥%,并附加上原文,组合成文本#¥%:abc(冒号起分隔作用,并无其他含义,具体实现中可自行处理)一起发送,B接收到该文本之后利用公钥对密文进行解密,将得到的解密后文本与传送过来的文本abc之间进行比对,如果一切正常,那么公钥解密之后的文本就是私钥加密之前的文本abc,比对结果一致,因此可以说明这段abc文本确实是A发送过来的,因为只有A才有对文本进行签名的私钥。能得到这个结论的前提是——A所用的私钥跟B所用的公钥确实是一对。

假如在传送途中有人篡改了abc,改成aaa,由于中间人没有A所持有的私钥,因此无法对篡改之后的数据生成新的正确签名,那么B在收到数据之后用公钥进行解密,再与传送的文本进行比对的话就不会一致。或者中间人篡改了数据之后用另一私钥对篡改之后的数据进行签名,同样由于B没有中间人的私钥对应的公钥,因此比对也不会一致。记住一点:B的公钥所对应的私钥只在A的手中,因此比对一致就说明该文本来自A。

HTTPS如何保证安全?

简要说明一下,假设现在有一对密钥(公钥和私钥),如果客户端持有公钥,服务器持有该公钥对应的私钥,那么根据我们前面论述的RSA非对称加密的作用,客户端和服务器通过这一对密钥进行数据的加密传输不会有问题,即数据不会被第三方窃听。

如何保证客户端所持有的公钥就是某合法服务器声明的公钥?

即服务器端如何安全地把它的公钥下发给客户端(这里的客户端一般指的是浏览器)。如果不能保证这一点,那么客户端发送的信息就有可能存在被窃听的风险,因为客户端用此公钥加密的数据可以被其对应的私钥拥有者获取,而该私钥并不在客户端所认为的服务器上。 相当于攻击者给了客户端一个它自己的公钥,让客户端认为这个公钥是某合法服务器的公钥,于是客户端用此公钥对数据进行加密传送,攻击者将此加密数据截获并用自己的私钥进行解密。由于客户端用来加密的公钥就是攻击者给客户端的,因此攻击者能够获取解密之后的明文,从而窃取客户端的信息。

可采用一个权威机构进行证书的颁发,所谓证书就是包含了服务器声明的公钥以及组织名称等信息,这里我们只考虑最关键的公钥信息。该权威机构会对申请证书的组织进行审核,确保其身份合法,然后将服务器公钥信息发布给客户端,客户端可利用该公钥与对应的服务器进行通信。整个过程可归纳为以下几步:

1.服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证机构(CA)
2.CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名(参照上文RSA签名)
3.客户端从CA获取证书(即获取服务器端公钥),从而拿到了服务器端的公钥。

如何保证客户端拿到的证书确实是权威机构(CA)颁发的证书?

要保证这一点,上面第2步中的CA用自己的私钥对服务器提供的公钥进行签名就起到了作用。为确保该证书确实是CA颁发的,因此需要用到上面论述的RSA签名防篡改的功能。客户端需要用CA的公钥对签名的证书进行验证,比对一致,说明该服务器公钥确实是CA颁发的。(不知道此时读者是否能想到CA发给客户端的证书信息不只有服务器的公钥,还有CA对此公钥进行的签名。)而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的。

那么问题又来了:

如何保证客户端所持有的CA公钥确实是CA的私钥所对应的公钥?

也就是说CA的公钥必须要安全地转交给客户端,这真是一个先有鸡还是先有蛋的问题。幸运的是,CA的公钥一般来说由浏览器开发商内置在浏览器的内部。于是,CA的公钥就安全地转交给了客户端(浏览器)。

也许你又要问了,万一我的浏览器就有问题呢?那我只能说:兄弟,少用盗版,实在不行,卸载重装吧。好吧,开个玩笑_

由此可见:所谓的安全的HTTP,其实也是要建立在信任的机制上。

总结

整个过程涉及2对公私密钥对:

  • 一对由服务器产生,用于加密
  • 一对由CA产生,用于签名。

整个过程还涉及2个信任:

  • 客户端信任CA颁发的证书中的公钥就是合法服务器的公钥
  • 客户端信任浏览器内置的CA公钥就是与CA私钥对应的公钥

最后要说明的是,由于非对称加密算法的效率不高,非对称加密在HTTPS中只是用来对对称加密密钥进行协商的过程才使用,在两端协商完对称加密的密钥之后,数据的加密传输均采用对称加密的方式。

中间人攻击HTTPS可行性分析 我们在做内网渗透的时候,往往通过ARP投毒、DNS欺骗、会话劫持等来发起中间人攻击(MITM)。利用这些手段攻击HTTP协议的网站简直易如反掌。但是现在几乎所有的网站都已经升级为更加安全的HTTPS协议了,那么是不是意味着中间人攻击就无效了呢? 1、HTTP协议 我们先看HTTP协议为什么不安全。我认为主要可以分为3点: 无法保证报文的完整性,报文有可能被纂改。因为HTTP协议无法证明数据报文的完整性,所以在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容被纂改,也没有办法获悉。换. 阅读详情

相关推荐

中间人攻击的实践与原理(ARP毒化、DNS欺骗)

一、共享网络与交换网络的区别 1、共享网络 在共享网络中,由于HUB属于一层设备,对于到达本身的数据报文,HUB会对报文进行广播(除了收到报文的那个接口),因此接在同HUB的所有PC都能收到该报文。前提PC开启了混杂模式 注: 通常情况下,网卡都是工作在非混杂模式,也就是说即使收到数据报文,网卡会判断目的MAC是否和自己的一样,不一样的话代表数据包不是给自己的,因此...

hello_mumu的博客 2333

HTTPS的加密技术——中间人攻击

https是基于http的一层加密技术,有两种加密方式,针对不同的数据传输可以使用不同加密算法结合使用,最常用也最安全的是双重加密技术,不过单独使用还是会有风险,对于中间人攻击这个算法也会被偷梁换柱,于是需要引入证书对症下药,以此来保障数据的安全性和完整性。

闲来垂钓碧溪上的博客 2701

浏览器验证网站数字证书的流程(HTTPS协议)

关于浏览器验证网站数字证书的流程网上的资料一般讲的都不是很清楚。在查阅了不少资料后终于搞清楚这部分。 CA下发给网站的证书都是一个证书链,也就是一层一层的证书,从根证书开始,到下级CA,一层一层,最后一层就是网站证书。 浏览器收到服务器发送的证书后,需要验证其真实性。而证书的签名是通过签名算法和上级CA的私钥生成的,并非很多文章里简单说的靠CA私钥生成。浏览器需要用上级CA的公钥才能解密签名,

小橋夜雪的博客 1万+

数字证书浅析以及如何验证证书的可信/合法性

 转自http://www.cnblogs.com/hyddd/archive/2009/01/07/1371292.html   最近看会Session hijack的东西,劫持现在已经实现,yahoo等一些没有用Https协议的邮箱被成功地劫持了(迟下发文章),由于对Https不熟悉,所以看了一下为什么Https的会话不能劫持。   本文主要介绍的SSL中的涉及到的"数字证书"这...

1703

REALTEK PKE8710ECF开发板入手试玩(一)

REALTEK PKE8710ECF开发板入手试玩

lbqhope的专栏 690

机器视觉避坑指南:为什么你的Halcon划痕检测总漏检?(附优化方案)

本文深入剖析了Halcon在表面划痕检测中漏检率高的常见原因,如灰度值波动、噪声干扰及形态学参数设置不当。针对复杂背景与低对比度划痕,提出了超越官方例程的多尺度纹理分析与特征融合优化方案,旨在帮助开发者构建更鲁棒、稳定的机器视觉检测流程,有效提升检出率。

weixin_29057163的博客 234

Java后端HTTP转HTTPS的实现

HTTPS是HTTP的加密实现,其中引入了公钥,私钥,数字证书等概念,以实现数据收发双方的身份认证和数据加密。 1. 原理 数字证书在用户公钥后附加了用户信息及CA的签名。公钥是密钥对的一部分,另一部分是私钥。公钥公之于众,谁都可以使用。私钥只有自己知道。由公钥加密的信息只能由与之相对应的私钥解密。为确保只有某个人才能阅读自己的信件,发送者要用收件人的公钥加密信件;收件人便可用自己的私钥解密信件。...

wangyahua1234的博客 1万+

Air780E模组AT指令实战:5分钟搞定MQTT连接EMQX服务器(附完整代码)

本文详细介绍了如何使用Air780E 4G模组通过AT指令快速连接MQTT服务器。从硬件接线、网络注册到MQTT连接配置,提供了完整的实战步骤和代码示例,帮助开发者快速实现物联网设备的数据上报与远程通信。

wdx012345的博客 741

HTTPS的加密过程

HTTPS HTTPS即加密的HTTP,HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。 我们首先了解几个基本概念。 共享密钥加密(对称密钥加密):加密和解密同用一个密钥。加密时就必须将密钥传送给对方,那么如何安全的传输呢? 公开密钥加密(非对称密钥加密):公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做

luzhensmart的专栏 421

Matcap与菲涅尔

菲尼尔效果(简化版公式):fresnel = base + scale*((1-v*n)^power)透明队列为后前渲染,不关闭深度写入则会覆盖之前的像素,导致混合不了。y的值为0~1,根据x3返回对应y值。两色混合做个demo看看!混合为什么要关闭深度写入?

weixin_62773441的博客 371

地图坐标系大全:常用地图坐标系详解与转换指南

地图坐标系是用于描述地图上位置的数学模型。它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位。不同的地图坐标系采用不同的基准面和投影方式,因此会有不同的坐标系参数,不同的坐标系之间也需要进行坐标转换。在地图制图、导航、GIS等领域中,地图坐标系是一个非常重要的概念。

weixin_39888010的博客 1万+

实现HTTPS系列第三弹之【数字签名,数字证书,CA认证等概念理解】

博文说明【前言】: 本文将通过个人口吻介绍数字签名,数字证书,CA认证等相关知识,在目前时间点【2017年5月11号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容。 1、第一弹:实现HTTPS系列第一弹之【http,https,w...

weixin_34320159的博客 158

【从零开始玩量化7】easyTrader: 自动化(程序化)交易利器

前面的文章,我们介绍了数据获取工具AKShare, 量化回测工具backtrader等,这一篇,介绍程序化交易工具easyTrader。作者网名食灯鬼,目前项目在Github上的star数已经有6.7k。这可能是目前,开源能找到的,最好用的程序化交易库了。本文介绍了easyTrader的简单用法,这个包还有很多功能,后续再继续写文章探究。

量化投资助手的博客 1万+

数字证书相关

概念 数字证书 数字身份(digital identity)是身份标识方式的一种,是一对“钥匙”,其中一个只有她/他本人知道(即私钥),另一个是公开的(公钥)。把数字身份比喻成一个证件,那么数字证书就是身份认证机构盖在数字身份上的一个章或印(或者说加在数字身份上的一个签名),表示身份认证机构已认定这个人的这个数字身份并为这个人的这个数字身份背书。没有任何背书/印/加签/数字证书的数字身份是没有什么实际意义的。 SSL证书 SSL证书是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。SSL

qq_37254973的博客 4628

18、公开可用的PPG数据库介绍

本文介绍了多个公开可用的PPG(光电容积描记)数据库,包括PPG-BP数据库、MIMIC II波形数据库、运动期间手腕PPG数据库以及指尖PPG与呼吸数据库等。这些数据库提供了丰富的生理信号数据,适用于动脉血压检测、呼吸频率估计、运动干扰去除以及基于PPG的生物特征识别等研究。每个数据库的数据来源、受试者信息、信号特点和下载方式均有详细介绍,并展示了如何利用这些数据库进行信号分析和算法评估。

salt的博客 387

【保姆级】联想服务器 Ubuntu 装机:RAID 0/1/5/10 从原理到配置(新手也能一次成)

联想服务器RAID配置指南:Ubuntu系统适配方案 摘要: 联想服务器采用LSI MegaRAID硬件控制器,支持RAID0/1/10/5四种阵列模式。RAID0提供最高性能但无冗余,适合临时数据;RAID1完全镜像确保数据安全,推荐用于系统盘;RAID10兼顾性能与冗余,适合数据库等高要求场景;RAID5平衡容量与成本,适用于文件服务器。配置可通过本地BIOS(Ctrl+R)或XCC远程管理完成,Ubuntu安装时可自动识别虚拟磁盘。注意事项包括:使用同型号硬盘、监控重建进度、避免SSD与机械盘混用等。

2501_93651177的博客 487

重点问题之 HTTPS 和 TCP 协议三次握手全面解析

转载自https://www.cnblogs.com/zhuoqingsen/p/9456787.html 我们的 TCP 三次握手大概是长这样: 首先我们要知道握手的目的: 为了保证通讯双方建立的连接是可靠的。 同时,为了保证性能,握手的次数要求尽可能少。 那么什么才算是连接可靠? 通讯双方建立的连接可靠”就是要确保双方的发送和接收功能都正常。以下图为例,在握手前...

Harris的博客 767

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

关于数字证书的另一篇好文章

 最近看会Session hijack的东西,劫持现在已经实现,yahoo等一些没有用Https协议的邮箱被成功地劫持了(迟下发文章),由于对Https不熟悉,所以看了一下为什么Http...

XMEHB的博客 175

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HTTPS原理到底是什么

说起来https原理就是这个https协议的作用。这个协议是为了与网站所在的服务器进行数据交互的。还有的话就是一些普通的https证书的获取,这个点也是有必要知道一下的。这个https就是一个网站为了保密,不被第三方入侵到自己的网站之中从而窃取隐私。这个其实就是数字证书的一种,主要是经过了CA认证中心的认证之后就是可以使用的了。这个https协议的认证肯定是需要的,因为数字证书的认证是网上的交易的...

310

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

kubernetes容器集群 - HTTPS认证和授权机制学习

在学习和搭建二进制Kubernetes集群过程中,对其中涉及到的一推证书往往很懵,虽然参考网上大量的部署教程最后会成功部署并正常运行起来,但对其中的部署流程和原理细节等还是很模糊,下面根据搜集网上资料和kubernetes相关书籍特意梳理下kubernetes认证授权机制的基础知识,重点关注TLS Bootstrapping(TLS 引导)、证书自动颁发、证书轮换、认证过程的RB...

weixin_30699463的博客 252

网站HTTPS 实践(一): HTTPS协议和原理

1、前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS。本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义。 2、HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS。HTTP 协议大家耳熟能详了,目前大部...

421

Java架构师第六步——HTTPS协议详解(读书笔记)

HTTPS 原理介绍 内容加密 加密算法一般分为两种,对称加密和非对称加密。所谓对称加密(也叫密钥加密)就是指加密和解密使用的是相同的密钥。而非对称加密(也叫公钥加密)就是指加密和解密使用了不同的密钥。 非对称加密: 对称内容加密强度非常高,一般破解不了。但存在一个...

chupeian4569的博客 207
上一篇: SSL/TLS协议运行机制的概述
下一篇: 数字签名与HTTPS详解
ArtisticProgramming
博客等级 码龄8年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值