OpenWrt 루트 암호의 최대 길이가 8자인 이유는 무엇입니까?


29

root의 비밀번호 를 설정하려고 할 때 :

root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.

최대 길이는 8 인 것 같습니다. 암호를 8보다 길게 설정하려고하면 처음 8 자만 유효합니다. 더 긴 비밀번호를 설정하려면 어떻게해야 root합니까?

내 OpenWrt 버전 :

Linux OpenWrt 4.14.108 #0 SMP Wed Mar 27 21:59:03 2019 x86_64 GNU/Linux

답변:


35

이는 DES 기반 암호 (AKA 'descrypt')가 암호를 8 바이트에서 자르고 암호 확인을 위해 처음 8 개만 검사하기 때문입니다.

이것이 바로 귀하의 직접적인 질문에 대한 답변이지만 다음은 귀하의 상황에서 암시하는 일반적인 조언입니다.

  • 다행히, 내 독서에서, MD5에서가 /etc/login.defs조금 오래된 반면, md5crypt ($ 1 $), 실제로 그 저자에 의해 사용되지 않는 선언 , DES 기반 토굴에 여전히 훨씬 우수 (그리고 확실히 일반 같은 원료, 무염 해시보다 훨씬 더 MD5! 대부분의 무염 해시는 초당 10 억의 속도로 상용 GPU에서 크랙 될 수 있습니다 )

  • 것 같습니다 SHA256(실제로 sha256crypt) 및 SHA512도있다 (실제로 sha512crypt). 대신에 그중 하나를 고르겠습니다.

  • password각 체계에서 암호를 설정하거나 암호를 설정하면 암호가 변형이라는 내 결론이 올바른지 시각적으로 확인할 수 있습니다 (여기의 예제 는 hashcat 예제 hashes , 모든 'hashcat', 일부는 가독성) :

권장되지 않음-비 염색 또는 레거시 해시 유형으로 암호 저장에 너무 "빠른"(크래킹 속도) :

MD5         - 8743b52063cd84097a65d1633f5c74f5
SHA256      - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512      - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
              9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt    - 48c/R8JAv757A

OK-무염보다 잘 낫지 만 현대 하드웨어의 무차별 대항력에 더 이상 저항력이 없습니다.

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

더 나은-큰 소금과 작업 요소가있는 비교적 현대적인 해시 :

sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/

이 중 암호 해독 만 8에서 잘립니다. 마지막 두 개가 가장 좋습니다.

(측면 참고 : 위의 md5crypt 및 sha512crypt 예제의 숫자 전용 솔트는 hashcat이 예제 해시를 작성하는 방법의 부작용 일뿐입니다. 실제 건강한 소금은 일반적으로 훨씬 큰 키 공간에서 가져옵니다).

또한이 플랫폼에서 /etc/login.defs가 지원하는 해시 유형 만 나열하고 있습니다. 일반적으로 sha256crypt 및 sha512crypt도 우선 bcrypt에 의해 대체 된 다음 scrypt 및 Argon2 제품군과 같은 병렬 공격에 강한 해시로 대체되었습니다. (그러나 1 초 안에 완료되어야하는 대화식 로그인의 경우 bcrypt는 실제로 후자보다 공격에 더 강합니다.)


20

나는 이것을 다음에서 수정했다 /etc/login.defs:

PASS_MAX_LEN            8

문제가 해결되었습니다.


중요한 추가 사항 :

위의 매개 변수를 변경 한 후 8 자리보다 큰 비밀번호를 설정할 수 있지만 실제 비밀번호는 처음 8 자리이므로 여전히 유효하지 않습니다. 이것이 내 문제인지 모르겠습니다.

나의 마지막 해결책은

# ENCRYPT_METHOD DES

ENCRYPT_METHOD MD5

에서 /etc/login.defs.

이제 마지막으로 실제로 8보다 큰 루트 암호를 설정할 수 있습니다.


16
좋은 해결책이지만 시스템 기본값에 대한 잘못된 원래 선택은 ...
HBruijn

8
비밀번호를 8 자 이상으로 변경했다고 가정합니다. 더 긴 비밀번호의 처음 8 자만으로 로그인하면 시도 할 수 있습니까? 그것은 단지 수도 있기 때문에 ...
marcelm

9
SHA256 또는 SHA512로 변경하거나 지원할 수 있습니다. 요즘 MD5는 고장난 것으로 간주됩니다.
PhilippNagel

8
실제로 sha256과 sha512 자체는 md5보다 훨씬 좋지 않습니다. 소금이 필요하고 이러한 알고리즘의 크립트 버전을 사용하십시오.
SnakeDoc

4
@PhilippNagel 엔트로피 암호가 높으면 나쁘지 않습니다. MD5는 확실히 손상된 것으로 간주되지만 현재 알려진 취약점은 암호 해싱에 영향을 미치지 않습니다. 무엇 이다 암호 해시 문제 것은 속도입니다; 언급되지 않은 MD5는 너무 빠르기 때문에 많은 암호에서 무차별 강제 실행이 가능합니다.
marcelm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.