Apakah aman untuk menyimpan kata sandi (terenkripsi) di GitHub?

21

Saya menggunakan pass untuk menangani semua kata sandi saya. Mereka dienkripsi menggunakan GPG dengan kunci 4096 bit, menggunakan algoritma SHA256. Saya menggunakan kata sandi yang berbeda untuk setiap login di toko kata sandi saya.

Salah satu fitur keren pass adalah bahwa semuanya dapat disimpan dalam folder dengan hierarki yang bagus, yang sempurna untuk mengatur git repo (pass bahkan menyediakan kemampuan itu). Saya ingin perbarui kata sandi saya di semua komputer saya.

Apakah aman untuk mendorong repositori pass git ke repositori GitHub pribadi? Jika tidak, apa tautan lemahnya?

Nicolas Mattia
sumber
Saya tidak akan merekomendasikan melakukan ini. Salah satu alasannya, karena Anda meninggalkan kata sandi terenkripsi Anda akan mengalami serangan brute-force offline.
Astaga
Mengingat itu adalah repo pribadi, saya akan berasumsi (seperti halnya klien GitHub) bahwa tidak seorang pun kecuali GitHub sendiri yang akan memiliki akses ke repo tersebut. Kecuali, tentu saja, suatu hari saya entah bagaimana berkomitmen pada repo yang salah.
Nicolas Mattia
1
Juga, tidak ada yang akan memiliki akses ke kunci GPG, sehingga seseorang perlu untuk memecahkan enkripsi 4096 bit, yang bahkan tidak mungkin untuk serangan brute-force offline
Nicolas Mattia
1
Kecuali mereka mengacaukan dan kata sandi kunci pribadi adalah Password1;) hanya karena saya sudah melakukannya sekali hari ini, saya masih berpikir superfish menggunakan nama perusahaan itu sebagai kata sandi (komodia). Itu hanya membuatnya lebih mudah untuk retak, tapi tetap saja. Kesalahan bodoh membuat kata sandi lebih mudah diurai.
dakre18
@tingkat dakre18 berubah dari "tidak mungkin terjadi" menjadi "dekripsi lucu"
m3nda

Jawaban:

13

Jawaban terse

Tidak apa-apa untuk memberikan pass repo github.

Jawaban Verbose

Repo pass Anda dienkripsi GPG menggunakan kunci pribadi apa pun yang telah Anda pilih, jadi itu sebagai bukti peluru seperti kunci yang Anda pilih. Selain itu, kunci pribadi Anda tidak disimpan di pass repo Anda. Ini berarti bahwa lokasi privat vs. publik dari file kata sandi terenkripsi Anda bukan tautan lemah dalam keamanan manajer kata sandi Anda. Sebaliknya, itu adalah kunci pribadi yang telah Anda enkripsi dengan yang harus Anda khawatirkan.

Pastikan itu adalah kunci yang baik (seperti yang Anda sebutkan) dan jangan memaparkannya kepada siapa pun karena mereka tidak perlu memecahkan kunci sebesar itu untuk menggunakannya. Mereka hanya perlu merusak kata sandi Anda, dan, mari kita hadapi itu, sangat sulit untuk memastikan kata sandi Anda cukup baik untuk menghentikan semua orang .

Jadi jangan biarkan orang lain melihat kunci Anda. Jika Anda memindahkan kunci pribadi ke masing-masing komputer Anda yang menggunakan pass, maka Anda bisa menarik repo pass Anda dari github dan menggunakan kunci pribadi yang tersimpan di komputer tersebut secara terpisah. Sekarang mereka semua akan tetap tersinkronisasi dan aman.

Dua Hal Yang Perlu Dipertimbangkan

Seluruh jalan pintas adalah untuk menjaga sandi Anda dienkripsi. Jika Anda tidak setuju dengan keberadaan mereka di github.com, maka yang benar-benar Anda andalkan adalah lokasi pribadi mereka dan bukan keadaan terenkripsi mereka. Jika itu masalahnya, lalu mengapa mengenkripsi mereka sama sekali? Anda bisa menggunakan file flat yang sama yang digunakan, dan tidak repot mengenkripsi mereka. Itu akan sangat nyaman!

Juga, perlu diingat bahwa membuat pengelola kata sandi Anda lebih mudah digunakan berarti Anda cenderung ingin / perlu menumbangkannya. Setiap kali Anda harus melakukan pekerjaan pass untuk itu (misalnya mengatur ulang kata sandi pada akun karena kata sandi yang bagus dibuat pada komputer yang berbeda dan Anda belum disinkronkan secara manual, tetapi Anda harus masuk sekarang) Anda akan mengurangi keamanan yang disediakannya.

