ฉันควรใช้ความยาวคีย์ RSA เท่าใดสำหรับใบรับรอง SSL


97

ฉันกำลังอยู่ในขั้นตอนการสร้าง CSR และฉันสงสัยว่าข้อใดเป็นเนื้อหาที่ยาวที่สุดสำหรับคีย์ RSA ของฉัน

แน่นอน 384 น่าจะอ่อนแอเกินไปและ 16384 อาจช้าเกินไป

มีความสอดคล้องกันเกี่ยวกับความยาวคีย์ที่ควรใช้ขึ้นอยู่กับอายุการใช้งานของใบรับรองหรือไม่

แก้ไข: เช่นเดียวกับคนส่วนใหญ่ฉันต้องการให้คีย์ของฉันแข็งแรงพอสมควร ฉันไม่กังวลว่า NSA อาจทำลายกุญแจของฉันในปี 2019 ฉันแค่อยากรู้ว่าแนวทางปฏิบัติที่ดีที่สุดคืออะไรเมื่อมีแผนจะทำธุรกิจปกติ (เช่นไซต์อีคอมเมิร์ซ)

คำตอบ:


104

ในปี 2020 คีย์ RSA ควรเป็น 2048 บิต

1024 บิต

  • ใบรับรอง RSA 1024 บิตล้าสมัยและเบราว์เซอร์ไม่ยอมรับ
  • Firefoxหยุดรับใบรับรอง RSA 1024 บิตในปี 2014
  • ผู้ออกใบรับรองหยุดส่งใบรับรอง RSA 1024 บิตในปี 2014 หรือก่อนหน้า ดูGlobalSignหรือประชาแจ้งให้ทราบล่วงหน้า
  • เลิกใช้งานคีย์ 1024 บิตเนื่องจากสามารถถอดรหัสได้เนื่องจากดาต้าเซ็นเตอร์ขนาดเล็ก (CPU หลายพันตัวหรือ GPU หลายร้อยตัวในเวลาไม่กี่เดือน) อาจดูเหมือนมาก แต่ก็สามารถเข้าถึงได้ดีกับองค์กรหรือรัฐบาลขนาดใหญ่

2048 บิต

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

4096 บิต

  • ใบรับรอง RSA 4096 บิตเป็นขั้นตอนต่อไป
  • พร้อมใช้งานและรองรับอย่างกว้างขวาง CA หลักทั้งหมดสามารถให้ RSA ได้ทั้ง 2048 และ 4096 บิตรวมถึงการเข้ารหัสด้วย
  • ต้นทุนการคำนวณไม่ตรงตามขนาดของคีย์ 4096 ไม่ช้าเป็นสองเท่าของปี 2048 อาจจะช้ากว่า 10 เท่าในการประมวลผล อย่าสุ่มสี่สุ่มห้าอัพเกรดใบรับรอง 4096 บิตโดยไม่คำนึงถึงผลกระทบต่อประสิทธิภาพการทำงาน
  • "เว็บ" ส่วนใหญ่เหลืออยู่ในใบรับรอง 2048 บิตเนื่องจากไม่สามารถแบกรับต้นทุนฮาร์ดแวร์สำหรับ 4096 บิตได้ ลองพิจารณานักแสดงรายใหญ่เช่น Google, CloudFlare, NetFlix ที่มีปริมาณการใช้งานมหาศาลและฮาร์ดแวร์

3072 บิต

  • 3072 บิตไม่ใช่สิ่งของ ข้ามไปที่ 4096 บิต
  • เป็นไปได้ทั้งหมดที่จะทำการเข้ารหัส 3072 บิตเพียงแค่ไม่มีซอฟต์แวร์ใดที่ใช้งานสนับสนุนและโฆษณาอย่างเป็นทางการ
  • ในอดีตมีความพยายามในช่วงประมาณปี 2010-2015 ที่จะเปิดตัว 3072 สำหรับกรณีการใช้งานซึ่งต้นทุนการคำนวณเพิ่มเติมที่ 4096 นั้นไม่เหมาะ มันจางหายไป แต่ยังมีบทความเก่า ๆ ที่เผยแพร่ข้อดีของ 3072 (เร็วกว่า)

