OpenSSH: Ủy quyền dựa trên khóa, độ dài khóa tối đa


9

Tôi đang sử dụng Putty trên các cửa sổ với xác thực dựa trên khóa để truy cập vào một số máy chủ của tôi.

Nó hoạt động hoàn toàn tốt với khóa ~ 3700 bit, nhưng với khóa ~ 17000 bit, nó nghĩ khoảng 20 giây ở phía máy khách và sau đó chỉ cần nói "Truy cập bị từ chối" và yêu cầu mật khẩu.

Có bất kỳ giới hạn độ dài khóa hoặc thời gian chờ nào trong OpenSSH để xác thực dựa trên khóa không?

Tôi hiểu rằng việc sử dụng các phím lớn như vậy không có nhiều ý nghĩa thực tế, đặc biệt là khi nhìn vào 20 giây tính toán này, chỉ cố gắng giải quyết bất kỳ vấn đề nào tôi gặp phải: -) ...


Tôi đã thấy các vấn đề tương tự xảy ra trên một số phiên bản OpenSSH, mà tôi đã khắc phục bằng cách sử dụng độ dài khóa là sức mạnh của hai.
kasperd

Câu trả lời:


9

Tại một thời điểm, tôi đã tìm hiểu nguồn OpenSSL cho các khóa Diffie-Hellman và nhận thấy có giới hạn 10K "tùy ý" về kích thước của các phím DH. Tôi đã thay đổi nguồn để thử nghiệm và thấy rằng nó hoạt động. Tôi đã viết một lỗi cho các tác giả và họ trả lời lại rằng đó là ý định thiết kế để ngăn chặn DoS bằng cách sử dụng các phím lớn.

Tôi sẽ không ngạc nhiên khi thấy một cái gì đó tương tự trong OpenSSH.


5

Không có kích thước khóa tối đa hoặc thời gian chờ được xác định trong giao thức (hoặc ít nhất là không có gì bạn đang nhấn), nhưng việc triển khai có thể không hỗ trợ các khóa dài như vậy. Thời gian xử lý 20 giây với khóa riêng không có vẻ cao đối với khóa RSA 17kbit. Sau đó, máy chủ có thể không muốn dành quá nhiều sức mạnh tính toán cho người dùng không được xác thực: từ chối các khóa rất lớn là một biện pháp bảo vệ chống lại các cuộc tấn công DoS.

Hiện tại 2048 bit được coi là hợp lý cho khóa RSA; 4096 bit cao hơn mức cần thiết nhưng thường được hỗ trợ; ngoài điều này bạn không nên ngạc nhiên nếu một số chương trình từ chối khóa.


Sự bảo vệ này có vẻ hợp lý. Nó có thể điều chỉnh hoặc mã hóa cứng trong mã nguồn?
BarsMonster

Không có tùy chọn cho điều này trong hướng dẫn, vì vậy mọi giới hạn phải nằm trong mã nguồn. Điều đó nói rằng, tôi không biết nếu thực sự có một sự bảo vệ, tôi chỉ có nghĩa là nó sẽ hợp lý để có một. Tôi nghi ngờ rằng câu trả lời của AndreasM gần với nhãn hiệu hơn.
Gilles 'SO- ngừng trở nên xấu xa'

3

Bạn có thể tạo kích thước khóa đó trên hệ thống đích dự định không? Bạn có thể đang chạy vào một giới hạn cho những gì được hỗ trợ. Hệ thống Centos hiện tại của tôi hỗ trợ tối đa 16 nghìn, dường như đủ cho các phím lớn. Bạn sẽ thấy mức tối đa nếu bạn cố gắng vượt lên trên nó với ssh-keygen như hiển thị bên dưới.

[nathan@omni ~]# ssh-keygen -t rsa -b 32768
key bits exceeds maximum 16384

Tương tự trên Debian 8.2. Chiếc netbook của tôi có thể mất khá nhiều thời gian để tạo ra khóa 16384 bit này ... những điều tôi làm để cười.
gạch dưới

Tương tự trên "Git Bash" cho Windows 7, dựa trên MinGW.
dùng1364368

Cũng tương tự trên OpenSuse Leap 42.1.
dùng1364368

1

Máy chủ openssh có cài đặt LoginGraceTime. Từ trang người đàn ông:

The server disconnects after this time if the user has not suc-
cessfully logged in.  If the value is 0, there is no time limit.
The default is 120 seconds.

Đây có thể là giới hạn mà bạn đang nhấn nếu được đặt thành 20 giây.

Wild đoán: Cũng có thể là chính putty có giới hạn này, nghĩ rằng nếu phía máy khách xử lý xác thực khóa công khai mất nhiều thời gian thì có gì đó không ổn.


Tôi cũng nghĩ như vậy và đặt LoginGraceTime 1200 Chà, thông báo lỗi nằm trong bảng điều khiển, vì vậy tôi nghi ngờ đó là một cái gì đó trong Putty ...
BarsMonster

1
Kiểm tra nhật ký máy chủ. Với kích thước khóa như thế này, tôi nhận được: RSA_public_decrypt không thành công: error: 04067069: lib (4): func (103): reason (105). (vì kích thước khóa rõ ràng.) Tôi sẽ thử khóa 2 ^ n.
AndreasM

1
16384 bit dường như hoạt động. Để biết kết quả với 32kbit, hãy xem hermann-uwe.de/blog/, :)
AndreasM

1
Bạn chết ngay: Tìm thấy thid: sshd [1014]: lỗi: RSA_public_decrypt thất bại: Lỗi: 04.067.069: lib (4): func (103): lý do (105) Vì vậy, đây phải là một lỗi trong sshd / OpenSSL :-)
BarsMonster
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.