45
1 第第第 第第第第

第七章 身份认证

  • Upload
    maegan

  • View
    169

  • Download
    0

Embed Size (px)

DESCRIPTION

第七章 身份认证. 一、认证的基本原理. 在现实生活中,我们个人的身份主要是通过各种证件来确认的,比如:身份证、户口本等。 认证是对网络中的主体进行验证的过程,用户必须提供他是谁的证明,他是某个雇员,某个组织的代理、某个软件过程(如交易过程)。 认证( authentication ) :证明一个对象的身份的过程。 授权( authorization ) :决定把什么特权附加给该身份。. 通常有三种方法验证主体身份: 1) 主体了解的: 只有该主体了解的秘密,如口令、密钥; 2) 主体拥有的 :主体携带的物品,如智能卡和令牌卡; - PowerPoint PPT Presentation

Citation preview

Page 1: 第七章     身份认证

11

第七章 身份认证

Page 2: 第七章     身份认证

22

一、认证的基本原理 一、认证的基本原理 在现实生活中,我们个人的身份主要是通过各种证件来确认的,比如:身份证、户口本等。认证是对网络中的主体进行验证的过程,用户必须提供他是谁的证明,他是某个雇员,某个组织的代理、某个软件过程(如交易过程)。 认证 ( authentication ) :证明一个对象的身份的过程。授权 ( authorization ) :决定把什么特权附加给该身份。

Page 3: 第七章     身份认证

33

通常有三种方法验证主体身份:1 )主体了解的:只有该主体了解的秘密,如口令、密钥;2 )主体拥有的:主体携带的物品,如智能卡和令牌卡;3 )主体具有的:只有该主体具有的独一无二的特征或能力,如指纹、声音、视网膜图或签字等。单独用一种方法进行认证不充分。

Page 4: 第七章     身份认证

44

身份认证系统架构包含三项主要组成元件: 认证服务器 (Authentication Server) 负责进行使用者身份认证的工作,服务器上存放使用者的私有密钥、认证方式及其他使用者认证的信息。 认 证 系 统 用 户 端 软 件 (Authentication Client Software) 认证系统用户端通常都是需要进行登陆 (login) 的设备或系统,在这些设备及系统中必须具备可以与认证服务器协同运作的认证协定。 认证设备 (Authenticator) 认证设备是使用者用来产生或计算密码的软硬件设备。

Page 5: 第七章     身份认证

55

1 )口令机制用户名 / 口令认证技术最简单、最普遍的身份识别技术,如:各类系统的登录等。口令具有共享秘密的属性,是相互约定的代码,只有用户和系统知道。例如,用户把他的用户名和口令送服务器,服务器操作系统鉴别该用户。口令有时由用户选择,有时由系统分配。通常情况下,用户先输入某种标志信息,比如用户名和 ID 号,然后系统询问用户口令,若口令与用户文件中的相匹配,用户即可进入访问。口令有多种,如一次性口令;还有基于时间的口令。

Page 6: 第七章     身份认证

66

用户名 / 口令具有实现简单的优点,但存在以下安全缺点:1 、大多数系统的口令是明文传送到验证服务器的,容易被截获。某些系统在建立一个加密链路后再进行口令的传输以解决此问题,如配置链路加密机。2 、口令维护的成本较高。为保证安全性,口令应当经常更换。另外为避免对口令的字典攻击,口令应当保证一定的长度,并且尽量采用随机的字符。但缺点是难于记忆。3 、口令容易在输入的时候被攻击者偷窥,而且用户无法及时发现。 简单和安全是互相矛盾的两个因素。

Page 7: 第七章     身份认证

77

2)数字证书这是一种检验用户身份的电子文件,也是企业现在可以使用的一种工具。这种证书可以授权购买,提供更强的访问控制,并具有很高的安全性和可靠性。 非对称体制身份识别的关键是将用户身份与密钥绑定。 CA(Certificate Authority) 通过为用户发放数字证书 (Certificate) 来证明用户公钥与用户身份的对应关系。

Page 8: 第七章     身份认证

88

① 验证者向用户提供一随机数;② 用户以其私钥 KS 对随机数进行签名,将签名和自己的证书提交给验证方;③ 验证者验证证书的有效性,从证书中获得用户公

钥 KP ,以 KP 验证用户签名的随机数。

Page 9: 第七章     身份认证

99

