Apakah ada yang disebut keypair SSH yang ditandatangani?

9

Kami mentransfer file ke server jauh di aplikasi kami dan metode otentikasi yang diperlukan adalah menggunakan kunci SSH.

Jadi, saya membuat keypair saya menggunakan ssh-keygen dan menyerahkan kunci publik saya untuk dimasukkan ke file otor_keys host jarak jauh. Namun, ini ditolak oleh IT Security yang mengatakan mereka akan menghasilkan kunci tombol untuk saya dan mengirim saya kunci pribadi. Alasan: "Kami perlu kunci SSH untuk ditandatangani oleh tim Keamanan TI. Ini untuk memastikan kami memiliki beberapa keunggulan dalam penelusuran dan pertanggungjawaban."

Jelas, saya punya masalah dengan ini. Memiliki kunci pribadi yang dihasilkan oleh orang lain berarti bahwa saya dapat membuat orang itu menyamar seperti saya tanpa saya sadari. Saya mencoba menemukan cara untuk membantah argumen ini.

Sejauh yang saya bisa google, tampaknya tidak ada cara yang diketahui untuk menandatangani kunci sehingga membantu dalam melacak orang yang masuk. Fakta bahwa saya mengirimkan kunci publik saya berarti bahwa saya memiliki kunci dan siapa saja yang masuk ke server jauh dengan kunci itu secara default diidentifikasi sebagai diri saya sendiri. Bagaimana cara menandatangani bantuan? Dan bagaimana cara mereka menandatanganinya?

Seseorang tolong beri tahu saya jika saya salah, terima kasih!


Ok, sekarang kita telah menentukan bahwa tidak ada cara kunci SSH bisa masuk, saya perlu menunjukkan kepada IT Security bagaimana mereka benar-benar dapat melacak siapa yang telah masuk (harus konstruktif, saya kira, jika tidak mulai kidal mulai ). Di server saya sendiri, saya mengatur LogLevel sshd ke DEBUG. Jadi sekarang ketika saya masuk, saya dapat melihat cuplikan berikut:

Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Ini tampaknya menjadi nilai hash. Bagaimana cara menghubungkan ini kembali ke kunci publik mana dalam file Authorized_key yang digunakan? Saya tahu ada garis lain yang mengatakan:

debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1

tetapi ini tidak berguna karena nomor baris dapat dengan mudah diubah jika saya memasukkan kunci di bagian atas file, menekan kunci asli ke bawah.

Terima kasih!

berfantasi
sumber
2
Mungkin mereka akan mencetak kunci, menandatanganinya (di atas kertas) dan kemudian menyimpannya?
innaM
Nilai hash yang Anda peroleh kemungkinan besar adalah sidik jari yang disebut kunci. Saya sarankan memeriksa manual openssh tentang bagaimana Anda dapat membuat daftar sidik jari ini.
Niels Basjes
Alasan paling mungkin mengapa kebijakan ini diterapkan adalah karena mereka sebenarnya ingin dapat menyamar sebagai Anda jika diperlukan. Argumen penandatanganan hanya BS untuk membuatnya terdengar masuk akal bagi orang baru. Bahkan jika mereka perlu menandatangani pubkey, mereka tidak perlu membuatnya sendiri.
b0fh

Jawaban:

13

Pada saat Anda mengajukan pertanyaan, alam semesta telah berubah.

Openssh5.4 menambahkan dukungan untuk jenis sertifikat yang Anda cari. Lihat catatan rilis di http://www.openssh.org/txt/release-5.4 (dan halaman manual) untuk informasi lebih lanjut, atau jika Anda benar-benar ingin menjadi gila, lihat PROTOCOL.kunci tombol untuk detail berdarah

James Polley
sumber
Hanya melihat ini setelah waktu yang sangat lama ... tampaknya sah-sah saja :) Akan mencobanya, terima kasih!
berpartisipasi
8

Kesan pertama saya ketika membaca pertanyaan Anda adalah bahwa orang IT mendapat SSH dan SSL campur aduk (harus ditandatangani oleh kami) dan juga tidak mengerti bagaimana penandatanganan SSL benar-benar bekerja.

Lagi pula tidak ada cara kunci SSH bisa masuk (yang saya tahu).

