lưu trữ một cụm mật khẩu chính trên máy chủ linux


7

Tôi đang cố gắng sử dụng móc khóa trên debian mới nhất ổn định với một số khó khăn. Tìm kiếm trực tuyến Tôi không thể tìm thấy giải pháp, nhưng nghĩ rằng có lẽ một cách tiếp cận khác hoặc một công cụ khác có thể tốt hơn trong trường hợp này.

Tôi muốn đạt được một cái gì đó hợp lý thẳng tiến:

  • Khi đăng nhập vào máy chủ với quyền root sau khi khởi động lại, người dùng được nhắc nhập cụm mật khẩu chính một lần .
  • Cụm mật khẩu này được nạp vào bộ nhớ và sử dụng để mở khóa tất cả các ssh private key(sử dụng cho kéo mã từ một kho lưu trữ từ xa git, xác thực từ xa vv) và một gpg private key(được sử dụng để giải mã một số thông số cấu hình cũng đến từ git).

Bằng cách này, chỉ có quyền truy cập vào tài khoản root hoặc có thể kết xuất bộ nhớ sẽ cho phép trích xuất cụm mật khẩu. Ngay khi máy chủ được khởi động lại, cụm mật khẩu sẽ bị xóa. Tôi không có ngân sách / tài nguyên cho một HSM hoặc bất cứ điều gì chi tiết hơn. Tôi muốn một cái gì đó đơn giản và rẻ tiền và nó hoạt động đủ tin cậy và an toàn.

Keychain có vẻ như là một ứng cử viên tốt, nhưng tôi không thể làm cho nó hoạt động đúng để đáp ứng cả hai yêu cầu. Cụ thể, nó yêu cầu mật khẩu hai lần và cả khi cố gắng giải mã một cái gì đó bằng gpg, nó yêu cầu nó lần thứ 3 ... Có cách nào để đạt được điều này một cách an toàn với móc khóa hoặc bất kỳ công cụ hoặc tập lệnh shell nào khác không?

[ps không chắc chắn nếu điều này thuộc về ServerFault hoặc ở đây]


1
Keychain không làm những gì bạn nghĩ: nó chỉ sắp xếp để bắt đầu và dừng ssh-agent và gpg-agent. Cả hai chương trình đều lưu trữ khóa, không phải cụm mật khẩu, vì vậy nếu bạn có khóa SSH và khóa GPG, bạn sẽ phải nhập hai cụm mật khẩu ngay cả khi chúng giống hệt nhau. Bạn có thể lưu trữ các khóa trong khóa Gnome ( gnome-keyring-daemon) và mở khóa một lần mỗi phiên; nhưng bạn phải có một phiên bản hỗ trợ GPG (phiên bản trong Debian không, AFAIK) và nó không hiệu quả nếu không có X.
Gilles 'SO- ngừng trở thành ác quỷ'

1
giống như một ghi chú bên lề - một giải pháp thay thế cho việc sử dụng ví dụ như một thùng chứa truecrypt chứa cả hai khóa gpg và khóa ssh sẽ không đáp ứng các yêu cầu chức năng, nhưng không yêu cầu bảo mật! (chỉ lưu trữ khóa / cụm mật khẩu trong bộ nhớ để bảo vệ tốt hơn) ... mặc dù hiện tại đây là dự phòng của tôi nếu tôi không thể lấy móc khóa hoặc thứ gì đó tương tự hoạt động ...

gnome-keyring-daemonbản thân nó không yêu cầu X, nhưng tôi không biết liệu có cách nào để cung cấp khóa mà không có X. Tuy nhiên, nó không đáp ứng các yêu cầu bảo mật của bạn, vì nó sẽ lưu trữ các khóa trong tệp khóa. Về mặt nắm bắt, tôi không thấy sự khác biệt về bảo mật giữa việc có một số tệp được lưu trữ trên cùng một đĩa và được bảo vệ bởi cùng một mật khẩu (khóa SSH và khóa GPG) và một tệp được bảo vệ bởi mật khẩu đó (khóa Gnome hoặc khóa mật khẩu trên một hệ thống tập tin encfs hoặc truecrypt).
Gilles 'SO- ngừng trở nên xấu xa'

có lẽ bạn đúng, và không có sự khác biệt bảo mật đủ lớn. Tôi chỉ nghĩ rằng nếu ai đó đã vào tài khoản root, đã cài đặt tệp / container được mã hóa, họ có thể dễ dàng sao chép tất cả các khóa đó. Trong khi đó, nếu sử dụng móc khóa hoặc thứ gì đó tương tự, nó sẽ yêu cầu kiểm tra bộ nhớ để trích xuất các phím đó, điều này sẽ khó hơn một chút (nhưng có lẽ không đáng kể) ...

ssh-agent lưu các cụm mật khẩu trong bộ nhớ cho đến khi khởi động lại. Tôi sử dụng nó cho mục đích được mô tả trong câu hỏi, với một chút kịch bản để tự động kết nối với ssh-agent. Nhưng đó chỉ là cho các khóa ssh và mặc dù một phương pháp tương tự có thể sẽ hoạt động đối với các khóa gpg, bạn vẫn sẽ phải nhập hai mật khẩu (một cho ssh-agent và một cho gpg) vì vậy tôi không chắc rằng nó đủ tốt cho bạn. Nó không cần X mặc dù.
janos

Câu trả lời:


2

Sử dụng một hệ thống tệp được mã hóa riêng biệt (có thể thực sự được lưu trữ trong một tệp thông thường và được gắn kết được gắn qua dm). Bảo mật thông minh, các quyền truy cập hệ thống tập tin sẽ thực hiện thủ thuật tương tự như giữ nó trong bộ nhớ ảo của một tiến trình đang chạy - cả hai đều có thể được truy cập bằng root (trừ khi bạn thực hiện một số biện pháp bổ sung để ngăn chặn điều đó). Trên thực tế, ít có khả năng mật khẩu sẽ kết thúc khi trao đổi, hơn là trong trường hợp lưu trữ nó trong bộ trợ giúp tác nhân; nhưng dù sao bạn cũng nên giữ mã hóa trao đổi (hoặc bị vô hiệu hóa hoàn toàn), nếu bảo mật là mối quan tâm chính của bạn.


Cảm ơn peterph. Đây là khá nhiều những gì tôi đã sử dụng. Tôi đã gắn hệ thống tệp ecryptfs bằng cụm mật khẩu được tạo bằng khóa riêng ssh. Vì vậy, tôi chỉ tải khóa ssh một lần trong bộ nhớ và từ đó, tôi có thể tạo các cụm mật khẩu khác ... Có lẽ tôi nên đăng mã trực tuyến một thời gian, nhưng không hoàn toàn làm tròn được.
Yoav Aner
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.