Có hợp lý không khi có nhiều khóa SSH?


44

Cho đến nay tôi đã tạo một khóa SSH riêng cho mỗi máy chủ mà tôi cần đăng nhập (cho từng mục đích, để chính xác hơn). Tôi đã làm điều đó vì ý thức bảo mật, giống như các mật khẩu khác nhau cho các trang web khác nhau.

Có nhiều khóa SSH thực sự cải thiện bảo mật? Tất cả chúng được sử dụng từ cùng một máy, được đặt trong cùng ~ / .ssh, hầu hết đều có cùng một cụm mật khẩu.

Vậy ... tôi có nên từ bỏ toàn bộ hệ thống và chỉ sử dụng một khóa SSH cho mọi thứ?

[CẬP NHẬT 2015-08-05] Github xuất bản khóa chung của bạn và ứng dụng khách SSH của bạn có thể gửi tất cả các khóa công khai của bạn đến mọi máy chủ, tùy thuộc vào cấu hình , do đó, nếu bạn quan tâm đến máy chủ SSH của bên thứ 3 biết danh tính của bạn khi kết nối , bạn nên sử dụng nhiều khóa SSH, mặc dù theo tôi thì nó bị hoang tưởng.


Câu hỏi này có thể phù hợp hơn về An toàn thông tin .
gerrit

Câu trả lời:


25

Khóa SSH sử dụng mật mã khóa công khai. Điều đó có nghĩa rằng những gì bạn đang cài đặt trên tất cả các máy chủ chỉ là bạn nào quan trọng, mà bạn muốn trên toàn thế giới biết. Bí mật thực sự duy nhất là khóa riêng của bạn mà bạn luôn khóa trên máy của chính mình. Vì vậy, vâng, tôi nói bạn đang lãng phí thời gian của bạn.


19
Tôi nghĩ rằng có những lý do hợp lệ để có các khóa riêng biệt và điều này sẽ không lãng phí thời gian. Trong trường hợp khóa bị xâm phạm, rủi ro với điều này sẽ giảm. Mật khẩu nên khác nhau cho mỗi khóa, tôi đồng ý.
jfmessier

Có hợp lý để có các cặp khóa khác nhau trên các máy khác nhau? Giống như các phiên bản khác nhau của hệ điều hành VirtualBox?
Santosh Kumar

1
Câu trả lời này bỏ qua khái niệm phòng thủ theo chiều sâu, bởi vì nó đặt sự phụ thuộc vào "khóa riêng của bạn mà bạn bị khóa trên chính máy của mình". Ví dụ, hãy xem xét điều gì xảy ra nếu máy tính xách tay của bạn bị đánh cắp trong khi (một trong) khóa riêng của bạn đang được sử dụng bởi ssh-agent. Nếu bạn có nhiều khóa, thì bất kỳ khóa nào vẫn được mã hóa đều an toàn. Tôi sẽ không gọi đó là một sự lãng phí thời gian.
Jon Bentley

33

Cuối cùng, điều này là tùy thuộc vào bạn. Bạn cần đánh giá mô hình mối đe dọa của bạn. Làm thế nào có khả năng một trong những chìa khóa của bạn bị xâm phạm? Nếu một khóa bị xâm phạm, thì các khóa khác sẽ bị xâm phạm như thế nào? Hậu quả của chìa khóa của bạn bị xâm phạm là gì? Chi phí (bao gồm cả thời gian) của việc quản lý nhiều khóa là gì?

Việc xem xét các yếu tố như thế này sẽ giúp bạn quyết định xem bạn có thực sự cần các khóa riêng biệt hay không. Trên các máy cá nhân của tôi trên mạng cục bộ, tôi thường không bận tâm đến việc sử dụng nhiều chi phí. Tuy nhiên, bên ngoài mạng của tôi, tôi sẽ sử dụng các khóa khác nhau với mỗi cụm mật khẩu duy nhất. Nhưng đó chỉ là ý kiến ​​cá nhân của tôi.


6
+1 cho "đánh giá mô hình mối đe dọa". Đây chỉ là điểm.
sleske

21

Không, nó không lãng phí thời gian để sử dụng nhiều hơn một khóa.

Đa dạng hơn == ít rủi ro hơn.

Tuyên bố đó của Spiff là không chính xác.

Vấn đề là khóa công khai cấp quyền truy cập cho người giữ khóa riêng và không ai khác.

Rủi ro cần quan tâm ở đây là xác thực. Một trang web giả mạo chuyển tiếp yêu cầu xác thực đến nhiệm vụ đại lý của bạn. Nếu bạn chỉ sử dụng một khóa, thì ngay cả khi chỉ có một khóa được tải trong đại lý của bạn, tất cả các trang web đều được mở cho kẻ lừa đảo.

