PlusMagi's Blog By Pitt Phunsanit Nginx,Security เข้ารหัสแบบไหนดี

เข้ารหัสแบบไหนดี

การสร้าง Private Key, Public Key ในตอนนี้นิยมใช้กันหลัก ๆ จะมี 3 ตระกูลคือ RSA, ECDSA และ Ed25519


ตระกูล RSA

RSA ใช้หลักการเลขจำนวนเฉพาะขนาดใหญ่ มี Option สำคัญคือ Key Size

  • คำสั่งสร้าง Private Key: openssl genrsa -out private.key 2048
  • การดึง Public Key: ใช้ชุดคำสั่ง openssl rsa
  • Option ที่ใช้บ่อย
    • -des3 หรือ -aes256: เพื่อใส่ Password ให้กับไฟล์ Key
    • 2048 / 4096: ระบุความยาว Bit

ตระกูล ECDSA

ใช้คณิตศาสตร์เส้นโค้งอ้างอิงตาม “Curve” แทนการระบุจำนวน Bit แบบ RSA

  • คำสั่งสร้าง Private Key:
    openssl ecparam -name prime256v1 -genkey -noout -out ec_private.key
  • การดึง Public Key: ต้องใช้ชุดคำสั่ง openssl ec
    openssl ec -in ec_private.key -pubout -out ec_public.key
  • Option ที่ใช้บ่อย
    • -name: ใช้เลือกชื่อ Curve เช่น prime256v1 หรือ secp384r1

ตระกูล Ed25519

เป็นที่นิยมมากใน SSH ยุคใหม่ เพราะปลอดภัยสูงและไฟล์ Key มีขนาดเล็กมาก

  • การใช้งาน: ส่วนใหญ่ใช้ผ่าน ssh-keygen
    ssh-keygen -t ed25519 -C "[email protected]"
  • ความต่าง: คุณไม่จำเป็นต้องระบุ Bit

ตารางเปรียบเทียบ Option ของ OpenSSL

Algorithmคำสั่งจัดการ KeyOption ระบุความแรงความนิยมในปัจจุบัน
RSAopenssl rsaจำนวน Bit สูงมาก
ECDSAopenssl ecชื่อ Curve สูง
Ed25519ssh-keygenไม่ต้องระบุ สูงมากสำหรับ SSH

ข้อควรระวังเมื่อสลับประเภท Key

หากคุณเปลี่ยนจาก RSA ไปใช้ ECDSA ใน Nginx config

  • Directives: คำสั่ง ssl_certificate และ ssl_certificate_key ยังใช้เหมือนเดิม
  • Compatibility: ต้องเช็คว่า Client รองรับ Curve นั้นหรือไม่
  • Backup: อย่าลืมนะครับว่าถ้าเปลี่ยนประเภท Key ใหม่ Public Key เดิมจะใช้ไม่ได้ ต้องนำ Public Key ชุดใหม่ไปอัปเดตที่ปลายทางด้วย

อ่านเพิ่มเติม

Exit mobile version