OpenSSH: Anahtar tabanlı yetkilendirme, maksimum anahtar uzunluğu


9

Bazı mayın sunucularına erişmek için anahtar tabanlı kimlik doğrulaması olan pencerelerde Putty kullanıyorum.

~ 3700 bit anahtarla tamamen iyi çalışır, ancak ~ 17000 bit anahtarla istemci tarafında 20 saniye gibi düşünür ve daha sonra "Erişim reddedildi" der ve bir şifre ister.

Anahtar tabanlı kimlik doğrulaması için OpenSSH'de herhangi bir anahtar uzunluğu sınırı veya zaman aşımı var mı?

Bu büyük anahtarları kullanmanın, özellikle bu 20 saniyelik hesaplamalara bakarken, sadece karşılaştığım sorunları çözmeye çalışırken çok pratik bir anlamı olmadığını anlıyorum: -) ...


İki farklı güç olan bir anahtar uzunluğu kullanarak çalıştığım bazı OpenSSH sürümlerinde de benzer sorunlar olduğunu gördüm.
kasperd

Yanıtlar:


9

Bir noktada Diffie-Hellman anahtarları için OpenSSL kaynağına baktım ve DH anahtarlarının boyutunda "keyfi" 10K sınırının olduğunu gördüm. Bir testin kaynağını değiştirdim ve işe yaradığını gördüm. Yazarlara bir hata yazdım ve büyük anahtarlar kullanarak DoS'ı önlemenin tasarım amacı olduğunu söylediler.

OpenSSH'de benzer bir şey görmek beni şaşırtmaz.


5

Protokolde tanımlanmış bir maksimum anahtar boyutu veya zaman aşımı yok (veya vurmak istediğiniz en azından hiçbiri), ancak bir uygulama bu kadar uzun anahtarları desteklemeyebilir. Özel anahtar ile 20 saniyelik işlem süresi, 17kbit RSA anahtarı için yüksek gelmiyor. Ardından sunucu kimliği doğrulanmamış bir kullanıcıya çok fazla bilgi işlem gücü harcamak istemeyebilir: çok büyük anahtarları reddetmek DoS saldırılarına karşı bir korumadır.

Şu anda bir RSA anahtarı için 2048 bit makul kabul edilmektedir; 4096 bit gerekenden daha yüksek ancak genellikle destekleniyor; bunun ötesinde bazı programları anahtarı reddetmek sizi şaşırtmamalıdır.


Bu koruma makul görünüyor. Kaynak kodunda ayarlanabilir veya kodlanmış mı?
BarsMonster

Kılavuzda bunun için bir seçenek yoktur, bu nedenle kaynak kodunda herhangi bir sınır olmalıdır. Yani, aslında bir koruma olup olmadığını bilmiyorum, sadece bir tane olmanın makul olacağını kastetmiştim. AndreasM'in cevabının işarete daha yakın olduğundan şüpheleniyorum.
Gilles 'SO- kötü olmayı kes'

4

Hedeflenen sistemde bu boyutta bir anahtar üretebildiniz mi? Desteklenenler için bir sınırla karşılaşıyor olabilirsiniz. Şu anki Centos sistemim, büyük anahtarlar için yeterli görünen maksimum 16k'lık bir desteği destekliyor. Aşağıda gösterildiği gibi, ssh-keygen ile üzerine çıkmaya çalışırsanız maksimum değeri görmelisiniz.

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

Debian'da da aynısı 8.2. Netbook'um bu 16384 bitlik anahtarı üretirken biraz zaman harcayabilir ... gülmek için yaptığım şeyler.
underscore_d

MinGW tabanlı Windows 7 için "Git Bash" ile aynı.
user1364368

Aynı zamanda OpenSuse Leap 42.1 için de geçerlidir.
user1364368

2

OpenSsh sunucusunda bir LoginGraceTime ayarı vardır. Man sayfasından:

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.

Bu, 20 saniyeye ayarlanmışsa vurduğunuz bir sınır olabilir.

Vahşi tahmin: Macunun kendisi de bu sınıra sahip olabilir, ortak anahtar kimlik doğrulamasının istemci tarafı işlenmesi bu kadar uzun sürerse, bir şeylerin yanlış olduğunu düşünebilir.


Aynı şeyi düşündüm ve LoginGraceTime 1200'ü ayarladım Peki, hata mesajı konsolda, bu yüzden
Putty'de bir

1
Sunucu günlüklerini kontrol edin. Bunun gibi bir anahtar boyutu ile: RSA_public_decrypt başarısız oldu: hata: 04067069: lib (4): func (103): reason (105). (görünüşte anahtar boyutu nedeniyle.) 2 ^ n anahtarını deneyeceğim.
AndreasM

1
16384 bit çalışıyor gibi görünüyor. 32kbit ile sonuçlar için hermann-uwe.de/blog/… :)
AndreasM

1
Ölümcül haklısın: Bulunan thid: sshd [1014]: hata: RSA_public_decrypt başarısız oldu: hata: 04067069: lib (4): func (103): reason (105) Bu sshd / OpenSSL'de hata olmalı :-)
BarsMonster
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.