리눅스 패스워드 해싱 알고리즘 개요 및 변경하기
주요 해시 알고리즘(간략 비교)
MD5($1$)
- 특징 : 빠르고 간단함. 역사적으로 널리 쓰였음.
- 문제점 : 충돌 및 역산 공격에 취약. 패스워드 저장에는 사용 금지 권고.
SHA-1
- 특징 : MD5 대비 향상된 무결성 해시.
- 문제점 : 충돌 가능성이 보고되어 패스워드 해시에 권장되지 않음.
SHA-2 계열 (SHA-256 $5$, SHA-512 $6$)
- 특징 : 비교적 안전하며 시스템 패스워드에 널리 사용됨. 많은 배포판에서 기본값으로 설정.
- 장점 : 표준화되어 있고 구현이 안정적임.
- 단점 : CPU 기반 해시이므로 빠른 해시 계산이 가능 — 느린(hasher) 알고리즘보다 무차별 대입 공격에 더 취약할 수 있음.
bcrypt
- 특징 : 패스워드 해싱 전용 설계. 솔트 포함, 계산 비용(작업 인자)을 늘려 공격 난이도 상승.
- 장점 : GPU/병렬 공격에 대해 SHA 계열보다 강함(설계상 느리게 동작).
- 사용처 : 애플리케이션(웹서비스)에서 널리 권장.
Argon2
- 특징 : PHC(Password Hashing Competition) 우승 알고리즘. 메모리-강건성, 병렬성 조절 가능.
- 장점 : 최신 추천 알고리즘(특히 새로운 애플리케이션에 권장).
- 사용처 : 애플리케이션 레벨 비밀번호 저장 권장.
권장 요지
시스템 계정(로그인 비밀번호)은 현재 많은 배포판에서 SHA-512를 기본으로 사용합니다. 신규 애플리케이션은 Argon2나 bcrypt 같은 패스워드-전용 해시를 사용하는 것이 바람직합니다.
/etc/shadow의 해시 식별자
/etc/shadow에 저장된 암호값은 보통 다음과 같은 형식의 접두사를 가집니다.
- $1$ → MD5
- $5$ → SHA-256
- $6$ → SHA-512
예) $6$... 이면 SHA-512 해시임.
authconfig로 해시 알고리즘 변경
authconfig 설치
sudo yum install -y authconfig
현재 해싱 알고리즘 확인
authconfig --test | grep -i hashing
/etc/login.defs 확인
- 변경 후 시스템에 반영되는지 확인
grep -i ENCRYPT_METHOD /etc/login.defs
해시 알고리즘을 SHA-512로 변경
sudo authconfig --passalgo=sha512 --update
- --passalgo 옵션에 sha512, md5 등 사용 가능.
- 명령 실행 후 /etc/login.defs의 ENCRYPT_METHOD가 SHA512로 바뀌어야 합니다.
기존 사용자에게 변경(강제 재설정 적용)
- 사용자에게 새 해시로 갱신되도록 강제하려면 비밀번호 변경을 유도하거나 즉시 변경하려면
sudo chage -d 0 username
- 로그인 시 비밀번호 변경을 요구합니다.
- 또는 각 사용자에게 passwd username으로 새 비밀번호를 설정하게 합니다.
'리눅스' 카테고리의 다른 글
[draft] curl 명령어로 웹사이트 로딩 속도를 테스트하는 방법 (0) | 2025.10.22 |
---|---|
[draft] GitHub 개인 액세스 토큰을 사용하는 방법 (0) | 2025.10.22 |
[draft] chage 명령어 (0) | 2025.10.22 |
[draft] HAProxy에서 Basic Authentication(접속 암호) 설정하기 (0) | 2025.10.22 |
[draft] RAID의 개념, 종류, 용량 계산에 대한 요약 (0) | 2025.10.21 |