ทำไม gpg ถึงไม่พอใจและฉันจะหยุดมันได้อย่างไร


24

ฉันเพิ่งย้ายจากการติดตั้ง Ubuntu หนึ่งไปยังอีกและในกระบวนการเปลี่ยนชื่อผู้ใช้ของฉัน ฉันนำเข้ากุญแจสาธารณะ / ส่วนตัวของฉันลงใน gpg และในขณะที่การถอดรหัส (โดยใช้กุญแจส่วนตัวของฉัน) ทำงานได้ดีทุกครั้งที่ฉันพยายามเข้ารหัสบางสิ่งกับตัวเองด้วยกุญแจสาธารณะของฉันฉันได้รับข้อความเตือนต่อไปนี้:

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.

หลังจากนั้นมันถามฉันว่าฉันต้องการใช้รหัสจริงหรือไม่ (ฉันตอบว่า "ใช่" เสมอเพราะในความเป็นจริงมันเป็นรหัสเดียวในพวงกุญแจของฉันและฉันรู้ว่ามาจากไหน) ฉันสามารถถอดรหัสข้อมูลได้ดีดังนั้นทำไม gpg ถึงไม่เหมาะสมเมื่อใดก็ตามที่ฉันพยายามเข้ารหัสบางอย่าง และฉันจะป้องกันไม่ให้ข้อความนี้ปรากฏขึ้นอีกได้อย่างไร


ทำคำตอบใด ๆ สำหรับคำถามเก่านี้ที่ stackoverflow ช่วยหรือไม่: stackoverflow.com/q/9460140/2422988
Paul

@ พอลใช่ลิงค์นั้นช่วยได้นิดหน่อย ฉันตั้งค่าระดับ "ความไว้วางใจ" ของคีย์ของฉันให้เป็นระดับสูงสุดและดูเหมือนว่าจะแก้ไขปัญหาได้แล้ว แต่สิ่งที่เป็นปัญหาหรือไม่ ทำไมสิ่งนี้จึงเกิดขึ้นและฉันแก้ไขหรือบรรเทาอาการได้หรือไม่
fouric

ขออภัย InkBlend ฉันกลัวความสามารถในการกลั่นกรองและเปรียบเทียบผลการค้นหาเกินกว่าที่ฉันรู้เกี่ยวกับ pgp ในกรณีนี้ดังนั้นฉันจึงไม่พยายามอ้างสิทธิ์นี้เป็นคำตอบ ดูเหมือนว่าการ์เร็ตจะรู้ว่าเกิดอะไรขึ้น
Paul

คำตอบ:


16

ฉันพยายามสร้างปัญหาที่คุณประสบอยู่ ฉันทำสิ่งต่อไปนี้:

$ 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>

$

ขอให้สังเกตว่ากระบวนการทำเครื่องหมายคีย์ว่า "เชื่อถือได้ในที่สุด"

ตอนนี้ฉันส่งออกกุญแจ:

$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

ตอนนี้ฉันนำเข้าฐานข้อมูล gpg ใหม่:

$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

ตอนนี้ถ้าฉันพยายามเข้ารหัสโดยใช้ keyrings ใหม่ที่ฉันได้รับ:

$ 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 <fake@example.com>
 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.

เหตุผลนี้เป็นรูปแบบ "เว็บแห่งความไว้วางใจ" ตามค่าเริ่มต้นเพื่อให้รหัสสาธารณะเชื่อถือได้ต้องใช้ใบรับรองความน่าเชื่อถือ 1 "ขั้นสุดท้าย" (โดยทั่วไปคุณต้องตรวจสอบตัวตนของบุคคลที่เกี่ยวข้องด้วยตนเอง) หรือใบรับรองความน่าเชื่อถือ 3 "น้อยที่สุด" (ที่บางคนที่คุณรู้จัก ใครจะรู้ว่าใครบางคนที่คุณรู้จัก ... ได้ลงนามในใบรับรอง)

เนื่องจาก gpg เป็นแอปพลิเคชันความปลอดภัยจึงเตือนคุณหากคุณพยายามเข้ารหัสให้กับรหัสที่ไม่อยู่ในรายการที่เชื่อถือได้ เหตุผลที่รหัสของคุณไม่น่าเชื่อถือในกรณีนี้นั้นง่าย เป็นเพราะคุณไม่ได้ส่งออกความสัมพันธ์ที่เชื่อถือได้จากอินสแตนซ์ gpg ก่อนหน้า หากต้องการทำสิ่งนี้ให้ใช้คำสั่ง --export-ownertrust และ --import-ownertrust

และเช่นเคยอ้างถึงหน้าคน


1
สิ่งสำคัญคือข้อมูลทั้งหมดเกี่ยวกับความไว้วางใจที่สำคัญจะถูกจัดเก็บแยกต่างหากจากพวงกุญแจ (ทั้งความลับและสาธารณะ)! ~/.gnupg/trustdb.gpgเก็บฐานข้อมูล trust, pubring.gpgพับลิกคีย์และsecring.gpgคีย์ลับ โปรดดูdocumention GnuPG เกี่ยวกับเรื่องนี้
gertvdijk

28

ฉันพบปัญหาเดียวกัน แต่ฉันไม่สามารถเข้าถึงรหัสเดิมได้อีก ดังนั้นคุณสามารถสร้างความไว้วางใจกับคีย์เก่าของคุณด้วยสิ่งนี้:

gpg --edit-key YOUR@KEY.ID
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

OP ได้ทำสิ่งนี้ (ระบุไว้ในความคิดเห็น) แต่ก็ดีที่ระบุไว้เป็นคำตอบ
muru

7

คุณสามารถใช้การ--always-trustตั้งค่าสถานะเพื่อข้ามข้อความนี้


1
นี่เป็นเรื่องจริงอย่างแน่นอน แต่นั่นเป็นการลดอาการไม่ใช่โรค ทางออกของคุณเปรียบเสมือนการใช้ยาแอสไพรินเพราะคุณเป็นมะเร็ง ...
Fabby

2
--always-trustเป็นวิธีแก้ปัญหาที่ดีในบางกรณีแต่ถ้าคีย์ที่เป็นปัญหานั้นเป็นกุญแจของผู้ใช้จริง ๆ ก็ควรได้รับความไว้วางใจสูงสุด
แบล็กไลท์ส่องแสง

4
โรคของฉันคือการยืนกรานดื้อรั้นของจีพีจีในการใช้กุญแจเข้ารหัสการเข้ารหัสไฟล์แบบโปรแกรมของฉัน
bbozo

@BlacklightShining และหากฉันยังไม่สามารถยืนยันได้ว่า Evolution ไม่อนุญาตให้เข้ารหัสอีเมลไปยังที่อยู่นั้น ไม่มีความคิดว่าทำไมการเข้ารหัสข้อความถึงใครบางคนต้องการความไว้วางใจที่แน่นอน - และด้วยความไว้วางใจที่ไม่ควรเกิดขึ้น
Izzy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.