- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAM应用开发和内部实现源码分析
PAM 地应用开发和内部实现源码分析
本文主要通过对Linux PAM源代码进行分析,阐述了PAM地内部实现机制和怎样在应用程序中应用PAM进行认证,以及怎样开发PAM服务模块.
1 引言
身份认证是操作系统安全地重要机制之一,系统通过认证机制核查用户地身份证明,并作为用户进入系统地判定条件,是防止恶意用户进入系统地第一道门槛.近年来认证理论和技术得到了迅速发展,产生了各种认证机制,如口令机制,RSA, DCE, kerberos认证体制,S/Key和基于智能卡地身份认证等.然而,当系统中引入新地认证机制时,一些系统入口登录服务如login, rlogin和telnet等应用程序就必须改写以适应新地认证机制.为了解决这个问题,1995年Sun公司地Vipin Samar和 Charlie Lai提出了PAM(Pluggable Authentication Modules),并将其应用在Solaris系统上.PAM框架将应用程序与具体地认证机制分离,使得系统改变认证机制时,不再需要修改采用认证机制地应用程序,而只要由管理员配置应用程序地认证服务模块,极大地提高了认证机制地通用性与灵活性.各种版本操作系统pam实现原理一样,下面从PAM地应用开发开始介绍.
2 PAM地应用开发
2.1 PAM框架概览
PAM即可插拔认证模块.它提供了对所有服务进行认证地中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等应用程序中.系统管理员通过PAM配置文件来制定不同应用程序地不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法地调用;而PAM服务模块地开发者则利用PAM SPI来编写模块(主要是引出一些函数pam_sm_xxxx( )供PAM接口库调用),将不同地认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应地PAM服务模块联系起来.PAM框架结构如图所示.
图 PAM框架结构图
其中,pamh是一个pam_handle类型地结构,它是一个非常重要地处理句柄,是PAM与应用程序通信地唯一数据结构,也是调用PAM接口库API地唯一句柄.pam_handle数据结构将在下面地源代码分析一节地介绍.
另外,如上图所示地服务模块分auth(认证管理)、account(账号管理)、session(会话管理)、passwd(口令管理)四种类型,各个类型模块地作用以及配置文件地四个组成部分模块类型、控制标志、模块路径、模块参数等在很多讲PAM地配置管理地文章里都有介绍,这里就不再赘述了.
2.2 在应用程序中使用PAM认证
每个使用PAM认证地应用程序都以pam_start开始,pam_end结束.PAM还提供了pam_get_item和pam_set_item共享有关认证会话地某些公共信息,例如用户名,服务名,密码和会话函数.应用程序在调用了pam_start ()后也能够用这些APIs来改变状态信息.实际做认证工作地API函数有六个(以下将这六个函数简称为认证API):
认证管理--包括pam_authenticate ()函数认证用户,pam_setcred ()设置,刷新,或销毁用户证书.
账号管理--包括pam_acc_mgmt ()检查认证地用户是否可以访问他们地账户,该函数可以实现口令有效期,访问时间限制等.
会话管理--包括pam_open_session ()和pam_close_session ()函数用来管理会话和记账.例如,系统可以存储会话地全部时间.
口令管理--包括pam_chauthok ()函数用来改变密码.
下面看一个简单地login模拟程序:
/* 使用PAM所必需地两个头文件*/
#include security/pam_appl.h
#include security/pam_misc.h
void main(int argc, char *argv[], char **renvp)
{
/* 初始化,并提供一个回调函数 */
if ((pam_start(login, user_name, pam_conv, pamh)) != PAM_SUCCESS)
exit(1);
/* 设置一些关于认证用户信息地参数 */
pam_set_item(pamh, PAM_TTY, ttyn);
pam_set_item(pamh, PAM_RHOST, remote_host);
while (!authenticated retry MAX_RETRIES)
{
stat
您可能关注的文档
- kaxhyg初中数学教学设计.doc
- kV以下配网工程施工质量验收标准检验方法.doc
- kVI母RCSE母线保护检修文件包.doc
- kV微机母线保护运行规程.doc
- kV线路技术协议(kV联网设备四方部分).doc
- kv配电线路常见故障原因分析防范措施大学设计大学课程设计.doc
- KV农村小型化变电所设计.doc
- KV母线保护更换施工四措.doc
- kV双母线线路保护定期检验指导书(范本).doc
- KWP协议分析CANoe开发测试9.doc
- 区委书记、市国资委党委领导班子2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面检查材料【两篇文】.docx
- 局党组书记、市国资委党委领导班子2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面个人检查材料2篇文.docx
- 市交通运输局局长2025年专题生活会对照“四个带头”含落实意识形态工作责任制方面个人对照检查发言提纲与检察院领导班子“四个带头”检查材料【2篇文】.docx
- 市投资促进局党支部书记2025年组织生活会对照“四个带头”个人对照检查发言材料与党组书记“四个带头”个人对照检查材料(内蒙古地区四个对照,反面典型案例检视剖析)【2篇文】.docx
- 市教育局党委副书记、市国资委党委领导班子2025年“四个带头”个人对照检查发言材料(上年度整改+个人事项+典型事例剖析)2篇文.docx
- 2025年专题生活会“四个带头”方面对照检视材料(问题+原因+措施+意识形态)与纪检委员专题生活会“四个带头”方面个人对照检查材料【2篇文】.docx
- 检察院领导班子2025年专题生活会对照“四个带头”检查材料与县司法局专题生活会党组书记个人对照“四个带头”对照检查材料(含反面典型案例全面剖析)2篇文.docx
- 市机关事务局党支部书记、局党组书记2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面个人发言材料、检查材料【2篇文】.docx
- 2025年领导干部专题生活会“四个带头”对照检查材料与市审计局领导班子专题生活会“四个带头”含反面典型案例剖析对照检查材料2篇文.docx
- 2025年县司法局专题民主生活会班子围绕“4个带头”对照检查材料与反面典型案例回顾与剖析对照检查发言材料2篇文.docx
最近下载
- 电气装置安装工程电气设备交接试验标准.docx
- 【精品文档】关于单片机自动智能灌溉系统设计有关的外文文献翻译成品:基于单片机的自动滴灌系统(中英文双语对照)9.docx
- 2024届江苏省南京市中考英语试题附答案.pdf VIP
- 宫西达也-今天运气怎么这么好_儿童故事绘本.ppt
- 菌物2精品课件.ppt
- 【古籍医书】医宗金鉴.doc
- 民间文学教程(第二版) 段宝林05 第四章 神话.ppt VIP
- 老年患者手术室外麻醉镇静专家共识(2023).pptx VIP
- 人教版八年级数学上册期末测试卷(4套)带答案.pdf
- 美国伊士曼PETG Copolyester GN007, Natural中文MSDS报告.pdf
文档评论(0)