Niels Basjes
sumber
+1 Anda tidak dapat menandatangani kunci ssh dengan cara yang sama Anda dapat menandatangani sertifikat PGP atau SSL. Saya akan mencari klarifikasi dari mereka.
David Pashley
4

Ada yang tidak beres dalam permintaan ini.

Jika mengirimkan file yang ditandatangani ke server,
saya berharap ini dilakukan seminimal mungkin.

  1. Anda membuat pasangan kunci untuk diri sendiri (sebut ini my-key)
    • Ketika Anda ingin mengirim sesuatu,
    • pertama kali Anda mengenkripsi dengan my-key-private
    • kemudian diunggah ke server file terenkripsi ini
    • Seseorang di server harus membalikkan proses seperti ini,
    • mereka menggunakan Anda my-key-pubuntuk mendekripsi file
    • jika Anda telah mengirim file, dekripsi akan memulihkannya
    • selain itu, mereka tidak akan mendapatkan file yang dapat digunakan
    • efektif, Anda telah menandatangani file dengan kunci pribadi Anda
    • mereka telah memverifikasi tanda tangan dengan kunci publik Anda
    • pertanggungjawaban dilakukan oleh mereka yang mengonfirmasi bahwa Anda telah mengirim file

Ada cara lain untuk melakukan hal-hal seperti itu,
Namun, mendapatkan pasangan kunci yang dihasilkan oleh orang lain tidak berguna sebagai skema otentikasi .
Ini memiliki implikasi kuat bahwa Anda mempercayai mereka sama seperti Anda memercayai diri sendiri.


Ini adalah pertanyaan pembuka yang bisa Anda tanyakan pada IT Anda.
Jika akuntabilitas merupakan masalah bagi IT,

  1. Bagaimana mereka memastikan Anda tidak membagikan / kehilangan kunci-pasangan yang diberikan kepada Anda oleh mereka? dan,
    • Bagaimana konsep kunci-pasangan-dari-TI ini berbeda dari kata sandi yang diberikan kepada Anda oleh TI.
      Mengapa repot-repot dengan pasangan kunci sama sekali dalam hal ini.
nik
sumber
Anda memikirkan PGP / GnuPG untuk mengenkripsi file. Dalam hal ini penandatanganan kunci adalah normal. Pertanyaan aslinya adalah tentang kunci SSH. Masuk akal jika mereka meminta kunci SSH PGP yang ditandatangani / dienkripsi (setelah memverifikasi dan menandatangani kunci PGP masing-masing).
pgs
@pgs, saya mencoba melihat apa yang ditargetkan orang IT di sini.
nik
Saya cukup yakin petugas keamanan bingung, tetapi karena dia adalah petugas Keamanan TI dari perusahaan klien saya dan bukan rekan kerja saya, saya perlu sedikit lebih bijaksana dan mendorong secara konstruktif tanpa menertawakannya dan mengatakan bahwa dia mendapatkan sesuatu campur aduk. Ya, sudah pasti SSH dan bukan PGP.
feicipet
@feicipet, menjadi bijaksana adalah tempat poin terakhir saya akan membantu Anda.
nik
@feicipet, target Anda adalah pada akhirnya membuat mereka menyadari minimum yang harus mereka lakukan untuk mencapai maksud mereka dengan benar.
nik
2

Tidak ada alasan Anda tidak dapat menggunakan sertifikat X.509 untuk otentikasi SSH alih-alih kunci telanjang - sebenarnya, saya lebih suka jika OpenSSH bekerja dengan cara ini! Tetapi, versi saham OpenSSH tidak, dan ini implementasi yang dominan akhir-akhir ini.

Saya telah melihat beberapa versi OpenSSH yang ditambal beredar, dan implementasi SSH.com komersial juga tampaknya mendukung otentikasi X.509. Jadi, jika organisasi Anda menggunakan salah satunya, mengharuskan kunci ditandatangani oleh otoritas pusat akan masuk akal.

Karena itu, tidak ada alasan untuk meminta kunci pribadi dibuat oleh pihak ketiga! Jika mereka menggunakan rute X.509, maka mereka seharusnya membuat Anda menghasilkan keypair dan permintaan penandatanganan sertifikat, seperti yang akan Anda lakukan dengan sertifikat X.509 lainnya yang digunakan untuk SSL, dll.

Stephen Veiss
sumber