3)智能卡网络通过用户拥有什么东西来识别的方法,一般是用智能卡或其它特殊形式的标志,这类标志可以从连接到计算机上的读出器读出来。访问不但需要口令,也需要使用物理智能卡。智能卡技术将成为用户接入和用户身份认证等安全要求的首选技术。用户将从持有认证执照的可信发行者手里取得智能卡安全设备,也可从其他公共密钥密码安全方案发行者那里获得。这样智能卡的读取器必将成为用户接入和认证安全解决方案的一个关键部分。

Page 10: 第七章     身份认证

1010

4)主体特征认证目前已有的设备包括:视网膜扫描仪、声音验证设备、手型识别器等。安全性高。例如:系统中存储了用户的指纹,用户接入网络时,就必须在连接到网络的电子指纹机上提供他的指纹(这就防止他以假的指纹或其它电子信息欺骗系统),只有指纹相符才允许他访问系统。更普通的是通过视网膜血管分布图来识别,原理与指纹识别相同,声波纹识别也是商业系统采用的一种识别方式。

Page 11: 第七章     身份认证

1111

1 、安全与不安全的口令 安全的口令要求: 1) 位数 >6位。 2) 大小写字母混合。3) 字母与数字混合。 4) 口令有字母、数字以外的符号。

二、基于口令的身份认证

Page 12: 第七章     身份认证

1212

不安全的口令则有如下几种情况: (1) 使用用户名(帐号)作为口令。 (2) 使用用户名(帐号)的变换形式作为口令。将用户名颠倒或者加前后缀作为口令。

比如说著名的黑客软件 John ,如果你的用户名是 fool ,那么它在尝试使用 fool 作为口令 之 后 , 还 会 试 着 使 用 诸 如fool123 、 loof 、 loof123 、 lofo 等作为口令,只要是你想得到的变换方法, John也会想得到。

又如:使用 x-scan扫描获知邮件帐号、密码。

Page 13: 第七章     身份认证

1313

(3) 使用自己或者亲友的生日作为口令。这种口令很脆弱,因为这样往往可以得到一个 6位或者 8位的口令,但实际上可能的表达方式只有 100×12×31=37200 种。(4) 使用常用的英文单词作为口令。这种方法比前几种方法要安全一些。一般用户选择的英文单词几乎都落在黑客的字典库里。(5) 使用 5位或 5位以下的字符作为口令。

Page 14: 第七章     身份认证

1414

加强口令安全的措施:A 、禁止使用缺省口令。B 、定期更换口令。C 、保持口令历史记录,使用户不能循环使用旧口令。 D 、用口令破解程序测试口令。

Page 15: 第七章     身份认证

1515

2、口令攻击的种类 计算机资源依靠口令的方式来保护的脆弱性:网络数据流窃听由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令。口令被盗也就是用户在这台机器上的一切信息将全部丧失,并且危及他人信息安全,计算机只认口令不认人。最常见的是电子邮件被非法截获。

Page 16: 第七章     身份认证

1616

认证信息截取 /重放 (Record/Replay)有的系统会将认证信息进行简单加密后进行传输,如果攻击者无法用第一种方式推算出密码,可以使用截取 /重放方式。攻击者仍可以采用离线方式对口令密文实施字典攻击;对付重放的方法有:1 、在认证交换中使用一个序数来给每一个消息报文编号 ,仅当收到的消息序号合法时才接受之;2 、使用时间戳 (A接受一个新消息仅当该消息包含一个 A认为是足够接近 A所知道的时间戳 );

3 、询问 / 应答方式 (A期望从 B 获得一个新消息 ,则先发给 B 一个临时值 ,并要求后续从 B收到的消息包含正确的这个临时值 )

Page 17: 第七章     身份认证

1717

字典攻击:由于多数用户习惯使用有意义的单词或数字作为密码,某些攻击者会使用字典中的单词来尝试用户的密码。所以大多数系统都建议用户在口令中加入特殊字符,以增加口令的安全性。    穷举尝试 (Brute Force) : 这是一种特殊的字典攻击,它使用字符串的全集作为字典。如果用户的密码较短,很容易被穷举出来,因而很多系统都建议用户使用长口令。窥探:攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合法用户输入口令的过程,以得到口令。

Page 18: 第七章     身份认证

1818

社交工程: 攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令。

垃圾搜索: 攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象。

Page 19: 第七章     身份认证

1919

一 次 性 口 令 (OTP : One Time Password)  在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以对付重放攻击。如 S/KEY 。

