Van-e specifikáció a “ BSA RSA PRIVÁT KULCS ” formátumra?

Eddig nem találtam specifikációt (RFC vagy hasonló) a fájlformátumhoz, amely a BEGIN RSA PRIVATE KEY előtagot és az END RSA PRIVATE KEY utótagot használja . Hol van meghatározva? Van-e hivatalos neve? Úgy tűnik, hogy legalább a PEM RFC-k sorozatához kapcsolódik.

Hivatkozási információkat keresek a szóközök kezelésének részleteiről, base64 részletek , különböző kulcsok összekapcsolása egy fájlban stb.

Ez a kérdés NEM a hasznos teher ASN-kódolásáról szól.

Megjegyzések

  • Az OpenPGP specifikáció hasonló ASCII-Armor formátumokat ír le.
  • tls.mbed.org/kb/cryptography/asn1-key-structures-in- der-and-pem
  • A legtöbb PEM formátum (az RSA magánkulcson kívül) az RFC 7468 dokumentumban van dokumentálva: PKIX, PKCS és CMS struktúrák . Vannak például útmutatások a szóközök kezelésével kapcsolatban. Az RFC alapvetően megjegyzi hogy a részletek elemzőnként változnak.
  • Köszönet a user4982-nek: Ezt a fajta forrást keresem. Az RFC 7468 azonban információkat tartalmaz a ” TITKOSÍTOTT PRIVÁT KULCS ” címkével kapcsolatban, de nem tartalmaz ‘ t a ” RSA PRIVÁT KULCS “.
  • A PEM a RFC 1421 , amely leírja a fejléc általános formátumát, stb. De nem tudtam ‘ megtalálni a ” RSA PRIVÁT KULCS “. Ez az 1997-es cikk már említi az OpenSSL használatát.

Válasz

Itt vagyok, mert ugyanazt a kérdést teszem fel magamnak, mint az OP.

A PKCS # 1 (RFC 3447) meghatározza az ASN.1 struktúrát: RSAPrivateKey, engedélyezve csak egy RSA magánkulcs kifejezése.

A PKCS # 8 (RFC 5208) meghatározza az ASN.1 struktúrát: PrivateKeyInfo, amely lehetővé teszi bármely privát kulcs kifejezését. (Az RSA magánkulcs esetében a PrivateKeyInfo néhány csomagolási információ, és az RSAPrivateKey újrafelhasználása a PKCS # 1-ből).

A PEM (Privacy Enhanced Mail) a biztonságos e-mail megszüntetett módszere. De a konténer formátumát kriptográfiai elemek csomagolására kölcsönözték.

RFC 7468 (Bevezetés): “ Olyan okokból, amelyek alapvetően nem koordináció vagy figyelmetlenség miatt merülnek fel, sok PKIX, PKCS és CMS könyvtár implementáljon egy szöveges kódolást, amely hasonló – de nem azonos a PEM kódolás hoz. “

Ami így hangzik: Hm, a folk úgy döntött, hogy PEM biteket használ a kriptofájljaik csomagolásához . Itt nagyon jó erőfeszítéseket teszünk annak kipróbálására és formalizálására …

Sajnos az RFC 7468 egyértelművé teszi a PKCS # 8 / PrivateKeyInfo csomagolását “BEGIN PRIVATE KEY” néven. De nem a PKCS # 1 / RSAPrivateKey csomagolása, mint “BEGIN RSA PRIVATE KEY”.

A “BEGIN RSA PRIVATE KEY” csomagolást néha “SSLeay formátumnak” vagy “hagyományos formátumnak” nevezik a magánkulcs számára. Ami legalább nevet ad nekünk ennek a formátumnak, de Önhöz hasonlóan én sem találok, és örömmel fogadnék valamit, amely megközelítené a formátum hivatalos leírását. Gyanítom, hogy ez nem létezik.

Megjegyzések

  • I'm here, because, I'm asking myself the same question as the OP. – – Tisztázandó: ez a válasz a fenti kérdésre, vagy valóban ugyanazt a kérdést teszi fel magának?

Válasz

A benne található base64 tartalom formátuma:

-----BEGIN RSA PRIVATE KEY----- ...base64 encoded DER ASN.1 RSAPrivateKey... -----END RSA PRIVATE KEY----- 

a RFC3447 – A.1.2. függelék – RSA magánkulcs szintaxisa :

RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER, -- (inverse of q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL } 

Már tudja, hogyan kell ezt kódolni a DER használatával ASN.1 íze; és a kérdés arról szól, hogy hogyan lehet valóban beírni a DER bináris adatokat egy fájlba.

