ความแตกต่างระหว่างคีย์ RSA, DSA และ ECDSA ที่ ssh ใช้คืออะไร


13

ใน/etc/ssh/ไดเรกทอรีของฉันฉันเห็นสามที่ฉันมีคีย์ ssh สามประเภท:

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

อะไรคือความแตกต่างระหว่างคีย์ RSA, DSA และ ECDSA ของ ssh และฉันต้องการทั้งสามอย่างหรือไม่

คำตอบ:


9

เป็นกุญแจที่สร้างขึ้นโดยใช้อัลกอริธึมการเข้ารหัสที่แตกต่างกัน คุณสามารถเลือกใช้รูปแบบการเข้ารหัสที่แตกต่างกันเมื่อใช้ SSH คล้ายกับความสามารถในการเลือกวิธีการเข้ารหัสที่แตกต่างกันสำหรับ WiFi (WPA2, WPA, WEP, ฯลฯ )

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

คอมพิวเตอร์ของคุณส่งกลับรหัส RSA สาธารณะของตัวเองจากไฟล์คีย์ที่คุณระบุไว้ในคำถามของคุณ เซิร์ฟเวอร์ต้องการคีย์นี้เพื่อเชื่อมต่อกลับไปหาคุณและตอบกลับ

มีสามคีย์ทั้งหมดในคอมพิวเตอร์ของคุณเนื่องจากเซิร์ฟเวอร์ SSH ที่คุณกำหนดให้เชื่อมต่ออาจถูกกำหนดค่าให้ใช้อัลกอริทึมเหล่านี้ คอมพิวเตอร์ของคุณจะส่งคีย์เฉพาะที่ตรงกับประเภทที่เซิร์ฟเวอร์ใช้คีย์ของคุณถูกสร้างขึ้นบนคอมพิวเตอร์ของคุณด้วยอัลกอริทึมเดียวกัน

นี่คือแหล่งข้อมูลเพิ่มเติมบางส่วน:

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_(algorithm)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
คุณได้พูดสั้น ๆ ว่าเหตุใดทั้งสามจึงมีวัตถุประสงค์ของคีย์ ssh และสิ่งที่คีย์มีเหมือนกัน: ปุ่มใช้อัลกอริทึมการเข้ารหัส สิ่งที่คุณไม่ได้พูดถึงความแตกต่างระหว่างคีย์ RSA, DSA และ ECDSA คืออะไร
Enkouyami

6

คุณต้องการทั้งหมดหรือไม่
ไม่เซิร์ฟเวอร์ ssh ของคุณต้องการเพียงหนึ่งและไคลเอ็นต์ต้องการสนับสนุนคีย์ชนิดเดียวสำหรับการเชื่อมต่อ ssh เท่านั้น


RSA, DSA, ECDSA, EdDSA และ Ed25519 ล้วน แต่ใช้สำหรับการเซ็นชื่อแบบดิจิทัล แต่มีเพียง RSA เท่านั้นที่สามารถใช้สำหรับการเข้ารหัส

RSA ( Rivest – Shamir – Adleman ) เป็นหนึ่งใน cryptosystems สาธารณะกุญแจแรกและใช้กันอย่างแพร่หลายสำหรับการส่งข้อมูลที่ปลอดภัย การรักษาความปลอดภัยขึ้นอยู่กับการแยกตัวประกอบจำนวนเต็มดังนั้น RNG ที่ปลอดภัย (ตัวสร้างจำนวนสุ่ม) จึงไม่จำเป็น เมื่อเทียบกับ DSA RSA นั้นเร็วกว่าสำหรับการตรวจสอบลายเซ็น แต่ช้ากว่าการสร้าง

DSA ( อัลกอริธึมลายเซ็นดิจิทัล ) เป็นมาตรฐานการประมวลผลข้อมูลของรัฐบาลกลางสำหรับลายเซ็นดิจิทัล การรักษาความปลอดภัยขึ้นอยู่กับปัญหาลอการิทึมที่ไม่ต่อเนื่อง เมื่อเทียบกับ RSA DSA นั้นเร็วกว่าสำหรับการสร้างลายเซ็น แต่ช้ากว่าสำหรับการตรวจสอบ การรักษาความปลอดภัยสามารถหักถ้ากำเนิดจำนวนที่ไม่ดีถูกนำมาใช้

ECDSA ( Elliptical curve Digital Signature Algorithm ) เป็นการใช้งานแบบ Elliptic Curve ของ DSA (Digital Signature Algorithm) การเข้ารหัสแบบวงรีรูปไข่สามารถให้ระดับความปลอดภัยในระดับเดียวกับ RSA ด้วยคีย์ที่เล็กลง นอกจากนี้ยังแชร์ข้อเสียของ DSA ที่จะอ่อนไหวต่อ RNG ที่ไม่ดี

EdDSA ( เอ็ดเวิร์ดโค้งลายเซ็นดิจิตอล Algorithm ) เป็นรูปแบบการใช้ลายเซ็นดิจิตอลที่แตกต่างของลายเซ็น Schnorrขึ้นอยู่กับเส้นโค้งบิดเอ็ดเวิร์ด การสร้างลายเซ็นเป็นสิ่งที่กำหนดได้ใน EdDSA และความปลอดภัยขึ้นอยู่กับความสามารถในการแทรกซึมของปัญหาลอการิทึมแบบแยกดังนั้นจึงปลอดภัยกว่า DSA & ECDSA ซึ่งต้องใช้การสุ่มคุณภาพสูงสำหรับแต่ละลายเซ็น

Ed25519เป็นรูปแบบลายเซ็น EdDSA แต่ใช้SHA-512/256และCurve25519 ; เป็นเส้นโค้งรูปไข่ที่มีความปลอดภัยซึ่งให้ความปลอดภัยที่ดีกว่า DSA, ECDSA และ EdDSA รวมถึงมีประสิทธิภาพที่ดีกว่า


หมายเหตุอื่น ๆ
ปุ่ม RSA นั้นใช้กันอย่างแพร่หลายและดูเหมือนจะได้รับการสนับสนุนที่ดีที่สุด

ECDSA (เปิดตัวในOpenSSH v5.7 ) เบากว่าการคำนวณ DSA แต่ความแตกต่างนั้นไม่สามารถสังเกตเห็นได้เว้นแต่คุณจะมีเครื่องจักรที่มีกำลังการประมวลผลต่ำมาก

ในฐานะของOpenSSH 7.0 , SSH ไม่สนับสนุนคีย์ DSA (ssh-dss) อีกต่อไปโดยค่าเริ่มต้น คีย์ DSA ใช้งานได้ทุกที่ตามมาตรฐาน SSH (RFC 4251 และต่อมา)

Ed25519 เป็นที่รู้จักในOpenSSH 6.5


1
ที่เป็น EdDSA หรือECDSA ?
muru

@muru It ECDSA ฉันจะอัปเดตคำตอบพร้อมกับข้อมูลทั้งคู่และแก้ไขลิงก์
Enkouyami

สิ่งที่ฉันไม่สามารถหาได้คือเมื่อมีการแนะนำ EdDSA ใน OpenSSH
Enkouyami

คอมพิวเตอร์ควอนตัมสามารถทำลายพวกเขาทั้งหมดได้หรือไม่?
Kjeld Flarup

@KjeldFlarup ใช่ จากคำตอบและความคิดเห็นในsecurity.stackexchange.com/questions/211587/…คอมพิวเตอร์ควอนตัมสามารถทำลายพวกเขาทั้งหมดได้
Enkouyami
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.