(1)Alice 输入随机数 R ,服务器计算:x1=f(R) x2=f(x1) … xn+1=f(xn)

(2)Alice 保留 x1…xn ,服务器保留 xn+1值(3)首次 Alice 登录时,输入名字和 xn ,服务器计算 f(xn) ,与本机保留的 xn+1 比较,匹配则证实 Alice 的身份。(4) 服务器用 xn 代替 xn+1 , Alice则删除

xn 。

Page 20: 第七章     身份认证

2020

基于对称密码的认证基于对称密码的认证19781978年,年, NeedHam-SchroederNeedHam-Schroeder 认证协议:认证协议:(1)A(1)AKDC: IDKDC: IDAA||ID||IDBB||R||Raa

(2)KDC(2)KDCA: EA: EKaKa[R[Raa|| ID|| IDBB ||K ||Kss||E||EKbKb[K[Kss|| ID|| IDAA]]]](3)A(3)AB: EB: EKbKb[K[Kss|| ID|| IDAA]](4)B(4)BA: EA: EKsKs[R[Rbb]](5)A(5)AB: EB: EKsKs[R[Rbb-1]-1]

Page 21: 第七章     身份认证

2121

重放攻击:重放攻击:如果入侵者如果入侵者 II 掌握了掌握了 AA 和和 BB 之间通信的之间通信的一个老的会话密钥,则一个老的会话密钥,则 II可以冒充可以冒充 AA 利利用老的会话密钥对用老的会话密钥对 BB 进行如下的攻击:进行如下的攻击:(3) I(A)(3) I(A)B: EB: EKbKb[K[Kss||A]||A](4)B(4)BI(A): EI(A): EKsKs[R[Rbb]](5)I(A)(5)I(A)B: EB: EKsKs[R[Rbb-1]-1]

Page 22: 第七章     身份认证

2222

针对以上漏洞,提出针对以上漏洞,提出 Denning-SaccoDenning-Sacco 协议协议 ::(1)A(1)AKDC: IDKDC: IDAA||ID||IDBB (2)KDC(2)KDCA: EA: EKaKa[ID[IDBB||K||Kss||T||E||T||EKbKb[K[Kss||ID||IDAA||||TT]]]](3)A(3)AB: EB: EKbKb[K[Kss||ID||IDAA||||TT]](4)B(4)BA: EA: EKsKs[R[Rbb]](5)A(5)AB: EB: EKsKs[R[Rbb-1]-1]加入了时间戳,防止重放攻击。加入了时间戳,防止重放攻击。

Page 23: 第七章     身份认证

2323

基于公钥密码的认证基于公钥密码的认证ISOISO 认证:认证:(1)A(1)AB: RB: Raa

(2)B(2)BA: CertA: Certbb||R||Rbb||S||Sbb(R(Raa||R||Rbb||B)||B)AA 认证认证 BB(3)A(3)AB: CertB: Certaa||S||Saa(E(Eaa||R||Rbb||A)||A)BB 认证认证 AA

Page 24: 第七章     身份认证

2424

身份的零知识证明身份的零知识证明 通常的身份认证都要求传输口令或身份信息 (尽管是加密传输 )。如果不传输这些信息,身份也能得到证明就好了,这就需要零知识证明技术 (The proof of zero knowledge) 。零知识证明是这样一种技术,被认证方 P掌握某些秘密信息, P想设法让认证方 V 相信他确实掌握那些信息,但又不想让 V 也知道那些信息。

Page 25: 第七章     身份认证

2525

例:洞穴问题  如图:有一个洞,设 P知道咒语,可打开C 和D 之间的秘密门,不知道者都将走入死胡同中,那么 P如何向 V 出示证明使其相信他知道这个秘密,但又不告诉 V 有关咒语。

Page 26: 第七章     身份认证

2626

P 如何使 V 相信自己掌握了洞穴的秘密 :1)V 站在 A 点。2)P进入洞中任意一点 C 或 D 。

3) 当 P进洞之后, V 走到 B点。4)V 叫 P:“从左边出来”或“从右边出来”。5)P按要求实现 ( 以咒语,即解数学难题 )。6)P和 V 重复执行 (1)~ (5)共 n 次。被认证方 P掌握的秘密信息一般是长期没有解决的猜想问题的证明,但能通过具体的步骤来验证它的正确性。Feige-Fiat-Shamir 零知识身份识别协议 1986年

