passwd에 사용되는 기본 SHA512 솔트와 섀도우 파일에 저장된 해시는 무엇입니까?

passwd에 사용되는 기본 SHA512 솔트와 섀도우 파일에 저장된 해시는 무엇입니까?

useradd를 사용하여 사용자를 추가하고 -p 플래그를 사용하여 암호화된 비밀번호를 지정하고 싶습니다. 내가 사용하고 있는 유닉스 시스템은 SHA512 해시를 사용하여 /etc/shadow 파일에 비밀번호를 저장한다는 것을 알게 되었습니다. /etc/pam.d/common-password를 보면 다음과 같이 표시됩니다.

# Explanation of pam_unix options:
#
# The "sha512" option enables salted SHA512 passwords.  Without this option,
# the default is Unix crypt.  Prior releases used the option "md5".
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs.
#
# See the pam_unix manpage for other options.

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so sha512

해시를 생성하고 이를 내 해시와 비교할 수 있도록 소금이 무엇인지 알아야 합니다.

useradd ... ... -p INSERT_HASHED_PASS_HERE

답변1

Salt는 두 명의 사용자가 동일한 비밀번호를 사용하는 경우 비밀번호 변형이 발생하는 [이상적으로] 무작위로 생성되는 값입니다. 무작위 솔트를 사용하면 사용자는 여러 시스템에서 동일한 비밀번호를 가질 수 있지만 이는 명확하지 않습니다. 당신이하려는 일은 해시를 소금에 절이는 목적을 우회하는 것 같습니다.

비밀번호 해시를 한 번 생성하고 자동화 목적으로 여러 위치에서 사용하려고 한다고 가정합니다.

임의의 문자열을 솔트로 전달할 때 비밀번호 해시를 생성하는 데 사용할 수 있는 여러 유틸리티가 있습니다. 그러나 앞서 말했듯이 처음부터 소금의 목적을 부정하는 것입니다.

답변2

passwd/etc/shadow 파일에서 사용자 비밀번호를 생성하고 추가하는 명령을 사용하는 것이 가장 좋습니다 . 또한 이전 답변에서 언급했듯이 해시를 고유하게 유지하려면 소금이 무작위여야 합니다.

그러나 여전히 명령으로 비밀번호 해시를 생성하려는 경우 다음 명령을 사용할 수 있습니다.

옵션 1:

openssl passwd -6 -salt $(openssl rand -base64 12) yourpassword

여기:

  • -6은 sha-512 암호화 알고리즘을 나타냅니다.
  • openssl rand - 임의의 소금 생성
  • yourpassword는 해시하려는 비밀번호입니다.

옵션 2:

mkpasswd --method=SHA-512 --stdin

이것은 작동합니다.

인용하다:

Linux 해시 비밀번호 생성

수동으로 비밀번호 생성

관련 정보