Miksi minun pitäisi käyttää todennettua salausta pelkän salauksen sijaan?

Lohkosalauksen käyttöä varten on olemassa erilaisia toimintatiloja , joista osa tarjoaa ”salaus” ja joista osa tarjoaa todennetun salauksen .

Miksi minun pitäisi käyttää todennettu salaus -tila eikä vain salausmoodi?

Tämä kysymys ei ole Tavoitteena on keskustella todennettujen salausversioiden erilaisista salausmoodeista (vaikka hyvä vastaus saattaakin olla): sen tarkoituksena on perustella miksi / milloin AE on parempi kuin ”tavallinen” salaus.

Kommentit

vastaus

Ratkaiseva ero tavallisen salauksen ja todennetun salauksen (AE) välillä on, että AE tarjoaa myös aitouden, kun taas tavallinen salaus tarjoaa vain luottamuksellisuuden. Tutkitaan ”s” näitä kahta käsitettä yksityiskohtaisesti.

Seuraavassa tekstissä oletetaan, että $ K $ on salainen avain, joka tunnetaan valtuutetuille osapuolille, mutta hyökkääjille tuntematon.

Tavoitteet

Luottamuksellisuus (tietosuoja) tarkoittaa, että hyökkääjä ei voi saada mitään tietoa selväkielisestä $ P $ salakirjoituksesta $ E_K (P) $ lukuun ottamatta mahdollisesti sen pituutta. Toisin sanoen salakirjoitus näyttää satunnaiselta merkkijonolta niille, jotka eivät tiedä $ K $ , vaikka heillä olisi jonkin verran hallintaa selväkielisessä tekstissä. Kaikki kansanperinteen salausmenetelmät kerta-alustasta Enigmaan tarjoavat luottamuksellisuuden (joissakin olettamuksissa) ja vain sen. aitous (eheys) tarkoittaa, että valtuutettu osapuoli (vastaanottaja), jolla on $ K $ , voi tarkistaa, onko Ved data $ D $ on aitoa, ts. sen on rakentanut vain lähettäjä, joka tietää $ K $ . Tiedot voivat olla selkeää tekstiä tai salattua tekstiä, ja kussakin tapauksessa on todenmukainen ero: mikä on todistusvoimaista: jos salausteksti on todennettu, tiedämme, että avaimen omistaja on valtuuttanut salaustekstin, mutta ei välttämättä selväkielistä. Perinteinen tapa aitouden saavuttamiseksi on käyttää viestin todennuskoodia (MAC): $$ H_K (D) = T, $$ jossa $ T $ kutsutaan tunnisteeksi . Julkisen avaimen salauksen maailmassa sama tavoite saavutetaan digitaalisilla allekirjoituksilla.

Tarvitsetko

Käyttäjä voi yleensä päättää, mitä näistä ominaisuuksista hän etsii. Esimerkiksi, jos hän tietää, että hyökkääjä ei voi muokata tietoja, hänen ei ehkä tarvitse todentaa niitä. Kuitenkin, jos hän tarvitsee molempia, on olemassa sekä turvallisia että epävarmoja tapoja yhdistää kahden tyyppiset järjestelmät. Esimerkiksi naiivi lähestymistapa saman avaimen $ K $ käyttämiseen molemmissa järjestelmissä on vaarallisesti epävarmaa useimmille ilmentymille. Siksi suositellaan yhdistettyä mallia.

Todennettu salaus

Todennettu salaus (AE) tarjoaa luottamuksellisuuden ja tietojen aitouden samanaikaisesti. AE-järjestelmä on yleensä monimutkaisempi kuin pelkästään luottamuksellisuus- tai vain aitous-järjestelmä. Sitä on kuitenkin helpompi käyttää, koska se tarvitsee yleensä vain yhden avaimen ja on vankempi, koska käyttäjällä on vähemmän vapautta tehdä jotain väärin (katso myös tarkempi vastaus ).

Erillisenä ominaisuutena todennettu salausmenetelmä voi todentaa osan syötteestään, mutta ei salata sitä, jota kutsutaan liittyviksi tiedoiksi . Saatamme esimerkiksi haluta salata Internet-paketin sisällön, mutta meidän on jätettävä sen otsikko salaamattomana, mutta silti sidottuna sisäisiin tietoihin.

