Solaris cho tôi nhập mật khẩu khác nhau với cùng 8 ký tự đầu tiên


42

Tôi không biết điều này có bình thường không, nhưng vấn đề là, giả sử tôi có một người dùng Solaris tên là gloaiza và mật khẩu của nó là password2getin

Tôi đang đăng nhập vào máy chủ bằng PuTTY, tôi chỉ cần đặt 192.168.224.100 và nó sẽ nhắc một cửa sổ yêu cầu người dùng, vì vậy tôi gõ gloaiza , sau đó nó hỏi mật khẩu và giả sử tôi gõ password2getinó đã hoạt động! Tôi đang ở trong máy chủ!

Điều đó có bình thường không? Nó cũng hoạt động nếu tôi đặt một cái gì đó như password2getin2 .

Tôi không phải là người nói tiếng Anh bản địa, vì vậy, trong trường hợp có điều gì đó bạn không thể hiểu được, hãy hỏi tôi

HĐH: Oracle Solaris 10 1/13


4
Điều gì xảy ra dưới tám nhân vật? Có passworkđưa bạn vào?
thrig

@thrig Ok, mật khẩu thực tế của tôi là 9 nhân vật dài, do đó chúng ta hãy nói rằng mật khẩu là pass2word, sau đó nó làm việc với pass2wor, pass2word1, pass2worr1, và vân vân ... Tôi nghĩ rằng nó hoạt động với tất cả mọi thứ khi bạn gõ pass2wor Tôi không nghĩ rằng đó là một lớn vấn đề, nhưng cũng không tốt.
gloaiza

3
Miễn là bạn có đúng 8 ký tự đầu tiên, nó sẽ cho phép bạn nhập. Thật không may, việc tạo mật khẩu đã sử dụng mã hóa trong các bản phát hành solaris cũ hơn, bỏ qua ký tự 9 và sau đó.
MelBurslan

14
Nhắc nhở nhẹ nhàng cho tất cả các nhà phát triển nhúng ở đây suy nghĩ, "điều này không bao giờ có thể xảy ra trên hệ thống của tôi :" busyboxsẽ âm thầm quay trở lại DES nếu bạn không bật tất cả các tùy chọn tiền điện tử phù hợp với nó .config của bạn libc. Có thể mất một phút hôm nay để kiểm tra lại passwd/ shadowtập tin của bạn ? ;)

11
@drewbenn - Ai đã nghĩ rằng an ninh xuống cấp âm thầm là một ý tưởng tốt? Chúa Giêsu Kitô.
Thưởng thức

Câu trả lời:


65

Hệ điều hành lưu trữ một hàm băm của mật khẩu trong /etc/shadow(hoặc, theo lịch sử, /etc/passwdhoặc một vị trí khác trên một số biến thể Unix khác). Trong lịch sử, hàm băm mật khẩu phổ biến đầu tiên là sơ đồ dựa trên DES có giới hạn là nó chỉ tính đến 8 ký tự đầu tiên của mật khẩu. Ngoài ra, một thuật toán băm mật khẩu cần phải chậm; lược đồ dựa trên DES hơi chậm khi được phát minh nhưng không đủ theo tiêu chuẩn ngày nay.

Kể từ đó, các thuật toán tốt hơn đã được nghĩ ra. Nhưng Solaris 10 mặc định cho sơ đồ dựa trên DES lịch sử. Solaris 11 mặc định là một thuật toán dựa trên SHA-256 lặp, đạt tiêu chuẩn hiện đại.

Trừ khi bạn cần khả năng tương thích lịch sử với các hệ thống cổ xưa, hãy chuyển sang sơ đồ SHA-256 được lặp lại. Chỉnh sửa tập tin /etc/security/policy.confvà thay đổi CRYPT_DEFAULTcài đặt thành 5, viết tắt của crypt_sha256. Bạn cũng có thể muốn thiết lập CRYPT_ALGORITHMS_ALLOWCRYPT_ALGORITHMS_DEPRECATE.

Khi bạn đã thay đổi cấu hình, hãy chạy passwdđể thay đổi mật khẩu của bạn. Điều này sẽ cập nhật hàm băm mật khẩu với sơ đồ được cấu hình hiện tại.