Điều này không liên quan gì đến cụm mật khẩu , bạn có thể có một số khóa có cùng cụm mật khẩu sẽ không có gì khác biệt ở đây. Bởi vì nó không phải là cụm mật khẩu bị xâm phạm.

Kẻ lừa đảo chuyển tiếp thách thức đến đại lý của bạn và có thể kết nối với tất cả các trang web mà bạn đã tải khóa . Với các khóa khác nhau, một khóa được tải -> một trang web có nguy cơ .

Tôi nói tốt cho bạn, bạn đã chọn sự riêng tư của người khác trên sự lười biếng của chính bạn.

PS đạo đức của câu chuyện là cảnh giác của chuyển tiếp đại lý


Giả sử tôi tạo ba khóa SSH, một cho ba máy chủ tôi đăng nhập thường xuyên. Một ngày nọ, sau khi tôi đã đăng nhập vào cả ba (nghĩa là ssh-agent đã lưu các cụm mật khẩu cho cả ba khóa), thì theo lập luận của bạn, nếu tác nhân ssh của tôi bị xâm phạm, cả ba lần đăng nhập đều bị xâm phạm. Trong trường hợp như vậy, việc có nhiều khóa SSH không bảo vệ tôi. Tôi đã hiểu bạn đúng chưa?
sampablokuper

9

Tôi nghĩ có một trường hợp sử dụng tốt cho nhiều khóa công khai và đó là nếu bạn có khóa riêng được lưu trữ trên máy tính ở các khu vực tin cậy khác nhau. Vì vậy, tôi thường giữ một khóa là khóa "công việc" của mình và một khóa khác là khóa "nhà" của tôi, đơn giản vì khóa riêng cho nội dung "nhà" của tôi không được lưu trên máy tính làm việc của tôi và ngược lại.


Câu trả lời tuyệt vời, nếu bạn có các máy khác nhau với các phím khác nhau, hoàn hảo. Nếu một (hoặc nhiều) máy đều có cùng một khóa, thì bạn sẽ không tự bảo vệ mình khỏi bất kỳ thứ gì thêm so với chỉ có một phím. Nếu một người bị xâm phạm, tất cả phần còn lại trên máy đó cũng vậy.
xref

3

Tôi nghĩ hợp lý có thể được xem xét từ hai góc độ khác nhau: an ninhthuận tiện .

Khi chúng tôi tạo cặp khóa SSH, chúng tôi được yêu cầu cung cấp cụm mật khẩu để thêm một lớp nữa để bảo vệ khóa riêng, như sau:

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Mặc dù có một lời nhắc rõ ràng yêu cầu cụm mật khẩu, nhưng một số (hoặc nhiều) người vẫn tập trung nhiều hơn vào thông tin trong ngoặc: (trống không có cụm mật khẩu) và làm theo gợi ý đó.

Kết hợp việc có sử dụng nhiều cặp khóa SSH hay khôngcó nhập mật khẩu bổ sung hay không , chúng tôi có ít nhất bốn cách để đi. Và giả sử tất cả các cặp khóa và configtệp được lưu trữ trong ~/.ssh/.

Bây giờ chúng ta đừng xem xét bảo mật trước.

Bảng sau đây xếp hạng đơn giản về bảo mật (số lớn hơn có nghĩa là an toàn hơn):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Nếu không có passwd , nếu hệ thống của chúng tôi bị ai đó xâm nhập, thì bộ ngắt có thể nhận được tất cả các khóa riêng và cấu hình của chúng tôi, cũng là xác thực của các máy chủ từ xa. Vì vậy, trong tình huống này, Một cặp khóa và Nhiều cặp khóa là như nhau. Cách an toàn nhất là sử dụng các mật khẩu khác nhau cho các cặp khóa ssh khác nhau.

Vậy thì đừng nghĩ về sự tiện lợi .

Nhưng nhiều cặp khóa và nhiều mật khẩu hơn cũng khiến cuộc sống của chúng ta trở nên kém thuận tiện hơn, bảng dưới đây đưa ra một thứ hạng đơn giản về bảo mật (số lớn hơn có nghĩa là an toàn hơn):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Vì vậy, trong tình huống chung, nếu chúng ta phải đánh đổi sự an toànthuận tiện cùng một lúc, chúng ta có thể nhân hai điểm số và có thể một cặp khóa SSH (VỚI passwd) là lựa chọn tốt.

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.