Suojaus

Emme ole vielä määrittäneet, mitä tarkoitamme suojatulla järjestelmällä. Turvallisuuskäsitteitä on ilmeisesti useita, ja käyttäjän on valittava niiden joukosta niiden ominaisuuksien mukaan, joita hän odottaa vastustajalta.

Vain luottamuksellisuuden käyttötavoissa suosituin tietoturva käsite käsittelee valittu-selkokieliset hyökkäykset . Olkoon $ E $ salausjärjestelmä. Oletetaan, että vastustaja ei vain tunne joitain selitteitä $ P $ , mutta pystyy myös valitsemaan joitain niistä salausta varten (tämä on melko käytännöllinen tilanne).Siksi annamme vastustajan valita minkä tahansa selkokielen salaukseen ja monta kertaa peräkkäin. Edellytämme edelleen suojatulta järjestelmältä, että se tuottaa satunnaisesti etsiviä salaustekstejä kussakin tapauksessa: $$ E_K (P_1), E_K (P_2), \ ldots, E_K (P_n) \ sim RandomString (| P_1 | + | P_2 | + \ cdots + | P_n |) $$

Vastustaja ei voi erottaa kaikkia salaustekstejä, jotka hän saa todellisen satunnaisbittigeneraattorin lähdöstä saman pituisia, vaikka vastustaja toistaa rintakehänsä. Jälkimmäinen vaatimus merkitsee sitä, että järjestelmän ei tarvitse olla deterministinen, ja todellakin vain luottamuksellisuustilat, jotka täyttävät nämä vaatimukset, ovat joko todennäköisyysperusteisia tai ei-pohjaisia.

Huomaan, että on olemassa kansanperinteen turvallisuuden käsitteitä, jotka liittyvät järjestelmän turvallisuus ja kyky palauttaa itse avain $ K $ . Tämä oli merkityksellistä, kun avainta voitiin käyttää muualla, mutta tämä on nyt paljon harvinaisempaa, ja yllä kuvattu suojauskäsite on yleinen.

Aitoustilojen turvallisuus on määritelty eri tavalla. Olkoon $ H_K $ sellainen kaava salaisella avaimella $ K $ . Vaadimme, että jos vastustaja valitsee tietoja $ D $ , joita ei ole vielä todennettu, hänen mahdollisuutensa arvata tag $ T $ siten, että $$ H_K (D) = T $$ ovat merkityksettömiä. Jos hän lähettää parin $ (D, T) $ todentajalle, hän saa vastauksen $ \ perp $ (virhe).

Huomaa, että emme ole puhuneet valitun salakirjoituksen hyökkäyksistä vain salassapitotiloissa. Nämä ovat hyökkäyksiä, kun vastustaja pystyy myös lähettämään omat salaustekstinsä salauksen purkamista varten. Vaikka tämä asetus näkyy myös käytännössä (vaikkakin harvemmin kuin valitut selväkieliset hyökkäykset), vain luottamuksellisuusjärjestelmät eivät voi vastustaa tällaisia hyökkäyksiä. Tällaisen suojauksen luomiseksi käyttäjän on palattava uudelleen todennettuun salaukseen .

Todennettujen salausjärjestelmien turvallisuus määritellään kahdessa osassa. Ensinnäkin, vastaavasti kuin vain salassapitotiloissa, vastustajan ei tarvitse pystyä erottamaan salaustekstejä satunnaisista merkkijonoista. Toiseksi, mikä tahansa väärennetty (ei luotu $ K $ ) salaustekstiin, jonka hän lähettää salauksen purkamiseen, hän todennäköisesti saa $ \ perp $ vastauksena.

Siksi todennetut salausmoodit tarjoavat sinulle myös suojauksen valitun salatun tekstin hyökkäyksiltä tarvittaessa.

Kuinka se toimii

