Miksi ' ei pitäisi käyttää EKP: n salausta?
On helmikuu 18, 2021 by adminKäytän Java-salausta salattujen merkkijonojen luomiseen, ja saan tämän varoituksen rakennuksen aikana:
EKP: n salaustilaa ei tule käyttää
Joten ihmettelen, miksi minun ei pitäisi käyttää EKP: tä ja mitä voin käyttää sen sijaan ?
Kommentit
- Kommentteja ei ole laajennettu keskustelu; tämä keskustelu on siirretty keskusteluun .
- Työskenteletkö zoomilla?)
Vastaa
Miksi minun ei pitäisi käyttää EKP: n salausta?
Tärkein syy olla käyttämättä EKP-tilaa -salausta on, että se ei ole semanttisesti turvallinen — toisin sanoen, pelkkä EKP: n salatun salakirjoituksen tarkkailu voi vuotaa tietoa selkokielisestä tekstistä (jopa sen pituuden yli, mikä kaikki mielivaltaisesti pitkiä tekstilomakkeita hyväksyvät salausmenetelmät vuotavat jossain määrin).
Erityinen Lyhyesti, ongelma EKP-tilassa on, että salaamalla sama lohko (8 tai 16 tavua, tai kuinka suuri isäntäkin salakkeen koko on) selkokielisessä tekstimuodossa EKP-tila, saadaan aina sama salaustekstilohko. Tämän avulla hyökkääjä voi:
- havaita, ovatko kaksi EKP: n salattua viestiä identtisiä;
- havaita, onko kahdella EKP: n salatulla viestillä yhteinen etuliite;
- tunnistaa, jakavatko kaksi EKP: n salattua viestiä muita yhteisiä alimerkkijonoja, kunhan ne ovat kohdistettuina lohkorajoihin; tai
- selvittää, sisältääkö (ja missä) yksi EKP: n salattu viesti toistuvia tietoja (kuten pitkiä välilyöntejä tai tyhjiä tavuja, toistuvia otsikkokenttiä tai sattumalta toistuvia lauseita tekstissä).
Siellä ”on mukava graafinen osoitus tästä heikkoudesta Wikipediassa, jossa sama (raaka, pakkaamaton) kuva salataan sekä EKP-tilassa että semanttisesti turvallinen salausmoodi (kuten CBC, CTR, CFB tai OFB):
Vaikka tämä skenaario on hieman keinotekoinen (tällaisia raakakuvia ei yleensä salata), se osoittaa hyvin EKP-tilan ongelman: toistuvien alueiden tulokuvassa on toistuvia kuvioita salatussa lähdössä, joten monet kuvan suuret piirteet pysyvät tunnistettavissa salauksesta huolimatta. Todellisessa maailmassa kryptanalyytikko hyökkää EKP: tä vastaan. pohjainen salaus Järjestelmä etsii todennäköisemmin tällaisia malleja salatekstin hex-dumpista, mutta periaate on sama.
Todellinen tapaus tästä EKP: n salauksen heikkoudesta, joka vaikuttaa todelliseen tietokompromissiin, on antaa vuoden 2013 Adoben salasanatietokantavuoto , kuten tässä vastauksessa kuvataan. Yksi vuodon vakavuuteen vaikuttava tekijä oli, että sen sijaan, että hajauttaisi ne oikein , Adobe oli salannut salasanat EKP-tilassa. Tämän ansiosta hyökkääjät löysivät nopeasti useiden tilien jakamat salasanat tai jakavat yhteisen etuliitteen muiden salasanojen kanssa (kuten password1 ja password2 ), ja paljastivat myös niiden likimääräisen pituuden salasana.
EKP: n salaustilassa on myös muita heikkouksia, kuten se, että se on erittäin muokattava : koska kukin selkokielinen lohko salataan erikseen, hyökkääjä voi helposti luoda uusia kelvollisia salakirjoituksia koomalla lohkoja aiemmin havaituista salakirjoista.
Muovattavuus on kuitenkin ongelma vain, jos EKP: n salausta käytetään ilman viestin todennuskoodi , ja tässä tilanteessa se jaetaan (jossain määrin) kaikkien muiden todentamattomien salaustilojen , kuten edellä mainitut keskuspankit, CTR, CFB ja OFB, joten sitä ei oikeastaan voida pitää EKP-tilan erityisenä heikkoutena, vaikka se yleensä onkin lisäkysymys, kun koskaan käytetään EKP-tilaa.
Mitä minun pitäisi käyttää sen sijaan?
Käytä mitä tahansa -todennettua salausta -tila, kuten GCM , EAX tai OCB .
Henkilökohtaisesti, lyhytsanomille, pidän mieluummin SIV-tilasta ( RFC 5279 ), joka tarjoaa ylimääräisen väärinkäytön keston. (Monet muut salausmoodit hajoavat melko huonosti, jos samaa IV / noncea käytetään vahingossa useiden viestien salaamiseen. SIV-tila säilyttää kaikki suojausominaisuutensa tässä tilanteessa, paitsi vuotaa, ovatko salatut viestit identtisiä.)
Voit käyttää myös mitä tahansa perinteistä semanttisesti suojattua salaustilaa (kuten CBC tai CTR ) yhdistettynä viestin todennuskoodiin (kuten HMAC ) -salaus – sitten-MAC -rakenne. (Toisin sanoen sinun tulisi ensin salata viesti, sitten laskea salakirjoituksen MAC ja liittää se salaustekstiin.) Niin kauan kuin varmistat MAC: n ennen kuin yrität purkaa viestin salausta, tämä rakenne suojaa sinua näiden tilojen erilaiset haavoittuvuudet aktiivisille (selected-salausteksti) hyökkäyksille.
levyn salaus tai vastaavat sovellukset, jotka edellyttävät kykyä muokata osia salaustekstiä salaamatta kaikkia tietoja, sinun tulee käyttää tätä tarkoitusta varten suunniteltu salaustila, kuten XTS . Huomaa, että tällaisilla tiloilla ei yleensä ole vastustuskykyä aktiivisille hyökkäyksille, ja niillä voi olla muita heikkouksia, jotka tulisi ymmärtää ennen niiden käyttöä. Jos mahdollista, ne tulisi yhdistää jonkinlaiseen eheyden suojaukseen, kuten -hajapuun MAC-tiedostoon .
Kommentit
- Mitä ehdotat tapauksissa, joissa halutaan pystyä lukemaan / kirjoittamaan tietovaraston lohkoja mielivaltaisessa järjestyksessä, mieluiten samalla kun tehdään kaikki-lohkot-kartta kaikille jotka estävät? Haluan salata koodaamalla lohkotiedot hyvin yksinkertaisella lohkonumeron hashilla, kumoamalla / toistamalla xor-operaation, jos se tuottaa all-one-lohkon, käyttämällä tulokseen EKP: tä, ja xoroimalla tuloksen täydennyksellä all-one-lohkon salaamisesta [tämä komplementti on laskettava vain kerran kullekin avaimelle]. Vaikuttaako se hyvältä lähestymistavalta?
- @supercat: Se ' on periaatteessa levyn salaus , joten voit käyttää siihen suunniteltuja tiloja. Uskon, että XTS: ää pidetään hyvänä vaihtoehtona, vaikka sillä, kuten kaikilla levyn salausmoodeilla, on rajoituksia (jotka sinun tulisi ymmärtää ennen sen käyttöä). Jos mahdollista, se tulisi yhdistää jonkinlaiseen MAC: ään aktiivisten hyökkäysten torjumiseksi.
- @IlmariKaronen: luulen sanovan " don ' t käytä EKP: tä " on hieman ylimitoitettu. Ymmärrän riskit, mutta monta kertaa (ellei asiakirjasi – mitä salaat – ei ole ' ole kovin salainen, ja vastustaja ei ' sinulla ei ole liikaa ominaisuuksia jne.), sinun pitäisi olla kunnossa.
- @giorgim: Siellä ' ei todellakaan ole mitään hyvää syytä käyttää EKP: tä (paitsi rakennusmuotona muihin liikennemuotoihin). Melkein mikä tahansa salauskirjasto tarjoaa ainakin CBC- tai CTR-tilan, ja jos ei, ne ' ovat triviaalia toteuttaa itse. Napsauta HMAC (tai CMAC) sen päälle, ja ' on hyvä mennä.
- @giorgim: Vaikka et ' ei ole käytettävissä mitään MAC- tai AE-tilaa, CBC: n käyttö on silti ehdottomasti parempi kuin EKP. Jos sinulla on MAC-toiminto, CBC-then-MAC on erittäin hyvä valotustila.
Vastaa
Älä käytä EKP-tilaa, koska se salaa samanlaiset viestilohkot (ts. Salatun salakoodin jokaisessa kutsussa salatun tiedon määrän) identtisiksi salaustekstilohkoiksi. Tämä on ongelma, koska se paljastaa, onko samat viestilohkot salattu useita kertoja. Wikipediassa on erittäin hieno esimerkki tästä -ongelmasta .
Kommentit
- Kommentit eivät ole laajennettua keskustelua varten; tämä keskustelu on siirretty chatiin .
Vastaa
Kuten @Guut Boy mainitsi, EKP ei ole semanttisesti turvallinen siinä mielessä, että jos samanlaisten lohkojen viesti on salattu, hyökkääjä saa tietyn edun saada tietoa selkeästä tekstistä vain tarkkailemalla CipherTextiä.
Käytä mieluiten CBC-tilaa salaamaan pitkä viesti. Tässä tilassa otetaan käyttöön uusi parametri nimeltä IV (Initial Value). Alustat istunnon numerolla, jotta estät hyökkäykset, jos sama viesti salataan kahdesti.
Kommentit
- IV tarkoittaa alustusvektoria, ei alkuarvoa.
- 1. Tämä ei ole hyvä neuvo. Salauksen käyttäminen ilman todentaminen jättää huomiotta salakirjoittajien noin vuosikymmenen ajan antamat neuvot. Parempi olisi käyttää todennettua salausta, kuten Ilmari Karonen suosittelee. 2. Ilmari Karonen näyttää korvaavan tämän vastauksen. vastaus.
- Tämän lisäksi tosiasia on, että IV: n on oltava arvaamaton hyökkääjälle (ts. erotettavissa satunnaisesta), ja tässä vastauksessa sanotaan, että sinun on käytettävä istunnon numeroa, joka ei yleensä ole lainkaan satunnainen.
Vastaa