Tyler Abair
sumber
Saya pikir Anda membuat tiga poin yang benar-benar bagus: 1) kunci enkripsi tidak ada di server 2) meminta seseorang melihat kata sandi saya adalah alasan mengapa kata itu dienkripsi di tempat pertama 3) jari-jari saya yang canggung sebagian besar dikeluarkan dari lingkaran. Tapi seperti yang dikatakan @Jens, maka saya harus percaya pada perangkat lunaknya.
Nicolas Mattia
1
Pass cukup sederhana sehingga Anda tidak benar-benar mempercayai Pass, Anda memercayai PGP. Karena itu, ya, Anda masih harus mempercayai PGP. Pikiranku tentang itu, mengapa menggunakan PGP untuk apa saja jika Anda tidak percaya bahwa itu mengenkripsi hal-hal?
Tyler Abair 615
7

Ini akan aman, tetapi menghadapkan Anda pada risiko tambahan dibandingkan dengan tidak menyimpan kata sandi di tempat umum.

  • Unggahan kata sandi yang tidak terenkripsi secara tidak sengaja (Anda tidak akan sengaja melakukannya, tetapi yakin itu mungkin tidak terjadi secara tidak sengaja, atau karena beberapa bug perangkat lunak?)
  • Kelemahan yang tidak diketahui dalam RSA atau enkripsi simetris sedang digunakan
  • Pola penggunaan diungkapkan (statistik kuat)
  • Pelepasan token akses Anda yang tidak disengaja menghasilkan data publik; jika Anda juga merahasiakannya, Anda akan jauh lebih aman
  • Kasus terburuk adalah seluruh riwayat penyimpanan kata sandi Anda diungkapkan, dibandingkan hanya yang saat ini

Dengan kata lain: jika Anda tidak melakukan kesalahan, percaya perangkat lunak dan matematika di balik algoritma enkripsi tetap aman untuk disimpan secara publik, penyimpanan kata sandi yang dienkripsi baik-baik saja. Jika Anda ragu dengan salah satu dari mereka (dan secara pribadi, kepercayaan saya akan persis seperti ini, dengan hilangnya kepercayaan pada diri saya sebagai pengguna dengan kerahasiaan tinggi dalam matematika di belakang), jaga toko tetap pribadi.

Pernah memposting frasa sandi pribadi di beberapa jendela obrolan secara tidak sengaja yang muncul? Saya tahu banyak orang yang melakukannya, termasuk saya sendiri.

Jens Erat
sumber
3

Ini adalah pertanyaan yang bagus, karena ini merupakan masalah di masa lalu ketika seseorang memasukkan kata sandi pribadi ke dalam repositori publik.

Pikirkan seperti ini, praktik yang baik untuk tidak menyimpan file itu (bersama dengan file sensitif lainnya) dalam repositori publik, bahkan jika itu pribadi. Baik untuk mencadangkannya di suatu tempat, tetapi jika katakanlah kata sandi Anda diambil entah bagaimana (situs pihak ketiga misalnya), mereka dapat mengakses github Anda dan masih mengambil kata sandi. Kasus terburuk, tetapi masih mungkin. Saya biasanya menyarankan memiliki beberapa jenis file yang disimpan di hard drive eksternal, dan mungkin menyimpan hard drive di suatu tempat kalau-kalau ada api.

Jika Anda benar-benar ingin menggunakan repositori atau cloud untuk menyimpannya, lakukan saja yang Anda bisa agar tetap aman.

Secara keseluruhan itu bukan ide terbaik. Ini bukan yang terburuk, tetapi yang terbaik adalah memikirkan "apa yang akan terjadi jika?" skenario. Ini mungkin tidak pernah terjadi pada Anda, tetapi jika itu terjadi, apakah itu sepadan dengan masalahnya?

Sunting: Saya sedang memikirkan program di beberapa posting saya, jadi saya memangkasnya agar Anda dapat menjawab pertanyaan Anda dengan lebih baik.

dakre18
sumber
0

Salah satu fitur pass yang keren adalah bahwa semuanya tersimpan dalam folder dengan hierarki yang bagus, yang sempurna untuk mengatur git repo

Saya pikir itu tidak aman. Untuk semua akun Anda (struktur direktori) tidak dienkripsi. Hanya kata sandi yang dilindungi oleh gpg.

(Lulus bahkan menyediakan kemampuan itu)

Jika melakukannya menggunakan kemampuan pass. Mungkin lebih aman. Tetapi Anda perlu membangun kembali toko Anda menggunakan "pass git init".

eexpress utopis
sumber