Apakah randomart yang diproduksi oleh ssh-keygen?

352

Ketika Anda menghasilkan kunci, Anda mendapatkan "randomart" dari versi OpenSSH yang lebih baru. Saya tidak dapat menemukan penjelasan mengapa, dan untuk apa saya seharusnya menggunakannya.

Generating public/private rsa key pair.
The key fingerprint is:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i
The key's randomart image is:
+--[ RSA 2048]----+
|       o=.       |
|    o  o++E      |
|   + . Ooo.      |
|    + O B..      |
|     = *S.       |
|      o          |
|                 |
|                 |
|                 |
+-----------------+

Generating public/private dsa key pair.
The key fingerprint is:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i
The key's randomart image is:
+--[ DSA 1024]----+
|            o.o  |
|            .= E.|
|             .B.o|
|              .= |
|        S     = .|
|       . o .  .= |
|        . . . oo.|
|             . o+|
|              .o.|
+-----------------+
dlamblin
sumber
5
Pertanyaan lain yang ingin saya tanyakan adalah; apakah aman untuk membagikan gambar bagian acak Anda dengan orang lain? Dengan kata lain, diberikan gambar randomart seperti di atas, apakah mungkin untuk merekayasa balik ini kembali ke kunci?
AndyJ0076

Jawaban:

259

Randomart dimaksudkan sebagai cara yang lebih mudah bagi manusia untuk memvalidasi kunci.

Validasi biasanya dilakukan dengan perbandingan string yang tidak berarti (yaitu representasi heksadesimal dari sidik jari kunci), yang manusia cukup lambat dan tidak akurat dalam membandingkan. Randomart menggantikan ini dengan gambar terstruktur yang lebih cepat dan lebih mudah untuk dibandingkan.

