Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

Public Key และ Private Key ในความปลอดภัยเครือข่าย: ความแตกต่างและการทำงาน

สรุปความแตกต่างสำคัญ

ลักษณะPublic Key (คีย์สาธารณะ)Private Key (คีย์ส่วนตัว)
การเข้าถึงเผยแพร่สาธารณะ ได้ทุกคนเก็บเป็นความลับ เฉพาะเจ้าของ
หน้าที่หลักเข้ารหัสข้อมูล (Encrypt)ถอดรหัสข้อมูล (Decrypt) / ลงนามดิจิทัล
ความเสี่ยงการสูญหายไม่มี (เป็นสาธารณะ)สูง หากสูญหายระบบจะใช้งานไม่ได้
ตัวอย่างการใช้งานSSL/TLS Certificate, SSH Public KeySSL Private Key, SSH Private Key, PGP Private Key

หลักการทำงานของ Asymmetric Cryptography (การเข้ารหัสแบบอสมาตร)

ระบบคีย์คู่ (Key Pair) ทำงานร่วมกัน:

  1. ผู้สร้างคีย์สร้างคู่คีย์: Public Key และ Private Key ซึ่งเชื่อมโยงกันทางคณิตศาสตร์
  2. Public Key แจกจ่ายให้ทุกคน (เช่น โพสต์บนเว็บไซต์ ใส่ใน Certificate)
  3. ฝั่งส่งข้อมูลใช้ Public Key ของผู้รับ เข้ารหัสข้อความ (Plaintext → Ciphertext)
  4. เฉพาะ Private Key ของผู้รับ เท่านั้นที่ถอดรหัสกลับเป็น Plaintext ได้
  5. แม้ Public Key จะรู้จักก็จำเป็นต้องมี Private Key คู่กันถึงจะถอดรหัสได้

การประยุกต์ใช้ในเทคโนโลยีจริง

SSL/TLS (HTTPS)

  • เว็บเซิร์ฟเวอร์มีคู่คีย์: Public Key อยู่ใน Certificate (ส่งให้ Browser), Private Key เก็บบน Server
  • Browser ตรวจสอบ Certificate (ไว้วางใจ CA) → ใช้ Public Key เข้ารหัส Session Key → ส่งให้ Server
  • Server ใช้ Private Key ถอดรหัสได้ Session Key → ใช้ Session Key (Symmetric) เข้ารหัสข้อมูลต่อไป

SSH (Secure Shell)

  • ผู้ใช้สร้างคู่คีย์: id_rsa (Private) และ id_rsa.pub (Public)
  • นำ Public Key ไปวางบน Server (~/.ssh/authorized_keys)
  • ตอนเชื่อมต่อ Server ส่ง Challenge เข้ารหัสด้วย Public Key → Client ถอดรหัสด้วย Private Key → ส่งคำตอบกลับ → Server ยืนยันตัวตน
  • Private Key ต้องเก็บไว้ปลอดภัย ห้ามแชร์ให้ใคร (รวมถึง Admin Server)

Email Encryption (PGP/GPG)

  • เข้ารหัสอีเมลด้วย Public Key ของผู้รับ → เฉพาะ Private Key ของผู้รับถอดรหัสได้
  • ลงนามดิจิทัลด้วย Private Key ของตัวเอง → ใครก็ตรวจสอบได้ด้วย Public Key

คำถามพบบ่อย (FAQ)

Private Key ใช้ทำอะไรบ้าง?

  • ถอดรหัสข้อมูลที่เข้ารหัสมาด้วย Public Key คู่
  • สร้าง Digital Signature เพื่อยืนยันความถูกต้องและ عدمการปฏิเสธ (Non-repudiation)
  • ใน SSL: ใช้ตั้งค่า Session Key ระหว่าง Client-Server

Public Key มาจากไหน?

สร้างขึ้นโดยอัลกอริทึม (RSA, ECC, Ed25519) พร้อมกับ Private Key มักจัดการโดย CA (Certificate Authority) หรือซอฟต์แวร์สร้างคีย์ (OpenSSL, ssh-keygen)

SSL ใช้ Public Key Encryption จริงหรือไม่?

ใช่ แต่แบบผสม (Hybrid): ใช้ Asymmetric (Public/Private) แลกเปลี่ยน Symmetric Key (Session Key) แล้วค่อยใช้ Symmetric Encryption (AES, ChaCha20) เข้ารหัสข้อมูลจริง เพราะเร็วกว่ามาก

การแชร์ Public SSH Key ปลอดภัยไหม?

ปลอดภัยมาก เพราะ Public Key ออกแบบมาให้แชร์ได้ จะไม่สามารถคำนวณย้อนกลับหา Private Key ได้ (ในทางปฏิบัติ) แต่ควรตรวจสอบ Fingerprint ก่อนนำไปใช้