Mengapa GPG / PGP secara default menggunakan kunci yang berbeda untuk penandatanganan / enkripsi?


22

Jika Anda membuat kunci GPG baru, secara default Anda akan mendapatkan pasangan kunci utama penandatanganan saja dan pasangan sub-kunci hanya enkripsi.

pub  2048R/XXXXXXXX  created: 2013-02-09  expires: 2014-02-09  usage: SC  
sec  2048R/XXXXXXXX           2013-02-09 [expires: 2014-02-09]

sub  2048R/ZZZZZZZZ  created: 2013-02-09  expires: 2014-02-09  usage: E
ssb  2048R/ZZZZZZZZ           2013-02-09 [expires: 2014-02-09]  

(Output digabungkan dari gpg --list-keysdan gpg --list-secret-keys)

Disarankan juga untuk tidak menggunakan kunci master Anda untuk penandatanganan biasa (dari surat / data), tetapi untuk membuat sub-kunci penandatanganan lain dan menghapus / mencadangkan kunci master Anda ke lokasi yang aman dan offline hanya untuk digunakan untuk penandatanganan kunci .

Ini masuk akal karena kebanyakan titik akhir enkripsi adalah laptop / telepon atau perangkat seluler lain yang selalu online, yang menempatkan kunci pribadi Anda dalam risiko pencurian atau kehilangan. Dengan kunci master yang disimpan dengan aman, Anda selalu dapat mencabut sub-kunci yang hilang tersebut dan tidak pernah kehilangan tanda tangan kunci Anda.

Jadi sementara pemisahan kunci utama <-> jelas bagi saya, saya tidak mengerti mengapa ada penekanan pada pemisahan tanda tangan dan kunci enkripsi (bahkan jika keduanya adalah kunci-kedua). Adakah yang bisa menjelaskan mengapa ini perlu atau setidaknya apa manfaatnya dari perspektif keamanan atau praktis?

Secara teknis itu sepenuhnya layak dan didukung oleh GnuPG untuk membuat sub-kunci penandatanganan DAN enkripsi.

pub  2048R/YYYYYYYY  created: 2013-08-13  expires: 2014-08-13  usage: SCEA
sub  2048R/VVVVVVVV  created: 2013-08-13  expires: 2014-08-13  usage: SEA 

2
Ada jawaban yang bagus untuk pertanyaan ini di Security.SE kalau-kalau ada yang tertarik.
GnP

Jawaban:


9

Di Inggris Raya, Regulasi Investigatory Powers Act 2000 mengatakan

49 (9) Pemberitahuan di bawah bagian ini tidak akan mengharuskan pengungkapan kunci apa pun yang—

(a) dimaksudkan untuk digunakan hanya untuk tujuan menghasilkan tanda tangan elektronik; dan

(B) sebenarnya belum digunakan untuk tujuan lain.

... yang berarti bahwa pemerintah Inggris mungkin, dalam beberapa keadaan, dapat memaksa Anda untuk menyerahkan kunci dekripsi Anda (jika Anda seorang penduduk) tetapi mereka tidak diizinkan untuk menyamar sebagai Anda dengan kunci masuk Anda.


1
Menarik ... ini juga berlaku untuk kunci pribadi Bitcoin (hanya digunakan untuk penandatanganan, tidak digunakan untuk enkripsi).
Jonathan Cross

... dan sepertinya pengecualian ini tetap berlaku di babak 2016 .

8

Saya tidak tahu secara spesifik mengapa GPG / PGP melakukan apa yang dilakukannya, tetapi satu motivasi yang mungkin untuk hal semacam ini adalah pemulihan bencana. Anda mungkin ingin memberikan salinan kunci pribadi enkripsi Anda kepada teman yang sangat dekat dan tepercaya, jadi, jika rumah Anda terkena meteorit, Anda masih bisa membaca pesan lama Anda yang disimpan di cloud. (Demikian pula, Anda mungkin diminta untuk memberikan kunci enkripsi 1 kepada bos Anda, sehingga dia dapat membaca email Anda setelah Anda pergi.)

Tetapi tidak ada alasan bagi orang lain untuk memiliki salinan pasangan kunci penandatanganan Anda.
________________
1  “Anda mungkin diminta untuk memberikan kunci enkripsi Anda” kepada seseorang - lihat jawaban TEV .


2

Jawaban sederhananya adalah semakin Anda menggunakan kunci, semakin banyak informasi yang Anda bocoran tentang kunci tersebut.

Kunci penandatanganan digunakan oleh Anda untuk mengautentikasi bahwa Anda mempercayai kunci, dan dengan mengambil kesimpulan pemilik, tetapi yang lebih penting bahwa komunikasi Anda berasal dari Anda. Ini disebut non-repudiation .

