Mengapa gpg menjadi kesal dan bagaimana cara menghentikannya?

24

Saya baru-baru ini pindah dari satu instalasi Ubuntu ke yang lain, dan dalam prosesnya mengubah nama pengguna saya. Saya mengimpor pasangan kunci publik / pribadi saya ke gpg, dan sementara dekripsi (menggunakan kunci pribadi saya) berfungsi dengan baik, setiap kali saya mencoba mengenkripsi sesuatu kepada diri saya dengan kunci publik saya, saya mendapatkan pesan peringatan berikut:

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Setelah itu bertanya apakah saya benar-benar ingin menggunakan kunci (saya selalu menjawab "ya", karena itu sebenarnya satu - satunya kunci dalam kunci saya dan saya tahu dari mana asalnya). Saya bisa mendekripsi hal-hal baik-baik saja, jadi mengapa gpg melemparkan hissy cocok setiap kali saya mencoba mengenkripsi sesuatu? Dan bagaimana saya bisa mencegah pesan ini tidak muncul lagi?

empatik
sumber
Apakah ada jawaban untuk pertanyaan yang lebih lama ini di bantuan stackoverflow
Paul
@ Paul, ya, tautan itu sedikit membantu. Saya menetapkan level "trust" dari kunci saya untuk menjadi yang utama, dan itu tampaknya telah menyelesaikan masalah. Tapi apa itu masalah? Mengapa ini terjadi, dan apakah saya memperbaikinya atau hanya meringankan gejalanya?
Fouric
Maaf InkBlend, saya khawatir kemampuan saya untuk menyaring dan membandingkan hasil pencarian melebihi pengetahuan saya tentang pgp dalam hal ini, karenanya saya tidak berusaha untuk mengklaim ini sebagai Jawaban. Sepertinya Garrett tahu apa yang terjadi.
Paul

Jawaban:

16

Saya berhasil mereproduksi masalah yang Anda alami. Saya melakukan hal berikut:

$ gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key

<specified parameters and let it do its thing>

gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.

<snip>

$

Perhatikan bahwa proses menandai kunci sebagai "akhirnya dipercaya".

Sekarang saya mengekspor kunci:

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key

Sekarang saya mengimpor ke database gpg baru:

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key

Sekarang jika saya mencoba mengenkripsi menggunakan keyrings baru saya dapatkan:

$ gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user

pub  1024R/AE3034E1 2013-06-13 Fake User <[email protected]>
 Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1  23BE B2E1 67A6 5801 8BFE
      Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12  096F 5D19 AB91 AE30 34E1

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Alasannya adalah model "web of trust". Secara default, agar kunci publik dapat dipercaya, diperlukan 1 sertifikat perwalian "akhir" (biasanya di mana Anda secara pribadi telah memverifikasi identitas orang-orang yang terlibat), atau 3 sertifikat perwalian "marginal" (di mana seseorang yang Anda kenal, siapa tahu seseorang yang Anda kenal ... telah menandatangani sertifikat).

Karena gpg adalah aplikasi keamanan, ia memperingatkan Anda jika Anda mencoba mengenkripsi kunci yang tidak terdaftar sebagai tepercaya. Alasan kunci Anda sendiri tidak dipercaya dalam kasus ini sederhana. Itu karena Anda tidak mengekspor hubungan kepercayaan dari instance gpg sebelumnya. Untuk melakukan ini, gunakan perintah --export-ownertrust dan --import-ownertrust.

Seperti biasa, lihat halaman manual .

Garrett Kajmowicz
sumber
1
Kuncinya adalah bahwa semua data tentang kepercayaan utama disimpan secara terpisah dari keyring (baik rahasia maupun publik)! ~/.gnupg/trustdb.gpgmemegang basis data kepercayaan, pubring.gpgkunci publik dan secring.gpgkunci rahasia. Silakan lihat dokumentasi GnuPG tentang ini .
gertvdijk
28

Saya mengalami masalah yang sama namun saya tidak lagi memiliki akses ke kunci lama. Jadi, Anda dapat menciptakan kembali kepercayaan pada kunci lama Anda dengan ini:

gpg --edit-key [email protected]
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
Kevin Lyda
sumber
OP telah melakukan ini (tercantum dalam komentar), tetapi bagus untuk menyatakannya sebagai jawaban.
muru
7

Anda dapat menggunakan --always-trustbendera untuk melewati pesan ini.

Paul Baltescu
sumber
1
Ini benar-benar benar, tetapi itu hanya menghilangkan gejalanya, bukan penyakitnya. Solusi Anda seperti mengambil aspirin karena Anda menderita kanker ...
Fabby
2
--always-trustdalam beberapa kasus adalah solusi yang baik , tetapi jika kunci yang dimaksud benar-benar adalah kunci pengguna sendiri, maka itu harus diberi kepercayaan penuh.
Blacklight Shining
4
Penyakit saya adalah desakan keras kepala GPG pada keyring meniduri enkripsi file program saya, dan melakukannya dengan cara yang berbeda pada setiap VM tempat saya menginstal perangkat lunak.
bbozo
@ BlacklightShining dan jika saya belum dapat memverifikasi itu, Evolution tidak mengizinkan untuk mengenkripsi email ke alamat itu. Tidak tahu mengapa mengenkripsi teks ke seseorang membutuhkan kepercayaan mutlak - dan hanya dengan kepercayaan marjinal seharusnya tidak mungkin.
Izzy