พิเศษ

  • RSA ได้รับการอธิบายสู่สาธารณะเป็นครั้งแรกในปี 2520 และยังคงแข็งแกร่งเกือบ 50 ปีต่อมา เพียงแค่ต้องเพิ่มจำนวนบิตเพื่อให้ทันกับคอมพิวเตอร์ที่เร็วขึ้น
  • มีอีกวิธีหนึ่งสำหรับการเข้ารหัสคีย์สาธารณะโดยใช้เส้นโค้งรูปไข่ดู ECDSA (1992)
  • มีการตัดการเชื่อมต่ออย่างมากระหว่างความสามารถของผู้ใช้และผู้โจมตี เว็บเซิร์ฟเวอร์หรือไคลเอนต์มือถือมีหนึ่งซีพียู (พลังงานต่ำ) ผู้โจมตีสามารถมีดาต้าเซ็นเตอร์ทั้งหมดสำหรับการอ้างอิงดาต้าเซ็นเตอร์ AWS ที่สร้างขึ้นใหม่ซึ่งโฮสต์เซิร์ฟเวอร์ประมาณ 60,000 เซิร์ฟเวอร์
  • เป็นเรื่องเหลือเชื่อที่โทรศัพท์มือถือเครื่องเดียวสามารถคำนวณคณิตศาสตร์บางส่วนได้ภายในเวลาไม่กี่วินาที ... ที่คอมพิวเตอร์นับล้านไม่สามารถคาดเดาได้ในชีวิต

13
ความแตกต่าง ("256 บิตจะทำงานตลอดไป" ในอีกด้านหนึ่งและ "1024 บิตแล้วอึ" ในอีกด้านหนึ่ง) เกิดจากความแตกต่างระหว่างอัลกอริทึมสมมาตรและไม่สมมาตรและประเภทของคีย์ที่ใช้ในแต่ละคีย์ ด้วย "ระดับความปลอดภัยที่เทียบเท่า" ใด ๆ ที่กำหนดคุณจะเห็นตัวเลขดิบที่แตกต่างกันมากสำหรับความยาวของคีย์ในแบบสมมาตรและแบบไม่สมมาตร
Ti Strga

1
ในเดือนกันยายน 2015 ดูเหมือนว่าอุตสาหกรรมจะไม่ยอมรับ CSR น้อยกว่าปี 2048 บิต ดูคำตอบด้านล่างและบทความสนับสนุน Comodo
angularsen

2
@anjdreas แม้ว่าจะเป็นเรื่องจริงที่ปี 2048 เป็นขั้นต่ำแต่ฉันจะระมัดระวังการอ้างคะแนนจากบทความ CA
Pacerier

ลิงค์ RSA Labs คือ 404 ตอนนี้ btw
jocull

2
หมายเหตุ: เขียนคำตอบใหม่ทั้งหมดหลังจาก 11 ปีพร้อมคำแนะนำและข้อมูลอ้างอิงที่เป็นปัจจุบัน ความคิดเห็นด้านบนนี้แสดงความคิดเห็นเกี่ยวกับการแก้ไขครั้งก่อน
user5994461

12

เนื่องจากลูกค้าจำนวนมากต้องการการปฏิบัติตามมาตรฐานการเข้ารหัส NIST ฉันจึงใช้คำแนะนำใน NIST Special Publication 800‑57 คำแนะนำสำหรับการจัดการคีย์ตอนที่ 1 §5.6 แอปพลิเคชันส่วนใหญ่ของเราเหมาะสำหรับการรักษาความปลอดภัย 112 "บิต" ดังนั้นจึงสอดคล้องกับ triple-DES (หรือ AES ขนาดเล็กถึง 128 บิต) สำหรับการเข้ารหัสแบบสมมาตรและคีย์ 2048 บิตสำหรับ RSA ดูตารางที่ 2 สำหรับการเทียบเคียงคร่าวๆ

ถูกต้องหรือไม่ความสามารถในการอ้างอิงพวกเขาไปยังสิ่งพิมพ์ของ NIST ช่วยให้ลูกค้ารู้สึกดีขึ้นเกี่ยวกับความปลอดภัย (หากพวกเขาต้องการสอบถาม)


บทความที่กล่าวถึงในคำตอบนี้การแก้ไขเพื่อคำแนะนำสำหรับการจัดการคีย์: ส่วนที่ 1: ทั่วไป (แก้ไขเพิ่มเติมครั้งที่ 3) การแก้ไขปัจจุบันคือ ก.ค. 2555
AaA

ฉันเห็นว่าเพจ NIST ถูกลบออกและแทนที่ด้วยข้อความ: "เนื่องจากการให้ทุนของรัฐบาลหมดอายุ csrc.nist.gov และกิจกรรมออนไลน์ที่เกี่ยวข้องทั้งหมดจะไม่สามารถใช้งานได้จนกว่าจะมีการแจ้งให้ทราบต่อไป"
wu-lee

มีหน้านี้เปรียบเทียบคำแนะนำความยาวคีย์keylength.com/en/compare
wu-lee

10

ผู้ออกใบรับรองจะไม่เซ็นชื่อ csrs ที่มีขนาดน้อยกว่า 2048 บิตดังนั้นคุณควรสร้าง csr ของคุณให้เป็น 2048 บิต


6
[ต้องการอ้างอิง]
CodesInChaos