Page 27: 第七章     身份认证

2727

三、基于智能卡的身份认证 三、基于智能卡的身份认证 1 、智能卡的安全性IC 卡 是英文 Integrated Cirtuit (集成电路 ) 卡 的缩写,也称“ MEMORY CARD” 和“ SMART CARD” ,中文译作“聪明卡”、“智慧卡”和“智能卡”等。这种集成电路卡,是随着半导体技术的发展以及社会对信息的安全性和存储容量要求的日益提高而应运而生的。它是一种将具有加密、存储、处理能力的集成电路芯片嵌装于塑料基片上而制成的卡片,它的外型与普通的信用卡十分相似,具体尺寸为:长: 85.6 mm 、 宽: 54mm 、 厚: 0.8mm

IC 卡可简单地分为三种类型:存储卡、逻辑加密卡、 CPU 卡。

Page 28: 第七章     身份认证

2828

IC 卡优点:存储容量大、体积小而轻、保密性强、网络要求低、数据可靠性高IC 卡防磁、防静电、防潮、耐温、抗干扰能力强,一张 IC 卡片可重复读写十万次,卡中数据可保存几十年。 IC 卡读写操作通过电信号传输来完成,因而对计算机的实时性、敏感性要求降低。内部数据保密性、可靠性好,读写稳定可脱机工作,易于安装维护,而磁卡系统离不开网络。

Page 29: 第七章     身份认证

2929

2、智能卡技术规范1 ) ISO 7816

描述智能卡底层接口标准,定义读卡器和智能卡之间如何传递字节流。此标准主要是定义了塑料基片的物理和尺寸特性(7816/1) ,触点的尺寸和位置 (7816/2) ,信息交换的底层协议描述 (7816/3) , 7816/4 论述了跨行业的命令集。2 ) PC/SC (Personal Computer/Smart Card ) 工作组 Microsoft 联合其它几家公司推出了称为 PC/SC 的智能卡应用程序标准,用于 Win32 平台的个人计算机与智能卡之间实现互通信。 PC/SC 工作组于 1996年五月成立,目的在于规范一个开放的 Windows接口。 PC/SC 工作组持有对 PC-ICC互操作规范的所有权。

Page 30: 第七章     身份认证

3030

3 ) OpenCard 框架 由 IBM , Netscape , NCI 和 Sun 在 1997年 3 月27日提出的用于网络环境的智能应用框架。目的是支持智能卡应用程序在网络计算机、 PC 机、 ATM和 GSM 平台上实现应用互操作。 OpenCard 还提供了到 PC/SC 的接口。4 ) Java Card 论坛1996年 10 月推出了 Java Card API 规范,目前版本为2.1.1 , 1997年 4 月 27日, Java Card 论坛正式宣布成立。 Java Card 论坛的成立目的是完善 Java Card API 规范,使之最终成为多应用智能卡的首选编程语言。

Page 31: 第七章     身份认证

3131

Java Card 就是 能够运 行 Java 程序的 智 能卡。 Java Card 在出厂时就在 ROM 中烧入了操作系统、 Java Card 虚拟机、 API 类库和可选 的 applets ,随后 ,初始化和 个 人化向EEPROM 中写入数据。所谓 Java Card 规范,主要是定义了 Java 作为一种独立于平台的编程技术在智能卡上的应用。 Java Card API 与正式的国际标准(如 ISO7816 )和工业规范标准(如 Europay/Master Card/Visa )兼容。也就是说 Java applet 能够直接运 行 在 遵循ISO7816 标准的智能卡之上。

Page 32: 第七章     身份认证

3232

3、基于智能卡的认证机制在基于 Web 的电子商务应用中, Java applet 与智能卡之间的通信是:应用程序与读卡器通信,而读卡器将使用上面介绍的标准与智能卡通信。在用户进行商务交易前,服务器首先使用智能卡完成用户身份的认证。身份认证过程中,为了产生变动的密码,一般采用双运算因子的计算方式,也就是加密算法的输入值有两个数值,其一为用户密钥、另一为变动因子,由于用户密钥为固定数值,因此变动因子必须不断变动才可以算出不断变动的动态密码。服务器及智能卡必须随时保持相同的变动因子,才能算出相同的动态密码。

Page 33: 第七章     身份认证

3333

