2011-04-26 8 views
14

Te dwa działania wydają się zrobić to samo:Jaka jest różnica między podstawowymi ograniczeniami x599 V3 i kluczem do utworzenia certyfikatu urzędu certyfikacji?

  • pomocą podstawowe ograniczenia rozszerzenie w X.509 Certificate oznaczać, że jest to certyfikat CA i
  • pomocą użycia klucza rozszerzenie np oznacza, że ​​klucz publiczny może być używany do podpisywania certyfikatów.

Jaka jest różnica między tymi rozszerzeniami?
Czy służą one do tego samego celu lub wzajemnie się uzupełniają?

+0

Czy Twoje pytanie zostało rozwiązane? Następnie zaakceptuj najlepszą odpowiedź. W innym przypadku proszę wspomnieć o tym, czego tu jeszcze brakuje. –

Odpowiedz

14

"Key Usage" określa, co można zrobić za pomocą klucza zawartego w certyfikacie. Przykładami użycia są: szyfrowanie, podpis, podpisywanie certyfikatów, podpisywanie list CRL.

"Podstawowe ograniczenia" określa, czy podmiotem certyfikatów jest urząd certyfikacji, który może wydawać certyfikaty podrzędne.

W przypadku certyfikatu, który może być używany do podpisywania certyfikatów, informacja jest w pewnym sensie powielona:

  • X509v3 podstawowe ograniczenia: CA: TRUE --- Czy podpisywania świadectw
  • X509v3 Key Usage: Key Cert Sign --- Może podpisać certyfikaty

Ale "Basic Constraints" określi również maksymalną głębokość aktualnego łańcucha certyfikacji.

Chociaż jest powielony, należy podać oba, zgodnie z RFC 3280 --- X.509. Jest to istotne ustęp z RFC (strona 29):

keyCertSign nieco twierdzili, kiedy klucz publiczny przedmiotem jest wykorzystywane do weryfikacji podpisu na certyfikatów klucza publicznego. Jeśli zostanie podany bit keyCertSign , to również bit CA w podstawowym rozszerzeniu ograniczeń (sekcja 4.2.1.10) MUSI być również zapewniony.

+0

"informacje są w pewnym sensie duplikowane" Czy wiesz, czy implementacja dokonuje sprawdzania poprawności, akceptujesz podstawowe ograniczenia lub użycie klucza, aby wskazać CA podczas sprawdzania poprawności ścieżki certyfikatu? – Cratylus

+0

@ user384706: Nie, potrzebujesz obu. Zaktualizowałem swoją odpowiedź za pomocą informacji. –

+0

Istnieją również certyfikaty, które mogą być wydawane przez certyfikaty innych firm: patrz [RFC 3820 - nie 3280] (http://tools.ietf.org/html/rfc3820) – Bruno

1

Zastosowanie klucza opisuje zamierzone cele certyfikatu.

Rozszerzenie Podstawowe więzy opisuje, jak głęboki może być łańcuch certyfikatów, który ma certyfikat na szczycie. Innymi słowy, to rozszerzenie jest używane przez urzędy certyfikacji w celu ograniczenia aktywności podrzędnych urzędów certyfikacji po wydaniu certyfikatu podrzędnego CA. Jeśli toplevel CA otrzymuje pod-CA, pozwala sub-CA wydawać certyfikaty użytkowników końcowych, ale nie pozwala sub-CA posiadać własnych pod-CA.

+0

@Eugene: Czy możemy mieć certyfikat z rozszerzeniem Key Usage, że może on podpisywać certyfikaty, ale brakuje podstawowego wiązania? Czy to jest to samo, co posiadanie certyfikatu z podstawowym ograniczeniem, aby być CA ze ścieżką certyfikatu infinte? – Cratylus

+0

@ user384706 Z RFC 5280, sekcja 4.2.1.9: "Zgodne urzędy certyfikacji MUSZĄ zawierać to rozszerzenie we wszystkich certyfikatach CA, które zawierają klucze publiczne używane do sprawdzania podpisów cyfrowych na certyfikatach i MUSZĄ oznaczać rozszerzenie jako krytyczne w takich certyfikatach." Wygląda więc na to, że odpowiedź na twoje pytanie brzmi "byłoby to naruszenie standardu".Jednak widziałem certyfikaty bez takiego rozszerzenia. –

+0

@Eugene: Java PKIX apis (sprawdzona za pomocą Java6u23) akceptuje certyfikaty CA tylko z KeyUsage (nie Basic Constraints). Czy to oznacza, że ​​java narusza RFC? – Cratylus

Powiązane problemy