SSH anahtarları yalnızca düz RSA, DSA veya ECDSA asimetrik anahtar çiftleridir. OpenSSH tarafından üretilen böyle bir anahtar çifti OpenSSL ve diğer birçok program tarafından zaten kullanılabilir.
( .pub
Dosya çıktısı ssh-keygen
OpenSSH'ye özgü biçimdedir, ancak "özel" dosya zaten özel ve genel anahtarlar içerdiğinden bu önemsizdir.)
Diğer SSH yazılım gibi kendi depolama biçimlerini, olabilir RFC 4716 veya PuTTY en PPK , ancak aynı RSA / DSA / ECDSA bilgi depolamak.
X.509 (SSL, S / MIME tarafından kullanılır) biraz daha karmaşıktır: "private" anahtarı hala aynıdır, ancak açık bir ortak anahtar dosyası yerine bir "sertifikanız" vardır - açık anahtar, konu ve yayıncı adları, geçerlilik tarihleri. X.509 v3 sertifikalarında, "anahtar kullanımı" ve "alternatif konu adı" gibi uzantılar bulunacaktır. Sertifikanın tamamı yayıncının anahtarı tarafından imzalanır (veya ayrı bir yayıncı yoksa otomatik olarak imzalanır).
SSH için X.509 "özel anahtar" dosyasını kolayca kullanabilirsiniz - OpenSSH bile aynı formatı kullanır.
Basit bir anahtar çiftinden bir X.509 sertifikası oluşturabilir ve daha sonra otomatik olarak imzalayabilir veya bir "sertifika isteği" oluşturabilir ve bir CA (sertifika yetkilisi) tarafından imzalanmak üzere gönderebilirsiniz.
Bir X.509 sertifikasındaki bilgileri görüntülemek için şunu kullanın:
certtool -i < foo.pem
certtool -i --inder < foo.crt
openssl x509 -noout -text < foo.pem
openssl x509 -noout -text -inform der < foo.crt
( certtool
GnuTLS'nin bir parçasıdır.)
OpenPGP (GPG tarafından kullanılan) anahtarlar en karmaşık olanlardır. "PGP anahtarı" veya "PGP anahtar çifti" olarak adlandırdığınız, aşağıdakileri içeren "OpenPGP sertifikası" adı verilen karmaşık bir yapıdır:
- bir "birincil anahtar" - genellikle imzalama için kullanılan asimetrik bir anahtar çifti
- bir veya daha fazla "kullanıcı kimliği" - genellikle "Ad <e-posta @ adres>" biçiminde metin etiketleri
- bunlardan en az biri "birincil kullanıcı kimliği" olarak işaretlendi
- her kullanıcı kimliği için bir "otomatik imza" - kendi birincil anahtarınızla imza
- her kullanıcı kimliği için, diğer kullanıcılar tarafından sıfır veya daha fazla "imza"
- otomatik imza paketleri tercih ettiğiniz algoritmaları da içerir (SHA-1, AES, vb.)
- bir veya daha fazla "alt anahtar" - ek anahtar çiftleri, ilki genellikle şifreleme içindir
- her alt anahtar için, birincil anahtarın imzası
- sıfır veya daha fazla "fotoğraf kimliği" - yüzünüzü içeren JPEG veya PNG ekleri
- kullanıcı kimlikleriyle aynı şekilde imzalandı
- sıfır veya daha fazla X.509 sertifikası
Tüm anahtar çiftlerinin son kullanma tarihleri ve kullanım bitleri vardır: verileri imzala, anahtarları onayla (imzala), şifreleme, hizmetlerde kimlik doğrulama. Birincil anahtar varsayılan olarak "sign" ve "certify" bitlerine sahiptir ve ilk alt anahtar "şifrelemek" tir. Bir "kimlik doğrulama" alt anahtarı eklerseniz, gpg-agent
SSH kimlik doğrulaması için aracılığıyla bunu kullanabilirsiniz .
Sertifikanızın neleri içerdiğini görmek için:
gpg --export joe@example.com | gpg -vv
gpg --export joe@example.com | certtool --pgp-certificate-info
( certtool
GnuTLS'nin bir parçasıdır.)
Daha az kafa karıştırıcı bir durum OpenPGP'de: tüm veriler aynı ikili formatı takip ediyor ve isteğe bağlı olarak "zırhlı" (Radix64 ile kodlanmış ve PEM benzeri başlıklar arasında).