Tại sao độ dài tối đa của mật khẩu gốc của OpenWrt là 8 ký tự?


29

Khi tôi cố gắng đặt rootmật khẩu:

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.

Có vẻ như độ dài tối đa là 8. Nếu tôi cố gắng đặt mật khẩu dài hơn 8, chỉ 8 ký tự đầu tiên là hợp lệ. Làm cách nào để đặt mật khẩu dài hơn root?

Phiên bản OpenWrt của tôi:

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

Câu trả lời:


35

Điều này là do mật mã dựa trên DES (AKA 'descrypt') cắt mật khẩu ở mức 8 byte và chỉ kiểm tra 8 đầu tiên cho mục đích xác minh mật khẩu.

Đó là câu trả lời cho câu hỏi trực tiếp của bạn, nhưng đây là một số lời khuyên chung ngụ ý theo ngữ cảnh của bạn:

  • May mắn thay, từ đọc sách của tôi, MD5trong /etc/login.defsthực tế là md5crypt ($ 1 $), trong đó, trong khi một chút lỗi thời và tuyên bố phản đối bởi tác giả của nó , vẫn còn cao hơn nhiều so với hầm mộ DES-based (và chắc chắn tốt hơn nhiều so với một thô, băm ướp muối như đồng bằng MD5! Hầu hết các băm không được mã hóa có thể bị bẻ khóa trên GPU hàng hóa với tốc độ hàng tỷ mỗi giây)

  • Có vẻ như SHA256(thực sự là sha256crypt) và SHA512(thực sự là sha512crypt) cũng ở đó. Tôi sẽ chọn một trong những thay thế.

  • Nếu bạn đặt mật khẩu của mình thành passwordhoặc một cái gì đó theo từng sơ đồ, bạn có thể xác minh trực quan xem liệu kết luận của tôi rằng chúng có phải là biến thể mã hóa hay không (ví dụ ở đây được lấy từ băm ví dụ băm , tất cả là 'hashcat', một số được bao bọc cho dễ đọc):

Không được đề xuất - loại băm không được đánh dấu hoặc di sản, quá "nhanh" (tốc độ bẻ khóa) để lưu trữ mật khẩu:

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

OK - tốt hơn nhiều so với không ướp muối, không cắt ngắn, nhưng không còn đủ sức chống lại lực lượng vũ phu trên phần cứng hiện đại:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Tốt hơn - băm tương đối hiện đại với muối lớn và các yếu tố công việc:

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

Trong số này, chỉ có giải mã cắt ngắn ở mức 8. Hai cuối cùng là đặt cược tốt nhất của bạn.

(Lưu ý bên lề: các muối chỉ có chữ số trong các ví dụ md5crypt và sha512crypt ở trên chỉ là tác dụng phụ của cách hashcat tạo băm ví dụ; muối thực, khỏe mạnh thường được rút ra từ không gian phím lớn hơn nhiều).

Cũng lưu ý rằng tôi chỉ liệt kê các loại băm được hỗ trợ bởi /etc/login.defs trên nền tảng này. Để sử dụng chung, thậm chí sha256crypt và sha512crypt đã được thay thế - đầu tiên là bcrypt, và sau đó là các băm chống tấn công song song thực sự như mã hóa và gia đình Argon2. (Tuy nhiên, lưu ý rằng đối với các thông tin đăng nhập tương tác cần hoàn thành trong vòng một giây, bcrypt thực sự có khả năng chống tấn công cao hơn lần sau)


20

Tôi đã sửa đổi điều này trong /etc/login.defs:

PASS_MAX_LEN            8

Vấn đề được khắc phục.


Bổ sung quan trọng:

Sau khi tôi thay đổi các tham số trên, mặc dù tôi có thể đặt mật khẩu lớn hơn 8 chữ số, nó vẫn không hợp lệ vì mật khẩu thực chỉ là tám chữ số đầu tiên. Tôi không biết nếu đây là vấn đề của tôi.

Giải pháp cuối cùng của tôi là thiết lập

# ENCRYPT_METHOD DES

đến

ENCRYPT_METHOD MD5

trong /etc/login.defs.

Bây giờ, cuối cùng tôi có thể đặt mật khẩu gốc thực sự lớn hơn tám.


16
Khắc

8
Tôi giả sử bạn đã thay đổi mật khẩu của mình thành một cái gì đó dài hơn 8 ký tự. Bạn có thể thử nếu đăng nhập chỉ với 8 ký tự đầu tiên của mật khẩu dài hơn của bạn hoạt động không? Bởi vì nó chỉ có thể ...
marcelm

9
Bạn có thể cân nhắc thay đổi điều đó thành SHA256 hoặc SHA512 hoặc chúng được hỗ trợ - MD5 được coi là bị hỏng trong những ngày này.
PhilippNagel

8
thực sự sha256 và sha512 không tốt hơn md5 nhiều. bạn cần một muối và sử dụng các phiên bản mật mã của các thuật toán này.
SnakeDoc

4
@PhilippNagel Với mật khẩu entropy cao, nó không quá tệ. Mặc dù MD5 chắc chắn được coi là bị hỏng, nhưng những điểm yếu được biết hiện tại không ảnh hưởng đến việc băm mật khẩu. Có gì một vấn đề đối với băm mật khẩu là tốc độ; MD5 không lặp lại nhanh đến mức việc bắt buộc rất khả thi đối với nhiều mật khẩu.
marcelm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.