周福才 fczhou@mail.neu.edu.cn http://decweb.neu.edu.cn 2017/4/9 可信计算基础 周福才 fczhou@mail.neu.edu.cn http://decweb.neu.edu.cn.

Slides:



Advertisements
Similar presentations
苗付友 年 12 月.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第六章 杂凑函数 聂旭云
网络安全协议 Network Security Protocols
第5讲 认证技术基础.
客户农行绑定流程.
(第十四讲) 认证 张焕国 武汉大学计算机学院
電子資料保護 吳啟文 100年6月7日.
06資訊安全-加解密.
Oracle数据库 Oracle 子程序.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
2-7、函数的微分 教学要求 教学要点.
在PHP和MYSQL中实现完美的中文显示
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
Signutil.
Hadoop I/O By ShiChaojie.
Module 2:電子商務之安全.
CH19資訊安全 認識資訊安全與其重要性 了解傳統與公開金鑰密碼系統, 以及基本的安全性觀念 了解訊息鑑別與雜湊函數 了解數位簽章法
6.4.有代表性的哈希函数 基于私钥密码系统的哈希函数 基于离散对数问题的哈希函数 MD系列哈希函数
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
存储系统.
数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术.
SQL Injection.
网络常用常用命令 课件制作人:谢希仁.
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
密码学基础(3) 胡建斌 北京大学网络与信息安全研究室
第17章 网站发布.
雜湊與MAC演算法 Hash and MAC Algorithms
动态规划(Dynamic Programming)
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
第一章 函数与极限.
续签协议&修改密码操作手册 GDP项目组 2019/01/30.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
第四章 团队音乐会序幕: 团队协作平台的快速创建
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
密碼學 Chapter 4 基於電腦的非對稱性金鑰密碼學演算法
IT 安全 第 11节 加密控制.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
现代密码学理论与实践 第11章 消息认证和散列函数
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
数据报分片.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第一部分:概率 产生随机样本:对分布采样 均匀分布 其他分布 伪随机数 很多统计软件包中都有此工具 如在Matlab中:rand
Touch Github = Touch the World
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
為何電子商務的安全性令人擔憂? 第二節 電子商務資訊安全 實體商務也擔心安全-but數位化的偽造數量會很多 網際網路是互聯的(匿名與距離性)
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
VoIP组工作汇报 黄权 李光华.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
位似.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
顺序结构程序设计 ——关于“字符串”和数值.
入侵检测技术 大连理工大学软件学院 毕玲.
App 加密算法建议 Possible lab 土豪军 小陈.
Presentation transcript:

周福才 fczhou@mail.neu.edu.cn http://decweb.neu.edu.cn 2017/4/9 可信计算基础 周福才 fczhou@mail.neu.edu.cn http://decweb.neu.edu.cn

第三讲 认证技术与数字签名

认证 消息/数据 身份/实体 证实某主体的真实身份与其所声称的身份是否相符的过程(真实性) 消息认证用于保证信息的完整性与抗否认性 证实一个收到的消息来自可信的源点且未被篡改的过程,(完整性、真实性)防止主动攻击。证明接收的消息是可信的内容未被篡改、可靠的消息来源、以正确的顺序及时发送 消息认证用于保证信息的完整性与抗否认性 认证 身份/实体 实体身份认证是鉴别对方数字身份的过程(用于鉴别一方证明另一方的用户身份)实体可以是人、进程、客户端、服务器等 证实某主体的真实身份与其所声称的身份是否相符的过程(真实性)

消息认证与实体认证的比较 消息(数据)认证可能不是实时的,但实体认证却需要实时的。 认证的目标 当BOB认证一条来源于Alice的消息(例如,E-MAIL)时,Alice可能没有连接到她的E-MAIL系统。 当Alice访问银行网站时,或者她从ATM取款时,银行网站/ATM 必须要对Alice进行认证。 认证的目标 对于每条消息,消息(数据源)认证必须要确认消息的新鲜性、完整性。 对于通信会话的整个阶段,实体认证必须要确认实体的身份。