On olemassa useita integroituja todennettuja salausmenetelmiä: CCM, GCM, OCB, EAX jne. , jossa luottamuksellisuuden ja aitouden varmistavat mekanismit ovat tiiviisti yhteydessä toisiinsa. Näiden järjestelmien suunnittelu on kaukana aiheesta. On kuitenkin olemassa yksinkertainen koostettu järjestelmä, joka tunnetaan nimellä Encrypt-then-MAC, joka toimii seuraavasti. Olkoon $ K_1, K_2 $ salaisia avaimia, $ P $ olevan selväkielinen, $ E $ on jokin salausmoodi ja $ H $ jonkinlainen MAC. Sitten kaava $$ \ Pi_ {K_1, K_2}: M \ oikealle E_ {K_1} (M) || H_ {K_2} (E_ {K_1} (M)) $$ on turvallinen todennettu salausjärjestelmä, jos $ E $ on suojattu luottamuksellisuustila ja $ H $ on suojattu aitoustila.

Todennettujen salausmenetelmien lisäominaisuudet

Sekä luottamuksellisuuden että aitouden tarjoamisen lisäksi todennetuilla salausjärjestelmillä voi olla useita lisäominaisuuksia. Yhdelläkään järjestelmällä ei ole niitä kaikkia, joten paras valinta määräytyy käyttäjän asetusten mukaan.

  • Suojaustaso . Järjestelmä takaa luottamuksellisuuden ja tietojen aitouden vain ylöspäin joihinkin sidottuihin salattujen tietojen tai salauksen purkupyyntöjen määrään. Tämä sidonta on tyypillisesti paljon pienempi kuin avaintila, eikä AES-pohjaisten tilojen tapauksessa yleensä ylitä $ 2 ^ {64} $ .

  • Rinnakkaisuus Jos käytettävissä on paljon resursseja, voidaan haluta suorittaa salaus, salauksen purku tai vahvistus rinnakkain. Ketjutusta käyttäviä tiloja (kuten CBC-salauksesta tai sienirakenteesta peräisin olevia) on vaikea rinnastaa.

  • Online-salaus . Sanomme että järjestelmä on verkossa, jos se sallii salauksen heti, kun tiedot ovat saatavilla, tietämättä sen pituudesta.

  • Patenttien käyttö . Yksi mielenkiintoisimmista AE-järjestelmistä, OCB-tila, on patentoitu, ja se on harvinaisempaa käytetään ja analysoidaan tämän ominaisuuden takia.Usein on toivottavaa, että järjestelmä on patenttiton.

  • Tunnistepäivitys . Suurin osa malleista, muutamia poikkeuksia lukuun ottamatta, kuten GCM, vaativat melkein koko salaustekstin laskemisen uudelleen, jos pientä osaa selkeää tekstiä muokataan. Jos salateksti voidaan päivittää nopeasti, se mahdollistaisi paljon nopeamman suurten salattujen tietojen, kuten kiintolevyn salauksen, käsittelyn.

  • Muiden kuin satunnaisten tai satunnaisten käyttö IVs . Nonces ja satunnaiset IV: t johtavat erillisiin suojausmalleihin, jotka ovat usein yhteensopimattomia (järjestelmät voivat olla turvallisia noncesin kanssa, mutta eivät samanpituisten satunnaisten IV: n kanssa tai päinvastoin). Vaikka nonce-ainutkertaisuutta voi olla vaikeampi varmistaa, satunnaiset IV: t tarvitsevat erillisen satunnaislukujen generointimekanismin ja johtavat salatekstin laajentamiseen.

  • Muuttujaavain, tai tagin pituus . Kaikkia kolmea parametria rajoittaa yleensä AE-mallia käyttävä sovellus. AE-järjestelmillä puolestaan on omat, joskus yhteensopimattomat rajoitukset. Mitä enemmän vaihtelevuutta järjestelmällä on, sitä enemmän sovelluksia se sopii.

  • Liittyvien tietojen käsittely . Kaikki modernit järjestelmät mahdollistavat liittyvän datan todennuksen, jota ei ole salattu. Jotkut heistä eivät kuitenkaan voi esikäsitellä AD: tä ennen kuin selväkielinen teksti on ohi, mikä saattaa olla rangaistus suorituksesta.

Lisälukema

Rogawayn tekninen raportti on kattava luottamuksellisuustutkimus – vain tilat, MAC: t ja jotkut todennetut salaustilat. Se sisältää myös kaikki muodolliset yksityiskohdat suojauskäsitteistä.

