เครื่องสร้างคู่กุญแจ RSA (RSA Key Pair Generator)
คู่กุญแจ RSA ประกอบด้วยตัวเลขสองตัวที่เชื่อมโยงกันทางคณิตศาสตร์ ได้แก่ กุญแจสาธารณะที่ให้ผู้อื่นใช้งาน และกุญแจส่วนตัวที่คุณเก็บรักษาไว้ เครื่องมือนี้สร้างทั้งสองกุญแจด้วยรูปแบบการเข้ารหัส PEM มาตรฐาน โดยใช้แหล่งข้อมูลสุ่มที่ปลอดภัยทางการเข้ารหัส สามารถใช้เครื่องมือนี้ในการเริ่มต้นการทำงานของตัวลงนาม JWT สร้างใบรับรอง TLS สำหรับระบบจำลอง (staging box) หรือออกตัวตน SSH โดยไม่จำเป็นต้องใช้บรรทัดคำสั่ง
วิธีการสร้างคู่กุญแจ RSA
-
1
เลือกขนาดของกุญแจ
เลือกขนาด 2048, 3072 หรือ 4096 บิต โดยกุญแจที่ยาวกว่าจะมีความปลอดภัยสูงขึ้น แต่กระบวนการลงนามและการตรวจสอบจะใช้เวลานานกว่า
-
2
สร้างขึ้น
เครื่องมือนี้สร้างโมดูลัสใหม่และค่าเอ็กซ์โพเนนต์ส่วนตัวโดยใช้พื้นฐานการประมวลผลของ WebCrypto
-
3
คัดลอกหรือดาวน์โหลด
ดึงกุญแจส่วนตัวที่เข้ารหัสด้วย PEM (BEGIN PRIVATE KEY) และกุญแจสาธารณะที่ตรงกัน (BEGIN PUBLIC KEY)
-
4
จัดเก็บกุญแจส่วนตัวอย่างปลอดภัย
ให้ย้ายข้อมูลนี้ไปไว้ในโปรแกรมจัดการความลับหรือชุดกุญแจแทน อย่าเสียบข้อมูลลงในแชท อีเมล หรือรีโพสาธารณะเด็ดขาด
คุณควรใช้ขนาดกุญแจใดดี?
ขนาดที่ใหญ่ขึ้นไม่ได้หมายความว่าจะดีกว่าโดยอัตโนมัติ ขนาดที่เหมาะสมขึ้นอยู่กับอายุการใช้งานของกุญแจ และปริมาณทรัพยากร CPU ที่คุณเต็มใจใช้สำหรับการสร้างลายเซ็นแต่ละครั้ง
คำแนะนำของ NIST โดยสรุป
| ขนาดกุญแจ | ระดับความปลอดภัย | การใช้งานทั่วไป | ต้นทุนการลงนามสัมพัทธ์ |
|---|---|---|---|
| 2048 บิต | ~112 บิต | การลงนามด้วย JWT, ใบรับรอง TLS ที่มีอายุสั้น, API ส่วนใหญ่ | 1 เท่า |
| 3072 บิต | ~128 บิต | หน่วยยืนยันต้นทาง (CA) ที่มีอายุการใช้งานยาวนาน และเป็นไปตามมาตรฐาน FIPS > 2030 | ~3 เท่า |
| 4096 บิต | ~140 บิต | รากฐานความปลอดภัยสูง การลงนามในเอกสารระยะยาว | ~7 เท่า |
บทบาทของ PEM
กุญแจถูกเข้ารหัสด้วยรูปแบบ PKCS#8/SPKI และฐาน 64 โดยอยู่ระหว่างเครื่องหมาย -----BEGIN----- ถึง -----END----- ซึ่งเป็นรูปแบบที่ไลบรารีหลักทั้งหมดคาดหวังไว้ ได้แก่ OpenSSL, crypto ของ Node.js, cryptography ของ Python, crypto/rsa ของ Go และ KeyFactory ของ Java
คำแนะนำในการปฏิบัติงาน
- ควรหมุนกุญแจลงนามที่มีการใช้งานอย่างแพร่หลายอย่างน้อยปีละครั้ง
- สำหรับระบบใหม่ ควรเลือกใช้ ECDSA (P-256) หรือ Ed25519 เนื่องจากมีความเร็วสูงกว่า และขนาดของลายเซ็นจะเล็กกว่ามาก
- อย่าใช้คู่กุญแจซ้ำในระบบที่ไม่เกี่ยวข้องกันเด็ดขาด หากข้อมูลของคู่กุญแจใดๆ รั่วไหลออกไป ทุกส่วนที่อยู่ตามลำดับการทำงานจะถูกทำให้เสียหาย
- ควรใช้คำผ่านเมื่อจัดเก็บกุญแจส่วนตัวไว้ในดิสก์ โดย PEM ที่ถูกเข้ารหัส (
BEGIN ENCRYPTED PRIVATE KEY) เป็นมาตรฐานที่ใช้กันโดยทั่วไป
คำถามที่พบบ่อย
ใช่ สำหรับการลงชื่อเข้าใช้งานผ่าน API และเซสชันส่วนใหญ่ NIST และ BSI ยังคงถือว่า RSA ขนาด 2048 บิตเป็นทางเลือกที่เหมาะสมจนถึงอย่างน้อยปี 2030 อย่างไรก็ตาม แนะนำให้ใช้ RSA ขนาด 3072 บิตสำหรับกรณีที่ต้องการความปลอดภัยในระยะเวลานานกว่านั้น
กุญแจส่วนตัวของ PEM จะทำงานร่วมกับ ssh-keygen -y -f key.pem เพื่อสร้างกุญแจสาธารณะ ssh-rsa สำหรับการใช้งาน SSH ในชีวิตประจำวัน ควรเลือกใช้ Ed25519 เนื่องจากกุญแจมีขนาดเล็กและมีความเร็วในการประมวลผลสูงกว่า
อันดับแรกคือ PKCS#1 (ใช้เฉพาะ RSA) อันดับที่สองคือ PKCS#8 (ซึ่งเป็นฟังก์ชันหุ้มที่ไม่ขึ้นอยู่กับอัลกอริทึม) และเป็นทางเลือกที่ไลบรารีสมัยใหม่ส่วนใหญ่แนะนำ โปรแกรมนี้จะสร้างผลลัพธ์ในรูปแบบของ PKCS#8
ไม่ใช่เช่นนั้น การสร้างกุญแจจะดำเนินการผ่าน WebCrypto API ภายในระบบเอง โดยไฟล์ PEM จะถูกสร้างขึ้นในหน่วยความจำก่อนที่จะแสดงผลบนหน้าเว็บ
เครื่องมือที่เกี่ยวข้อง
ตัวระบุการเข้ารหัส
วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ
ตัวเข้ารหัสไฟล์ Base64
เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด
ตัวสร้าง HMAC
สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook
เครื่องแปลง ETH เป็น USD
แปลงอีเธอเรียม (ETH) เป็นดอลลาร์สหรัฐด้วยอัตรา ETH/USD แบบเรียลไทม์หรืออัตราที่คุณกำหนดเอง ดูว่าจำนวน ETH เท่าใดก็ได้มีมูลค่าเป็น USD เท่าไร
เครื่องแปลง Gwei เป็น Ether
แปลงจำนวนในหน่วย Gwei เป็น Ether (ETH) ด้วยทศนิยมสูงสุด 18 ตำแหน่ง มีประโยชน์สำหรับการประมาณค่าธรรมเนียม Gas และการอ่านข้อมูลธุรกรรม
เครื่องคำนวณแฮชของไฟล์
คำนวณค่าแฮช MD5, SHA-1, SHA-256 และ SHA-512 ของข้อความหรือเนื้อหาไฟล์ที่คุณวาง เพื่อตรวจสอบไฟล์ที่ดาวน์โหลดและความสมบูรณ์ของไฟล์
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Generador de pares de claves RSA [ES]
- Générateur de paire de clés RSA [FR]
- Generator Pasangan Kunci RSA [ID]
- RSA nyckelpargenerator [SV]
- مولد زوج المفتاح RSA [AR]
- RSA鍵ペア生成器 [JA]
- RSA 키 쌍 생성기 [KO]
- Generator par kluczy RSA [PL]
- RSA-sleutelpaargenerator [NL]
- Bộ tạo cặp khóa RSA [VI]
- Gerador de Par de Chaves RSA [PT]
- RSA-Schlüsselpaar-Generator [DE]
- Генератор пар ключей RSA [RU]
- RSA Anahtar Çifti Oluşturucu [TR]
- RSA密钥对生成器 [ZH]
- RSA Key Pair Generator [EN]
- Generatore di coppie di chiavi RSA [IT]