1.消息认证

基本概念 消息认证(Message Authentication): 是一个证实收到的消息来自可信的源点且未被篡改的过程。 散列函数( Hash Functions): 一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。 数字签名(Digital Signature) 是一种防止源点或终点抵赖的鉴别技术。

从加密到认证和鉴别 窃听(通信量分析)等被动攻击  加密 假冒/窜改等主动攻击  认证和鉴别 * 数字签名技术 报文(消息)的真实性/完整性 这条报文真的是他发出来的吗? 是不是假冒的?有没有被篡改过? 身份的真实性 和我通信的这个人真的是他吗? 是不是假冒的?是不是会话重放? * 数字签名技术

x || h(x) // h=crc,md5,sha1 E ( x || h(x), k ) = y 对密文保护的保护 y会变做y’ 在加密之前,添加明文的结构特征 x || h(x) // h=crc,md5,sha1 加密 E ( x || h(x), k ) = y 传输有可能出错或被窜改 y会变做y’ 解密 判断是否依旧符合 x || h(x) 的结构特征

认证(真假)的核心思想 一个问题的两个角度 如何让真实性得到认证? 什么样的操作? 消息真实性和完整性 身份真实性 如何让真实性得到认证? 该报文被实施了一种特意的、排他性的印记操作 该人能对任意的随机报文实施一种特意的、排他性的印记操作 什么样的操作? 一般是生成另外一个和原报文及操作人身份相关的附加小报文。 这需要某种特性的数学函数。

E (x||h(x),k )x||E(h(x),k ) 加密与认证分离 加密本身不能实现真实性认证功能(机密性) 认证和加密的分离带来灵活性 某些信息只需要真实性(认证),不需要保密性 – 广播的信息难以使用加密(信息量大) – 网络管理信息等只需要真实性 – 政府/权威部门的公告 - 不能加密的场合 启发:改变形态 E (x||h(x),k )x||E(h(x),k )

报文认证(MAC)函数特性 发送方:报文+某种印记特性 传输 接收方:判断特性是否仍在 印记特性中得蕴含了发送方特有的信息(密钥) (M,K)=A 传输 有被窜改可能,但是篡改导致特性丢失 M || A 接收方:判断特性是否仍在 不符合则被认为有篡改 (M,K)=? A

MAC

报文鉴别码(MAC Message Authentication Code) 计算明文在密钥K的作用下的特征码 M || MAC(M, K) 验证时,判断明文和MAC码是否一致 讨论 MAC不需要可逆 为了方便,MAC码通常较短 实现MAC函数不排斥使用对称加密算法 防范重放攻击(加注时间、报文序号) * 对称MAC不能提供签名特性 散 列 函 数

MAC的用法 MAC=Ck(M)

引入散列函数(HMAC) 生成MAC没有必要整个报文被加密 从报文产生特征的数学方法:HASH函数 速度、进出口障碍 不需要能恢复原文 MAC的计算过程只需体现明文的特征唯一 Key是必要的 从报文产生特征的数学方法:HASH函数 先计算特征,再把特征加密的思想 把散列函数和Key结合得MAC HMAC = HashKey(Message)

HMAC 把HASH值和一个Key结合起来 目标 标准 没有使用加密算法 既能用当前的HASH函数,又易升级为新的HASH函数,并能保持和散列函数一样安全性 简单,并易进行密码学分析 标准 RFC 2104 HMAC:Keyed-Hashing for Message Authentication FIPS 198 The Keyed-Hash Message Authentication Code(HMAC)

散列函数 h=H(x) 函数参数 函数特性 输入:可以任意长度 输出:必须固定长度n比特,一般n=128、160 单向性质:给定h,要找x使H(x)=h是困难的 弱抗碰撞特性: 对于给定的y,找x,使H(x)=H(y)是困难的 强抗碰撞特性(生日攻击): 找x和y,使H(x)=H(y)是困难的 * 如果碰撞则意味着数字签名容易被伪造/欺骗