2
ที่มา - answers.ssl.com/877/… - CA บางแห่งเช่น Affirmtrust / Trend Micro ได้ทำการฝังราก 4096 บิตไว้แล้วดังนั้นเราจึงน่าจะเปลี่ยนไปในอีกไม่กี่ปีข้างหน้า
โยคี

ฉันก็พยายามประชาและพวกเขาไม่ยอมรับน้อยกว่า 2048
angularsen

7

เดือนสิงหาคมที่จะมาถึงนี้ Microsoft กำลังจะปรับใช้โปรแกรมแก้ไขกับ Server 2003/2008, Win7 ect .. ซึ่งจะต้องใช้คีย์ RSA ขั้นต่ำ 1024 บิต ดังนั้นคุณอาจเริ่มสร้างมาตรฐาน "ขั้นต่ำเปล่า" ของคุณได้เช่นกัน


6

สำหรับใบรับรอง SSL ที่ใช้บนเว็บไซต์ข้อความจากเว็บไซต์ Thawte.com (ณ วันที่ 2014-07-22) เป็นสิ่งสำคัญที่ควรทราบ:

มาตรฐานอุตสาหกรรมที่กำหนดโดยฟอรัมผู้ออกใบรับรอง / เบราว์เซอร์ (CA / B)กำหนดให้ใบรับรองที่ออกหลังจากวันที่ 1 มกราคม 2014 ต้องมีความยาวคีย์อย่างน้อย 2048 บิต


Mouais, Facebook ยังคงอยู่ที่ 256 คีย์ความยาว => b3.ms/XmWn0e1BMYOk
Thomas Decaux

เพื่อชี้แจงว่า Facebook ไม่ได้ใช้ RSA จึงใช้ ECDHE_ECDSA ด้วยเหตุนี้ความยาวคีย์จึงน้อยลง
Michael

5

ฉันต้องการสร้างใบรับรอง SSL ใหม่หลายรายการและไม่พอใจกับคำตอบข้างต้นเนื่องจากดูเหมือนว่าคลุมเครือหรือล้าสมัยดังนั้นฉันจึงทำการขุดเล็กน้อย บรรทัดล่างคำตอบที่เลือกคือการใช้ที่ถูกต้อง"คีย์ 2048 บิต ... อีกต่อไปเป็นความหมาย"

การเพิ่มความยาวบิตเป็น 4096 จะเพิ่มภาระที่อาจมีความหมายให้กับเซิร์ฟเวอร์ของคุณ (ขึ้นอยู่กับโหลดที่มีอยู่ของคุณ) ในขณะที่เสนอการอัปเกรดความปลอดภัยที่ไม่สำคัญ

หากคุณอยู่ในสถานการณ์ที่คุณต้องการคีย์ที่ยาวกว่า 2048 บิตคุณไม่ต้องการความยาวบิตอีกต่อไปคุณต้องมีอัลกอริทึมใหม่


1

ฉันคิดว่า 4096 ก็โอเคสำหรับ RSA

ตรวจสอบลิงค์นี้

จุดสิ้นสุดของลายเซ็น SHA-1 นั้นไม่มีอะไรใหม่ แต่ Google ได้เร่งกระบวนการของ Chrome ในอีกไม่กี่สัปดาห์ข้างหน้าคุณควรตรวจสอบใบรับรอง SSL ของพวกเขา

นี่อาจเป็นประโยชน์


1
ช่วยโพสต์ลิงค์ภาษาอังกฤษด้วยได้ไหม ภาษาเยอรมันของฉันค่อนข้างอ่อนแอ
Wai Ha Lee

ปุ่ม De juro, RSA ต้องมีความยาว 1024, 2048 หรือ 3072 บิตเท่านั้น (ตาม PKCS # 1 2.2 และ FIPS 186-4)
aprelev

Flameแสดงให้เห็นว่าผู้โจมตีจะโจมตีแฮชมากกว่าโมดูลัสที่ใหญ่กว่า หากคุณใช้ SHA-1 คุณอาจใช้โมดูลัส 1024 บิตได้เช่นกันเนื่องจากแฮชและโมดูลัสให้ความปลอดภัยที่เท่าเทียมกัน โมดูลัส 1024 บิตจะทำให้การทำงานเร็วกว่าโมดูลัส 4096 ที่ใหญ่กว่า
jww

0

4
ไม่ตรง คำแนะนำสำหรับระยะใกล้ (อย่างน้อยสิบปี) คือ 3072 RSA 15360 สำหรับระยะยาว (สามสิบถึงห้าสิบปี) และจะสมเหตุสมผลก็ต่อเมื่อคุณคาดว่าจะสามารถเก็บคีย์ส่วนตัวไว้เป็นความลับได้นานขนาดนั้น
Henrick Hellström
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.