• 挑战 / 响应认证 变动因子是由服务器产生的随机数字。认证过程如下:1 )登录请求。客户机首先向服务器发出登录请求,服务器提示用户输入用户 ID 和 PIN 。2 )询问。用户提供 ID 给服务器,然后服务器提供一个随机串 X ( Challenge )给插在客户端的智能卡作为验证算法的输入,服务器则根据用户 ID取出对应的密钥 K 后,利用发送给客户机的随机串 X ,在服务器上用加密引擎进行运算,得到运算结果 RS 。

Page 34: 第七章     身份认证

3434

3 )应答。智能卡根据 X 与内在密钥 K 使用硬件加密引擎运算,也得到一个运算结果RC ,并发送给服务器。4 )验证。比较 RS 和 RC便可确定用户的合法性。由于密钥存在于智能卡中,运算过程也是在智能卡中完成,密钥认证是通过加密算法来实现的,因而极大地提高了安全性。并且每当客户端有一次服务申请时,服务器便产生一个随机串给客户,即使在网上传输的认证数据被截获,也不能带来安全上的问题。

Page 35: 第七章     身份认证

3535

Page 36: 第七章     身份认证

3636

挑战 /响应身份认证的优点: 1. 没有同步的问题。 2. 一片认证卡可以用来存取被不同认证服务器所保护的系统。 3. 最安全的认证方式。 缺点: 1. 使用者必须按较多的按钮,操作较繁复。 2. 比较多输入的失误。

Page 37: 第七章     身份认证

3737

• 时间同步认证 变动因子使用服务器端与客户端的同步时间值。认证过程如下:1 )用户向服务器发出登录请求,服务器提示用户输入用户 ID 和用户 PIN 。

2 )服务器根据用户 ID取出对应的密钥 K ,使用 K与服务器时间 T 计算动态密码 RS 。

3 )智能卡根据内在的密钥 K 与客户机时间 T 使用相同的专用算法计算动态密码 RC ,并发送给服务器。4 )服务器比较 RS 与 RC ,如果相同则用户合法。

Page 38: 第七章     身份认证

3838

时间同步认证卡在一个固定期间中 ( 通常是一分钟 )产生同一个动态密码,依据时间的流逝产生不同的密码。

Page 39: 第七章     身份认证

3939

时间同步身份认证优点: 易于使用。 缺点: 1. 时间同步困难,可能造成必须重新输入新密码。软体认证卡采用 PC 的时刻,很可能随时被修改。常常需要与服务器重新对时。 2. 不如 Challenge/Response 认证安全

Page 40: 第七章     身份认证

4040

• 事件同步事件同步认证卡依据认证卡上的私有密钥产生一序列的动态密码,如果使用者意外多产生了几组密码造成不同步的状态,服务器会自动重新同步到目前使用的密码,一旦一个密码被使用过后,在密码序列中所有这个密码之前的密码都会失效。

Page 41: 第七章     身份认证

4141

Page 42: 第七章     身份认证

4242

事件同步的身份认证优点: 1.容易使用。 2.由于使用者无法知道序列数字,所以安全性高,序列号码绝不会显示出来。 缺点: 如果没有 PIN 号码的保护及认证卡借给别人使用时,会有安全的疑虑。

Page 43: 第七章     身份认证

4343

四、基于生物特征的身份认证四、基于生物特征的身份认证对用户固有的某些特征进行测量,如指纹、声音或签字。这些需要特殊硬件,这就限制了生物技术只能用在比较少的环境中。其吸引人的地方是生物识别绝不可能丢失和被偷窃。实际上,存在着某些局限性。传统的安全常识认为认证数据应有规则地进行变化。而使用指纹阅读器难于做到这一点。某些方法也遭到了用户的反对。还有,因为生物技术具有极为本质的特点,因此不可能给出准确的答案。

Page 44: 第七章     身份认证

4444

没有两个签字是绝对相同的,即使来自一个人,还有一些莫明其妙的影响,例如疲劳程度、心境状况和健康状况等。在匹配算法中必须建立某些公差。假如某个调用者经认证只有 93% 的可信度,是否让其登录?某些系统使用智能卡存储每个用户的生物技术数据。这避免了需要主机数据库,而是依赖于卡的安全性来防止窜改。在用户和智能卡之间的协议中,结合了来自主机的随机质询,因而避免了重播攻击。

Page 45: 第七章     身份认证

4545

优点: 1. 绝对无法仿冒的使用者认证技术。 缺点: 1. 较昂贵。 2. 不够稳定 ( 辩识失败率高 )。