Makalah ini "Hash Visualisasi: Teknik Baru untuk meningkatkan Keamanan Dunia Nyata", Perrig A. dan Song D., 1999, Lokakarya Internasional tentang Teknik Kriptografi dan E-Commerce (CrypTEC '99) " menjelaskan beberapa teknik dan keunggulan.

menandai
sumber
66
Jika Anda bisa menjelaskan mengapa manusia memvalidasi kunci, itu bisa membantu, karena terus terang saya cenderung hanya memasukkan kunci publik saya di file otor_keys saya dan selesai dengan itu.
dlamblin
43
@ dlamblin: Anda biasanya tidak akan memverifikasi kunci Anda sendiri dengan ini. Namun, itu akan berguna untuk memverifikasi kunci host dari mesin jarak jauh. Satu ide adalah bahwa jika Anda login ke mesin tertentu dari berbagai lokasi (atau Anda tidak menyimpan kuncinya ke file known_hosts Anda), Anda akan dapat mengenali "seni" dari kunci host. Jika seni itu tiba-tiba berubah, Anda harus berhati-hati mengetikkan kata sandi Anda karena itu mungkin berarti bahwa serangan orang di tengah sedang berlangsung pada koneksi Anda (atau itu mungkin berarti bahwa tuan rumah baru saja mengubah kunci untuk beberapa lainnya. alasan).
Chris Johnsen
29
Uhm, Kapan saya bisa melihat seni host? (Saya pikir saya tidak pernah melakukannya.) Saya hanya melihat gambar seperti itu setelah membuat pasangan kunci saya. Dan dengan apa saya harus membandingkannya untuk mengenali perubahan 'mendadak'.
DerMike
12
Saya ingin bertaruh bahwa randomart mematuhi prinsip yang sama seperti hash untuk pemeriksaan integritas, yaitu: perbedaan kecil pada input menghasilkan output yang sangat berbeda. Itu berarti Anda hanya perlu mengingat bentuk kasar dari randomart yang diharapkan untuk dapat melihat ada sesuatu yang salah. Tentu saja ini tidak berhasil dalam prakteknya ketika SSH et al tidak menunjukkan kepada Anda bagian acak dari host yang Anda hubungkan (mereka harus melakukannya bahkan ketika host tersebut diketahui).
Alan Plum
2
Saya membayangkan ini paling berguna ketika kunci publik dipertukarkan secara langsung untuk pemeriksaan integritas setelah salinan selesai.
jordanpg
198

Menambahkan

-o VisualHostKey=yes 

ke baris perintah Anda, atau masukkan

VisualHostKey=yes 

di Anda ~/.ssh/config.

Anda akan melihat bagian acak dari kotak tempat Anda masuk. Jika Anda masuk suatu hari dan seni acaknya berbeda (otak Anda harus pergi Hei! Saya tidak mengenalinya!), Maka mungkin seseorang sedang meretas, atau sesuatu.

Idenya adalah Anda tidak perlu melakukannya secara sadar. Salah satu kunci untuk salah satu mesin kami terlihat seperti kupu-kupu. Yang lain agak seperti kontol (ya, otak kita primitif). Jika Anda masuk setiap hari, Anda akan terbiasa dengan gambar tanpa mencoba.

Paul Murray
sumber
9
Tidak hebat. Jika Anda telah login sebelumnya, jauh lebih baik bagi komputer untuk melakukan pengenalan untuk Anda menggunakan sidik jari yang tersimpan. Fitur ini hanya dimaksudkan untuk digunakan untuk masuk ke mesin baru.
Nicholas Wilson
57
Jauh terlambat untuk jawaban ini, tetapi perlu menunjukkan bahwa ini akan sangat berguna jika Anda masuk dari mesin lain yang tidak memiliki semua host_hosted Anda. Jika demikian, komputer tidak akan dapat memverifikasi bahwa itu diketahui, tetapi pengguna harus dapat melihat "Itu terlihat jauh berbeda dari biasanya!" dan batalkan.
Xkeeper
9
Membiarkan komputer Anda melakukan pengenalan rentan terhadap host komputer Anda yang diketahui diretas. Sama seperti Anda tidak boleh membiarkan komputer Anda memasukkan kata sandi untuk Anda, Anda akan lebih baik memvalidasi kunci host sendiri.
Marko Topolnik
37

Pengumuman resmi: OpenSSH 5.1 dirilis

Perkenalkan Visualisasi Sidik Jari SSH ASCII eksperimental ke ssh (1) dan ssh-keygen (1). Tampilan fingerprinnt visual dikendalikan oleh opsi ssh_config (5) baru "VisualHostKey". Tujuannya adalah untuk membuat kunci host SSH dalam bentuk visual yang mudah diterima dan ditolak dari kunci host yang diubah. Teknik ini terinspirasi oleh skema visualisasi hash grafis yang dikenal sebagai "seni acak [*]", dan oleh renungan Dan Kaminsky di 23C3 di Berlin.

Visualisasi sidik jari dalam saat ini dinonaktifkan secara default, karena algoritma yang digunakan untuk menghasilkan seni acak masih dapat berubah.

Nick
sumber
8
Kalimat terakhir itu memang layak untuk diketahui. OpenBSD Journal @ Undeadly.org info tentang rilis OpenSSH 6.8 menyatakan, "Harap dicatat bahwa kunci host visual juga akan berbeda." Perangkat lunak yang lebih baru menunjukkan gambar yang berbeda dari gambar yang ditunjukkan oleh perangkat lunak yang lebih lama.
TOOGAM
27

Anda dapat menemukan analisis mendalam tentang bagian acak VisualHostKey di makalah singkat The Drunken Bishop .

loomi
sumber
11

Randomart yang ditampilkan setelah generasi ssh-keygen adalah representasi grafis dari kunci yang baru saja Anda buat. Kemudian:

  • Randomart tidak benar - benar berguna bagi pengguna yang membuat kunci ssh

  • Randomart dapat sangat berguna bagi pengguna yang menggunakan koneksi melalui SSH untuk sering terhubung ke server yang sama : jika ia menambahkan opsi "-o VisualHostKey = yes" ke perintah SSH-nya:

    ssh [email protected] -o VisualHostKey = ya

Randomart yang sesuai dengan kunci publik dari server akan ditampilkan.

Untuk melihat contoh, Anda dapat mencoba:

ssh [email protected] -o VisualHostKey = ya

Dalam kasus di mana pengguna sering terhubung ke server yang sama, maka ia dapat dengan cepat dan mudah memeriksa apakah ia mengenali Randomart yang sesuai dengan kunci publik dari server ini atau tidak. Yang lebih mudah dan lebih cepat daripada memeriksa string karakter kunci publik itu sendiri!

tmangin
sumber