Kommentit

  • Voisin lisätä, että monissa käytännön tilanteissa todennetun salausjärjestelmän valinta on suurelta osin saneltua. sopivan käytännön tai protokollien avulla. On hyvin yleistä, että ihmiset pilkkaavat todennettua salausta, mutta käytännössä olen ’ nähnyt sekä MAC-sitten-salaa että salaa-sitten-MAC: n mukautetuissa toteutuksissa olevan virheitä kuin käytöissä todennettu salaus. Tämä johtuu siitä, että yhdistelmän oikea toteuttaminen vaatii paljon huomiota yksityiskohtiin.
  • Lisäominaisuuksien kannalta sivukanavien (erityisesti ajoitettujen sivukanavien) luomisen välttäminen on ollut kriittistä turvallisuuden arvioinnissa. AE (AD) -salauspaketista. Käytännössä tämä tarkoittaa, että salaus on mahdollista toteuttaa siten, että se toimii aikana, johon avain tai syötetty teksti ei vaikuta.

Vastaa

Kun lähetämme tietoa epävarmalla kanavalla, haluamme tietojemme olevan turvallisia.

Mitä tämä tarkoittaa? Keskustellaksemme näistä käytämme Alicen ja Bobin tavanomaista salaustilannetta. Alice haluaa lähettää jotain ( selkeä teksti ) epävarman kanavan kautta (mitä tämä tarkoittaa, keskustellaan) Bobille. Tämä kanava Eve (salakuuntelija) ja Mallory (joka yrittää puuttua vahingollisesti) kuuntelevat – mitä tämä tarkoittaa, keskustellaan aikanaan.

Luottamuksellisuus : Kun Alice lähettää viestin Bobille, vaadimme, että yhteydenpitoa kuunteleva salakuuntelija Eeva ei voi oppia mitään viestiensä sisällöstä.

Perustelu : Muuten Eve saattaa oppia jotain, jota Alice / Bob eivät halua jakaa

Ratkaisu: Käytämme salausta , joka muuntaa selkokielisen salaustekstiksi, joka (tietoteoreettisessa mielessä) ) sisältää vain tietoja selkeästä tekstistä, jota ei voida purkaa käytännössä. Tämä tarkoittaa sitä, että (muotoilemalla Goldwasser ) Eeva voi oppia selkeästä tekstistä, kun hän tuntee salatun tekstin, ja hän voi myös päätellä ilman salaustekstiä.

