Có một thứ như là một khóa SSH đã ký?


9

Chúng tôi đang chuyển tệp đến một máy chủ từ xa trong ứng dụng của mình và phương thức xác thực bắt buộc là sử dụng các khóa SSH.

Vì vậy, tôi đã tạo cặp khóa của mình bằng ssh-keygen và gửi khóa công khai của mình để chèn vào tệp ủy quyền của máy chủ từ xa. Tuy nhiên, điều này đã bị IT Security từ chối vì họ nói rằng họ sẽ tạo ra sự tuyệt vọng cho tôi và gửi cho tôi khóa riêng. Lý do: "Chúng tôi cần các khóa SSH được ký bởi nhóm Bảo mật CNTT. Điều này là để đảm bảo chúng tôi có một số khách hàng tiềm năng trong việc theo dõi và trách nhiệm."

Rõ ràng, tôi có vấn đề với điều này. Có khóa riêng do người khác tạo ra có nghĩa là tôi có thể khiến người đó giả mạo như tôi mà tôi không biết. Tôi đang cố gắng tìm cách bác bỏ lập luận này.

Theo như tôi có thể google, dường như không có bất kỳ cách nào được biết để ký các khóa sao cho nó giúp theo dõi một người đã đăng nhập. Thực tế là tôi đã gửi khóa công khai của mình có nghĩa là tôi sở hữu khóa đó và bất kỳ ai đăng nhập vào máy chủ từ xa bằng khóa đó đều được xác định là chính tôi. Làm thế nào để ký giúp? Và làm thế nào họ sẽ ký bất cứ cách nào?

Ai đó làm ơn cho tôi biết nếu tôi sai, cảm ơn!


Ok, bây giờ chúng tôi đã xác định rằng không có cách nào khóa SSH có thể được ký, tôi cần chỉ cho IT Security cách họ thực sự có thể theo dõi những người đã đăng nhập (tôi phải xây dựng, tôi đoán, nếu không bắt đầu bằng tay cao ). Trên máy chủ của riêng tôi, tôi đặt LogLevel của sshd thành DEBUG. Vì vậy, bây giờ khi tôi đăng nhập, tôi có thể thấy đoạn trích sau:

Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Đây dường như là một giá trị băm. Làm cách nào để liên kết lại khóa này với khóa công khai trong tệp ủy quyền được sử dụng? Tôi biết có một dòng khác nói:

debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1

nhưng điều này không hữu ích vì số dòng có thể dễ dàng thay đổi nếu tôi chèn một phím ở đầu tệp, đẩy các phím gốc xuống.

Cảm ơn!


2
Có lẽ họ sẽ in các phím, ký tên (trên giấy) và sau đó nộp nó đi?
innaM

Giá trị băm bạn nhận được rất có thể là cái gọi là dấu vân tay của khóa. Tôi khuyên bạn nên kiểm tra hướng dẫn sử dụng openssh về cách bạn có thể liệt kê những dấu vân tay này.
Niels Basjes

Lý do rất có thể là chính sách này được đưa ra là họ thực sự muốn có thể mạo danh bạn nếu cần. Đối số ký chỉ là BS để làm cho nó nghe có vẻ hợp lý với neophyte. Ngay cả khi họ cần ký tên vào pubkey, họ cũng không cần phải tự tạo.
b0fh

Câu trả lời:


13

Trong thời gian kể từ khi bạn hỏi câu hỏi của bạn, vũ trụ đã thay đổi.

Openssh5.4 đã thêm hỗ trợ cho chính xác loại chứng chỉ mà bạn đã theo đuổi. Xem ghi chú phát hành tại http://www.openssh.org/txt/release-5.4 (và các trang hướng dẫn) để biết thêm thông tin hoặc nếu bạn thực sự muốn điên rồ, hãy xem PROTOCOL.certkeys để biết chi tiết về tin đồn


Chỉ cần thấy điều này sau một thời gian rất dài ... có vẻ hợp pháp :) Sẽ dùng thử, cảm ơn!
dự đoán

8

Ấn tượng đầu tiên của tôi khi đọc câu hỏi của bạn là người CNTT đã trộn lẫn SSH và SSL (nó phải được ký bởi chúng tôi) và cũng không hiểu cách ký SSL thực sự hoạt động.

Dù sao, không có cách nào để khóa SSH có thể được ký (mà tôi biết).


