OpenSSH : 키 기반 인증, 최대 키 길이


9

키 기반 인증으로 Windows에서 Putty를 사용하여 일부 내 서버에 액세스하고 있습니다.

~ 3700- 비트 키로 완전히 작동하지만 ~ 17000- 비트 키로 클라이언트 측에서 20 초 동안 생각한 다음 "액세스 거부"라고 말하고 비밀번호를 묻습니다.

키 기반 인증을 위해 OpenSSH에 키 길이 제한이나 시간 초과가 있습니까?

이러한 큰 키를 사용하면 특히 20 초의 계산을 볼 때 실제로 직면하는 문제를 해결하려고 할 때 실용적이지 않습니다.


일부 OpenSSH 버전에서 비슷한 문제가 발생하는 것을 보았습니다. 키 길이는 2의 거듭 제곱을 사용하여 해결했습니다.
kasperd

답변:


9

어느 시점에서 Diffie-Hellman 키에 대한 OpenSSL 소스를 조사한 결과 DH 키 크기에 "임의"10K 제한이 있음을 발견했습니다. 테스트 소스를 변경했는데 효과가 있음을 알았습니다. 저자들에게 버그를 썼고, 방대한 키를 사용하여 DoS를 막기위한 의도로 설계되었다고 답했다.

OpenSSH에서 비슷한 것을 보니 놀라지 않을 것입니다.


5

프로토콜에 최대 키 크기 또는 시간 초과가 정의되어 있지 않거나 적중하지 않은 경우도 있지만 구현에서 이러한 긴 키를 지원하지 않을 수 있습니다. 개인 키를 사용한 20 초의 처리 시간은 17kbit RSA 키에 대해 높게 들리지 않습니다. 그런 다음 서버는 인증되지 않은 사용자에게 너무 많은 컴퓨팅 성능을 소비하고 싶지 않을 수 있습니다. 매우 큰 키를 거부하는 것은 DoS 공격에 대한 보호입니다.

현재 2048 비트는 RSA 키에 적합한 것으로 간주됩니다. 4096 비트는 필요한 것보다 높지만 일반적으로 지원됩니다. 이 외에도 일부 프로그램이 키를 거부하더라도 놀라지 않아야합니다.


이 보호는 합리적으로 보입니다. 소스 코드에서 조정 가능하거나 하드 코딩되어 있습니까?
BarsMonster

매뉴얼에는 이에 대한 옵션이 없으므로 소스 코드에 제한이 있어야합니다. 즉, 실제로 보호 기능이 있는지 모르겠습니다. 보호 기능을 갖추는 것이 합리적이라는 것을 의미했습니다. AndreasM의 대답이 마크에 더 가깝다고 생각합니다.
Gilles 'SO- 악한 중지'

3

원하는 대상 시스템에서 해당 크기의 키를 생성 할 수 있었습니까? 지원 대상에 제한이있을 수 있습니다. 오히려 현재의 Centos 시스템은 최대 16k를 지원하며 이는 거대한 키에 충분합니다. 아래와 같이 ssh-keygen을 사용하여 최대 값을 초과하면 최대 값을 볼 수 있습니다.

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

데비안 8.2에서도 마찬가지입니다. 16384 비트 키를 생성하는 데 시간이 많이 걸릴 수 있습니다.
underscore_d

MinGW를 기반으로하는 Windows 7의 "Git Bash"와 동일합니다.
user1364368

OpenSuse Leap 42.1에서도 동일합니다.
user1364368

1

openssh 서버에는 LoginGraceTime 설정이 있습니다. 매뉴얼 페이지에서 :

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.

20 초로 설정하면 치는 한계가 될 수 있습니다.

사소한 추측 : 퍼티 자체가이 한계를 가지고있을 수 있으며, 공개 키 인증의 클라이언트 측 처리 시간이 오래 걸리면 무언가 잘못되었다고 생각할 수 있습니다.


같은 생각을하고 LoginGraceTime 1200을 설정했습니다. 오류 메시지가 콘솔에 있으므로 퍼티에 문제가있는 것
같습니다

1
서버 로그를 확인하십시오. 이와 같은 키 크기로 RSA_public_decrypt 실패 : error : 04067069 : lib (4) : func (103) : reason (105)가 표시됩니다. (키 크기 때문인 것 같습니다.) 2 ^ n 키를 사용해 보겠습니다.
AndreasM

1
16384 비트가 작동하는 것 같습니다. 32kbits와 결과를 참조하십시오 hermann-uwe.de/blog/...을 :)
AndreasM

1
치명적인 권리 : thid 발견 : sshd [1014] : 오류 : RSA_public_decrypt 실패 : error : 04067069 : lib (4) : func (103) : reason (105) sshd / OpenSSL :-)의 버그 여야합니다.
BarsMonster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.