pam模块使用hotp令牌对用户进行身份验证。

libpam_hotp的Python项目详细描述


libpam hotp是一个pam(可插入认证模块)模块 在python中使用生成的otp(一次性密码)对用户进行身份验证 使用hotp算法。

一。安装

libpam hotp依赖于打包到所有主要发行版中的libpam python。 这个模块已经用Python2.6进行了测试,也许它也可以用2.5进行测试, 当然还有2.7版本。

安装依赖项后,可以将pam_hotp.py放入 /lib/安全目录。

下一步是设置pam,并创建一个包含所有令牌种子的文件。

2.pam的配置

libpam hotp使用libpam python,后者实际上是被调用的模块 因此,对于pam,您的规则行如下:

auth [POLICY] pam_python.so pam_hotp.py [OPTIONS]

可用选项有:

  • file: path to file that store user login - secret seeds mapping (default to /etc/hotp).

示例:

auth sufficient pam_python.so pam_hotp.py file=/etc/hotp_ssh

注意:本模块只提供auth mecanism。

三。种子文件:

种子文件存储用户登录名和机密种子代码之间的映射 用户的令牌。

此文件的每一行都是一个关联,每个字段由 “:”字符。前三个字段是必需的:

  • User login
  • Secret seed code (encoded in hexadecimal form)
  • The number of seconds for a period (see your token datasheet)

您可以添加两个附加字段:

  • The maximum allowed number of drift periods
  • An hash, used to prompt an additionnal password to the user.

散列用salt编码,格式如下:salt$hash, 哈希函数是sha1(concat(password,salt))。

示例:

下面是一个完整的用户stallman示例,带有一个标记周期 30秒,最大漂移3个周期,以及附加密码 “理查德”:

stallman:11223344556677889900AABBCCDDEEFF:30:3:6jsd3$1b6a67161e1cca2b1cd014c59b5bc907435cf8e7

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用唯一的按钮标签单击按钮   代码生成如何使用Java codeModel为数组的特定索引赋值   java如何批量执行Camel SQL插入   java iText 7将ltv添加到现有签名   内存管理Java应用程序突然停止几天后(810)   带MySQL的java注册表单JavaFX在intellij中失败   如何使用eclipse为windows azure java项目启用远程调试   一种通用的java输入输出设计模式   java Android XML(RSS)忽略引号(“”)   java帮助:安卓中的8 X 10 2维按钮数组   java启动Android项目   JWrapper构建java应用程序   java如何在Android应用程序中设置基于日期/时间的默认页面加载?   java循环程序在完成后返回到起点   java Hibernate:更好的整体类还是多类映射?   回溯数独解算器的递归问题[Java]   java查找类用法   java如何在SpringWebFlow中将多个模型绑定到一个视图?