Jakiej długości klucza RSA należy używać dla moich certyfikatów SSL?


96

Jestem w trakcie tworzenia CSR i zastanawiam się, jaka jest prawdopodobnie najlepsza długość mojego klucza RSA.

Oczywiście 384 jest prawdopodobnie za słabe, a 16384 za wolne.

Czy istnieje zgoda co do długości klucza, jakiej należy używać, w zależności od okresu ważności certyfikatu?

Edycja: Jak większość ludzi, chcę, aby mój klucz był w miarę silny. Nie obawiam się, że NSA może złamać mój klucz w 2019 roku. Chcę tylko wiedzieć, jaka jest najlepsza praktyka, gdy ktoś planuje normalną działalność (na przykład witrynę e-commerce)

Odpowiedzi:


103

Od 2020 roku klucze RSA powinny mieć 2048 bitów.

1024 bity

  • 1024-bitowe certyfikaty RSA są przestarzałe i nie są akceptowane przez przeglądarki.
  • Firefox przestał akceptować 1024-bitowe certyfikaty RSA w 2014 roku.
  • Urzędy certyfikacji przestały dostarczać 1024-bitowe certyfikaty RSA w 2014 r. Lub wcześniej. Zobacz notę GlobalSign lub Comodo .
  • Klucze 1024-bitowe zostały wycofane, ponieważ można je złamać w przypadku małego centrum danych (tysiące procesorów lub setki procesorów graficznych, może w ciągu kilku miesięcy). Może się wydawać, że to dużo, ale było to w zasięgu każdej dużej organizacji lub rządu.

2048 bitów

  • 2048-bitowe certyfikaty RSA są obecnie akceptowaną normą w użyciu.
  • Domyślna linia bazowa dostarczona przez CA i używana przez oprogramowanie.
  • W końcu też zostanie złamany. Nie wiem kiedy, ale może to zająć dziesięciolecia.
  • Podwojenie rozmiaru wymaga o wiele rzędów wielkości większej mocy obliczeniowej do złamania. Zobacz pytanie, o ile silniejszy jest RSA 2048 w porównaniu do 1024 .

4096 bitów

  • Kolejnym krokiem są 4096-bitowe certyfikaty RSA
  • Powszechnie dostępne i obsługiwane. Wszystkie większe urzędy certyfikacji mogą zapewnić zarówno 2048, jak i 4096 bitów RSA, w tym szyfrowanie .
  • Koszt obliczeniowy nie jest liniowy w zależności od rozmiaru klucza. 4096 nie jest dwa razy wolniejsze niż 2048, może być 10 razy wolniejsze w przetwarzaniu. Nie aktualizuj na ślepo certyfikatów do 4096 bitów bez uwzględnienia wpływu na wydajność .
  • „Sieć” w dużej mierze pozostaje na certyfikatach 2048-bitowych, ponieważ nie może znieść kosztu sprzętu dla 4096 bitów. Weź pod uwagę dużych aktorów, takich jak Google, CloudFlare, NetFlix z ogromnym ruchem i obciążeniem sprzętowym.

3072 bity

  • 3072 bity nie są rzeczą. Przejdź od razu do 4096 bitów.
  • Jest całkowicie możliwe wykonanie kryptografii 3072-bitowej, po prostu żadne oprogramowanie tak naprawdę nie implementuje, nie obsługuje ani nie reklamuje tego oficjalnie.
  • Historycznie rzecz biorąc, w latach 2010-2015 próbowano uruchomić 3072 dla przypadków użycia, w których dodatkowy koszt obliczeniowy 4096 nie jest idealny. Zniknął, ale wciąż istnieją stare artykuły rozpowszechniające zalety (szybszego) 3072.

Dodatkowy

  • RSA został po raz pierwszy publicznie opisany w 1977 roku i nadal jest mocny prawie 50 lat później. Wystarczy zwiększyć liczbę bitów, aby nadążyć za szybszymi komputerami.
  • Istnieje inna metoda kryptografii klucza publicznego oparta na krzywych eliptycznych, patrz ECDSA (1992).
  • Istnieje olbrzymi rozdźwięk między możliwościami użytkownika i atakującego. Serwer WWW lub klient mobilny mają jeden procesor (o niskim poborze mocy). Atakujący może mieć całe centrum danych, dla porównania nowo zbudowane centrum danych AWS obsługuje około 60 000 serwerów.
  • To niewiarygodne, że jedno urządzenie mobilne może obliczyć niektóre obliczenia matematyczne w ciągu kilku sekund ... o których miliony komputerów nie mogły marzyć przez całe życie.

13
Różnice („256-bitowe będzie działać wiecznie” z jednej strony, a „1024-bitowe już bzdury” z drugiej) wynikają z różnic między algorytmami symetrycznymi i asymetrycznymi oraz z rodzajów kluczy używanych w każdym z nich. Przy dowolnym „równoważnym poziomie bezpieczeństwa” zobaczysz bardzo różne liczby nieprzetworzone dla długości kluczy w symetrii i asymetrii.
Ti Strga

1
Wydaje się, że od września 2015 r. Branża nie akceptuje mniej niż 2048-bitowych CSR. Zobacz poniżej odpowiedzi i artykuł pomocy Comodo
angularsen

2
@anjdreas, Chociaż prawdą jest, że 2048 to absolutne minimum , będę bardzo ostrożny z cytowaniem punktów z artykułów CA.
Pacerier