Ezt a következő lépést az RFC 1421 – 4.3.2.4 4. lépés tartalmazza. : Nyomtatható kódolás

  • dokumentálják a bináris adatok kódolását az base64-ben
  • a kimenetet szövegsorokként kódolják
  • minden egyes sorral ( az utolsó kivételével pontosan 64 nyomtatható karaktert tartalmaz
  • és az utolsó sort, amely 64 vagy kevesebb nyomtatható karaktert tartalmaz

Ezután a “Tömítés határ” (EB) van használva tokozott PEM üzenetek elhatárolására.

  • az EB előtti karakterlánc: -----BEGIN PRIVACY-ENHANCED MESSAGE-----
  • az EB utáni karakterlánc: -----END PRIVACY-ENHANCED MESSAGE-----

A defekt Privacy Enhanced Mail használta:

  • öt kötőjelet (-----)
  • BEGIN something
  • öt kötőjel (-----)

, amelyet követ

  • öt kötőjel (-----)
  • END something
  • öt kötőjel (-----)

Ezeket a PEM-konvenciókat átvitték a nyilvános kulcsra, a magánkulcsra és a tanúsítványokra, de megfelelő megváltozott a megfogalmazás:

-----BEGIN RSA PUBLIC KEY----- ...base64 encoded DER ASN.1 RSAPublicKey... -----END RSA PUBLIC KEY----- 

 

-----BEGIN RSA PRIVATE KEY----- ...base64 encoded DER ASN.1 RSAPrivateKey... -----END RSA PRIVATE KEY----- 

 

-----BEGIN PUBLIC KEY----- ...base64 encoded DER ASN.1 SubjectPublicKeyInfo... -----END PUBLIC KEY----- 

 

-----BEGIN PRIVATE KEY----- ...base64 encoded DER ASN.1 PrivateKeyInfo... -----END PUBLIC KEY----- 

 

-----BEGIN CERTIFICATE----- ...base64 encoded DER ASNl.1 Certificate... -----END CERTIFICATE----- 

Válasz

Igen. RFC7468 – PKIX, PKCS és CMS struktúrák szöveges kódolása

Ez a dokumentum megfogalmazza a tényleges szabályok, amelyek alapján a meglévő megvalósítások működnek, és definiálja azokat, hogy a jövőbeni megvalósítások működjenek együtt.

Itt “releváns kivonat:

10. Egy aszimmetrikus kulcs és a PKCS # 8 magánkulcs információjának szöveges kódolása

Titkosítatlan PKCS # 8 titkos kulcs információs szintaxis struktúrák (PrivateKeyInfo), átnevezve aszimmetrikus kulcscsomagokra (OneAsymmetricKey), a “PRIVATE KEY” címkével vannak kódolva. A kódolt adatoknak BER-nek KELL lenniük ( A DER előnyben részesített; lásd a B függeléket) kódolt ASN.1 PrivateKeyInfo struktúrát a PKCS # 8 [RFC5208] leírása szerint, vagy egy OneAsymmetricKey struktúrát, ahogyan azt az [RFC5958] leírja. A kettő szemantikailag azonos és verziószámmal megkülönböztethető. >

-----BEGIN PRIVATE KEY----- MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgVcB/UNPxalR9zDYAjQIf jojUDiQuGnSJrFEEzZPT/92hRANCAASc7UJtgnF/abqWM60T3XNJEzBv5ez9TdwK H0M6xpM2q+53wmsN/eYLdgtjgBd3DBmHtPilCkiFICXyaA8z9LkJ -----END PRIVATE KEY----- 

Megjegyzések

  • Kérem az ” RSA PRIVÁT KULCSOT “, nem a ” HITELESÍTÉSI KÉRELEM “. Egyébként a PKCS # 8-ra vagy a PKCS # 1-re számítanék, nem a PKCS # 10-re. A 10. fejezet közelebb lenne. De nem ‘ nem adja meg az RSA-t a címkében, ezért van értelme itt használni a 8. PKCS-t. Mivel a kulcsalgoritmust redundánsan adnák meg, rendben lehet (és láttam példákat), ha az 1. PKCS-t egy ” RSA PRIVÁT KULCS ” fájl.
  • @Mint már mondtam, az ” RSA PRIVÁTKULCS ” -t keresem, nem a ” MAGÁNKULCS ” esetén. Tehát még a 10. fejezet sem alkalmazható, az RFC7468 pedig helytelen válasz.
  • @Gustave I ‘ tudatában vagyok annak, hogy ” RSA PRIVÁT KULCS “, azonban a fejlécben a magánkulcs formátumának megadása felesleges, és a specifikáció releváns.
  • Az ABNF < < textualmsg = preeb * WSP (…) > > és < < preeb = ” —- -BEGIN ” label ” —– ” (…) > >. Tehát miért gondolja, hogy nincs szükség a fejlécre?
  • PKCS # 1 ( tools.ietf.org/html/rfc8017#app függelék-A.1.2 ) nem ad meg ‘ t semmilyen ASCII base64 kódolást, és nem adja meg ‘ t sem a -----BEGIN RSA PRIVATE KEY----- fejléc. A PKCS # 8 nem ad meg ‘ semmilyen ASCII base64 kódolást sem. A 10. fejezet valóban meghatározza a következőt: -----BEGIN PRIVATE KEY-----. Van linkje egy szabványra, amely meghatározza a -----BEGIN RSA PRIVATE KEY----- fejlécet?

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük