Hogyan állíthatom elő a CA által aláírt nyilvános kulcsot?

Szükségem van arra, hogy valaki más titkosítsa a nyilvános kulcsommal a titkos adatokat, amelyeket aztán a saját kulcsommal visszafejteni tudok. Létrehoztam egy RSA magán / nyilvános kulcsot, az OpenSSL adta nekik a nyilvános kulcsot, és minden működött.

Újabban valaki rámutatott, hogy egy lehetséges ember-a-középen támadásnak vagyunk kitéve. ahol a rossz fiúk elfogadják a nyilvános kulcsomat, és átadják saját nyilvános kulcsukat a másik oldalnak. Ezután a másik fél kötelességtudóan titkosította a titkos adatokat, továbbította azokat a MITM-nek, aki visszafejtette, újrakódolta a nyilvános kulcsommal, mielőtt továbbadta nekem anélkül, hogy bölcsebb lennék. Az ajánlott megoldás az, hogy nyilvános kulcsomat aláírjam egy hitelesítésszolgáltatóval, amelyben a másik fél megbízik, mielőtt átadnám.

Kísérletként elkészítettem egy CSR-t, amelyet a saját hitelesítésszolgáltatómmal tudtam aláírni, de a kapott tanúsítvány tartalmazza a (titkosított) magánkulcsot is. Inkább nem adnám át titkos kulcsomat senkinek, titkosítva vagy sem.

Van rá mód, hogy csak aláírjam a nyilvános kulcsomat?

Megjegyzések

  • A tanúsítvány magánkulcsot tartalmaz? Mi? Hogyan sikerült ezt megtenni? Feladhatja ezt a fájlt a pastebin.com-ra? (Készítse el egy második kulcspárral, hogy ne ‘ ne kelljen megosztania az eredetit.)
  • Azt hiszem, kezdem megérteni. Annak ellenére, hogy szükségem van egy privát kulcsra egy CSR előállításához, a CSR és az ebből származó tanúsítvány nem tartalmazza a privát kulcsot. A tanúsítvány tulajdonképpen egy aláírt nyilvános kulcs, amelyet pontosan szeretnék.

Válasz

Nyilvános kulcs aláírása gyakorlatilag tanúsítvány. Ezeket a lépéseket teszem egy nyilvános kulcs tanúsítvány elkészítéséhez, amelyet terjeszthetek másoknak, hogy biztonságosan kommunikálhassanak velem:

Beállítás

  1. Saját kulcsok létrehozása:

    megnyitja a genrsa -out private.pem 2048

  2. Nyilvános kulcsok létrehozása:

    openssl rsa -in private.pem -outform PEM -pubout -out public.pem

  3. CSR létrehozása (tanúsítvány-aláírási kérelem)

    openssl req -new -key private.pem -out certificate.csr

  4. Készítsen önaláírt tanúsítványt (megoszthatja ezt a tanúsítványt)

    openssl x509 -req -days 365 -in certificate.csr -signkey private.pem -out certificate.crt

Titkosítás

openssl rsautl -encrypt -inkey private.pem -keyform PEM -in data> encrypted_data

Dekódolás visszafejtése

  1. A nyilvános kulcs kivonása a tanúsítványokból

    openssl x509 -pubkey -noout -in certificate.crt> certpubkey.pem

  2. Az adatok visszafejtése

    openssl rsautl -decrypt -inkey certpubkey.pem -keyform PEM -pubin -in encrypted_data> data

Ha azt kívánja, hogy a kulcsát egy hitelesítésszolgáltató írja alá, akkor el kell küldenie a CSR-fájlt (és némi készpénzt) az Ön által kiválasztott hitelesítésszolgáltatóhoz, akkor megadja Önnek az ön által aláírt tanúsítvány I helyett használható tanúsítványt. említettem a fenti lépésekben.

Megjegyzések

  • Ez a fordítottja annak, amit kérek, de a vita céljából megteszi. Annak érdekében, hogy a másik fél visszafejthesse, vagy az általam kivont nyilvános kulcsra van szükségük, amely MITM támadásnak van kitéve, vagy a teljes tanúsítványra, amely tartalmazza a (titkosított) magánkulcsot
  • @ user1683793 másik végéhez két igazolás szükséges. Az első, amellyel már rendelkezniük kell (az önaláírt CA tanúsítvány). A második tartalmazza az ellenőrizni kívánt nyilvános kulcsot, és a CA tanúsítvánnyal van aláírva (a hozzá tartozó CA magánkulccsal). A második tanúsítvány érvényességét a CA tanúsítvány nyilvános kulcsával teszteljük. A magánkulcsokat mindig titokban tartják.
  • Szerintem ” -encrypt ” és ” -decrypt ” ” -sign ” helyett ” -ellenőrizze “. (Részletek itt: czeskis.com/random/openssl-encrypt-file.html )
  • Nem működik: 2. Az adatok visszafejtése nálam nem működött. A következővel: openssl rsautl -decrypt -inkey certpubkey.pem -keyform PEM -pubin -in encrypted_data > data Ezt a hibát kapom / msg: A private key is needed for this operation
  • Szakasz Setup, a 2 lépés megadja a public.pem – ez nem ‘ nem használható tovább lépések. Mi az a nyilvános kulcs, amikor a CSR-t privát kulccsal generálják?