2、要使k个人中有两个人的生日相同的概率大于0.5,k至少应该是多少? 生日悖论 1、要使k个人中有两个人的生日相同,k至少应该是多少? 366 2、要使k个人中有两个人的生日相同的概率大于0.5,k至少应该是多少? (23) 3、100个人中有两个人的生日相同的概率约为0.9999997!!!

计算方法 k个人中没有两个人的生日相同的概率为: k个人中至少有两个人的生日相同的概率为: 经计算k=23时:1-p=0.5073

单向散列函数(One-way Hash Function) 单向散列函数(单向+散列) h = H(m) 有的散列函数并不满足单向(抗冲突)性质 密码学上用的散列函数都是指单向散列函数 抗冲突性质 给定h,找m满足H(m)=h很难 给定m,找m’满足H(m’)=H(m)很难 找m1和m2满足H(m1)=H(m2)很难 举例 MD5、SHA1

散列函数的应用 (a) AB: EK[ M||H(M)] Provides confidentiality -- only A and B share K Provides authentication -- H(M) is cryptographically protected (b) AB: M||EK[H(M)] Provides authentication -- H(M) is cryptographically protected (c) AB: M||EKRa[H(M)] Provides authentication and digital signature -- H(M) is cryptographically protected -- only A could create EKRa[H(M)]