Demi argumen, katakanlah menggunakan kunci 10.000 kali berarti Anda membocorkan semua informasi yang diperlukan seseorang untuk merekonstruksi kunci itu. Menggunakan satu kunci> 9999 kali akan berarti bahwa orang lain berpotensi meniru Anda dan menyampaikan tanda tangan tepercaya Anda ke kunci atau dokumen pihak ketiga jahat yang menyebabkan semua jaringan tepercaya Anda percaya bahwa pihak ini adalah Anda atau dokumen tersebut berasal dari Anda.

Namun jika Anda juga mengenkripsi dengan kunci yang sama ambangnya lebih cepat tercapai.

Untuk menghindari kemungkinan gangguan, kunci kedua dibuat, yang hanya digunakan untuk enkripsi / dekripsi, yang hanya digunakan untuk mengenkripsi data seperti Anda. Setelah kunci ini digunakan 9999 kali Anda dapat kedaluwarsa kunci ini tanpa kehilangan semua kepercayaan yang Anda berikan dengan kunci masuk yang valid. Anda merekam kembali, membuat kunci enkripsi baru, dan menandatanganinya dengan Anda menandatangani kunci untuk menunjukkan bahwa ini adalah kunci enkripsi tepercaya yang semua orang dapat memverifikasi.

EDIT:

Saat membaca kembali apa yang saya tulis di atas dan Buku Pegangan Privasi GNU , kesimpulan saya adalah itu subadalah kunci pribadi dan pubharus menjadi kunci publik. @GnP jawaban ini:

" The keyword pub identifies the public master signing key, and the keyword sub identifies a public subordinate key."


Saya kira bagi kebanyakan orang kunci penandatanganan digunakan lebih sering daripada kunci enkripsi, karena hampir semua surat akan ditandatangani tetapi hanya beberapa yang akan dienkripsi. Dalam hal ini, gpg-default adalah jalan yang salah, sebagai encr. kunci mudah diubah sedangkan kunci masuknya tidak.
Chaos_99

Seperti biasanya Anda mengenkripsi dengan kunci publik orang lain, ini terdengar agak logis, dan mungkin ada alasan bagus untuk hal ini yang saat ini tidak saya sadari.
Daniël W. Crompton

Kamu benar. Silakan tukar "enkripsi" dengan "dekripsi" di komentar saya. Tapi intinya tetap valid. Anda mendaftar lebih sering daripada DEcrypt. Saya menanyakan pertanyaan ini untuk mencari tahu persis "alasan yang mungkin bagus" yang Anda sebutkan.
Chaos_99

1
Baik master maupun sub-key adalah PAIRS kunci yang valid dengan kunci publik dan pribadi. Singkatan untuk master pribadi adalah 'detik', untuk sub-kunci pribadi 'ssb'. Keduanya bisa dilihat dengan gpg --list-secret-keys. Daftar yang diberikan di atas hanya memperlihatkan kunci publik yang dikembalikan oleh gpg --list-keys.
Chaos_99

1
"semakin Anda menggunakan kunci, semakin banyak informasi yang Anda bocoran tentang kunci" apakah Anda memiliki sumber untuk klaim itu?
GnP

0

Jika Anda membuat kunci GPG baru, secara default Anda akan mendapatkan pasangan kunci utama penandatanganan saja dan pasangan sub-kunci hanya enkripsi.

Pesan dapat berupa:

  • tidak ditandatangani dan tidak dienkripsi
  • ditandatangani dan tidak dienkripsi
  • tidak ditandatangani dan dienkripsi
  • ditandatangani dan dienkripsi

dan ada kegunaan untuk masing-masing kasus, tergantung pada apa yang Anda coba selesaikan dengan penandatanganan dan enkripsi.

Jika dengan menandatangani Anda membuat identitas / pengesahan, dan dengan mengenkripsi Anda membuat pesan pribadi, dapat mengenkripsi tetapi tidak menandatangani memberi Anda kemampuan untuk mengirim pesan pribadi yang tidak selalu dikaitkan dengan identitas Anda atau didukung oleh Anda. Anda ingin kunci yang terpisah dalam hal ini.


2
Perbaiki saya jika saya salah, tetapi saya percaya bahwa, ketika Anda mengenkripsi pesan, Anda menggunakan kunci penerima (publik), jadi, begitu meninggalkan tangan Anda, itu tidak dapat dilacak untuk Anda. Kunci enkripsi Anda adalah untuk orang lain untuk mengirim pesan terenkripsi kepada Anda.
Scott

@ Hemat ya, tetapi kebanyakan orang biasanya memiliki set kunci default juga sehingga mereka dapat membaca apa pun yang ada di kotak keluar mereka dan biasanya untuk menentukan tanda tangan default. Meskipun dalam kasus tersebut ID kunci master / kunci sertifikasi digunakan untuk memilih subkunci yang benar.
Ben
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.