Łącze RSA Labs to teraz 404, przy okazji
żartobliwy

2
Uwaga: w pełni przepisałem odpowiedź po 11 latach, z aktualnymi zaleceniami i referencjami. powyższe komentarze komentowały poprzednie wersje.
user5994461

12

Ponieważ wielu klientów wymaga zgodności ze standardami kryptograficznymi NIST, korzystam ze wskazówek zawartych w publikacji specjalnej NIST 800-57, Zalecenie dotyczące zarządzania kluczami, część 1, §5.6. Większość naszych aplikacji dobrze pasuje do 112 "bitów" bezpieczeństwa, co odpowiada potrójnemu DES (lub niewielkiemu skokowi do 128-bitowego AES) dla szyfrów symetrycznych i 2048-bitowego klucza dla RSA. Tabela 2 zawiera przybliżoną równoważność.

Prawidłowe lub nie, możliwość skierowania ich do publikacji NIST pomaga klientom poczuć się lepiej w kwestii bezpieczeństwa (jeśli zadają sobie trud zapytania).


Artykuł wspomniany w tej odpowiedzi został zmieniony na Zalecenie dotyczące zarządzania kluczami: Część 1: Ogólne (wersja 3) . Aktualna wersja to lipiec 2012
AaA

Widzę, że strona NIST została usunięta i zastąpiona komunikatem: „Ze względu na brak funduszy rządowych csrc.nist.gov i wszystkie powiązane działania online będą niedostępne do odwołania”.
wu-lee

Jest ta strona, która porównuje niektóre zalecenia dotyczące długości kluczy keylength.com/en/compare
wu-lee

10

Urzędy certyfikacji nie podpiszą csr o rozmiarze mniejszym niż 2048 bitów, więc należy wygenerować plik CSR o rozmiarze 2048 bitów.


6
[potrzebne źródło]
CodesInChaos

2
Źródło - respons.ssl.com/877/ ... - niektóre urzędy certyfikacji, takie jak Affirmtrust / Trend Micro, już osadzają 4096-bitowe korzenie, więc prawdopodobnie zmienimy je w nadchodzących latach
Yogi

Właśnie wypróbowałem Comodo i nie akceptują mniej niż 2048-bitów .
angularsen

7

W sierpniu tego roku Microsoft zamierza wdrożyć poprawkę do Server 2003/2008, Win7 ect .., która będzie wymagała użycia co najmniej 1024-bitowego klucza RSA. Więc równie dobrze możesz zacząć określać ten standard jako „absolutne minimum”.


6

W przypadku certyfikatów SSL używanych na stronach internetowych należy zwrócić uwagę na poniższy tekst ze strony Thawte.com (stan na 2014-07-22):

Standardy branżowe określone przez forum urzędu certyfikacji / przeglądarki (CA / B) wymagają, aby certyfikaty wydane po 1 stycznia 2014 r. MUSIły mieć co najmniej 2048-bitowy klucz.


Mouais, Facebook jest nadal na 256 długości klucza => b3.ms/XmWn0e1BMYOk
Thomas Decaux

Aby wyjaśnić, że Facebook nie używa RSA, używa ECDHE_ECDSA, stąd mniejsza długość klucza.
Michael

5

Musiałem utworzyć kilka nowych certyfikatów SSL i nie byłem zadowolony z powyższych odpowiedzi, ponieważ wydawały się niejasne lub przestarzałe, więc trochę poszperałem. Podsumowując, wybrana odpowiedź jest poprawna, użyj "2048-bitowych kluczy ... dłuższe jest bez znaczenia" .

Zwiększenie długości bitu do 4096 dodaje potencjalnie znaczące obciążenie do serwera (w zależności od istniejącego obciążenia), oferując w zasadzie nieznaczną aktualizację zabezpieczeń

Jeśli jesteś w sytuacji, w której potrzebujesz klucza dłuższego niż 2048-bitowy, nie potrzebujesz dłuższego bitu, potrzebujesz nowego algorytmu


1

Myślę, że 4096 jest w porządku dla RSA

Sprawdź ten link

Koniec sygnatury SHA-1 nie jest niczym nowym, ale Google przyspieszyło proces chromowania. W ciągu najbliższych kilku tygodni powinieneś sprawdzić ich certyfikaty SSL.

To może być pomocne


1
Czy mógłbyś zamieścić również linki w języku angielskim? Mój niemiecki jest raczej słaby.
Wai Ha Lee

De juro, klucze RSA mogą mieć tylko długość 1024, 2048 lub 3072 bitów (zgodnie z PKCS # 1 2.2 i FIPS 186-4).
aprelev

Płomień pokazał, że napastnicy będą atakować hash, a nie większy moduł. Jeśli używasz SHA-1, możesz równie dobrze użyć modułu 1024-bitowego, ponieważ hash i moduł zapewniają równoważne bezpieczeństwo. Moduł 1024-bitowy zapewni szybsze operacje niż większy moduł 4096.
jww

0

4
Nie dokładnie. Rekomendacja krótkoterminowa (co najmniej dziesięć lat) to 3072. RSA 15360 jest długoterminowa (od trzydziestu do pięćdziesięciu lat) i ma sens tylko wtedy, gdy spodziewasz się, że będziesz w stanie utrzymać klucz prywatny w tajemnicy przez tak długi czas.
Henrick Hellström
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.