Có phải tất cả các bản phân phối Linux đều sử dụng cùng hàm băm mật mã?


7

Có phải tất cả các bản phân phối Linux đều sử dụng cùng hàm băm mật mã ?

Nếu có, nó có được cung cấp với kernel không?

EDIT: - Tôi đề cập đến chức năng chủ yếu được sử dụng để lưu trữ mật khẩu đăng nhập của người dùng.


Hàm băm Crytographic cho những gì sử dụng, chính xác? Có rất nhiều cách sử dụng và "Linux" là tên gọi chung cho một tập hợp các gói được ghép lỏng lẻo, mỗi gói có thể sử dụng rất tốt theo ý thích của mình hoặc thậm chí sử dụng các gói khác nhau theo cấu hình được phân phối chọn.
vonbrand

Câu trả lời:


9

Không & không cho câu hỏi của bạn.

Tôi sẽ xem crypt(3)chức năng để biết thêm. Từ man crypt(3):

KIỂM TRA GNU

Phiên bản glibc2 của chức năng này có các tính năng bổ sung sau. Nếu muối là một chuỗi ký tự bắt đầu bằng ba ký tự $1$theo sau nhiều nhất là tám ký tự và được chấm dứt tùy ý $, thì thay vì sử dụng máy DES, hàm mật mã glibc sử dụng thuật toán dựa trên MD5 và xuất ra tối đa 34 byte, cụ thể là , trong đó viết tắt của tối đa 8 ký tự theo sau trong muối, theo sau là 22 byte được chọn từ tập hợp . Toàn bộ khóa có ý nghĩa ở đây (thay vì chỉ 8 byte đầu tiên).$1$&‹string›$‹string›$1$[a–zA–Z0–9./]

Bạn có thể kiểm tra cài đặt pam của mình để xem bạn đang sử dụng MD5 hay DES:

$ egrep "password.*pam_unix.so" /etc/pam.d/system-auth
password    sufficient    pam_unix.so md5 shadow nis nullok try_first_pass use_authtok

Và bạn có thể thấy trong /etc/shadowtệp hệ thống này cũng đang sử dụng MD5:

root:$1$<DELETED PASSWORD HASH>:14245:0:99999:7:::

Các mã bạn sẽ thấy trong /etc/shadowmỗi loại băm:

  • $ 1 - MD5
  • $ 2 - cá kiếm
  • $ 2a - cá eksblow
  • $ 5 - SHA-256
  • $ 6 - SHA-512

Trên các bản phân phối Red Hat, bạn có thể thay đổi điều này bằng cách sử dụng authconfiglệnh.

$ sudo authconfig --passalgo=sha512 --update

Người giới thiệu


1
Lưu ý rằng các hàm băm mật khẩu không phải là các hàm băm MD5, SHA-256, v.v. mà là các hàm được xây dựng trên chúng (về cơ bản lặp lại chúng một số lần lớn)).
Gilles 'SO- đừng trở nên xấu xa'

5

Lưu ý rằng hàm băm mật khẩu là một loại hàm băm mật mã cụ thể, không được sử dụng cho các mục đích sử dụng khác của hàm băm mật mã. Hàm băm mật khẩu cần phải chậm; thông thường, chúng tôi sử dụng các hàm băm mật mã nhanh. Trên thực tế, về mặt kỹ thuật, hàm băm mật khẩu không phải là hàm băm mà là thuật toán kéo dài khóa mặn , lấy hai đầu vào (mật khẩu và muối) trong khi đó hàm băm chỉ có một đầu vào (dữ liệu). Xem Làm thế nào để băm mật khẩu an toàn? để biết thêm thông tin về băm mật khẩu.

Vì lý do lịch sử, nhiều tài liệu unix gọi mật khẩu băm mã hóa, nhưng đây không phải là quá trình mã hóa (bạn không thể giải mã một hàm băm trở lại mật khẩu). Lý do lịch sử là vào thời kỳ đầu của Unix, chức năng băm mật khẩu được xây dựng trên thuật toán DES , chủ yếu được sử dụng để mã hóa.

Băm mật khẩu được thực hiện bởi một chức năng trong thư viện tiêu chuẩn được gọi là crypt. (Lưu ý rằng có một tiện ích Unix truyền thống được gọi cryptlà không liên quan; tiện ích này thực sự mã hóa.) Nhân không biết gì về mật khẩu. (Một số hạt nhân trên một số nền tảng cung cấp thư viện mật mã, để tận dụng các máy gia tốc phần cứng.)

Hàm lịch sử đã sử cryptdụng thuật toán dựa trên DES, thời gian này vẫn ổn nhưng quá yếu so với tốc độ máy tính ngày nay. Ngày nay các chức năng mật khẩu băm được chỉ định bởi các nhân vật ở phần đầu của muối: $1$, $5$, $6$, ... Những ba giá trị (và một vài chi tiết) là tiêu chuẩn trên thực tế de qua nhiều unices (bao gồm cả các hệ thống Linux dựa trên Glibc, đó là thực tế tất cả phi những cái được bổ sung và một số những cái nhúng lớn hơn). Một số biến thể unix cung cấp nhiều sự lựa chọn hơn. Các hệ thống nhúng Linux có thể không có tất cả các phương thức này.

$1$được dựa trên MD5, nhưng với số lần lặp cố định và không được chấp nhận vì lý do đó. $5$$6được dựa trên số lần lặp khác nhau của SHA2-256 và SHA2-512 tương ứng. Xem Cách tạo băm mật khẩu SHA512 trên dòng lệnh nếu bạn muốn tính toán một số băm mật khẩu từ dòng lệnh.


4

Không và nó không được cung cấp bởi kernel. tùy thuộc vào phiên bản, của bản phân phối và các bản hòa âm bạn sử dụng, bạn sẽ tìm thấy thuật toán mã hóa băm khác nhau được sử dụng (tôi giả sử bạn có nghĩa là lưu trữ mật khẩu là chủ yếu).
Bằng cách xem /etc/shadowtệp dưới dạng root, bạn sẽ có thể thấy hàm băm nào được sử dụng trên linux của mình.

Nếu bạn muốn ký một cái gì đó bằng hàm băm, hầu hết các Unices, sẽ tích hợp nhị phân md5sumhoặcsha1sum


1
Lưu ý rằng băm máy tính với md5sumvà bạn bè là băm mật mã thông thường, không được sử dụng để băm mật khẩu. Băm mật khẩu chậm; những cái thông thường trên unix được xây dựng trên MD5 hoặc SHA-2 (lặp đi lặp lại nhiều lần và với muối ném vào). Xem câu trả lời của tôi để biết thêm chi tiết.
Gilles 'SO- đừng trở nên xấu xa'
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.