散列函数的应用(续) (d) AB: EK[M||EKRa[H(M)]] Provides authentication and digital signature Provides confidentiality (e) AB: M||[H(M||S)] HMAC Provides authentication -- only A and B share S (f) AB: EK[M||[H(M||S)] Provides authentication -- only A and B share S Provides confidentiality -- only A and B share K

Hash与MAC的区别 MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生鉴别码的方法

2. MD5与SHA1

MD系列 作者 MD2、MD4、MD5 应用 Ronald Rivest http://theory.lcs.mit.edu/~rivest/ MD2、MD4、MD5 MD2/4/5 RFC1319/1320/1321 http://www.ietf.org/rfc/rfc1321.txt 应用 曾经是最广泛的摘要算法 但是太短(128bits) 而SHA有160bits

MD5简介 • Merkle于1989年提出hash function模型 •Ron Rivest于1990年提出MD4 •1992年, MD5 (RFC 1321) developed by Ron Rivestat MIT •MD5把数据分成512-bit块 •MD5的hash值是128-bit •在最近数年之前,MD5是最主要的hash算法 •现行美国标准SHA-1以MD5的前身MD4为基础

MD5 detail 输入 任意长 输出 128bits 过程 填充在Y[L] 输入 任意长 输出 128bits 过程 填充在Y[L] 报文填充1~512bits,使之≡448mod512 填充64bits长度值 填充后报文被划分成512bits分组 初始MD寄存器(IV)(小数在前little endian/intel) A=67452301 B=EFCDAB89 C=98BADCFE D=10325476 分组处理 …

MD5示意图

MD5: 总结 散列码(128b)的每一个比特均是输入的每一个比特的函数(随机选择两个报文,即使它们有相似规律性,也很难产生相同的HASH) 易受生日攻击,所需操作的数量级264,因为 128位hash值太短。 Dobbertin在1996年找到了两个不同的512- bit块,它们在MD5计算下产生相同的hash 至今还没有真正找到两个不同的消息,它们的 MD5的hash相等 MD5不是足够安全的

SHA1(Secure Hash Algorithm)简介 1992年NIST制定了SHA(128位) 1993年SHA成为标准(FIPS PUB 180) 1994年修改产生SHA-1(160位) 1995年SHA-1成为新的标准,作为SHA-1(FIPS PUB180-1) SHA-1要求输入消息长度<264 输入按512位的分组进行处理的 SHA-1的摘要长度为160位,基础是MD4

SHA1 detail 输入 任意报文(<2^64) 输出 160bits 过程 填充报文、长度成512bits分组(与MD5相同) 初始化寄存器ABCDE E = C3D2E1F0 分组处理 …

SHA1 a block 512bits/32=16words 扩展至W[80]字 每1/4用20字

比较SHA1/ MD5 散列值长度 安全性 速度 其他 MD5 128bits SHA1 160bits SHA看来好些,但是SHA的设计原则没有公开 速度 SHA1慢些 (openssl speed md5/sha1:) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 5425.31k 19457.48k 55891.45k 104857.60k 143211.40k sha1 5104.58k 16008.41k 37925.33k 57421.81k 68241.68k 其他 雷同

Hash函数小结 hash函数把变长信息映射到定长信息 hash函数不具备可逆性 hash函数速度较快 hash函数与对称密钥加密算法有某种相似性 对hash函数的密码分析比对称密钥密码更困难 hash函数可用于消息摘要 hash函数可用于数字签名

3.数字签名(Digital Signature)

(1)B伪造一个不同的消息,但声称是从A收到的。 (2)A可以否认发过该消息,B无法证明A确实发了该消息。 抵制通信双方的抵赖 对方(自己)否认发送过或收到过某个报文 向对方表明自己的身份 消息认证(来源) 消息完整性(防消息修改) 不可否认性(发方不可否认) 数字签名

考察手写签名的特性 签名的含义 主要形式 特性 签名者慎重表达认可文件内容的意向的行为 手写签名、签章、手指纹印(其他生物技术) 不可伪造,特异性 不可重用,日期和时间相关性 不可改变,能发现涂改、转移意义或用途 不可抵赖,能够质证 可仲裁的,可做为法律证据

数字签名: 要适应的新变化 数字签名 数字文件 数字小文件 如何绑定 手写签名 纸质文件 同一页纸 * 扫描手写字迹、鼠标手写 No!

手写签名的数字化改造 数学支持-签名函数 被签署的是文件(大文件) 签名生成另外一个文件(小文件) 签名过程一定有签署人的身份和某种秘密(别人不知的)参与 简单易行 计算和存储 身份和秘密 报文 签名函数 报文 签名

用私钥加密当作签名 以RSA为例,主要操作 是否满足签名要求的特性 讨论 改进 输入 报文明文、私钥 m^d = s 输出 报文明文m、报文密文(签名) s (m, s) 验证 (公钥e) s^e =? m 是否满足签名要求的特性 讨论 私钥的管理: 和身份绑定、更新等 签名过程太慢: 启用散列函数 改进 对报文的散列值用私钥加密得到签名值

数字签名

数字签名系统

数字签名的执行方式 直接数字签名(direct digital signature) 仲裁数字签名[信任中心](arbitrated digital signature)

直接数字签名(DDS) (1) AB: EKRa[M] 提供了认证与签名: 只有A具有KRa进行加密; 传输中无法被篡改; 需要某些格式信息/冗余度; 任何第三方可以用KUa 验证签名 (1’) AB: EKUb [EKRa(M)] 提供了保密(KUb)、认证与签名(KRa):

直接数字签名 (2) AB: M||EKRa[H(M)] 提供认证及数字签名 -- H(M) 受到密码算法的保护; -- 只有 A 能够生成 EKRa[H(M)] (2’) AB: EK[M||EKRa[H(M)]] 提供保密性、认证和数字签名。

直接数字签名的缺点 验证模式依赖于发送方的保密密钥; X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳. 发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。 通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。 改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。 X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳.

有信任中心帮助的签名 优点:可以简化用户的考虑,也可以使用对称算法 缺点:中心的安全故障、在线瓶颈、可靠性等问题 Kxa是发方X和可信中心A共享密钥, Kya是接收方X和可信中心A共享密钥 缺点:中心的安全故障、在线瓶颈、可靠性等问题

仲裁数字签名 (a) 单密钥加密方式,仲裁者可以看见消息 (1) XA:M||EKxa[IDx|| H(M)] (2) AY:EKay[IDx|| M || EKxa[IDx|| H(M)] || T] X与A之间共享密钥Kxa,Y与A之间共享密钥Kay; X:准备消息M,计算其散列码H(M),用X的标识符IDx 和散列值构成签名,并将消息及签名经Kxa加密后发送给A; A:解密签名,用H(M)验证消息M,然后将IDx,M,签名,和时间戳一起经Kay加密后发送给Y; Y:解密A发来的信息,并可将M和签名保存起来。 解决纠纷: Y:向A发送 EKay[IDx|| M || EKxa[IDx|| H(M)]] A:用Kay恢复IDx,M,和签名( EKxa[IDx|| H(M)]),然后用 Kxa解密签名并验证散列码

仲裁数字签名 (b) 单密钥加密方式,仲裁者不可以看见消息 (1) XA: IDx || EKxy[M]||EKxa[IDx|| H(EKxy[M])] (2) AY:EKay[IDx||EKxy[M] || EKxa[IDx|| H(EKxy[M])] || T] 在这种情况下,X与Y之间共享密钥Kxy, X:将标识符IDx ,密文 EKxy[M],以及对IDx和密文消息的散列码用Kxa加密后形成签名发送给A。 A:解密签名,用散列码验证消息,这时A只能验证消息的密文而不能读取其内容。然后A将来自X的所有信息加上时间戳并用Kay加密后发送给Y。 (a)和(b)共同存在一个共性问题: A和发送方联手可以否认签名的信息; A和接收方联手可以伪造发送方的签名;

仲裁数字签名 (c) 双密钥加密方式,仲裁者不可以看见消息 (1) XA: IDx || EKRx[IDx || EKUy (EKRx[M])] (2) AY: EKRa[IDx|| EKUy[EKRx[M]] || T] X:对消息M双重加密:首先用X的私有密钥KRx,然后用Y的公开 密钥KUy。形成一个签名的、保密的消息。然后将该信息以及 X的标识符一起用KRx签名后与IDx 一起发送给A。这种内部、 双重加密的消息对A以及对除Y以外的其它人都是安全的。 A:检查X的公开/私有密钥对是否仍然有效,是,则认证消息。并 将包含IDx、双重加密的消息和时间戳构成的 消息用KRa签名后 发送给Y。 本模式比上述两个模式具有以下好处: 1、在通信之前各方之间无须共享任何信息,从而避免了联手作弊; 2、即使KRx 暴露,只要KRa 未暴露,不会有错误标定日期的消息 被发送; 3、从X发送给Y的消息的内容对A和任何其他人是保密的。

数字签名算法 普通数字签名算法 – RSA – EIGamal – DSS/DSA 不可否认的数字签名算法 群签名算法 盲签名算法

A的公钥私钥对:{KUa||KRa} A对消息M签名: SA=EKRa(M)

Digital Signature Standard DSS标准-DSA 公布于1994年5月19日的联邦记录上,并于1994年12月1日采纳为标准DSS。DSS为EIGamal签名方案的改进。 只能签名,不能加密 概念对比 RSA M+Eki(H(M)),ki是我的私钥 DSS M+Eki(H(M), k),ki私钥,k是随机数

KUG: 全局公开密钥

群签名方案 群中各个成员以群的名义匿名地签发消息.具备下列三个特性 应用: 投标 (1) 只有群成员能代表所在的群签名 (2) 接收者能验证签名所在的群,但不知道签名者 (3) 需要时,可借助于群成员或者可信机构找到签名者 应用: 投标

盲签名 盲签名要求: (1)消息内容对签名者不可见 (2)签名被接收者泄漏后,签名者无法追踪签名 应用: 电子货币,电子选举 盲签名过程: 消息→盲变换→签名→接收者→逆盲变换

利用公钥(私钥)认证身份 准备 认证过程 SIGk(Na||Nb) 公钥公开发布 私钥私人秘藏 你有真实对方的公钥 让对方证明他有相应的私钥 怎么办?让对方签个名来看看即可 注意随便签署报文是很危险的! 挑战-应答机制 SIGk(Na||Nb)

A认证所谓的B是否是真正的B的过程 前提:A事先知道真实B的真实公钥e,这是前提 A和对方建立连接,A现在要核实对方是否是B A只需核实对方是否有私钥d(和e对应的那个d)即可 只有真实的B才有相应的d,别人不可能拥有d A需要一种旁敲侧击的手段来试试对方是否拥有d A于是决定请对方用d签个名来看看(挑战-应答) A ->B:随机数m (即随机报文) B - A:s=signature(m, d) A判断签名(m, s)是否是B的真实签名,从而知道对方是否是真正的B * 不要随便对别人给你的报文签名 那个报文可能对你不利,可能是张欠条 (当然你欠人家的) 因此B必须在签署消息m前用自己的随机数干扰一下

4.身份认证

身份认证技术

简单的用户名/口令 动态口令/挑战应答 生物特征认证技术 数字签名技术(PKI) 软件的动态口令,硬件的动态口令 基于生理特征:指纹,脸部识别,视网膜,虹膜 基于行为特征:语音识别、击键行为 数字签名技术(PKI) 软件的数字证书 硬件的数字证书

身份认证 基本的安全基石 包括两个步骤: 有别与消息认证 访问控制的基础 & 用户 为系统实体提供身份识别的过程 识别 – 特殊的标识符 验证 – 绑定实标识符 有别与消息认证

身份认证方法 4种认证用户身份的方法 根据个人信息 可单独使用或混合使用以上方法 都可以提供身份认证 都存在问题 个人所知道的信息:例如 口令,用户标识码PIN,预先设置问题答案 个人所持有物品- 电子钥匙卡, 智能卡 个人生理特征(静态生物特征) – 指纹,视网膜 个人的行为特征(动态特征) – 声音,笔迹、击键节奏 可单独使用或混合使用以上方法 都可以提供身份认证 都存在问题

A、基于口令的认证 使用广泛的身份认证方法 用户ID 用户提供登陆的用户名和口令 系统将该口令与已保存的相比较 决定了用户是否被授权访问系统 决定了用户的访问权限 还可以应用在自主访问机制

(1) 固定口令 是指在某一时间段内有效的口令 验证者必须要存储用户名及其对应的口令 在验证者端,口令以明文的形式存储 该口令的生成并不基于每次访问的请求。 验证者必须要存储用户名及其对应的口令 在验证者端,口令以明文的形式存储 为实现认证,示证者要通过网络将口令进行传输

固定口令-攻击性和脆弱性 攻击1-窃听 导致攻击1的发生的脆弱性在于: 对策: 案例1:在用户PC端(EVE能够窥视Alice所敲击下的口令) 案例2:经由网络(嗅探) 导致攻击1的发生的脆弱性在于: 案例1:EVE信任Alice 案例2:口令以明文的形式在网络中传输 对策: 案例1:Alice不应信任Eve 案例2:当口令传输时需要将其加密

固定口令-攻击性和脆弱性 攻击2-密码猜测: 导致攻击2发生的脆弱性: 对策: Eve可以登录系统(例如,银行网站)并通过不同的字符组合试着猜测Alice的口令。 导致攻击2发生的脆弱性: Alice选择了较短的口令 验证者没有执行一个最大尝试登录数的策略(即,如果一个错误的口令提交了3次,那么就阻止该用户登录) 对策: 验证者应该强制口令的长度,例如以固定的长度和特殊的字符组成;验证者要限定尝试登录的次数。

固定口令-攻击性和脆弱性 攻击3-攻击者可以访问口令文件 导致攻击3发生的脆弱性: 口令文件没有进行读/写保护 对策: 保护口令文件

(2)固定口令-存储口令哈希值 即使敌手成功地入侵口令数据库,以哈希值来猜测口令是异常困难的。 使蛮力攻击难以实施。

(3)固定口令+盐

举例: (1)固定长度盐值+口令 (2) —两个不同用户使用相同口令; —口令加盐会使蛮力攻击变得更为困难 —增加离线字典攻击的难度

改进的方案 更强壮的哈希盐值变形 许多系统现在使用 MD5 OpenBSD 使用 Blowfish 分组密码 的散列函数称为 Bcrypt 使用 48-bit 盐值 口令长度不限制 哈希运算经过 1000 次内部循环 产生128-bit 哈希 OpenBSD 使用 Blowfish 分组密码 的散列函数称为 Bcrypt 使用 128-bit 盐值产生 192-bit 哈希值

(4)一次性口令(OTP) 一次性口令(OTP)即一个口令只对一次使用有效: 如果攻击者能够获取一个一次性口令,他只能在一定的时限内使用它。 可以阻止窃听攻击和重放攻击。 利用哈希链可实现OTP。哈希链是对一个字符串进行连续的哈希操作而形成的链式结构。 例如,h(h(h(h(x))))是一个长度为4的哈希链,常用h4(x)表示。

(4)一次性口令(OTP) 服务器将口令哈希链存储在数据库中,而不是明文形式的口令。 例如,服务器最初存放了h1000(pw),pw为口令由用户提供; 当用户申请认证时,他要提供h999(pw)给服务器。 服务器计算h(h999(pw))= h1000(pw)并校验是否与它存储的哈希链匹配。然后将h999(pw)存储作为下一次用户认证的哈希链; 即使敌手窃听到用户与服务器的通信值h999(pw),他也不能够传输同样的h999(pw)值,因为服务器期望的下一个值应该是h998(pw)。由于安全哈希函数的单向性,敌手不能通过窃听到的哈希值恢复出原来的值。并且在哈希链耗尽之前,用户可以认证1000次。

B、动态口令(挑战/应答) 示证者需要通过向验证者声称他知道一个秘密(口令)的方式来证明他的身份。 挑战-应答认证:秘密不传输发送。 这个秘密在传输过程中易受敌手的截获(interception)攻击 挑战-应答认证:秘密不传输发送。 示证者和验证者共享一个秘密(一个对称密钥) 挑战值是一个随时间变化的值,由验证者发出。 挑战值是一个随机数nonce(该随机数仅有用户使用一次) 挑战值也可能是时间戳 示证者的应答应该是针对挑战值的加密结果,并且这个结果可由验证者验证。

B、动态口令(挑战/应答)——对称

(4)服务器产生口令,验证S(口令) =C(口令) B、动态口令(挑战/应答)——举例 一个令牌每分钟产生一个不同的口令 服务器也同样产生这样的口令 通过对比,如果一样就通过认证 (3)客户端将随机数通过USB接口传送给ePass,产生口令 (1) 服务器收到请求 (1)客户端向服务器发送请求 (1)请求验证 (2) 随机数 (3)产生口令 客户端 (4) 验证结果 服务器 (2)服务器产生随机数 (2)收到服务器发来的随机数 (4)服务器产生口令,验证S(口令) =C(口令)

B、挑战/应答——非对称(公钥) 秘密值为示证者的私钥(private key) 验证者需要知道示证者对应的公钥(public key) 示证者必须要向验证者证明其具有与该公钥对应的私钥。 第一个消息并不是挑战-应答协议的部分,这个消息用于示 证向验证者申请挑战。 第二个消息为挑战值,该 挑战值由验证者随机选择 。验证者用Dk加密该值。 示证者将解密后的挑战值 发送给验证者。 示证者用他的私钥 Ek解密挑战值。

C、生物特征认证技术 生物特征 生物特征:真正表示我就是我 最真实、最简捷 目前效率很高 识别精度问题,不能100%确认 太精确,长个包就是别人 降低精度,别人就是我

C、生物特征认证技术 适用于面对面的场合 不适用与网络远地的认证 不适合大规模人群的认证 不容易假冒 信任验证者(验证者可以假冒) 计算复杂,准确度有限 不适用与网络远地的认证 采样后的数据,可以拷贝,通过不可信网络就更加危险;人身危险增加; 不适合大规模人群的认证 合法的人被判为非法(精度提高) 非法的人被判为合法(精度降低)

身体特征进行认证

生物特征传感器 特征提取 通用的生物特征认证系统 注册 验证 识别

D、PKI(数字签名)技术

D、PKI(数字签名)技术 身份验证 可以让不可信的人验证你的身份 通过验证对方的签名,可以证明只有对方才有这样的结果 利用CA的公开密钥可以验证证书,通过证书可以知道对方的身份 可以让不可信的人验证你的身份 对方是你的可能的客户 但为了利益,他可能假冒你 对方的计算机可能有病毒,想偷取你的验证方法

D、PKI(数字签名)技术 PKI安全问题(私钥存放) 放在硬盘上,至少微软可以随便看 使用USB保护私钥 让它对300元的交易签名,它知道吗? 间谍软件可以把100改成10000,你还要负法律责任,因为符合数字签名法! 你让它签一次名,病毒让他签三次,USB Key知道该签哪次? 一次是你希望的300元买衣服,一次是0.3给黑客1,另一次是0.1分给间谍软件开发者2。

E、远程用户认证 通过网络认证更加复杂 使用挑战/应答 可以防止一些攻击 窃听,重放等问题 用户发送身份 主机返回随机数 用户计算函数f(r,h(P)) 并发给主机 如果符合用户的身份,主机用用户发送的值和自己的数值计算出一个值 可以防止一些攻击

口令协议 令牌协议 静态生物特征认证协议 动态生物特征认证协议

身份认证技术的融合 动态口令与静态口令的结合 双因素认证 口令与生物认证的结合 PKI与生物认证的结合 国际民航组织定义的电子护照

A、双因素认证 理论上:知道的东西(一个因素)和拥有的东西(另一个因素)不能相互推导出,不论敌手的技术有多高. 动态口令卡:假的融合,假的双因素? 卡(拥有什么) 打开卡的开机密码(知道什么) 分析: 开机密码放在哪里?在卡里 高手获得卡后可以得到开机密码,所以,不能算双因素

B、双因素认证—口令与生物认证的结合 提供照片同时提供口令 前提:验证者必须被信任 要识别照片特征 要记录合法用户的照片特征和口令 用户太多就非常困难,不能支持大量用户。 数据库集中:困难 数据库分散:不安全

C、PKI与生物认证的结合 国际民航组织定义的电子护照 PKI与生物识别融合的好例子(2048RSA) 用数字证书实现ID与生物特征(照片)的绑定 可以支持大量的用户,支持分布式验证 验证者不需要存储照片 验证者不能制作假护照 生物识别不需要太高的准确性 只有一张照片,不能被篡改,不需要在众多的照片中选 仅通过照片识别人是困难的,但告诉与某个人是否象是容易的。

信息安全技术 认证—采用数字签名技术作用于相应数据之上 完整性—PKI采用了两种技术 被认证的数据 —— 数据源认证服务 用户发送的远程请求 —— 身份认证服务 远程设备生成的challenge信息 —— 身份认证 完整性—PKI采用了两种技术 数字签名:既可以是实体认证,也可以是数据完整性 MAC(消息认证码):如DES-CBC-MAC或者HMAC-MD5 保密性—公钥分发随机密钥(会话密钥),然后用随机密钥对数据加密 不可否认性 发送方的不可否认 —— 数字签名 接受方的不可否认 —— 收条 + 数字签名

2017/4/9 Q & A