与LDAP服务器的安全连接

时间:2013-04-15 02:20:54

标签: php security ldap security-by-obscurity

我正在使用哈希来加密和解密我发送给cass构造的密码。示例如下:

 public static function HashPassword ($Password){
        $salt = self::$Salt;
        return trim
            (base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $Password, MCRYPT_MODE_ECB, mcrypt_create_iv(
            mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
    }//Get hashed Password

然后解密的是protected static function

 protected static function DecryptPassword($Password){
        $salt = self::$Salt;
        return trim
                (mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt,base64_decode($Password), MCRYPT_MODE_ECB, mcrypt_create_iv(
                mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
    } // Decrypt the password

然后我通过以下方式调用连接:

$Connection = LDAP::Connect('LDAPSERVER','LDAPLOGIN','onVidHn5r4WNyxzlDHD8TvUY9AjyiHg+ZC5PoOhIXkU=');

出于安全考虑,我已经建立了一个虚拟密码并隐藏了我的服务器凭据。

连接功能:

 public static function Connect($Host,$Username,$Password){
        self::$Host = $Host;
        self::$Admin = $Username;
        //Assign to global variables to be used throughout this framework
            $Password = self::DecryptPassword($Password);
        self::$Password = $Password; // Assign the decrypted password

        $LDAPServer = ldap_connect($Host);
        $Connect = ldap_bind($LDAPServer,$Username,$Password);
        if (!$Connect){
            die ("Cannot Connect To LDAP Server");
        }
    }

我的整体问题是,这是一种有效的安全方法,用于向我的API传输带有秘密盐的密码?

我不喜欢以纯文本形式输入密码:

ldap_bind('host','user@server','PlainTextPassword');

以上是一个例子,我个人不能接受。

那么这是使用TCP协议安全连接到我的LDAP服务器的有效方法吗?

  

虽然这个问题的外观,我可以确认我可以   成功连接到我的LDAP服务器,提供正确的凭据   输入;所以这不是问题。我恳请一位保安人员   方面,没有我的安全知识,我不想妥协   无论如何形状或形式的数据或服务器,因此这是为什么   生产阶段,只有一个用户可以访问。

1 个答案:

答案 0 :(得分:1)

这完全没有意义,我很害怕。

在建立与服务器的连接方面,这并没有给你任何额外的安全性,因为密码仍然以解密的形式传输到服务器。这样做的唯一方法是在源代码中混淆密码 - 我说“混淆”而不是“加密”,因为解密密码到源文本的所有必要信息也包含在源代码中。

  

那么这是使用TCP协议安全连接到我的LDAP服务器的有效方法吗?

没有。如果您想要安全连接,则需要使用LDAP over SSL。