私は、サーバー管理者がネットワーク全体でスクリプトの結果を分析できるように、Linux上でいくつかのマルウェア検出スクリプト用のGUIツールを作成しています。
/etc/shadowで使用されている暗号化が強力であることがわかっている限り、私のアプリケーションのルートに同じパスワードを使用し、/etc/shadowの変更を確認し、dbのルートパスワードを同期し、ルート資格情報を使用して管理します。管理者ログインを許可したい。 。
PHPを使って開発します。これが正確にどの暗号化を使用しているのか、そして人々がルート資格情報を使用してPHPから私のGUIにログインできるように、PHPで同じ機能を実装できるかどうか疑問に思います。
ベストアンサー1
パスワードフィールドの値は、$XY$
数字Xで始まるか、2つのDES(長さに応じて標準または拡張)のいずれかです。
DESはもはや安全ではなく、ほとんどサポートされていません。次の指定Y
に従ってオプションです(2番目の項目以降)。X
$
1
:CRYPT_MD5(Y
null)
2
:CRYPT_BLOWFISH(またはY
可能性があります):CRYPT_SHA256:CRYPT_SHA512a
x
y
5
6
最も一般的なの$6$
は、計算がres = sha(res + salt)
最初から繰り返し(標準5000回)の適用に基づいていることですres = password
。別のラウンド数を指定してソルトの前に保存できない限り、ソルトは2番目$
から3番目まで続きます。$
$6$salt$result
$6$rounds=N$salt$result
(最初は5000ラウンドを意味します)。
確かにこれを直接実装できますが、PHPのcryptが使用するアルゴリズム指定をサポートしているかどうかを確認するか、別の方法で呼び出しを見てみましょう(Ubuntuのパッケージなどmkpasswd
)。whois
これがうまくいくことを考えると、HTTPSを介していなくてもrootアカウントとパスワードを使用しないことをお勧めします。 PHPが破損している場合は、システムのルートパスワードをスヌーピングするために何かを挿入するのは非常に簡単です。