zoukankan      html  css  js  c++  java
  • 在Free Radius的PAP认证过程中使用MD5密码

    前一段时间,有个朋友过来问我关于802.1x的认证问题。具体的问题是这样的:

    在802.1x的认证过程中,使用Free Radius加LDAP实现认证服务器,使用LDAP的原因是对方要实现集中管理帐户,而为了保密原因,LDAP中存储的全部是MD5加密过后的密码,而且LDAP不能做任何修改。

    现在可供选择的认证方式有2种:pap和mschap。pap认证方式中,freeradius收到客户端发来的认证密码为明文,而mschap则为由NTPASSWORD(MD4加密)计算而来的challenge。而由于MD4和MD5均为不可逆的加密方式,有MD5密文无法得到明文,因此由LDAP中的MD5密文是无法计算出相应的chanllenge与客户端进行对比,所以mschap首先被否决了。

    现在只剩下pap认证方式可供选择,而在freeradius的ldap配置文件中,明确提到LDAP认证只能用于明文密码:

    #  However, LDAP can be used for authentication ONLY when the
    #  Access-Request packet contains a clear-text User-Password
    #  attribute.  LDAP authentication will NOT work for any other
    #  authentication method.
    #
    #  This means that LDAP servers don't understand EAP.  If you
    #  force "Auth-Type = LDAP", and then send the server a
    #  request containing EAP authentication, then authentication
    #  WILL NOT WORK.

    因此只能修改freeradius中的ldap模块,将收到的明文密码经过MD5加密之后再与LDAP进行认证,返回认证结果。该认证模块位于freeradius的源码目录下src/modules/rlm_ldap/rlm_ldap.c中,将password进行md5计算后再进行对比。经测试,达到了预想的效果。

    后记:但是该方式只是实现了简单的MD5密码的存储,在PAP认证过程中,依然传输的是明文密码,其安全性并没有本质改变,因此如果条件允许的话(更改LDAP),还是应该采用MSCHAP的方式进行认证以提高系统的安全性。

  • 相关阅读:
    spirngmvc整合mybatis
    C#微信支付
    centos mysql数据库主从同步
    centos 搭建ftp
    修改 Docker 默认网桥地址
    安装docker
    脚本自动化装centos6.5 python2.6升级2.7
    centos6.5 python2.6升级2.7
    weblogic 安装及发布web应用
    centos6.5安装pip方法
  • 原文地址:https://www.cnblogs.com/hotzenplotz/p/2510645.html
Copyright © 2011-2022 走看看