+1 bạn không thể ký các khóa ssh giống như cách bạn có thể ký chứng chỉ PGP hoặc SSL. Tôi muốn tìm kiếm sự làm rõ từ họ.
David Pashley

4

Một cái gì đó không đúng trong yêu cầu này.

Nếu nó đang phân phối các tệp đã ký đến máy chủ,
tôi hy vọng việc này sẽ được thực hiện ở mức tối thiểu.

  1. Bạn tạo một cặp khóa cho chính mình (gọi đây là khóa của tôi)
    • Khi bạn muốn gửi một cái gì đó,
    • trước tiên bạn mã hóa nó bằng my-key-private
    • sau đó tải lên máy chủ tập tin được mã hóa này
    • Ai đó ở máy chủ phải đảo ngược quá trình như thế này,
    • họ sử dụng của bạn my-key-pubđể giải mã tập tin
    • nếu bạn đã gửi tệp, giải mã sẽ phục hồi nó
    • nếu không, họ sẽ không nhận được bất kỳ tập tin có thể sử dụng
    • hiệu quả, bạn đã ký tập tin với khóa riêng của bạn
    • họ đã xác minh chữ ký với khóa công khai của bạn
    • trách nhiệm được thực hiện bởi họ xác nhận bạn đã gửi tệp

Có nhiều cách khác để thực hiện những việc như vậy,
tuy nhiên, việc có được một cặp khóa do người khác tạo ra là vô ích như một sơ đồ xác thực .
Nó có một hàm ý mạnh mẽ rằng bạn tin tưởng họ nhiều như bạn tin tưởng chính mình.


Đây là những câu hỏi mở đầu bạn có thể hỏi CNTT của bạn.
Nếu trách nhiệm là một mối quan tâm cho CNTT,

  1. Làm thế nào để họ đảm bảo bạn không chia sẻ / mất cặp khóa do họ cung cấp cho bạn? và,
    • Khái niệm khóa-cặp-từ-CNTT này khác với mật khẩu do CNTT cung cấp cho bạn như thế nào.
      Tại sao phải bận tâm với các cặp khóa trong trường hợp đó.

Bạn đang nghĩ về PGP / GnuPG để mã hóa tập tin. Trong trường hợp này, ký khóa là bình thường. Câu hỏi ban đầu là về các khóa SSH. Sẽ thật hợp lý nếu họ yêu cầu khóa SSH được ký / mã hóa PGP (sau khi xác minh và ký các khóa PGP của nhau).
pss

@pgs, tôi đang cố gắng xem những gì người CNTT đang nhắm mục tiêu ở đây.
nik

Tôi khá chắc chắn rằng anh chàng bảo mật bối rối, nhưng vì anh ta là nhân viên bảo mật CNTT từ công ty khách hàng của tôi chứ không phải đồng nghiệp của tôi, tôi cần phải khéo léo hơn một chút và đẩy mạnh anh ta ra và chỉ nói với anh ta rằng anh ta có những thứ trộn lẫn. Vâng, đó chắc chắn là SSH và không phải PGP.
dự đoán

@feIDIAet, nhận được sự khéo léo là nơi những điểm cuối cùng của tôi sẽ giúp bạn.
nik

@feIDIAet, mục tiêu của bạn cuối cùng sẽ khiến họ nhận ra mức tối thiểu họ sẽ phải làm để đạt được mục đích chính xác.
nik

2

Không có lý do gì bạn không thể sử dụng chứng chỉ X.509 để xác thực SSH thay vì khóa trần - thực tế, tôi rất thích nó nếu OpenSSH hoạt động theo cách này! Nhưng, phiên bản chứng khoán của OpenSSH thì không, và đó là phiên bản chiếm ưu thế ngày nay.

Tôi đã thấy một vài phiên bản vá lỗi của OpenSSH trôi nổi, và việc triển khai SSH.com thương mại cũng xuất hiện để hỗ trợ xác thực X.509. Vì vậy, nếu tổ chức của bạn đang sử dụng một trong những điều này, yêu cầu các khóa được ký bởi cơ quan trung ương sẽ có ý nghĩa rất lớn.

Điều đó nói rằng, không có lý do gì để yêu cầu khóa riêng được tạo bởi bên thứ ba! Nếu họ đang đi theo lộ trình X.509, thì họ sẽ yêu cầu bạn tạo ra một cặp khóa và yêu cầu ký chứng chỉ, giống như bạn làm với bất kỳ chứng chỉ X.509 nào khác được sử dụng cho SSL, v.v.

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.