Válasz

A folyamatban három entitásnak kell részt vennie:

  1. A küldő – Ön
  2. A fogadó – a felhasználó
  3. Tanúsító hatóság – Megbízható harmadik fél (vagy bizonyos esetekben Ön is)

A folyamat ami biztonságban tartja a dolgokat, a “Feladó”, generál egy pár kulcsot (nyilvános és magán). Szeretem ezeket kulcsnak és zárnak nevezni a jobb látvány érdekében. A kulcs (privát) soha nem hagyhatja el a Feladó birtokát, ezért hívják privát kulcsnak.

A Feladó ezután létrehoz egy tanúsítvány-aláírási kérelmet (CSR) a nyilvános kulccsal (zár ), amelyet továbbítanak a tanúsító hatóságnak (megbízható harmadik fél), a tanúsító hatóság aláírja a nyilvános kulcsot (zárat) a tanúsító hatóságok magánkulcsával.

A tanúsító hatóság most elküldi a “Feladó” nyilvános kulcsot amelyet a tanúsító hatóságok titkos kulcsa ír vissza a “Feladó” névre, amely most a tanúsítvány.

A vevő megkapja a tanúsítványt (mondjuk a webböngészőn keresztül), és ellenőrizze, hogy érvényes-e a Hitelesítésszolgáltatók nyilvános kulcsa, amely mind a “Feladó”, mind a “Fogadó” számára megbízható harmadik fél. Miután ellenőrizte, hogy a tanúsítványban szereplő nyilvános kulcsban * megbízható-e, hogy a “Feladó” nyilvános kulcsa változatlan.

Ha a “Fogadónak” adatokat kell küldenie a “Feladónak”, akkor a nyilvános kulcs a megbízható tanúsítványtól az adatok cypertextbe titkosításához, amelyet aztán továbbít a “Feladó” -nak. Mivel csak a “Feladó” privát kulcsa képes dekódolni a “Feladó” nyilvános kulccsal titkosított cifterszöveget középen lényegében haszontalan elrontott szöveg található.

Bizonyos esetekben az “Elküldő” létrehozhatja saját tanúsító hatóságát úgy, hogy aláírja saját CSR-jét egy másik kulcskészlettel vagy önaláírással ugyanazzal a készletgel. Ebben az esetben a “Feladó” nyilvános kulcsát mindkét félnek ismernie kell egy biztonságos csatornán keresztül, hogy bármilyen bizalommal rendelkezzen. A szoftverben olyan tanúsítványt is beilleszthet a szállítmányba, amely megbízható harmadik félként használható.

* megbízható csak akkor érvényes, ha a tanúsító hatóság CRL-t (tanúsítvány visszavonási listát) vezet, és az összes fél figyeli a listát annak biztosítása érdekében, hogy a kiadott tanúsítvány ne sérüljön. Létezik az az eset, amikor a tanúsító hatóság áll, és a privát kulcs kiszivárog, és amikor ez megtörténik, akkor a kompromittáló ügynök a privát kulcs segítségével létrehozhat egy megbízható tanúsítványt, amely utánozza a “Feladót” , ebben az esetben lehetséges a MITM, és a MITM adatokat fogadhat a “Feladótól”, visszafejteni, tárolni, titkosítani egy érvényes tanúsítvánnyal, amely úgy néz ki, mint a “Feladó”, majd továbbítani ezeket a “Vevőnek”.

Válasz

Vegye ki a titkosított magánkulcsot az Ön által létrehozott CA tanúsítvány másolatából (amikor másoknak adja meg). nem kell ott lennie, hacsak nem egy anot tartalmazó tanúsítvány aláírásához használja vagy nyilvános kulcsot.

Amikor nyilvános kulcsát küldi, küldjön inkább egy teljes tanúsítványt (a privát kulcs kivételével), amelyet a társított CA magánkulccsal írtak alá. A benne lévő nyilvános kulcs érvényességének ellenőrzéséhez ellenőriznie kell a tanúsítvány kivonatát a titkosított kivonattal (amelyet a CA magánkulcsával titkosítottak). Ezt a CA nyilvános kulcsával visszafejtik. . Ha a visszafejtés sikeres, és a kivonat megegyezik a tanúsítvány kivonatával, akkor a tanúsítvány belsejében lévő információk megbízhatóak lehetnek.

A titkosításon kívül több is van benne, például egy visszajátszási támadás, amelyben a támadó korábban mentett titkosított adatokat küld. A TLS sokkal többet fed le, mint azt az átlagember gondolná, és hasonló rendszer bevezetése abszolút nem ajánlott. Használjon TLS-t, amikor csak lehetséges, bármi számára, amelyet privátnak szánnak.

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