既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
直接将口令提交给验证者,验证者检查口令。该方式的缺点是口令存在被线路窃听、被重放且不能双向认证(申请者无法判断验证者是否确实知道口令)的缺点。不具有认证的不可传递性
- 不出示口令方式。
者用口令加密一个消息,将加密的消息发给验证者,验证者用口令解密,如果得到消息明文则验证通过。该方式解决了口令被窃听和不能双向认证的缺陷,但仍存在被重放的缺点。
- 挑战—应答方式。
者发一个随机数给申请者,申请者用口令加密该随机数给验证者。该方式解决了以上所有三个问题,但增加了一次通信
口令的维护和管理措施
- 对付口令外部泄露的措施
(1)对用户或者系统管理员进行教育、培训,增强他们的安全意识;
(2)建立严格的组织管理和执行手续;
(3)确保每个口令只与一个人有关;
(4)确保输入的口令不显示在屏幕上;
(5)使用易记的口令,不要写在纸上;
(6)定期改变口令,不要让所有系统都使用相同的口令
- 对付口令猜测的措施
(1)严格限制非法登录的次数;
(2)口令验证中插入实时延时
(3)规定口令的最小长度,如至少6~8位;
(4)防止使用与用户特征相关的口令
(5)确保口令定期改变;
(6)更改或取消系统安装时的默认口令
(7)使用随机数产生器产生的口令会比用户自己选择的口令更难猜测
零知识证明
- 零知识证明(Zero knowledge proof)技术可使信息的拥有者无须泄露任何信息就能向验证者或者任何第三方证明它拥有该信息。
- 即当示证者P掌握某些秘密信息,P以某种有效的数学方法,使验证者V确信P知道该秘密,但P又不需要泄露该秘密给V
其他身份认证的机制
- 一次性口令OTP(One Time Password)是变动的口令,其变动来源于产出口令的运算因子是变化的
如Lamport提出的基于散列链的一次性口令 - 基于地址的机制
- 基于设备的机制
- 基于个人特征的机制
为什么需要数字证书?
- 数字证书和公钥基础设施PKI就是为了实现在公钥分发过程中确保公钥的真实性。
数字证书
- 数字证书的概念: Kohnfelder于1978年提出的
- 所谓数字证书,就是公钥证书,是一个包含有用户身份信息、用户公钥以及一个可信第三方认证机构CA的数字签名的数据文件
- 提示:数字证书其实就是一个小的计算机文件例:tang.cer
如何建立主体与其公钥的关联的?
- 数字证书,是一个由使用数字证书的用户群所公认和信任的权威机构(CA)签署了其数字签名的信息集合。
- 主体将其身份信息和公钥以安全的方式提交给CA认证中心,CA用自己的私钥对主体的公钥和身份ID的混合体进行签名,将签名信息附在公钥和身份ID等信息后,这样就生成了一张证书,它主要由公钥、身份ID和CA的签名三部分组成,
证书的生成原理
证书的生成过程
- 密钥对的生成
用户可以使用某种软件随机生成一对公钥/私钥对
- 注册机构RA验证
RA要验证用户的身份信息,是否合法并有资格申请证书,如果用户已经在该CA申请过证书了,则不允许重复申请。
其次,必须检查用户持有证书请求中公钥所对应的私钥,这样可表明该公钥确实是用户的
证书的验证过程
① 首先证书必须是真实的,而没有被篡改或伪造。如果一张证书经验证发现是伪造的,我们肯定不会信任它了。
② 其次颁发证书的机构必须是某个可以信任的权威机构,如果一家小店颁发身份证,即算这个证书是真实的(确实是该小店颁发的),我们也不会信任它
数字证书的验证过程
(1)验证该数字证书是否真实有效。
(2)检查颁发该证书的CA是否可以信任
- 如果验证者收到李四的数字证书,发现李四的证书和他的证书是同一CA颁发的,则验证者可以信任李四的证书,因为验证者信任自己的CA,而且已经知道自己CA的公钥,可以用该公钥去验证李四的证书
- 但如果李四的数字证书是另一个CA颁发的,验证者怎么验证颁发李四证书的CA是否可信呢?这就要通过验证该证书的证书链来解决
根CA的验证
- 根CA证书是一种自签名(Self-signed certificate)证书,即根CA对自己的证书签名,因此这个证书的颁发者名和主体名都指向根CA,
证书的交叉认证
- 如果A和B两方在不同的国家,他们的证书连根CA都不相同,那他们怎样验证对方证书的颁发机构是否可信呢?这就需要使用**交叉证书(Cross-certification)**进行认证。
- 即根CA****之间互相给对方颁发证书
- 提示:如果两个证书的根CA不相同,并且它们的根CA之间也没有进行任何形式的交叉认证,即这两个根CA之间没有任何联系,在这种情况下双方是无法认证对方证书的有效性的,这时只能由用户主观选择是否信任对方的证书。
数字证书的内容和格式
数字证书的类型
-
客户端(个人)数字证书
-
服务器证书(站点证书)
-
安全邮件证书
-
代码签名证书
数字证书的功能
- 用来分发公钥
由于数字证书可以用来分发公钥,因此可以利用证书中的公钥及其对应的私钥进行加密和签名
- 作为主体的身份证明
使用证书进行加密
① 甲方准备好要传送给乙方的信息(明文);
② 甲获取乙的数字证书,并验证该证书有效后,用乙方证书中的公钥加密信息(密文);
③ 乙方收到加密的信息后,用自己证书对应的私钥解密密文,得到明文信息。
- 当然,如果明文数据量很大,可以结合数字信封的方式来加密,即甲方只用公钥来加密一个对称密钥,再用对称密钥加密明文信息。
使用证书进行签名
① 甲方准备好要传送给乙方的信息(明文);
② 甲对该信息进行Hash运算,得到一个消息摘要;
③ 甲用自己证书对应的私钥对消息摘要进行加密得到甲的数字签名,并将其附在信息后;
④ 甲方将附带有数字签名的信息传送给乙方(同时也可以把自己的数字证书一起发给乙方);
⑤ 乙方收到后,对甲方的数字证书进行验证,如果有效,就用甲方证书中的公钥解密数字签名
使用证书同时进行签名和加密
① 甲方准备好要传送给乙方的信息(明文);
② 甲对该信息进行Hash运算,得到一个消息摘要;
③ 甲用自己证书对应的私钥对消息摘要进行加密得到甲的数字签名,并将其附在信息后;
④ 甲获取乙的数字证书,并验证该证书有效后,用乙方证书中的公钥加密信息和签名的混合体;
⑤ 乙方收到加密的数据后,用自己证书对应的私钥解密密文,得到信息和数字签名的混合体;
⑥ 乙方获取甲方的数字证书,并验证该证书有效后,就用甲方证书中的公钥解密数字签名,得到一个消息摘要,再对明文信息求消息摘要
数字证书进行身份认证的方式
① 甲方产生一条数据消息M(该消息有固定的格式),并用自己证书对应的私钥加密该消息,得到密文ESKA(M);
② 甲方将自己的证书和密文ESKA(M)发送给乙方;
③ 乙方收到后,首先验证证书的真伪及有效性,验证过程包括用颁发该证书的CA的公钥验证证书的签名,再验证证书链,有效期等,如前所述;
④ 证书验证通过后,乙方用甲方证书中的公钥解密密文ESKA(M),如果解密成功,则表明甲方拥有该证书对应的私钥,是该证书的拥有者,身份验证通过。
口令机制和数字证书的比较
- 而通过数字证书则能够实现证书持有者得到在大范围的身份认证,而且不要求他曾经和认证方有过接触,只要某人持有数字证书,就能够让所有以前与他从未有过接触的实体认证他,这就像我们持有身份证可以在全国范围内得到身份认证一样。
共享密钥(如口令 | 数字证书 | |
认证的依据 | 用户所知道的某种信息 | 用户所拥有的某种物品 |
实施认证的条件 | 认证双方之前必须有过接触 | 不需要任何意义上的接触 |
所能获得认证的范围 | 小范围 | 大范围 |
公钥基础设施(PKI)
-
公钥基础设施(Public Key Infrastructure)通常简称PKI。所谓PKI就是一个以公钥技术为基础的,提供和实施安全服务的具有普适性的安全基础设施。
-
PKI是一种提供信息安全服务的基础设施,旨在从技术上解决网上身份认证、信息的完整性和不可抵赖性等安全问题,为诸如电子商务、电子政务、网上银行和网上证券等各种具体应用提供可靠的安全服务的基础设施。
-
从技术实现上来看:
PKI是以公钥密码体制为理论基础,
以CA认证机构为核心,
以数字证书为工具来提供安全服务功能的。
PKI的核心——CA
-
认证机构CA(Certificate Authority),又叫做认证中心,是电子商务安全中的关键环节,也是电子交易中信赖的基础
-
发放证书
-
撤销证书
证书作废列表CRL(Certificate Revocation List)
- 证书管理
注册机构——RA
- 由于认证机构CA的任务很多,如签发新证书、维护旧证书、撤销因故无效的证书等,因此可以将受理证书申请的工作转交给第三方:注册机构RA(Registration Authority)。作为CA发放、管理证书的延伸,RA负责证书申请者的信息录入、审核以及证书发放等工作。
注册机构RA通常提供下列服务
- 接收与验证最终用户的注册信息;
- 为最终用户生成密钥(可选);
- 接收与授权密钥备份与恢复请求;
- 接收与授权证书撤销请求。
数字证书库
- 数字证书库(Certificate Repository, CR)是CA颁发证书和撤销证书的集中存放地,是网上的一种公共信息库,供广大公众进行开放式查询。证书库通过目录技术实现网络服务,常用的目录技术是LDAP。
- 存储证书。证书库存储证书并形成目录系统以供查询。
- 提供证书。根据证书信任方的请求,证书库提供所需证书的副本。目前,很多厂商都支持LDAP协议,提供证书查询。
- 确认证书状态。
PKI的基本组成
PKI的信任模型
- 要实现各PKI体系间的互相通信,最可行的办法是在多个独立运行的CA之间实行交叉认证,交叉认证提供了一种解决CA之间互相信任的机制
PKI的信任模型 分类
(1)树型层次信任模型
(2)网状信任模型
(3)桥信任模型
数字证书的应用小结
- 使用数字证书进行邮件的加密和签名只是数字证书的一个应用而已,还可以用数字证书加密Word文档或PDF文档等。在SSL协议、SET协议、VPN技术中,数字证书不仅可用来加密签名,更重要的是用作身份证明
网络安全的脆弱性
- Internet是以TCP/IP协议为基础构建的,然而在创建之初,主要考虑的是连通和数据传输的方便快捷,并没有适当地考虑安全的需要
- Internet安全的脆弱性
很容易被窃听和欺骗
脆弱的TCP/IP服务
配置的错误和疏忽
回顾:OSI模型与TCP/IP协议组
网络层地址和传输层地址的关系
- 一台计算机可以提供多种服务,如FTP、Telnet、Email等。为了使各种服务协调运行,TCP/IP协议为每种服务设定了一个端口,称为TCP协议端口。每个端口都拥有一个16比特的端口号
- TCP/IP的服务一般是通过IP地址加一个端口号(Port)来决定的。一台主机上可以同时运行许多个应用程序,通过IP地址+端口号才能确定数据包是传给哪台主机上的哪个应用程序的
IP地址和端口号的作用
- 对于一些常见的程序,它们使用的端口号一般是固定的(有些程序需要占用几个端口,当然也可以更改这些程序默认的端口号)。常见应用程序的端口号如表所示。
- 通过端口号还能辨别目标主机上正在运行哪些程序。使用“netstat -an”命令可以查看本机上活动的连接和开放的端口
常用的网络服务端口号
端口 | 协议或程序 | 端口 | 协议或程序 | 端口 | 协议或程序 |
TCP/UDP 21 | FTP | TCP/UDP 25 | SMTP | TCP/UDP 53 | DNS |
TCP 80 | HTTP | TCP 443 | HTTPS | TCP 3389 | 远程桌面 |