PAM淺析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAM淺析

目录 题外话 2 第一章 PAM概念理解——体系结构 3 1.1 什么是PAM 3 1.2 PAM的分层体系结构 3 1.3 功能实现层简介 5 1.4 应用接口层简介 5 1.5 配置文件简介 7 1.6 U盾的来源——口令映射 9 第二章 PAM API解析 12 2.1 PAM接口库主要数据结构 12 2.2 PAM API几个重要的接口函数解析 14 第三章 密码复杂度配置策略 16 3.1 Linux用户密码策略 16 3.2 cracklib模块 18 3.3 配置文件修改示例 20 第四章PAM底层实现解析 20 题外话 理解一个系统,本人认为应该从系统的目的和体系结构出发,先了解该系统的最终目的,其次了解系统的整体架构,最后带着目的和心中已经绘制好的架构图,逐步深入分析内部实现。本文主要对PAM体系结构、PAM API和PAM 配置文件进行了一定程度的分析,同时简要的介绍了PAM SPI,意在使初学者能对PAM能有个整体和初步的了解,同时掌握初步的PAM API的使用能力。个别地方也许理解地不正确或者不全面,希望读者能够结合其他资料进行学习。 第一章 PAM概念理解——体系结构 1.1 什么是PAM PAM(Pluggable Authentication Module),中文意思即可插拔的认证模块,按照本人的理解,简单的说就是一种用于认证的插件,这个插件可以对登陆的用户进行身份的鉴别,也可以对用户信息(账号、密码等)进行管理。它的优势就是,跟你要登陆的主程序无关,它就是一个只管负责身份鉴别的模块,以一个OA(办公自动化)系统举例,首先你要登录,那就进入OA系统的PAM模块,把你的账户和密码输给PAM模块,PAM模块要进行检查,检查成功了,才可以进入到OA系统操作主界面,当然如果你登陆不成功,那对不起,你连OA系统操作主界面的一面都没见过,直接从PAM模块退出了,相关活动图如图1.1所示。从图1.1中,可以看出,如果你的OA系统不需要进行用户的身份认证了,直接将 图1.1 PAM模块与OA系统关系图 PAM模块去掉就可,如果你觉得你的PAM功能还不够强大,你那把它“拔”下来,再换个功能更强大的PAM也可,对OA系统没有任何影响。不过,如果你仅仅以为PAM里面只对账户和密码进行识别的话,那就太小瞧它的功能了,之后我会给大家一点一点的剥开PAM的神秘面纱,现在我们已经基本知道PAM是用来做什么的了,还是先来看看PAM的体系结构吧。 1.2 PAM的分层体系结构 PAM 为了实现其插件功能和易用性,它采取了分层设计思想:让各功能模块从应用程序中独立出来,然后通过PAM API作为两者联系的纽带,这样应用程序就可以根据需要灵活地在其中“插入”所需的功能模块,从而真正实现了“各类功能,随需而用”。这些功能模块,可分为这么几类(身份鉴别、帐户管理、会话管理以及口令管理)。实际上,这一思路非常符合软件设计中的高内聚,低耦合这一重要思想,PAM 的体系如图1.2所示。 图1.2 PAM体系结构图 从上图可以看出,PAM API 起着承上启下的作用,它是应用程序和PAM功能模块之间联系的纽带:当应用程序调用 PAM API 时,应用接口层按照配置文件 pam.conf 的规定,加载相应的功能模块。然后把请求(即从应用程序那里得到的参数)传递给底层的功能模块,这时对应的功能模块就可以根据要求执行具体的操作了。当功能模块执行完相应操作后,将结果返回给应用接口层,然后由接口层根据配置的具体情况将来自功能模块的应答返回给应用程序。 还拿OA系统举例,假定我们的OA系统不仅需要身份的鉴别,还需要账户的管理、口令的管理等功能,很简单,在我们的OA系统程序里只需要利用PAM API调用相关的接口函数即可,至于这些功能具体是怎么实现的,OA根本没必要知道。如图1.3,是OA系统与PAM插件的关系图。 图1.3 OA系统与PAM插件关系图 1.3 功能实现层简介 功能实现层处于整个结构的最底层,它向上为接口层提供用户身份鉴别等服务,也就是说所有具体的实现工作都是由该层的功能模块来完成的。对于应用程序,有些不但需要验证用户的口令,还可能要求验证用户的帐户是否已经过期。此外,有些应用程序也许还会要求记录当前会话的有关信息或改变口令等,所以 PAM 在功能实现层除了提供身份鉴别模块外,同时提供了帐户管理、会话管理以及口令管理功能的模块。当然,这四种功能模块并不是所有应用程序所必需的,而是根据需要灵活取舍。 1.4 应用接口层简介 应用接口层位于 PAM 结构的中间部分,它向上为应用程序屏蔽了用户鉴别等过程的具体细节,向下调用功能实现层中的具体功能模块所提供的特定服务。由图

文档评论(0)

sa1fs5g1xc1I + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档