Minulla on tarve saada joku muu salata salaiset tiedot julkisella avaimellani, jonka voin sitten purkaa yksityisellä avaimellani. Olen tuottanut RSA: n yksityisen / julkisen avaimen parin, jossa OpenSSL antoi heille julkisen avaimen ja minulla on kaikki toimiva.
Viime aikoina joku huomautti, että meitä kohdellaan mahdollinen ihminen keskellä -hyökkäyksessä. missä pahat pojat hyväksyisivät julkisen avaimen ja välittäisivät oman julkisen avaimen toiselle puolelle. Sitten toinen osapuoli salaa salaista tietoa velvollisuudella, välittää sen MITM: lle, joka purkaa sen, salaa sen uudelleen julkisella avaimellani ennen kuin välittää sen minulle ilman viisaampaa. Suositeltava ratkaisu on, että julkisen avaimen allekirjoittaa varmentaja, johon toinen osapuoli luottaa, ennen kuin välitän sen.
Kokeiluna tuotin CSR: n, jonka pystyin allekirjoittamaan omalla varmentajalla, mutta tuloksena oleva varmenne sisältää myös (salatun) yksityisen avaimen. En halua välittää salaista avainta kenellekään muulle, salatuksi tai ei.
Onko olemassa tapa vain julkisen avaimen allekirjoittamiseen?
Kommentit
- Varmenne sisältää yksityisen avaimen? Huh? Kuinka onnistuit tekemään tämän? Voitteko lähettää tiedoston tiedostoon pastebin.com? (Tee se uudella avainparilla, jotta sinun ’ ei tarvitse jakaa alkuperäistä.)
- Luulen, että olen alkanut ymmärtää. Vaikka tarvitsen yksityisen avaimen CSR: n tuottamiseen, CSR ja tuloksena oleva varmenne eivät sisällä yksityistä avainta. Sertifikaatti on käytännössä allekirjoitettu julkinen avain, joka on juuri sitä mitä haluan.
Vastaa
Julkisen avaimen allekirjoittaminen on tosiasiallisesti varmenne. Nämä ovat vaiheet, jotka tuotan julkisen avaimen varmenteen, jonka voin jakaa muille, jotta he voivat kommunikoida turvallisesti kanssani:
Asennus
- Luo yksityiset avaimet:
openssl genrsa -out private.pem 2048
- Luo julkiset avaimet:
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
- Luo CSR (varmenteen allekirjoituspyyntö)
openssl req -new -key private.pem -out certificate.csr
- Luo itse allekirjoittama varmenne (voit jakaa tämän varmenteen)
openssl x509 -req -päivät 365 -in certificate.csr -signkey private.pem -out certificate.crt
salaus
openssl rsautl -encrypt -inkey private.pem -keyform PEM -tiedoissa> encrypted_data
Salauksen purkaminen
- Pura julkinen avain varmenteista
openssl x509 -pubkey -noout -in todistuksessa.crt> certpubkey.pem
- Salaa tiedot
openssl rsautl -decrypt -inkey certpubkey.pem -keyform PEM -pubin -in encrypted_data> data
Jos aiot avaimesi allekirjoittaa varmenteen myöntäjän, sinun on lähetettävä CSR-tiedostosi (ja hieman käteistä) valitsemallesi varmentajalle, he antavat sinulle sertifikaatin, jota voit käyttää itse allekirjoittaman sertifikaatin I sijasta. mainittu edellä mainituissa vaiheissa.
Kommentit
- Tämä on eräänlainen päinvastainen kysymykselleni, mutta se toimii keskustelun tarkoituksiin. Jotta toinen osapuoli purkaa salauksen, he joko tarvitsevat julkisen avaimen, jonka olen saanut MITM-hyökkäykseen, tai he tarvitsevat koko varmenteen, joka sisältää (salatun) yksityisen avaimen.
- @ user1683793 toinen pää tarvitsee kaksi todistusta. Ensimmäisillä heillä jo pitäisi olla (itse allekirjoitettu CA-varmenne). Toinen sisältää julkisen avaimen, jonka haluat tarkistaa, ja allekirjoitetaan varmentajan varmenteella (käyttäen siihen liittyvää varmentajan yksityistä avainta). Toisen varmenteen pätevyys testataan CA-varmenteen julkisella avaimella. Yksityiset avaimet pidetään aina yksityisinä.
- Luulen, että haluat ” -salaa ” ja ” -decrypt ” ” -sign ” ja ” -vahvista ”. (Tiedot täältä: czeskis.com/random/openssl-encrypt-file.html )
- Ei toimi: 2. Tietojen salauksen purkaminen ei toiminut minulle. Kanssa:
openssl rsautl -decrypt -inkey certpubkey.pem -keyform PEM -pubin -in encrypted_data > data
Saan tämän virheen / msg:A private key is needed for this operation
- Osa
Setup
, vaihe2
antaapublic.pem
– sitä ei ’ käytetä missään muussa askeleet. Mikä on kyseisen julkisen avaimen käyttö, kun CSR luodaan yksityisellä avaimella?
vastaus
Prosessiin pitäisi olla mukana kolme entiteettiä:
- Lähettäjä – Sinä
- Vastaanottaja – Käyttäjä
- Varmentaja – luotettu kolmas osapuoli (tai joissakin tapauksissa sinä)
Prosessi joka pitää asiat turvassa on ”Lähettäjä”, luo avainparin (julkisen ja yksityisen). Haluan viitata näihin avaimina ja lukkoina paremman visuaalisuuden takaamiseksi. Avaimen (yksityinen) ei pitäisi koskaan poistua Lähettäjän hallussapidosta, siksi sitä kutsutaan yksityiseksi avaimeksi.
Tämän jälkeen Lähettäjä luo varmenteen allekirjoituspyynnön (CSR) julkisella avaimella (lukko ), joka välitetään varmenteen myöntäjälle (luotetulle kolmannelle osapuolelle), varmenteen myöntäjä allekirjoittaa julkisen avaimen (lukon) varmentajien yksityisellä avaimella.
Varmenteen myöntäjä lähettää nyt julkisen avaimen ”Lähettäjät”. jonka varmentajaviranomaisten yksityinen avain allekirjoittaa takaisin lähettäjälle, joka on nyt varmenne.
Vastaanottaja saa varmenteen (sanotaan esimerkiksi selaimen kautta) ja tarkistaa, että se on voimassa varmentajien julkinen avain, joka sekä lähettäjällä että vastaanottajalla on, koska he ovat luotettu kolmas osapuoli. Vahvistettuaan varmenteen julkisen avaimen voidaan luottaa * olemaan ”Lähettäjän” julkinen avain muuttumattomana.
Jos Vastaanottajan on lähetettävä tietoja lähettäjälle, he käyttävät julkinen avain luotetusta varmenteesta tietojen salaamiseksi kyptetekstiksi, joka sitten välitetään ”Lähettäjälle”. Koska vain ”Lähettäjän” yksityinen avain voi purkaa salauksen salatun tekstin, joka salattiin ”Lähettäjän” julkisella avaimella keskellä on käytännössä hyödytöntä sekoitettua tekstiä.
Joissakin tapauksissa Lähettäjä voi luoda oman varmenteen myöntäjän allekirjoittamalla oman CSR: n eri avainsarjalla tai itse allekirjoittamalla samalla joukolla. Tällöin molempien osapuolten on tiedettävä ”Lähettäjän” julkinen avain suojatun kanavan kautta luottamuksen saamiseksi. Ohjelmistossa voit sisällyttää toimitettavaan sertifikaatin, jota voidaan käyttää luotettavana kolmannena osapuolena.
* luotettu on voimassa vain, jos varmentaja ylläpitää varmenneluetteloa (Certificate Revocation List) ja kaikki osapuolet seuraavat luetteloa varmistaaksemme, että annettu varmenne ei ole vaarantunut. Tapaus, jossa varmenteen myöntäjä on muodostettu ja yksityinen avain vuotaa, on olemassa ja kun näin tapahtuu, tietoturvaloukkaaja voi käyttää yksityistä avainta luotettavan varmenteen luomiseen, joka jäljittelee lähettäjää. , siinä tapauksessa MITM on mahdollinen ja MITM voi vastaanottaa tietoja lähettäjältä, purkaa, tallentaa, salata kelvollisella varmenteella, joka näyttää ”Lähettäjältä”, ja välittää sen sitten ”Vastaanottajalle”.
Vastaa
Ota salattu yksityinen avain luomastasi CA-varmenteen kopiosta (kun annat sen muille). Yksityinen avain tekee sinun ei tarvitse olla siellä, ellet aio käyttää sitä allekirjoittamaan todistuksen, joka sisältää muuta tai julkisen avaimen.
Kun lähetät julkisen avaimesi kautta, lähetä sen sijaan koko varmenne (yksityistä avainta lukuun ottamatta), allekirjoitettu käyttämällä siihen liittyvää varmentajan yksityistä avainta. Jotta voit tarkistaa sen sisällä olevan julkisen avaimen oikeellisuuden, sinun on tarkistettava varmenteen hajautus salattuun hashiin (joka on salattu varmentajan yksityisellä avaimella). Tämä puretaan salauksella CA: n julkisella avaimella. . Jos salauksen purku onnistuu ja hajautus vastaa varmenteen tiivistettä, varmenteen sisällä oleviin tietoihin voidaan luottaa.
Siinä on myös muutakin kuin vain salaus, esimerkiksi toistohyökkäys, jossa hyökkääjä lähettää aiemmin tallennettuja salattuja tietoja. TLS kattaa paljon enemmän kuin tavallinen ihminen ajattelee, ja samanlaisen järjestelmän käyttöönottoa ei ehdottomasti suositella. Käytä TLS: ää aina, kun se on mahdollista