본문 바로가기

리눅스

리눅스 password hashing 알고리즘 변경하기

728x90

리눅스 password hashing 알고리즘 변경하기

주요한 패스워드 해시 알고리즘에 대한 간략한 설명

  1. MD5 (Message Digest 5)
    • MD5는 빠르고 간단한 해시 알고리즘으로, 원래는 메시지 무결성을 확인하기 위해 개발되었습니다.
    • 그러나 MD5는 현재 보안에 취약하며, 충돌이 발생할 가능성이 높아져서 패스워드 저장에 사용해서는 안 됩니다.
  2. SHA-1 (Secure Hash Algorithm 1)
    • SHA-1은 SHA 알고리즘의 한 버전으로, MD5와 마찬가지로 현재 보안에 취약한 알고리즘으로 간주됩니다.
    • 보안 전문가들은 SHA-1을 피하고 더 강력한 해시 알고리즘을 권장합니다.
  3. SHA-256, SHA-384, SHA-512
    • SHA-2 시리즈는 SHA-1의 보안 취약점을 보완한 해시 알고리즘입니다.
    • SHA-256은 256비트 해시값을 생성하며, SHA-384와 SHA-512는 더 긴 해시값을 생성합니다.
    • 현재 많은 시스템에서 사용되고 있으며, 보안 강화를 위한 좋은 선택입니다.
  4. bcrypt
    • bcrypt는 비밀번호 해싱에 사용되는 알고리즘 중에서 가장 강력한 보안을 제공합니다.
    • 무작위 솔트(salt)와 함께 사용되어 무작위한 문자열을 해시에 추가하여 레인보우 테이블 공격을 어렵게 만듭니다.
    • 파라미터로 작업 요소(factor) 및 솔트를 조정하여 보안 수준을 높일 수 있습니다.
  5. Argon2
    • Argon2는 비밀번호 해싱을 위한 최신 알고리즘 중 하나로, PHC (Password Hashing Competition)에서 승인되었습니다.
    • 병렬 처리 및 메모리 요구 사항을 조정하여 공격자에게 어렵게 만들 수 있습니다.
    • 현재 많은 보안 응용 프로그램 및 시스템에서 사용되고 있습니다.

암호화 알고리즘은 계속 발전하며 보안 전문가들이 취약점을 발견하고 개선하는 데 기여하고 있습니다. 따라서 보안을 유지하기 위해서는 항상 최신 및 권장되는 해시 알고리즘을 사용하는 것이 중요합니다. 또한 솔트와 적절한 작업 요소(factor)를 사용하여 보안을 높이는 것이 좋습니다.

728x90

authconfig 명령어를 사용하여 패스워드 해시 알고리즘을 변경하는 방법

authconfig 명령어를 사용하여 리눅스에서 패스워드 해싱 알고리즘을 변경할 수도 있습니다.

authconfig 명령어는 다양한 시스템 인증 및 암호화 설정을 구성하는 데 사용됩니다.

1. authconfig 설치

yum install -y authconfig

2. authconfig 사용법

authconfig [OPTIONS]
더보기

authconfig 주요 옵션

  • -a, --enable-* 또는 -d, --disable-*
    • 인증 메커니즘을 활성화(-a, --enable-*) 또는 비활성화(-d, --disable-*)합니다. 예를 들어, --enableshadow를 사용하여 shadow 패스워드를 활성화할 수 있습니다.
  • -c, --enablenis
    • NIS (Network Information Service) 지원을 활성화합니다.
  • -f, --force
    • 변경 사항을 강제로 적용합니다.
  • -h, --help
    • 도움말을 표시합니다.
  • --enableldap
    • LDAP 인증을 활성화합니다.
  • --disableldap
    • LDAP 인증을 비활성화합니다.
  • --ldapserver=SERVER
    • LDAP 서버 주소를 설정합니다.
  • --ldapbasedn=DN
    • LDAP 베이스 DN (Distinguished Name)을 설정합니다.
  • --enableradius
    • RADIUS (Remote Authentication Dial-In User Service) 인증을 활성화합니다.
  • --disableradius
    • RADIUS 인증을 비활성화합니다.
  • --enablesmbauth
    • SMB (Server Message Block) 인증을 활성화합니다.
  • --disablesmbauth
    • SMB 인증을 비활성화합니다.
  • --enablewinbind
    • Winbind 인증을 활성화합니다.
  • --disablewinbind
    • Winbind 인증을 비활성화합니다.
  • --update
    • 변경 사항을 저장하고 PAM (Pluggable Authentication Modules) 구성을 업데이트합니다.
  • --savebackup=DIR
    • 현재 설정의 백업을 저장할 디렉터리를 지정합니다.
  • --restorebackup=DIR
    • 이전 설정 백업을 사용하여 설정을 복원합니다.

authconfig 명령어 사용 예시

패스워드 암호화 알고리즘 확인

authconfig --test | grep hashing
$ authconfig --test | grep hashing
 password hashing algorithm is sha512
authconfig --test | grep password
$ authconfig --test | grep password
 shadow passwords are enabled

/etc/login.defs 파일 확인

  • authconfig 명령어를 사용하여 패스워드 해시 알고리즘을 변경한 후에는 /etc/security/pwquality.conf 파일과 /etc/security/login.defs 파일의 설정이 자동으로 변경됩니다.
vim /etc/login.defs
$ tail /etc/login.defs
...
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512 

패스워드 암호화 알고리즘 변경(md5 > sha512 변경)

authconfig --passalgo=sha512 --update

패스워드 변경일 수정

chage -d 0 유저네임

[참고]

일반적으로 사용되는 운영체제별 패스워드 해싱 알고리즘 및 해당 알고리즘의 시작 문자입니다.(파일 경로: /etc/shadow)

운영체제 알고리즘 알고리즘 시작 문자 비고
CentOS 5 MD5 $1$  
CentOS 6 SHA512 $6$  
CentOS 7 SHA512 $6$  
Ubuntu 20.04 SHA512 $6$  
Ubuntu 22.04 SHA512 $6$  

** md5: $1$, sha256: $5$, sha512: $6$

 

728x90