1
Cảm ơn bạn đã trả lời. Khi bạn nói " Trừ khi bạn cần khả năng tương thích lịch sử với các hệ thống cổ đại ", bạn thực sự muốn nói điều đó, ý tôi là ... Có thể thực sự cần sơ đồ dựa trên DES và không thể thay đổi thành SHA-256, đối với một số người lý do?
gloaiza

11
@gloaiza Bạn có thể nếu tệp băm mật khẩu của bạn được chia sẻ với NIS hoặc một số phương pháp khác với một máy chạy hệ điều hành thực sự cổ xưa (như Solaris 2.x). Nếu không, không.
Gilles 'SO- ngừng trở nên xấu xa'


21

Điều này được mong đợi, ít nhất là trên cấu hình Solaris 10 mặc định và cũ hơn.

Hệ thống của bạn đang sử dụng crypt_unixthuật toán Unix kế thừa , thực sự giới hạn số lượng ký tự được sử dụng là tám.

Điều này được ghi lại trong passwdtrang hướng dẫn :

Mật khẩu phải được xây dựng để đáp ứng các yêu cầu sau:

  Mỗi mật khẩu phải có các ký tự PASSLENGTH, trong đó PASSLENGTH được xác định trong
  / etc / default / passwd và được đặt thành 6. Đặt PASSLENGTH thành hơn tám
  các ký tự yêu cầu định cấu hình chính sách. (4) với thuật toán hỗ trợ
  lớn hơn tám ký tự .

Vì thuật toán này về cơ bản là lỗi thời. Bạn nên chuyển sang một cái gì đó tốt hơn (giá trị có sẵn được liệt kê trong crypt.conftrang thủ công) bằng cách đặt CRYPT_ALGORITHMS_DEPRECATECRYPT_DEFAULTnhập /etc/security/policy.conftệp.

Xem http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html


1

@OrangeDog Điểm đã thực hiện, đã xóa lời khuyên
jlliagre

7

Xem chủ đề này trên các diễn đàn của Oracle :

Hành vi bạn mô tả được mong đợi khi sử dụng lược đồ mã hóa mật khẩu "crypt_unix" mặc định. Lược đồ này sẽ chỉ mã hóa tám ký tự đầu tiên của mật khẩu và do đó, chỉ tám ký tự đầu tiên cần khớp khi mật khẩu được nhập lại. Nó không phải là một "lỗi", nhưng là một hạn chế đã biết của thuật toán - phần lớn được giữ xung quanh để tương thích ngược và không may được đặt làm mặc định trên các hệ thống Solaris khi được cài đặt.

Để giải quyết vấn đề này, hãy đặt HĐH của bạn sử dụng thuật toán MD5 hoặc Blowfish thay vì crypt_unix.

Điều này có thể được thay đổi trong tệp /etc/security/policy.conf. Bạn có thể đặt các thuật toán mã hóa thành cho phép và cũng có một cài đặt để không dùng nữa (cấm) sử dụng thuật toán "crypt_unix" và thay đổi mặc định thành một thuật toán an toàn hơn.

Xem "Hướng dẫn quản trị hệ thống Solaris 10: Dịch vụ bảo mật" để biết thêm thông tin.

Xem thêm Thay đổi thuật toán mật khẩu (Bản đồ tác vụ) và đặc biệt là Cách chỉ định thuật toán mã hóa mật khẩu :

Chỉ định mã định danh cho thuật toán mã hóa đã chọn của bạn.

...

Nhập mã định danh làm giá trị cho biến CRYPT_DEFAULT trong tệp /etc/security/policy.conf.

...

Để biết thêm thông tin về cách định cấu hình các lựa chọn thuật toán, xem policy.conf(4)trang hướng dẫn.


2

Chỉ cần FYI, điều này cũng xảy ra trên các hệ thống AIX của IBM cho đến phiên bản 7.1.

Thật buồn cười, bởi vì hệ thống này tôi làm việc có chính sách "không thể sử dụng lại bất kỳ mật khẩu nào trong số 10 mật khẩu gần đây" tính đến toàn bộ mật khẩu, nhưng sau đó chỉ kiểm tra 8 ký tự đầu tiên khi đăng nhập. Vì vậy, bạn có thể đặt mật khẩu của mình như easypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@, ... cho mỗi thay đổi mật khẩu bắt buộc, có hiệu quả giữ easypassnhư mật khẩu của bạn trong nhiều năm.

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.