OpenSSH: Otorisasi berbasis kunci, panjang kunci maksimum


9

Saya menggunakan Putty di windows dengan otentikasi berbasis kunci untuk mengakses beberapa server tambang.

Ini berfungsi sangat baik dengan ~ 3700-bit key, tetapi dengan ~ 17000-bit key itu berpikir seperti 20 detik di sisi klien dan kemudian hanya mengatakan "Akses ditolak" dan meminta kata sandi.

Apakah ada batasan panjang kunci atau batas waktu di OpenSSH untuk otentikasi berbasis kunci?

Saya mengerti bahwa menggunakan tombol besar seperti itu tidak memiliki arti praktis, terutama ketika melihat 20 detik perhitungan ini, hanya mencoba untuk menyelesaikan masalah yang saya hadapi: -) ...


Saya telah melihat masalah serupa terjadi pada beberapa versi OpenSSH, yang saya kerjakan dengan menggunakan panjang kunci yang merupakan kekuatan dua.
kasperd

Jawaban:


9

Pada satu titik saya mencari sumber OpenSSL untuk kunci Diffie-Hellman, dan menemukan ada batas 10K "sewenang-wenang" pada ukuran kunci DH. Saya mengubah sumber untuk tes, dan ternyata berhasil. Saya menulis bug kepada penulis, dan mereka menjawab kembali bahwa itu adalah maksud desain untuk mencegah DoS dengan menggunakan kunci besar.

Tidak akan mengejutkan saya melihat sesuatu yang serupa di OpenSSH.


5

Tidak ada ukuran kunci maksimum atau batas waktu yang ditentukan dalam protokol (atau setidaknya tidak ada yang akan Anda tekan), tetapi implementasi mungkin tidak mendukung kunci panjang tersebut. Waktu pemrosesan 20 detik dengan kunci pribadi tidak terdengar tinggi untuk kunci RSA 17kbit. Maka server mungkin tidak ingin menghabiskan terlalu banyak daya komputasi pada pengguna yang tidak diautentikasi: menolak kunci yang sangat besar adalah perlindungan terhadap serangan DoS.

Saat ini 2048 bit dianggap masuk akal untuk kunci RSA; 4096 bit lebih tinggi dari yang diperlukan tetapi biasanya didukung; di luar ini Anda tidak perlu heran jika beberapa program menolak kunci.


Perlindungan ini terlihat masuk akal. Apakah bisa merdu atau dikodekan dalam kode sumber?
BarsMonster

Tidak ada opsi untuk ini dalam manual, jadi batas apa pun harus ada dalam kode sumber. Yang mengatakan, saya tidak tahu apakah sebenarnya ada perlindungan, saya hanya bermaksud bahwa itu masuk akal untuk memilikinya. Saya curiga bahwa jawaban AndreasM mendekati sasaran.
Gilles 'SANGAT berhenti menjadi jahat'

3

Apakah Anda dapat menghasilkan ukuran kunci pada sistem target yang dimaksud? Anda mungkin berlari ke batas untuk apa yang didukung. Sistem tambang Centos saat ini mendukung maksimum 16k yang tampaknya cukup untuk kunci besar. Anda akan melihat maksimum jika Anda mencoba untuk pergi di atasnya dengan ssh-keygen seperti yang ditunjukkan di bawah ini.

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

Sama dengan Debian 8.2. Netbook saya mungkin menghabiskan cukup banyak waktu menghasilkan kunci 16384-bit ini ... hal-hal yang saya lakukan untuk tertawa.
underscore_d

Sama pada "Git Bash" untuk Windows 7, yang didasarkan pada MinGW.
user1364368

Juga sama pada OpenSuse Leap 42.1.
user1364368

1

Server openssh memiliki pengaturan LoginGraceTime. Dari halaman manual:

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.

Ini bisa menjadi batas yang Anda pukul jika disetel ke 20 detik.

Tebakan liar: Bisa juga dempul itu sendiri memiliki batas ini, berpikir bahwa jika klien memproses otentikasi kunci publik membutuhkan waktu yang lama, ada sesuatu yang salah.


Saya telah memikirkan hal yang sama, dan mengatur LoginGraceTime 1200 Nah, pesan kesalahan ada di konsol, jadi saya ragu itu sesuatu di Putty ...
BarsMonster

1
Periksa log server. Dengan ukuran kunci seperti ini saya dapatkan: RSA_public_decrypt gagal: kesalahan: 04067069: lib (4): func (103): reason (105). (karena ukuran kunci rupanya.) Saya akan mencoba kunci 2 ^ n.
AndreasM

1
16384 bit tampaknya berfungsi. Untuk hasil dengan 32kbit, lihat hermann-uwe.de/blog/… :)
AndreasM

1
Anda benar sekali: Ditemukan thid: sshd [1014]: error: RSA_public_decrypt gagal: error: 04067069: lib (4): func (103): reason (105) Jadi ini pasti bug di sshd / OpenSSL :-)
BarsMonster
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.