3

ハッシュを使用して、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人のユーザーのみがアクセスできるのはなぜですか。

4

1 に答える 1