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.