0

背景:次のように機能するパスワード ジェネレーターを作成しました。

  • 130 のランダム ビットを生成する
  • の 26 要素としてランダム ビットを解釈します。GF(32)
  • 要素を係数として使用して、25 次多項式を構築します。
  • 32 の可能なすべての入力について多項式を評価する
  • 変更された base32 エンコーディングを使用して結果をエンコードします

これにより、セキュリティを損なうことなく、パスワード入力中のいくつかのタイプミスを許容できる強力なパスワード (130 ビットのエントロピー) が得られます。

これまでのところ、アルゴリズムのエラー修正部分をssh-addコマンドに統合しましたが、これは問題なく機能しています。ログインパスワードを同じようにスムーズに使用したいと思います。

質問:pamユーザーが入力したパスワードを他のモジュールに表示される前に変更するモジュールを作成することは可能ですか? 特にecryptfs、アルゴリズムがユーザーが入力したパスワードのタイプミスを修正した後にホームディレクトリをマウントできるように、修正されたパスワードを確認したいと思いますか?

4

1 に答える 1

0

これを別のモジュールとして行う明確な方法はありません。pam_unixただし、モジュールを簡単に変更するだけで実行できます。

pam_sm_authenticate()次のコードの末尾に向かってmodules/pam_unix/pam_unix_auth.c、次のコードが見つかります。

    /* verify the password of this user */
    retval = _unix_verify_password(pamh, name, p, ctrl);
    name = p = NULL;

これを変更して、必要なエラー修正を適用できます。

    /* verify the password of this user */
    retval = _unix_verify_password(pamh, name, p, ctrl);
    if (retval == PAM_AUTH_ERR) {
        apply_error_correction(p);
        retval = _unix_verify_password(pamh, name, p, ctrl);
    }
    name = p = NULL;
于 2014-08-11T12:02:34.973 に答える