第5讲 网络环境身份认证 第4章:操作系统基础安全性 第2部分/共5部分
本讲内容 主题:网络环境身份认证 教材内容: 第4.3节:面向网络的身份认证 第4.4节:基于PAM的统一认证框架 © 2009 电子工业出版社
网络环境中的用户身份认证需求 © 2009 电子工业出版社
例4.9 —网络环境中的身份认证方法 请参考本地主机上的身份认证方法的思路,给出一个在网络环境中进行用户身份认证的方法,要求使同一个合法用户可以在不同的主机上顺利进行身份认证。 © 2009 电子工业出版社
例4.9 —网络环境中的身份认证方法 第一部分:身份认证信息管理 第二部分:客户机软件的功能 第三部分:服务器软件的功能 © 2009 电子工业出版社
例4.9—身份认证信息的管理 帐户信息 口令信息 用户组信息 wenchang:x:500:300:Wenchang Shi:/home/wenchang:/bin/bash wenchang:$1$k7TyrJaO$DS/P61XHIz1xWAqLcdnQz1:14091:0:99999:7::: sisefellow:x:300:wenchang,binliang,zhiyong,zhaohui 帐户信息 口令信息 用户组信息 © 2009 电子工业出版社
例4.9—客户机软件的功能 用户提供的:帐户信息+口令信息 身份认证请求 把请求发送给服务器 由服务器进行身份认证 © 2009 电子工业出版社
例4.9—服务器软件的功能 身份认证请求 帐户信息+口令信息 根据请求中的账户信息和口令信息,结合身份认证信息数据库中的对应信息,判断账户和口令的合法性。 把判断结果返回给客户机 © 2009 电子工业出版社
例4.10—客户机和服务器兼顾的认证 请给出一个在网络环境中的客户机/服务器模式的用户身份认证方法,要求客户机和服务器都可以执行认证工作,允许根据用户来确定哪些认证由服务器执行,哪些认证由客户机执行。 © 2009 电子工业出版社
例4.10—客户机和服务器兼顾的认证 由客户机执行 由服务器执行 表示所有账户 root:x:0:0:root:/root:/bin/bash -wenchang::500:300::: +weinan::501:301::: +::999:999::: 由客户机执行 由服务器执行 表示所有账户 © 2009 电子工业出版社
例4.10—客户机和服务器兼顾的认证 查询本机账户信息,判断是否由本机认证。 若需本机认证,则客户机执行认证。 若需服务器认证,则向服务器发请求(含账户名和口令)。 © 2009 电子工业出版社
例4.10—客户机和服务器兼顾的认证 服务器根据认证请求和认证信息数据库进行认证。 把认证结果返回给客户机。 © 2009 电子工业出版社
网上身份认证系统NIS 美国Sun公司开发的NIS(Network Information Service)系统实现了对例4.10中给出的方法的支持。 © 2009 电子工业出版社
密码体制 秘密密钥密码体制—单钥密码体制 公开密钥密码体制—双钥密码体制 © 2009 电子工业出版社
公钥加密与数字签名 公钥加密 数字签名 © 2009 电子工业出版社
例4.11—Alice与Bob间的互认证与加密通信 设Alice和Bob是网络中需要相互通信的两个实体,请利用公开密钥密码算法和秘密密钥密码算法,给出一个Alice与Bob之间的身份认证和信息加密传输的方法。 © 2009 电子工业出版社
例4.11—Alice与Bob间的互认证与加密通信 Alice的密钥对:KPUB-A,KPRI-A Bob的密钥对:KPUB-B,KPRI-B © 2009 电子工业出版社
例4.11—Alice与Bob间的互认证与加密通信 ① Alice生成会话密钥Ksess,用Bob的公钥KPUB-B加密,结果为: [Ksess]KPUB-B ……⑴ ② Alice用自己的私钥KPRI-A对结果⑴签名,结果为: {[Ksess]KPUB-B}KPRI-A ……⑵ ③ Alice把结果⑵传送给Bob。 ④ Bob用Alice的公钥KPUB-A解开结果⑵,得到结果⑴,证明结果⑵是由Alice发送的,由此确认Alice的身份。Bob用自己的私钥KPRI-B对结果⑴解密,便得到Ksess。 © 2009 电子工业出版社
例4.11—Alice与Bob间的互认证与加密通信 ⑤ Bob用Alice的公钥KPUB-A对Ksess加密,结果为: [Ksess]KPUB-A ……⑶ ⑥ Bob用自己的私钥KPRI-B对结果⑶签名,结果为: {[Ksess]KPUB-A}KPRI-B ……⑷ ⑦ Bob把结果⑷传送给Alice。 ⑧ Alice用Bob的公钥KPUB-B解开结果⑷,得到结果⑶,证明结果⑷是由Bob发送的,由此确认Bob的身份。Alice用自己的私钥KPRI-A对结果⑶解密,便得到Ksess。如果这个Ksess就是Alice原来生成的那个Ksess,则表示,经过协商,Alice和Bob决定使用会话密钥Ksess。 ⑨ Alice和Bob开始进行信息传输,传输的信息采用Ksess进行加密和解密。 © 2009 电子工业出版社
例4.12—网上认证与加密通信 设有一个客户机/服务器模式的网络环境,请给出一个通过服务器认证客户机上的用户的身份的方法,要求不能在网络中传输明文的或者加密过的用户口令。 © 2009 电子工业出版社
例4.12—网上认证与加密通信 在服务器上存放服务器和用户的密钥对。 用户登录时把用口令加密的用户私钥传给用户。 若以输入的口令解密成功,则认证成功。 协商会话密钥后进行加密通信。 © 2009 电子工业出版社
例4.13 —客户机和服务器兼顾的增强认证 设有一个客户机/服务器模式的网络环境,请给出在客户机上登录的用户身份认证方法,要求客户机和服务器都可以执行认证工作,允许根据用户来确定哪些认证由服务器执行,哪些认证由客户机执行,而且,不能在网络中传输明文的或者加密过的用户口令。 © 2009 电子工业出版社
例4.13 —客户机和服务器兼顾的增强认证 在客户机的账户信息中添加标识:+或-,分别标识服务器认证、客户机认证。(见例4.10) 在服务器中保存服务器和客户机的密钥对,客户机私钥加密存放。(见例4.12) 用户登录时, 若需服务器认证,则客户机把账户名信息传给服务器,服务器把密钥信息传给客户机(私钥是加密的)。(见例4.12) 客户机用输入的口令解密私钥,解密成功则认证成功。 若只需客户机认证,则认证直接由客户机实施即可。 © 2009 电子工业出版社
网上身份认证系统NIS+ 美国Sun公司开发的Secure RPC实现了对例4.12中给出的方法的支持,而Sun公司开发的以Secure RPC为基础的NIS+系统实现了对例4.13中给出的方法的支持。 © 2009 电子工业出版社
颐和园游玩的启示 进园:购买门票 划船:在门票的基础上,另外购买船票。 特色服务项目:在颐和园划船 推而广之: 门票 通行证 船票 服务卡 通行证+服务卡 获得特色服务 © 2009 电子工业出版社
例4.14—身份认证+服务认证=服务认可 设在一个网络环境中,用户必须拥有服务认可才能获得特定的服务,请给出用户身份认证和服务认证的一种方法,要求不能在网络中传输明文的或者加密过的用户口令,而且,不能使用公开密钥密码算法。 © 2009 电子工业出版社
例4.14—身份认证+服务认证=服务认可 © 2009 电子工业出版社
例4.14—身份认证+服务认证=服务认可 ① 用户在客户机上登录时,客户机把用户的帐户名传送给服务器Sauth,请求身份认证。 ② 服务器Sauth验证帐户名的合法性,生成会话密钥Ksess-1和通行证Tgrant,其中,Ksess-1也成为Tgrant中的内容之一。用服务器Sgrant的密钥Kgrant加密Tgrant,结果为: [Tgrant]Kgrant ……⑴ 把Ksess-1和结果⑴组合在一起,并以用户口令Dpw为密钥加密,结果为: [Ksess-1, [Tgrant]Kgrant] Dpw ……⑵ 把结果⑵传送给客户机。 © 2009 电子工业出版社
例4.14—身份认证+服务认证=服务认可 ③ 客户机用输入的口令对结果⑵解密,解密成功则表明口令正确,登录成功,得到会话密钥Ksess-1和结果⑴。 客户机生成服务请求Qgrant,用Ksess-1加密,结果为: [Qgrant]Ksess-1 ……⑶ 把结果⑶和结果⑴传送给服务器Sgrant。 ④ 服务器Sgrant用自己的密钥Kgrant对结果⑴解密,得到Tgrant。从Tgrant中得到Ksess-1。用Ksess-1对结果⑶解密得到Qgrant。 根据Qgrant和Tgrant分析服务请求并验证其合法性,生成会话密钥Ksess-2和服务卡Tserv,Ksess-2成为Tserv中的内容之一。用服务器Sserv的密钥Kserv加密Tserv,结果为: [Tserv]Kserv ……⑷ 把Ksess-2和结果⑷组合在一起,用Ksess-1加密,结果为: [Ksess-2, [Tserv]Kserv]Ksess-1 ……⑸ 把结果⑸传送给客户机。 © 2009 电子工业出版社
例4.14—身份认证+服务认证=服务认可 ⑤ 客户机用Ksess-1对结果⑸解密,得到会话密钥Ksess-2和结果⑷。客户机生成启动服务的请求Qserv,并用Ksess-2对它加密,结果为: [Qserv]Ksess-2 ……⑺ 把结果⑺和结果⑷传送给服务器Sserv。 ⑥ 服务器Sserv用自己的密钥Kserv对结果⑷解密,得到Tserv。从Tserv中得到Ksess-2。用Ksess-2对结果⑺解密得到Qserv。根据Qserv和Tserv分析启动服务的请求的合法性,如果合法,则启动相应服务。 © 2009 电子工业出版社
面向服务的网上认证系统Kerberos 美国麻省理工学院(MIT)开发的Kerberos认证系统实现了对例4.14中给出的方法的支持。 © 2009 电子工业出版社
插拔式统一认证框架PAM PAM(Pluggable Authentication Modules)是一个统一的身份认证框架。 起初,它是由美国Sun公司为Solaris操作系统开发的。 后来,很多操作系统都实现了对它的支持。 © 2009 电子工业出版社
PAM认证系统的构成 PAM应用编程接口(API) PAM模块(动态装载库),提供以下服务功能支持: PAM配置文件 身份认证(auth) 账户管理(account) 口令管理(password) 会话管理(session) PAM配置文件 © 2009 电子工业出版社
PAM认证系统的工作原理 © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so 服务程序的名称 © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so 服务类型 © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so Requisite:模块执行失败时报告失败并结束认证。 Required:模块执行失败时报告失败但继续认证。 Sufficient:模块执行成功时报告成功并结束认证。 Optional:模块的执行不影响报告结果和认证过程。 命令控制标记 © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so 待执行的模块名称及必要的参数 © 2009 电子工业出版社
例4.15—PAM配置文件/etc/pam.conf中示例 UNIX系统中为OpenSSH服务程序定义的配置信息 sshd auth required /lib/security/pam_env.so sshd auth sufficient /lib/security/pam_unix.so likeauth nullok sshd auth required /lib/security/pam_deny.so sshd account required /lib/security/pam_unix.so sshd password required /lib/security/pam_cracklib.so retry=3 sshd password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow sshd password required /lib/security/pam_deny.so sshd session required /lib/security/pam_limits.so sshd session required /lib/security/pam_unix.so OpenSSH进行身份认证时,首先执行pam_env模块,然后执行pam_unix模块,如果pam_unix执行成功且pam_env没有失败,则认证结束并报告成功。如果pam_unix执行失败,则接着执行pam_deny模块。 © 2009 电子工业出版社
问题? wenchang@ruc.edu.cn © 2009 电子工业出版社