Apakah boleh berbagi file kunci pribadi antara beberapa komputer / layanan?

110

Jadi kita semua tahu bagaimana menggunakan kunci publik / kunci privat menggunakan SSH, dll. Tapi apa cara terbaik untuk menggunakan / menggunakannya kembali? Haruskah saya menyimpannya di tempat yang aman selamanya? Maksudku, aku butuh sepasang kunci untuk mengakses GitHub. Saya membuat pasangan dari awal dan menggunakannya untuk beberapa waktu untuk mengakses GitHub. Kemudian saya memformat HDD saya dan kehilangan pasangan itu. Masalah besar, saya membuat pasangan baru dan mengkonfigurasi GitHub untuk menggunakan pasangan baru saya. Atau apakah itu sesuatu yang saya tidak ingin kehilangan?

Saya juga membutuhkan sepasang kunci publik / kunci pribadi untuk mengakses sistem perusahaan kami. Admin kami meminta kunci publik saya dan saya membuat pasangan baru dan memberikannya kepadanya. Apakah umumnya lebih baik untuk membuat pasangan baru untuk akses ke sistem yang berbeda atau lebih baik untuk memiliki pasangan dan menggunakannya kembali untuk mengakses sistem yang berbeda? Demikian pula, apakah lebih baik untuk membuat dua pasangan berbeda dan menggunakan satu untuk mengakses sistem perusahaan kami dari rumah dan yang lain untuk mengakses sistem dari tempat kerja, atau apakah lebih baik hanya memiliki satu pasangan dan menggunakannya dari kedua tempat?

Behrang
sumber
Ini bukan jawaban langsung untuk pertanyaan Anda, tetapi disarankan untuk memiliki frasa sandi untuk setiap kunci juga. Idealnya, pisahkan frasa sandi untuk setiap tombol (gunakan pengelola kata sandi). Alasannya adalah sebagai berikut: Jika kunci pribadi dikompromikan (laptop dicuri, komputer diretas), maka Anda punya waktu sebelum kunci dapat dipaksa, dan Anda dapat mengganti kunci publik di semua mesin yang memilikinya , sebelum penyerang Anda bisa. Sumber: help.ubuntu.com/community/SSH/OpenSSH/…
Xandor Schiefer

Jawaban:

86

Anda pasti harus memiliki kunci pribadi terpisah per asal . Pada dasarnya itu berarti umumnya harus ada satu salinan dari setiap kunci pribadi (tidak termasuk cadangan). Tidak masalah untuk menggunakan kunci pribadi yang sama dari mesin yang terkait erat, dalam situasi di mana membobol satu pada dasarnya memberi Anda akses ke yang lain (misalnya jika mereka berada di satu sama lain shosts.equiv). Jangan gunakan kunci pribadi yang sama pada mesin di dunia yang berbeda (mis. Rumah dan kantor), jangan pernah berbagi kunci pribadi antara dua pengguna, dan jangan pernah berbagi kunci pribadi antara laptop dan mesin lain.

Sebagian besar, saya tidak melihat gunanya memiliki kunci pribadi yang berbeda untuk tujuan yang berbeda. Jika kunci pribadi dikompromikan, semua kunci pribadi lainnya yang disimpan dalam direktori yang sama pasti akan dikompromikan juga, sehingga akan ada komplikasi tambahan tanpa manfaat keamanan.

Jika Anda mengikuti prinsip-prinsip ini, setiap pasangan kunci mengidentifikasi satu pasangan (mesin, pengguna), yang membuat manajemen otorisasi lebih mudah.

Saya dapat memikirkan dua pengecualian untuk aturan umum kunci privat tunggal per asal:

  • Jika Anda memiliki kunci tanpa kata sandi yang memberikan akses hanya ke perintah tertentu pada mesin tertentu (mis. Cadangan otomatis atau mekanisme pemberitahuan), kunci itu harus berbeda dari kunci akses shell umum.
  • Jika beberapa mesin terhubung sebentar-sebentar, Anda mungkin memiliki kunci privat lama di samping kunci privat baru, sampai Anda berkeliling untuk menyelesaikan penerapan kunci baru.
Gilles
sumber
5
Ini adalah bagaimana saya selalu menggunakan keypair saya. Saya tidak mengerti mengapa GitHub menganjurkan pembuatan keypair baru dalam instruksi pengaturan mereka. Saya mengabaikannya dan menggunakan keypair standar saya. Saya menganggap mereka konservatif.
toolbear74
Oke, jadi Anda berkata "Jangan gunakan kunci pribadi yang sama pada mesin di dunia yang berbeda" tetapi bagaimana jika DNS menyelesaikan nama host yang diberikan untuk mesin mana pun tergantung pada lokasi Anda? Tanpa membagikan kunci privat saya mendapatkan peringatan atau kegagalan ketika saya mencoba ssh atau rsync ke nama host itu karena ssh menjadi bingung karena memiliki dua kunci terpisah untuk nama host yang sama.
Michael
@Michael Saya tidak mengerti masalah apa yang mungkin Anda miliki dengan kunci pengguna dalam skenario yang Anda jelaskan, yang merupakan topik utas ini. SSH akan bingung tentang kunci host , tetapi sebagai pengguna apa yang Anda lihat adalah kunci publik host, bukan kunci pribadi host, dan berbagi kunci pribadi host berbahaya - saya hanya akan merekomendasikan bahwa jika host benar-benar setara (redundansi) dalam kasus salah satu dari mereka gagal), dan mungkin bahkan tidak.
Gilles
Ah, baiklah. Sepertinya tidak ada banyak perbedaan yang jelas antara keduanya, dan hanya diasumsikan bahwa Anda tahu mana yang sedang dibicarakan.
Michael
1
@JSBach Memiliki kunci terpisah per bidang memungkinkan Anda untuk menentukan izin yang lebih halus (kunci yang disimpan pada ranah keamanan rendah A diizinkan untuk digunakan di antara mesin A, tetapi masuk ke B membutuhkan faktor otentikasi yang lebih kuat) dan memungkinkan Anda untuk mencabutnya secara terpisah (ranah A dikompromikan, tapi saya masih bisa masuk ke C dari B). SSO adalah kasus di mana Anda masuk ke sistem dengan keamanan tertinggi, dan kemudian Anda bisa masuk ke tempat lain. Saya tidak tahu risiko apa yang mereka lihat jika memiliki beberapa kunci per pengguna. Ini akan menjadi topik untuk Keamanan Informasi .
Gilles
4

