Cryptology Academy · บทเรียน

GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร

ใช้ GPG เข้ารหัสไฟล์สำหรับผู้รับที่ระบุ ลงลายมือชื่อเนื้อหา และจัดการพวงกุญแจ GPG

บทเรียน 1 จาก 413 ขั้นตอน

GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ภาพรวมและจุดประสงค์ของ GPG

GNU Privacy Guard (GPG) ใช้มาตรฐาน OpenPGP (RFC 4880) สำหรับการเข้ารหัสไฟล์แบบอสมมาตรและลายเซ็นดิจิทัล โดยรองรับการทำงานพื้นฐานสองอย่าง ได้แก่ การเข้ารหัสไฟล์เพื่อให้มีเพียงผู้รับที่กำหนดเท่านั้นที่ถอดรหัสได้ และการลงลายเซ็นไฟล์เพื่อให้ผู้อื่นตรวจสอบความถูกต้องแท้จริงและความสมบูรณ์ของไฟล์ได้ GPG เป็นเครื่องมือมาตรฐานสำหรับการถ่ายโอนไฟล์อย่างปลอดภัยและการลงลายเซ็นรุ่นซอฟต์แวร์

การสร้างคีย์ GPG

การสร้างคีย์ GPG ใช้งานแบบโต้ตอบด้วย gpg --gen-key หรือใช้ในสคริปต์ได้ด้วย gpg --quick-gen-key โดยค่าเริ่มต้นของ GPG รุ่นใหม่คือ ed25519 สำหรับการลงลายเซ็น และ cv25519 (Curve25519) สำหรับการเข้ารหัส ซึ่งจะสร้างคีย์หลักสำหรับลงลายเซ็นและคีย์ย่อยสำหรับการเข้ารหัส ตัวเลือก --full-gen-key ให้ผู้ใช้ควบคุมประเภทคีย์ ขนาด และวันหมดอายุได้อย่างเต็มที่ สำหรับผู้ที่ต้องการการตั้งค่าแบบกำหนดเอง

การเปรียบเทียบประเภทคีย์ GPG

คีย์ GPG แบบ RSA 4096 บิตเข้ากันได้กับการใช้งาน OpenPGP ทั้งหมดและให้ความปลอดภัยสูง ECDSA กับ Curve25519 (Ed25519 สำหรับการลงลายเซ็น และ Cv25519 สำหรับการเข้ารหัส) ให้คีย์ที่มีขนาดเล็กกว่าและทำงานได้เร็วกว่า โดยยังคงมีความปลอดภัยในระดับเทียบเท่ากัน คีย์ DSA รุ่นเก่าจำกัดให้ใช้ไดเจสต์ SHA-1 ในการใช้งานรุ่นเก่า และไม่ควรนำมาใช้ คีย์ใหม่ควรใช้ประเภทที่อิงกับ Curve25519

การส่งออกและแชร์คีย์สาธารณะ

หลังจากสร้างคู่คีย์แล้ว ให้ส่งออกคีย์สาธารณะเพื่อแจกจ่ายด้วยคำสั่ง gpg --armor --export your@email.com ซึ่งจะแสดงบล็อกคีย์สาธารณะที่หุ้มด้วย ASCII แชร์ไฟล์นี้กับทุกคนที่ควรเข้ารหัสไฟล์ให้คุณหรือยืนยันลายเซ็นของคุณ ผู้รับต้องนำเข้าคีย์สาธารณะของคุณด้วย gpg --import publickey.asc ก่อนจึงจะเข้ารหัสหรือยืนยันลายเซ็นได้

การเข้ารหัสไฟล์สำหรับผู้รับ

หากต้องการเข้ารหัสไฟล์สำหรับผู้รับที่ระบุ ให้ใช้คำสั่ง gpg --encrypt --recipient recipient@email.com --output secret.gpg plaintext.txt GPG ใช้คีย์สาธารณะของผู้รับเพื่อเข้ารหัสคีย์เซสชันของไฟล์ และเข้ารหัสไฟล์ด้วย AES-256 (หรือรหัสเข้ารหัสที่มีการต่อรองกัน) มีเพียงผู้รับที่ถือคีย์ส่วนตัวที่ตรงกันเท่านั้นที่สามารถถอดรหัสคีย์เซสชันของไฟล์และกู้คืนข้อความต้นฉบับได้

การสร้างลายเซ็นแยกไฟล์

ลายเซ็นแยกไฟล์ (gpg --detach-sign --armor file.tar.gz) จะสร้างไฟล์ .asc แยกต่างหากที่มีลายเซ็นอยู่ ส่วนไฟล์ต้นฉบับจะไม่เปลี่ยนแปลง ผู้รับตรวจสอบได้ด้วย gpg --verify file.tar.gz.asc file.tar.gz ลายเซ็นแยกไฟล์เป็นมาตรฐานสำหรับรุ่นซอฟต์แวร์ ทำให้ตรวจสอบลายเซ็นได้โดยไม่ต้องถอดรหัสหรือแก้ไขไฟล์ที่แจกจ่าย

การยืนยันลายเซ็น

การยืนยันลายเซ็นจะยืนยันว่าไฟล์ลงลายเซ็นด้วยคีย์ที่อ้างถึงจริง และไม่มีการแก้ไขนับตั้งแต่ลงลายเซ็น gpg --verify signature.asc file จะแสดงลายนิ้วมือของคีย์ ID ของผู้ใช้ และแสดงว่าลายเซ็นถูกต้องหรือไม่ถูกต้อง ความปลอดภัยขึ้นอยู่กับการให้ความเชื่อถือแก่คีย์สาธารณะของผู้ลงลายเซ็นอย่างถูกต้อง ลายเซ็นที่ถูกต้องจากคีย์ที่ไม่น่าเชื่อถือหรือยังไม่ได้รับการยืนยันให้ความมั่นใจได้น้อยมาก

คีย์ส่วนตัวที่ป้องกันด้วยวลีรหัสผ่าน

GPG จะเข้ารหัสคีย์ส่วนตัวด้วยรหัสเข้ารหัสแบบสมมาตรที่สร้างจากวลีรหัสผ่านก่อนจัดเก็บ หากไม่มีวลีรหัสผ่าน ผู้โจมตีที่ได้ไฟล์คีย์ส่วนตัวไปก็ไม่สามารถใช้งานคีย์นั้นได้ GPG ใช้ฟังก์ชันสร้างคีย์เพื่อสร้างคีย์เข้ารหัสจากวลีรหัสผ่าน วลีรหัสผ่านควรยาวและจดจำได้ง่าย แต่ไม่ควรนำไปใช้ที่อื่น เนื่องจากไฟล์ที่เข้ารหัสทั้งหมดของคุณได้รับการปกป้องด้วยวลีนี้

การทำงานของเซิร์ฟเวอร์คีย์ GPG

เซิร์ฟเวอร์คีย์ GPG ให้บริการคีย์สาธารณะเพื่อให้ค้นหาได้ gpg --send-keys KEYID --keyserver hkps://keys.openpgp.org จะอัปโหลดคีย์สาธารณะของคุณ ผู้อื่นสามารถค้นหาและนำเข้าคีย์ด้วย gpg --recv-keys KEYID เซิร์ฟเวอร์คีย์จะซิงโครไนซ์ข้อมูลระหว่างกัน ทำให้คีย์พร้อมใช้งานทั่วโลก เซิร์ฟเวอร์คีย์รุ่นใหม่ เช่น keys.openpgp.org กำหนดให้ยืนยันอีเมลก่อนเผยแพร่ เพื่อป้องกันการโจมตีด้วยสแปมคีย์

วันหมดอายุและการเพิกถอนคีย์

การกำหนดวันหมดอายุให้คีย์ช่วยป้องกันโดยอัตโนมัติหากคุณสูญเสียการควบคุมคีย์ โดยไม่ต้องสร้างใบรับรองการเพิกถอนใหม่ เมื่อคีย์หมดอายุ GPG จะแจ้งเตือนผู้ใช้ที่กำลังเข้ารหัสถึงคีย์นั้น หากคีย์ของคุณถูกบุกรุก ให้เผยแพร่ใบรับรองการเพิกถอน (ซึ่งสร้างไว้ตั้งแต่ตอนสร้างคีย์) ไปยังเซิร์ฟเวอร์คีย์ทันทีด้วยคำสั่ง gpg --import revocation.cert และ gpg --send-keys การดำเนินการนี้จะป้องกันไม่ให้มีการเข้ารหัสเพิ่มเติมถึงคีย์ที่ถูกบุกรุก

GPG ในเวิร์กโฟลว์อัตโนมัติ

GPG ทำงานโดยไม่ต้องโต้ตอบในสคริปต์ได้ โดยใช้แฟล็ก --batch และ --yes และส่งวลีรหัสผ่านผ่าน --passphrase-fd เพื่ออ่านจากตัวบอกไฟล์ GPG agent (gpg-agent) จะเก็บวลีรหัสผ่านไว้ในแคชตามระยะเวลาที่กำหนดค่าได้ ทำให้สามารถนำกลับมาใช้โดยอัตโนมัติได้ สำหรับไปป์ไลน์ CI/CD ควรจัดเก็บข้อมูลคีย์ไว้ในระบบจัดการข้อมูลลับ ไม่ใช่ในซอร์สโค้ดหรือตัวแปรสภาพแวดล้อม

คำสั่งเข้ารหัสของ GPG

คำสั่ง GPG ใดใช้เข้ารหัสไฟล์สำหรับผู้รับที่ระบุโดยใช้คีย์สาธารณะของผู้รับ

สรุปการเข้ารหัสไฟล์ด้วย GPG

สรุป GPG: สร้างคู่คีย์ (แนะนำ Curve25519) ส่งออกและแชร์คีย์สาธารณะ เข้ารหัสด้วยคีย์สาธารณะของผู้รับ (--encrypt --recipient) ลงลายเซ็นไฟล์แยกต่างหากด้วยลายเซ็นแยกไฟล์ (--detach-sign) ยืนยันลายเซ็นด้วย --verify ปกป้องคีย์ส่วนตัวด้วยวลีรหัสผ่าน กำหนดวันหมดอายุและเตรียมใบรับรองการเพิกถอน และใช้เซิร์ฟเวอร์คีย์เพื่อค้นหาและแจกจ่ายคีย์สาธารณะ

เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร”

ใช้ GPG เข้ารหัสไฟล์สำหรับผู้รับที่ระบุ ลงลายมือชื่อเนื้อหา และจัดการพวงกุญแจ GPG คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. GPG สำหรับการเข้ารหัสไฟล์แบบอสมมาตร
  2. เครื่องมือเข้ารหัส age: ทางเลือกสมัยใหม่แทน GPG
  3. คอนเทนเนอร์เข้ารหัสด้วย VeraCrypt
  4. การลบข้อมูลอย่างปลอดภัยและการทำลายกุญแจ
← กลับไปที่ Cryptology Academy