RSA açıklamasındaki harfler bir PKI aracının dağıttığı dosyaları değil, tek bir nesnenin içindeki alanları adlandırır. Özel anahtar dosyası, ilk alanları açık ve sonraki alanları tüneli sonlandıran makineden asla ayrılmaması gereken bir yapı taşır. Bu iki gerçeğin arasında hangi dosyanın hangi soruya yanıt verdiğine dair pratik soruların çoğu bulunur. Bu kılavuz önce yapıyı, sonra onu dökmeden inceleyen komutları okur.

Asal sayı aramaya başlamadan önce anahtarın RSA olduğunu doğrulayın

Bir sertifika bir anahtarın var olduğunu ve imzalandığını kanıtlar; anahtarın RSA olduğunu kanıtlamaz. Sistemler eliptik eğriler veya Ed25519 üzerine kurulabilir ve aynı dizin düzeni hepsine hizmet eder. Orada hiç bulunmamış asal çarpanları aramaya başlamadan önce algoritmayı kontrol edin.

Bu üç salt okunur komut soruyu yanıtlar ve aracın sürümünü kaydeder.

openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text

Sürüm önemlidir çünkü seçenek adları ana sürümler arasında yer değiştirmiştir. Sertifika çıktısında genel anahtar algoritması satırını ve anahtar boyutunu bulun; anahtar çıktısında bir RSA anahtarı bir modül ve bir genel üs yazdırır. Eliptik eğri anahtarı bunun yerine adlandırılmış bir eğri yazdırır ve hiçbir arama ondan n veya q üretmez.

base64 yerine yapıyı okuyun

PEM, başlık satırlarına sarılmış base64’tür ve kodunu çözmek DER verir, yani devasa tek bir tam sayı değil, serileştirilmiş bir yapı. RSA özel anahtarları iki yaygın kapta yolculuk eder, PKCS#1 ve PKCS#8, ve ikisi de aynı sayı kümesine çözülür.

İki asal sayı durumunda özel yapı dokuz alan taşır: bir sürüm, n modülü, genel üs e, özel üs d, p ve q asal sayıları, iki CRT üssü ve bir CRT katsayısı. RFC 8017 bölüm A.1 bu bileşenleri ve ASN.1 düzenini tanımlar ve ikiden fazla asal sayıya da izin verir, bu yüzden genel bir çözümleyici ek asal girişler yazdırabilir. Sıraya dikkat edin, çünkü yaygın bir hatayı açıklar: açık yarı özel dosyanın içinde saklanır, dolayısıyla bir açık alanın varlığı o dosyayı paylaşmak için güvenli kılmaz. Ondan sonraki her şey ana makinede kalması gereken malzemedir.

Kodlama, içerikle karıştırılması kolay bir katman ekler. openssl asn1parse yapıyı bir ağaç olarak çizer, böylece alan sırası görünür olur, ve hiçbir şeyi çözmez, anahtarın kullanılabilir olup olmadığını da söylemez.

Anahtarı yazdırmadan sertifikayı anahtarla eşleştirin

Ardından gelen soru genellikle bir sertifika ile bir anahtarın birlikte olup olmadığıdır. Modülleri karşılaştırmak buna yanıt verir, ancak özele yakın malzemeyi bir bilete düşebilecek bir terminal dökümüne de kopyalar. Açık yarıları karşılaştırmak aynı soruya ekranda hassas hiçbir şey olmadan yanıt verir.

openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH

Aynı dosyalar sertifikanın o anahtarın açık yarısını taşıdığı anlamına gelir, fark ise yanlış çifti tuttuğunuz anlamına gelir. Bu uyuşmazlık, neşeyle anlaşıp sonra kimlik doğrulamayı reddeden tünelin en yaygın nedenidir. Ardından iki geçici dosyayı silin; hiçbir gizli şey tutmazlar, ama olayın ortasında temiz bir çalışma dizini hakkında düşünmek daha kolaydır.

Komşu dosyaların ne olmadığını bilin

Bir sertifika, karşı tarafın CA sertifikasıyla açtığı şifreli bir genel anahtar değildir; genel anahtar ile kimlik verisi arasında imzalı bir bağdır. CA’nın özel imzalama anahtarı kendi sertifikasından ve her istemci anahtarından ayrı kalır. Bir istek de sertifika değildir: istenen bilgiyi ve genel anahtarı istek üzerinde bir imzayla taşır, bu da onu kayıt girdisi yapar, hak kanıtı değil.

FileAnswersDoes not prove
vpn-client.keyPossession of the private keyThat the identity is enrolled
vpn-client.crtA signed binding of public key to identityThat the client holds the matching key
vpn-client.csrThe requested binding and public keyThat access was granted
dh2048.pemGroup parameters for key exchangeAny RSA component
crl.pemRevocation status for certificatesAnything about a private key

Bu girdilerden ikisi RSA parametreleriyle yeterince sık karıştırılır ki iki kez adlandırılmaları gerekir. Bir Diffie-Hellman parametre dosyası anahtar kurulumu için grup parametreleri içerir ve hiç RSA asal sayısı içermez, büyük bir asal sayı olarak da yazdırılsa bile. Bir iptal listesi sertifika durumunu yayımlar ve özel bir üssün saklanabileceği bir yer değildir.

Bu yüzden her envanter satırı dört şey kaydetmelidir: nesne türü, sahibi, amacı ve özel malzemenin dahil olup olmadığı. Son sütun dosyanın nereye kopyalanabileceğine karar verir ve insanların atladığı sütun odur.

Eşleşmeyi kaydedin, ardından el sıkışmayı doğrulayın

Herhangi bir şeyi değiştirmeden önce doğrulama çıktısını tarih ve OpenSSL sürümüyle birlikte kaydedin. Sonraki rotasyon o zaman bellekle değil kanıtla karşılaştırılabilir.

openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates

Genel anahtar karşılaştırmasından sonra çifti tüketen yolu deneyin: tüneli kaldırın, sertifikanın sunulduğunu ve kabul edildiğini doğrulayın ve ağ geçidinin hangi kimliği kaydettiğini kontrol edin. Anahtar ve sertifika eşleştiği halde kimlik doğrulama yine başarısız oluyorsa kusur çiftte değil, güvende, kimlik eşlemesinde veya erişim ilkesindedir.

Geri alma için önceki anahtarı ve sertifikayı tarihli bir dizinde tutun ve ikisini birlikte geri yükleyin, asla yalnızca birini değil. Sertifikasız anahtar ve anahtarsız sertifika dışarıdan aynı şekilde başarısız olur, bu da yarısı geri yüklenmiş çiftleri gece ikide çözmeyi pahalı kılar.

İlgili makaleler