Saya tidak tahu apa cara terbaik tetapi saya bisa tahu mana jalan saya.

Sebagai sysadmin saya menggunakan kunci berbeda untuk mengakses setiap server / layanan sebagai root. Dengan cara ini, jika suatu kunci hilang atau dikompromikan, saya membatasi risiko pada satu server tunggal dan saya tidak perlu memperbarui semua layanan saya dengan kunci baru.

Berbicara tentang pengguna, saya menggunakan kunci yang berbeda untuk masing-masing pengguna. Dengan kunci itu pengguna dapat mengakses layanan yang ia butuhkan sebagai pengguna yang tidak memiliki hak. Dengan cara ini, saya dapat dengan mudah memberikan atau mencabut akses ke layanan tunggal untuk setiap pengguna. Jika pengguna kehilangan kuncinya, saya dapat menghapusnya dari semua layanan dan membatasi risiko akses yang tidak sah.

Kematian Marius
sumber
+1 Saya akan berbicara dengan bos saya tentang kebijakan penggunaan kunci baru ;-) per server / layanan terdengar lebih aman daripada hanya per jaringan
Diskilla
1

Saya percaya Anda dapat menggunakan kunci pribadi di mana saja selama Anda meletakkan kata sandi di atasnya, artinya mengatakan jika Anda ingin membagikan kunci pribadi Anda dengan beberapa mesin, katakan laptop 1, 2, desktop 1, 2, harus baik-baik saja.

Dari pengalaman saya, mesin utama saya adalah desktop saya yang saya lakukan sebagian besar pekerjaan saya dengan prosesor yang kuat, tetapi kadang-kadang saya perlu menggunakan laptop saya di ponsel, pemecahan masalah di pusat data dan sebagainya, jadi, saya masih bisa masuk ke host mana pun tempat kunci publik saya berada.

Berikan Skywalker
sumber
1
Baca jawaban terbaik di sini. Kamu melakukannya dengan salah. Bukannya Anda tidak bisa melakukannya dengan cara itu tetapi Anda tidak seharusnya melakukannya.
PhilT
2
Tidak bisa melihat mengapa semua downvotes. Jaringan universitas (misalnya) sering memiliki direktori home berjaringan, sehingga kunci pribadi yang sama digunakan di mana-mana oleh pengguna, bahkan pada laptop yang diberikan kepada Anda. Selama Anda tidak menyalinnya tidak terenkripsi melalui internet, maka saya pikir tidak apa-apa jika Anda memahami risikonya. Berdarah lebih nyaman juga, tidak harus menambahkan kunci publik Anda ke 2.000 tempat yang berbeda hanya karena Anda masuk ke mesin yang berbeda.
Asfand Qazi
Terpilih karena Anda tidak boleh kehilangan perwakilan untuk jawaban ini. Ini adalah preferensi pribadi, jelas menggunakan kunci terpisah per layanan dan mesin pada akhirnya memberi Anda lebih banyak kontrol, tetapi kadang-kadang hanya buang-buang waktu tergantung pada kasus penggunaan Anda.
Daniel Dewhurst
0

Di perusahaan saya, kami menggunakan pengguna khusus Tombol ini. Itu artinya kasus kedua. Pengguna memiliki kunci sendiri dan ini digunakan untuk setiap mesin yang ia gunakan untuk terhubung ke sistem perusahaan. pendapat saya adalah menggunakan satu kunci untuk satu sistem. Itu berarti Anda menggunakan kunci ini pada setiap mesin yang Anda butuhkan untuk terhubung ke jaringan tertentu. Untuk kasus Anda, itu akan menjadi satu kunci untuk GitHub dan satu kunci untuk sistem perusahaan. Jadi, jika admin Anda bertanya lagi, saya akan memberinya kunci yang sama seperti terakhir kali. bukan yang baru. Tapi, saya tidak tahu apakah ada kebijakan penggunaan umum untuk kunci-kunci ini dan saya melakukan kesalahan sejak itu. Itu pasti mungkin ;-)

Diskilla
sumber
0

Kunci publik yang Anda buat adalah untuk semua orang. Ini akan memungkinkan mereka untuk a) memeriksa keaslian b) mengenkripsi untuk Anda

Kunci pribadi adalah, yah, pribadi. Ini hanya untukmu. Dan itulah kuncinya yang harus Anda backup di suatu tempat, di tempat yang aman. Anda juga dapat mengenkripsi dengan kata sandi yang aman jika Anda menyimpannya pada stik USB misalnya.

Kunci publik adalah identitas Anda kepada orang lain. Jadi tidak ada masalah / lebih baik menggunakan satu pasangan kunci untuk semuanya, setidaknya di mana Anda tidak ingin menggunakan identitas baru yang eksplisit, sehingga orang lain tidak akan tahu itu Anda.

Kissaki
sumber
3
Terima kasih, tetapi jawaban Anda, sebagian besar, tidak terkait dengan pertanyaan saya. Lihat jawaban @ Diskilla.
Behrang