Jopa tässä tapauksessa meidän on oltava varovaisia. Pelkästään siksi, että järjestelmä kestää passiivista hyökkääjää (joku, joka vain kuuntelee viestivirtaa), ei tehdä siitä vahvaa aktiivista hyökkääjää vastaan. Harkitse esimerkiksi CBC -tila on käytössä. Se on suojattu IND CPA -pelissä, jonka saatat tuntea tekee siitä turvallisen. CCA -pelissä hyökkääjä sallii kuitenkin pyytää viestien salauksen purkamisen (vaikkakaan ei salaustekstin salauksen purkamista). Mitä hän voi tehdä, annettu salakirjoitus $ c = {\ pieni IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $ pyytää $ c: n salauksen purkamista ”= a \ mathbin \ | c $, jossa $ a $ on jokin ei-tyhjä viesti. Tämä ei ole sama kuin salakirjoitus, joten se on sallittua pelin alla, ja ottamalla vain viimeiset $ n $ -lohkot hän voi purkaa salakirjoituksen salauksen.

Tällainen esimerkki ei ole niin keksitty kuin luulisi, koska se, mitä mallinnamme salauksen purkuohjelmaksi, saattaa hyvinkin esiintyä siinä, että hyökkääjä voi pystyä saamaan merkkijonot salauksen purettua, mutta tiedot, joita he voivat pyytää salauksen purkamisen on ehkä aloitettava tietyllä merkkijonolla (samanlainen kuin SQL-injektion idea).

Authenticity : Kun Bob saa viestin, hän tietää, että se oli ehdottomasti Alice.

Perustelu: Muuten Mallory voisi lähettää Bobille viestin väittäen sen Aliceelta ilman, että Bob tietää. Todistettavasti, me ”on hyvin lempeä siitä, mitä Mallorylle merkitsee väärennetyn viestin luominen – hän voittaa, jos pystyy luomaan minkä tahansa viestin, jonka Bob hyväksyy (vaikka sen melkein sama kuin yksi Alice on jo lähettänyt hänelle). Voit tehdä tämän monilla tavoilla, kuten uudelleentoisto, järjestäminen uudelleen tai bittikäännöshyökkäykset.

Ratkaisu: Pelkästään todennuksen saamiseksi voimme käyttää MAC .

Autenttisuus ja luottamuksellisuus : Alice ja Bob kommunikoivat luottamuksellisesti, ja kukin viesti on todistusvoimainen.

Perustelu: Jos virta on vain luottamuksellista (ts. salaus mutta ei todennettu salaus), salakuuntelija voi pystyä muokkaamaan lähetettävää viestiä, vaikka he eivät tietäisikään, mikä tämä on. Oletetaan esimerkiksi, että Alice & Bob käyttää täysin turvallista One Time Pad -laitetta ( OTP ) salaisella avaimella $ k $ ja viestillä $ m $:

$$ A \ text {lähettää} c = m \ oplus k \ B: lle \\ \ prec M \ text {sieppaavat} c \ succ \\ M \ text {lähettää} c ”= c \ oplus h \ to B \ text {(joillekin arvoille} h) \\ B \ text {vastaanottaa} c” \ text {lähettäjältä M, mutta luulee sen olevan} c \ text {lähetetty} A \\ B \ text {salauksen purku} m ”= c” \ oplus k = c \ oplus h $$ Tämä tarkoittaa, että $ B $ on saanut viestin $ m ”$, mutta hänen mielestään se on $ m $.

Oletetaan, että protokollaa ei ole todennettu ja Mallory tietää viestin, jonka Alice aikoo lähettää Bobille:” Hyväksyn lähettää £ ??? tilille # ???? ”joidenkin arvojen ??? osalta. Vaikka he eivät” tiedä tarkalleen mikä tili on, ja ehkä he eivät pysty lähettämään maksua omalle tililleen, he voivat muuttaa se ei enää ole Alice-tili.

Ratkaisu: Todennettu salaus!


Hyvä artikkeli, joka selittää AE: n tarpeen, on tämä blogikirjoitus , kirjoittanut Matthew Green. Teknisempi esittely toimintatiloihin on tämä Rogawayn julkaisu .

Kommentit

  • Ainoa salausmenetelmä, joka varmistaa tietoteoreettisen turvallisuuden, on kertaluonteinen alusta. IND-CPA-salausjärjestelmät takaavat vain, että tietoja ei voida purkaa salaustekstistä todennäköisen poly-aikaisen vastustajan toimesta.
  • Ah kyllä, se kirjoitettiin epäselvästi (/ väärin!). Kiitos, että muokkait sitä – aioin laittaa sen muotoon ’ ei sisällä tietoja <, jotka voidaan purkaa > ’
  • Itse asiassa monet ” vain luottamuksellisuus ” -tilat eivät todellakaan edes anna ’ -tilaa luottamukselliseksi, kun aktiivinen hyökkääjä hyökkää niihin (joka voi muokata viestejä tai liittää valitun selkokielisen tekstin tai valitut salateksti-iskut). . Siksi näitä tiloja käytännössä (tietoliikennekanavalle) on käytettävä yhdessä jonkin MAC: n kanssa vain luottamuksellisen osan saamiseksi. AE-tila yhdistää nämä vain yhdeksi.
  • @ PaŭloEbermann / Kuka tahansa muu: En todellakaan usko ’ uskoakseni ’ ve kirjoitin tänne hyvän vastauksen (sen perjantai-ilta loppujen lopuksi!), mutta halusin vain esittää joitain ensimmäisiä ajatuksia. Voit vapaasti lisätä omia vastauksiasi / muokata tätä / kirjoittaa omat pois tästä. Jos ihmiset ajattelevat, että vastaukseni on ” tarpeeksi lähellä ” hyvää (joka lukee sen uudelleen, en ’ t) sitten ’ tervetuloa muokkaamaan sanojani tai käyttämään niitä uudelleen.
  • Mielestäni AE tarjoaa myös eheyden ( fi.wikipedia.org/wiki/Authenticated_encryption ), joten haluat ehkä lisätä sen myös.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *