OpenSSH 8.2 Dirilis dengan Dukungan Token Autentikasi Dua Faktor FIDO/U2F

Setelah empat bulan pengembangan disajikan melepaskan OpenSSH 8.2, implementasi klien dan server terbuka untuk bekerja melalui protokol SSH 2.0 dan SFTP.

Peningkatan utama dalam rilis OpenSSH 8.2 adalah kemampuan untuk menggunakan autentikasi dua faktor dengan perangkat yang mendukung protokol tersebut. U2F, dikembangkan oleh aliansi Fido. U2F memungkinkan pembuatan token perangkat keras berbiaya rendah untuk memverifikasi keberadaan fisik pengguna, berinteraksi dengan mereka melalui USB, Bluetooth, atau NFC. Perangkat tersebut dipromosikan sebagai alat otentikasi dua faktor di situs web, sudah didukung oleh browser utama dan diproduksi oleh berbagai produsen, termasuk Yubico, Feitian, Thetis, dan Kensington.

Untuk berinteraksi dengan perangkat yang mengonfirmasi keberadaan pengguna, OpenSSH telah menambahkan tipe kunci baru, "ecdsa-sk" dan "ed25519-sk", yang menggunakan algoritma tanda tangan digital ECDSA dan Ed25519 yang dikombinasikan dengan hash SHA-256. Prosedur untuk berinteraksi dengan token telah dipindahkan ke pustaka perantara, yang dimuat serupa dengan pustaka dukungan PKCS#11 dan bertindak sebagai pembungkus pustaka tersebut. libfido2, yang menyediakan alat untuk berkomunikasi dengan token melalui USB (protokol FIDO U2F/CTAP 1 dan FIDO 2.0/CTAP 2 didukung). Perpustakaan perantara libsk-libfido2 disiapkan oleh pengembang OpenSSH termasuk ke dalam inti libfido2, serta pengemudi tersembunyi untuk OpenBSD.

Untuk mengautentikasi dan membuat kunci, Anda harus menentukan parameter "SecurityKeyProvider" di pengaturan atau mengatur variabel lingkungan SSH_SK_PROVIDER, yang menentukan jalur ke pustaka eksternal libsk-libfido2.so (ekspor SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). OpenSSH dapat dibangun dengan dukungan bawaan untuk pustaka perantara (--with-security-key-builtin); dalam hal ini, Anda harus mengatur parameter "SecurityKeyProvider=internal".
Selanjutnya, jalankan "ssh-keygen -t ecdsa-sk" atau, jika kunci sudah dibuat dan dikonfigurasi, sambungkan ke server menggunakan "ssh". Ketika Anda menjalankan ssh-keygen, pasangan kunci yang dihasilkan akan disimpan di "~/.ssh/id_ecdsa_sk" dan dapat digunakan seperti kunci lainnya.

Kunci publik (id_ecdsa_sk.pub) harus disalin ke berkas "authorized_keys" di server. Server hanya memverifikasi tanda tangan digital, sementara interaksi token terjadi di klien (libsk-libfido2 tidak perlu diinstal di server, tetapi server harus mendukung jenis kunci "ecdsa-sk"). Kunci privat yang dihasilkan (id_ecdsa_sk) pada dasarnya adalah deskriptor kunci yang membentuk kunci asli hanya jika digabungkan dengan urutan rahasia yang tersimpan di token U2F. Jika penyerang mendapatkan kunci id_ecdsa_sk, mereka juga memerlukan akses ke token perangkat keras untuk autentikasi. Tanpanya, kunci privat yang tersimpan di berkas id_ecdsa_sk tidak akan berguna.

Lebih lanjut, secara default, semua operasi kunci (baik pembuatan maupun autentikasi) memerlukan konfirmasi lokal atas keberadaan fisik pengguna, seperti menyentuh sensor pada token, sehingga menyulitkan serangan jarak jauh pada sistem dengan token yang terhubung. Sebagai lapisan keamanan tambahan, kata sandi untuk mengakses berkas kunci juga dapat diatur saat menjalankan ssh-keygen.

Versi baru OpenSSH juga mengumumkan penghentian algoritma yang menggunakan hash SHA-1 karena promosi efektivitas serangan tabrakan dengan awalan tertentu (biaya pemilihan tabrakan diperkirakan sekitar 45 ribu dolar). Dalam salah satu rilis mendatang, mereka berencana untuk menonaktifkan secara default kemampuan untuk menggunakan algoritma tanda tangan digital kunci publik “ssh-rsa”, yang disebutkan dalam RFC asli untuk protokol SSH dan tetap tersebar luas dalam praktiknya (untuk menguji penggunaan dari ssh-rsa di sistem Anda, Anda dapat mencoba menghubungkan melalui ssh dengan opsi “-oHostKeyAlgorithms=-ssh-rsa”).

Untuk memperlancar transisi ke algoritme baru di OpenSSH, pada rilis mendatang, setelan UpdateHostKeys akan diaktifkan secara default, yang secara otomatis akan memigrasikan klien ke algoritme yang lebih andal. Algoritme yang disarankan untuk migrasi mencakup rsa-sha2-256/512 berdasarkan RFC8332 RSA SHA-2 (didukung sejak OpenSSH 7.2 dan digunakan secara default), ssh-ed25519 (didukung sejak OpenSSH 6.5) dan berbasis ecdsa-sha2-nistp256/384/521 pada RFC5656 ECDSA (didukung sejak OpenSSH 5.7).

OpenSSH 8.2 masih mendukung koneksi menggunakan "ssh-rsa", tetapi algoritma ini telah dihapus dari daftar CASignatureAlgorithms, yang mendefinisikan algoritma yang diizinkan untuk menandatangani sertifikat baru secara digital. Demikian pula, algoritma diffie-hellman-group14-sha1 telah dihapus dari algoritma pertukaran kunci default yang didukung. Perlu dicatat bahwa penggunaan SHA-1 dalam sertifikat memiliki risiko tambahan, karena penyerang memiliki waktu tak terbatas untuk menemukan tabrakan pada sertifikat yang ada, sementara serangan pada kunci host dibatasi oleh batas waktu koneksi (LoginGraceTime).

Saat menjalankan ssh-keygen, algoritma rsa-sha2-512 yang didukung sejak OpenSSH 7.2 kini digunakan secara default. Hal ini dapat menimbulkan masalah kompatibilitas saat mencoba memproses sertifikat bertanda tangan OpenSSH 8.2 pada sistem yang menjalankan rilis OpenSSH lama (untuk mengatasi masalah ini, Anda dapat menentukan "ssh-keygen -t ssh-rsa" secara eksplisit saat membuat tanda tangan, atau menggunakan algoritma ecdsa-sha2-nistp256/384/521 yang didukung sejak OpenSSH 5.7).

Perubahan lainnya:

  • Direktif Include telah ditambahkan ke sshd_config, yang memungkinkan konten file lain disertakan dalam posisi file konfigurasi saat ini (glob mask dapat digunakan saat menentukan nama file);
  • Opsi "no-touch-required" telah ditambahkan ke ssh-keygen, yang menonaktifkan kebutuhan konfirmasi fisik akses ke token saat membuat kunci;
  • Direktif PubkeyAuthOptions telah ditambahkan ke sshd_config, menggabungkan berbagai opsi terkait autentikasi kunci publik. Saat ini, hanya flag "no-touch-required" yang didukung, sehingga memungkinkan pengecekan keberadaan fisik selama autentikasi token dapat dilewati. Demikian pula, opsi "no-touch-required" telah ditambahkan ke berkas authorized_keys.
  • Opsi "-O write-attestation=/path" telah ditambahkan ke ssh-keygen, yang memungkinkan penulisan sertifikat atestasi FIDO tambahan saat membuat kunci. OpenSSH saat ini tidak menggunakan sertifikat ini, tetapi dapat digunakan di masa mendatang untuk memverifikasi bahwa kunci disimpan di penyimpanan perangkat keras tepercaya.
  • Dalam pengaturan ssh dan sshd, sekarang dimungkinkan untuk mengatur mode prioritas lalu lintas melalui arahan IPQoS. LE DSCP (Perilaku Per-Hop dengan Upaya Rendah);
  • Dalam ssh, saat menetapkan nilai "AddKeysToAgent=yes", jika kunci tidak berisi kolom komentar, kunci tersebut akan ditambahkan ke ssh-agent dengan jalur ke kunci yang ditentukan sebagai komentar.
    ssh-keygen dan ssh-agent sekarang juga menggunakan label PKCS#11 dan nama subjek X.509 sebagai komentar dalam kunci, bukan jalur pustaka;
  • Menambahkan kemampuan untuk mengekspor PEM untuk kunci DSA dan ECDSA ke ssh-keygen;
  • Menambahkan file eksekusi baru ssh-sk-helper, yang digunakan untuk mengisolasi akses pustaka ke token FIDO/U2F;
  • Menambahkan opsi build "--with-zlib" ke ssh dan sshd untuk mengkompilasi dengan dukungan pustaka zlib;
  • Sesuai dengan RFC 4253, peringatan tentang akses yang diblokir karena melebihi batas MaxStartups kini ditampilkan di banner koneksi. Untuk menyederhanakan diagnostik, header proses sshd, yang dapat dilihat menggunakan utilitas ps, kini menampilkan jumlah koneksi yang saat ini diautentikasi dan status batas MaxStartups.
  • Dalam ssh dan ssh-agent, saat memanggil program untuk menampilkan undangan di layar, yang ditentukan melalui $SSH_ASKPASS, sebuah bendera dengan jenis undangan sekarang juga dilewatkan: “confirm” — dialog konfirmasi (ya/tidak), “none” — pesan informasi, “blank” — permintaan kata sandi;
  • Operasi tanda tangan digital baru, "find-principals", telah ditambahkan ke ssh-keygen untuk mencari file allowed-signers untuk pengguna yang terkait dengan tanda tangan digital yang ditentukan;
  • Peningkatan dukungan untuk isolasi proses sshd di Linux Dengan menggunakan mekanisme seccomp: panggilan sistem IPC dinonaktifkan, clock_gettime64(), clock_nanosleep_time64 dan clock_nanosleep() diizinkan.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster