4154
Komentaras:
|
6175
|
Pašalinimai yra pažymėti taip. | Pridėjimai yra pažymėti taip. |
Eilutė 2: | Eilutė 2: |
CBC padding attack | Public-key cryptography |
Eilutė 7: | Eilutė 7: |
CBC priedų ataka | Viešojo rakto kriptografija |
Eilutė 12: | Eilutė 12: |
'''Teorija:''' | '''''Teorija:''''' |
Eilutė 14: | Eilutė 14: |
. CBC (cipher block chaining) | Šifravimo metodas panaudojant asimetrinių raktų algoritmus. Jį naudojant nereikia gavėjui ir siuntėjui pasikeisti vienu ar daugiau slaptų raktų. Jame naudojama dviejų matematiškai susijusių raktų pora: viešas ir privatus raktai. Tačiau jie sudaromi taip, kad iš viešo rakto nėra paprasta nustatyti privataus rakto. Privatus raktas saugomas pas save, o viešas yra išplatinamas. Dokumento autentiškumas užtikrinamas skaitmeniniu parašu, sukurtu naudojant privatų raktą, o jį patikrinti galima panaudojant viešą raktą. Taip pat galima užšifruoti tekstą naudojant viešą raktą, - dešifravimui būtina turėti privatų raktą. Ši schema yra naudojamas Interneto standartuose TLS (SSL įpėdinis), PGP ir GPG. Neblogai šio metodo veikimą paaiškina analogija su pašto dėžute. Pašto dėžutės anga yra atvira ir prieinama kiekvienam; jo vieta (adresas) iš esmės yra viešas raktas. Kiekvienas, žinantis adresą, gali ateiti ir įmesti pranešimą į pašto dėžutę per jos angą. Tačiau tik tas, kuris turi raktą, gali ją atrakinti ir perskaityti joje esančius laiškus. O skaitmeninį parašą galima paaiškinti analogija su vaškiniu antspaudu. Laišką atplėšti ir perskaityti gali bet kas, tačiau nepažeistas antspaudas liudija jo autentiškumą. Pagrindinė problema, naudojant viešojo rakto metodus, yra konfidencialumas, t.y. užtikrinimas, kad raktas priklauso tam asmeniui, kuris teigia jį turįs. Įprastas konfidencialumą užtikrinantis principas yra viešo rakto infrastruktūros (PKI) naudojimas, tai yra schema, kai viena ar daugiau trečiųjų šalių, vadinamų sertifikatų tiekėjais, garantuoja raktų porų priklausomybę. Kitas principas, kurį naudoja PGP, remiasi „pasitikėjimu“. Silpna vieta Deja, visos viešo rakto sistemos nėra atsparios „grubios jėgos“ panaudojimui. Tai nėra praktiška tuo atveju, jei skaičiavimų skaičius („darbo veiksnys“, pagal Claude Shannon) yra per didelis potencialiems nulaužėjams. Daugeliu atvejų „darbo veiksnys“ gali būti padidintas tiesiog panaudojant ilgesnius raktus. Tačiau kai kurie metodams „darbo veiksnys“ yra gerokai mažesnis nei naudojant „grubią jėgą“. Tiek RSA, tiek ElGamal šifrai turi galimus nulaužimo būdus, greitesnius nei „grubi jėga“. Šifrų įveikiamumas padidėjo išaugus kompiuterių galingumui bei padarius naujus atradimus matematikos srityje. Bet ir tai galima apeiti parenkant pakankamai ilgus raktus, tokius, kad, kol dešifruosi informaciją, ji jau nebebus aktuali. Keliuose, atrodžiusiems perspektyviais, asimetrinių raktų algoritmuose rastos rimtos silpnos vietos. Pvz., nesaugiu pasirodė esąs „kuprinės sudėjimo“ algoritmas. Tikslaus laiko, reikalingo teksto iššifravimui, žinojimas gali supaprastinti reikiamų raktų paiešką. Taigi, asimetrinių raktų algoritmai negarantuoja saugumo ir šioje srityje vyksta aktyvūs ieškojimai, kaip nustatyti ir išvengti galimų naujų atakų. Kitas potencialus pažeidžiamumas yra galimybė trečiajai šaliai perimti viešų raktų apsikeitimą ir pakeisti viešus raktus. Gali būti perimti ir užšifruoti pranešimai, dešifruoti ir vėl užšifruoti naudojant korektišką raktą, kad nebūtų sukeltas įtarimas. Tai nelengva realizuoti, tačiau įmanoma, kai komunikuojama nesaugia terpe (pvz., viešais tinklais, tokiais kaip Internetas). Tokį perėmimą nesunkiai gali atlikti Interneto paslaugų tiekėjo personalas. Tokį pažeidžiamumą pašalinti leidžia sertifikatai, patikimų trečių šalių patikinimas, kad rakto vartotojas yra teisėtas rakto savininkas. Tačiau ir tai turi savo silpnų vietų – ir vis tik šis principas plačiai naudojamas (pvz., SSL ir tolimesnis jo išvystyme TLS). Viešą raktą gali žinoti didėlis ir praktiškai nežinomas vartotojų skaičius. Tad, prireikus, viešo rakto panaikinimas ar pakeitimas gali pareikalauti ilgo laiko tarpo, nes reikia informuoti visus raktą naudojančius vartotojus. Tad sistemos, privalančios reaguoti į realaus laiko įvykius (pvz., kritinio saugumo ar nacionalinio saugumo sistemos) neturėtų naudoti viešų raktų kriptografijos. |
Eilutė 16: | Eilutė 23: |
šifro bloko sukaustymas Tai šifro blokų suryšimo algoritmas kai kiekvienas blokas teksto prieš užkoduojant yra sudauginamas naudojant „XOR“ funkcija su prieš tai buvusiu bloku. Tai einantis blokas priklauso nuo prieš tai buvusių blokų ir gaunamas vientisas pranešimas. Kad kiekvienas pranešimas būtų unikalus, pirmajam blokui yra naudojamas inicializavimo vektorius. | '''''GPG: ''''' |
Eilutė 18: | Eilutė 25: |
. Padding – priedas | GPG (GNU Privacy Guard) – yra GPL licencijuota alternatyva PGP, sudaranti kriptografijos programinę įrangą. GnuPG užšifruoja pranešimus naudodamas asimetrinės rakto poras individualiai su generuotas GnuPG vartotojo. Viešaisiais raktasi galima keistis sus kitais vartotojais įvairiais būdais pvz.: interneto raktų serveriais. Apsikeitimai visada turi būti saugūs, kad užtikrinti, kad duomenys nebus sugadinti, pažeidžiant raktą. Yra galimybė pridėti skaitmeninį parašą į pranešimą, taip žinutė bus apsaugota nuo pažeidimo, ir neteisėto skaitymo. GnuPG taip palaiko simetrinių kodavimų algoritmus. Pagal nutylėjimą GnuPG naudoja CAST5 simetrinį algoritmą. GnuPG nenaudoja patentuotų ar kitaip apribotos programinės įrangos ar algoritmų, tokių kaip IDEA šifravimo algoritmas naudojamas PGP. Vietoj to GnuPG naudoja įvairius kitus , nepatentuotus algoritmus: • Blokiniai šifrai (simetrinis šifravimo algoritmas): CAST5, Camellia, triple DES, AES, Blowfish ir Twofish. • Simetriniai rakto šifrai: EIGamal ir RSA. • Kriptografiniai „hash“: RIPEMD-160, MD5, SHA-1, SHA-2, ir TIGER. • Skaitmeniniai parašai: DSA ir RSA. GnuPG yra hibridinė šifravimo programa, kuri naudoja kombinacija įprastų simetrinių raktų kriptografija didesniam greičiui pasiekti ir viešojo rakto kriptografija, saugiam ir lengvam apsikeitimui. Paprastai naudojamas vartotojo viešasis raktas yra užšifruotas taip kad galima būtų panaudoti tik kartą. Ši galimybė yra dalis OpenPGP standarto ir tai buvo dalis PGP nuo pat pirmo versijos. |
Eilutė 20: | Eilutė 32: |
Tai metodas naudojamas kriptografijoje kuomet siekiant gauti vienodo ilgio duomenų blokus prie duomenų bloko pridedamas papildomas kiekis duomenų, kuris neturi jokios reikšmės. Taip taipogi siekiama, kad išvengti galimybės atpažinti pranešimą iš dažniausiai pasikartojančių pranešimo pradžios at pabaigos sakinių | |
Eilutė 22: | Eilutė 33: |
Transport Layer Security (TLS) Record protocol – transporto lygio apsaugos įrašo protokolas Tai protokolas kuris informacijai koduoti naudoja, raktus iš jų sudaro MAC, prie pranešimo prideda žymes, prie bloko pabaigos prideda priedą ir viską užšifruoja.'''Ataka: ''' |
== Literatūra == |
Eilutė 25: | Eilutė 35: |
Kaip pavyzdį panagrinėsime TSL įrašo protokolo, kuris naudoją CBC šifravimą ataką. Čia svarbų žinoti kaip veikia TLS dekodavimas, taigi pirmiausia pranešimas yra dekoduojamas naudojant CBC raktą. Tada tikrinama ar priedas (pad) yra tinkamo formato, pvz, jei priedas yra 3 baitų ilgio jis turėtų būti 3-3-3. Ir jei jis netinkamo formato tada pranešimas yra atmetamas. Toliau tikrinamas „tag“ (MAC) ir jei „tag“ yra neteisingas, pranešimas yra atmetamas, jei jis teisingas, likusi pranešimo dalis laikoma teisinga. „ | 1. http://en.wikipedia.org/wiki/Public-key_cryptography |
Eilutė 27: | Eilutė 37: |
Taigi čia egzistuoja dviejų rūšių klaidos, vienos yra priedo klaidos, kitos yra MAC klaidos (pad ir tag). Taigi piktavalis gali atskirti kokia klaida nutinka siunčia pranešimą. Tai dar vadinama „padding oracle“ . Taigi jei piktavalis perima ankščiau minėto tipo pranešima, ir nori jį iššifruoti, jis gali jį siųsti serveriui, ir taip sužinoti ar paskutiniai pranešimo baitai – priedas yra teisingi. Tai pastabėjus buvo paliktas tik vienas klaidos pranešimas. Tačiau tai apsaugoti duomenų nepadėjo. Nes kaip ankščiau minėta dekuodojant pranešima buvo pirmiausia tikrinamas priedas ir jei jis teisingas siunčiamas klaidos pranešimas, jei ne tikrinamas MAC, taip pagal sugaišta laiką iki atsiusto klaidos galima atpažinti kur buvo rasta klaida, taigi klaidos pranešimo suvienodinimas beveik nieko nepakeitė. Taigi piktavalis perėmės užkoduotos informacijos bloką nori atkoduoti bloko m[1] reikšmę. Kadangi paskutinė informacijos bloko skiltis gali turėti vertę nuo 0 iki 255, piktavalis pasirenka atsitiktinę vertę „g“, kadangi duomenis užšifruoti CBC šifru, piktavalis į bloko c[0] paskutinę skiltį įterpia „XOR g XOR 0x01 ir kadangi užšifruoti bloką c[1] naudojama c[0] reiškmę vykstant dekodavimui jei g sutampa su tikrąją reikšme bloke m[1] gaunamas vienetas. Kadangi vienetas yra tinkama priedo (pad) reikšmė, dekoduojant jame nebus randama klaida. Klaida bus randama dekoduojant MAC, tačiau šiuo to pakaks, kad sužinoti paskutinį bloko baitą. Taigi piktavaliui perėmus pranešimą užtenka modifikuoti pirmąją pranešimo dalį tam, kad sužinoti antrosios dalies reikšmes. Žinant paskutinią bloko reiškmia, vienetą galima pakeisti dviem dvejetais ir vėl atlikti spėjimus kol bus sužinota prieš paskutinė reikšmė. Tokiu principu piktavalis gali sužinoti visą pranešimą. Veiksmingas būdas prieš tokia ataką yra pirmiau naudoti šifravimą, o tik tada skaičiuoti MAC. == Literatūra: == 1. http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation 2. [[http://en.wikipedia.org/wiki/Padding_(cryptography)|http://en.wikipedia.org/wiki/Padding_%28cryptography%29]] 3. http://www.ipa.go.jp/security/rfc/RFC2246-06EN.html 4. Stanford University online Cryptography course |
2. http://en.wikipedia.org/wiki/GNU_Privacy_Guard |
Žodis angliškai
Public-key cryptography
Žodis Lietuviškai
Viešojo rakto kriptografija
Paaiškinimai
Teorija:
Šifravimo metodas panaudojant asimetrinių raktų algoritmus. Jį naudojant nereikia gavėjui ir siuntėjui pasikeisti vienu ar daugiau slaptų raktų. Jame naudojama dviejų matematiškai susijusių raktų pora: viešas ir privatus raktai. Tačiau jie sudaromi taip, kad iš viešo rakto nėra paprasta nustatyti privataus rakto. Privatus raktas saugomas pas save, o viešas yra išplatinamas. Dokumento autentiškumas užtikrinamas skaitmeniniu parašu, sukurtu naudojant privatų raktą, o jį patikrinti galima panaudojant viešą raktą. Taip pat galima užšifruoti tekstą naudojant viešą raktą, - dešifravimui būtina turėti privatų raktą. Ši schema yra naudojamas Interneto standartuose TLS (SSL įpėdinis), PGP ir GPG. Neblogai šio metodo veikimą paaiškina analogija su pašto dėžute. Pašto dėžutės anga yra atvira ir prieinama kiekvienam; jo vieta (adresas) iš esmės yra viešas raktas. Kiekvienas, žinantis adresą, gali ateiti ir įmesti pranešimą į pašto dėžutę per jos angą. Tačiau tik tas, kuris turi raktą, gali ją atrakinti ir perskaityti joje esančius laiškus. O skaitmeninį parašą galima paaiškinti analogija su vaškiniu antspaudu. Laišką atplėšti ir perskaityti gali bet kas, tačiau nepažeistas antspaudas liudija jo autentiškumą. Pagrindinė problema, naudojant viešojo rakto metodus, yra konfidencialumas, t.y. užtikrinimas, kad raktas priklauso tam asmeniui, kuris teigia jį turįs. Įprastas konfidencialumą užtikrinantis principas yra viešo rakto infrastruktūros (PKI) naudojimas, tai yra schema, kai viena ar daugiau trečiųjų šalių, vadinamų sertifikatų tiekėjais, garantuoja raktų porų priklausomybę. Kitas principas, kurį naudoja PGP, remiasi „pasitikėjimu“. Silpna vieta Deja, visos viešo rakto sistemos nėra atsparios „grubios jėgos“ panaudojimui. Tai nėra praktiška tuo atveju, jei skaičiavimų skaičius („darbo veiksnys“, pagal Claude Shannon) yra per didelis potencialiems nulaužėjams. Daugeliu atvejų „darbo veiksnys“ gali būti padidintas tiesiog panaudojant ilgesnius raktus. Tačiau kai kurie metodams „darbo veiksnys“ yra gerokai mažesnis nei naudojant „grubią jėgą“. Tiek RSA, tiek ElGamal šifrai turi galimus nulaužimo būdus, greitesnius nei „grubi jėga“. Šifrų įveikiamumas padidėjo išaugus kompiuterių galingumui bei padarius naujus atradimus matematikos srityje. Bet ir tai galima apeiti parenkant pakankamai ilgus raktus, tokius, kad, kol dešifruosi informaciją, ji jau nebebus aktuali. Keliuose, atrodžiusiems perspektyviais, asimetrinių raktų algoritmuose rastos rimtos silpnos vietos. Pvz., nesaugiu pasirodė esąs „kuprinės sudėjimo“ algoritmas. Tikslaus laiko, reikalingo teksto iššifravimui, žinojimas gali supaprastinti reikiamų raktų paiešką. Taigi, asimetrinių raktų algoritmai negarantuoja saugumo ir šioje srityje vyksta aktyvūs ieškojimai, kaip nustatyti ir išvengti galimų naujų atakų. Kitas potencialus pažeidžiamumas yra galimybė trečiajai šaliai perimti viešų raktų apsikeitimą ir pakeisti viešus raktus. Gali būti perimti ir užšifruoti pranešimai, dešifruoti ir vėl užšifruoti naudojant korektišką raktą, kad nebūtų sukeltas įtarimas. Tai nelengva realizuoti, tačiau įmanoma, kai komunikuojama nesaugia terpe (pvz., viešais tinklais, tokiais kaip Internetas). Tokį perėmimą nesunkiai gali atlikti Interneto paslaugų tiekėjo personalas. Tokį pažeidžiamumą pašalinti leidžia sertifikatai, patikimų trečių šalių patikinimas, kad rakto vartotojas yra teisėtas rakto savininkas. Tačiau ir tai turi savo silpnų vietų – ir vis tik šis principas plačiai naudojamas (pvz., SSL ir tolimesnis jo išvystyme TLS). Viešą raktą gali žinoti didėlis ir praktiškai nežinomas vartotojų skaičius. Tad, prireikus, viešo rakto panaikinimas ar pakeitimas gali pareikalauti ilgo laiko tarpo, nes reikia informuoti visus raktą naudojančius vartotojus. Tad sistemos, privalančios reaguoti į realaus laiko įvykius (pvz., kritinio saugumo ar nacionalinio saugumo sistemos) neturėtų naudoti viešų raktų kriptografijos.
GPG:
GPG (GNU Privacy Guard) – yra GPL licencijuota alternatyva PGP, sudaranti kriptografijos programinę įrangą. GnuPG užšifruoja pranešimus naudodamas asimetrinės rakto poras individualiai su generuotas GnuPG vartotojo. Viešaisiais raktasi galima keistis sus kitais vartotojais įvairiais būdais pvz.: interneto raktų serveriais. Apsikeitimai visada turi būti saugūs, kad užtikrinti, kad duomenys nebus sugadinti, pažeidžiant raktą. Yra galimybė pridėti skaitmeninį parašą į pranešimą, taip žinutė bus apsaugota nuo pažeidimo, ir neteisėto skaitymo. GnuPG taip palaiko simetrinių kodavimų algoritmus. Pagal nutylėjimą GnuPG naudoja CAST5 simetrinį algoritmą. GnuPG nenaudoja patentuotų ar kitaip apribotos programinės įrangos ar algoritmų, tokių kaip IDEA šifravimo algoritmas naudojamas PGP. Vietoj to GnuPG naudoja įvairius kitus , nepatentuotus algoritmus: • Blokiniai šifrai (simetrinis šifravimo algoritmas): CAST5, Camellia, triple DES, AES, Blowfish ir Twofish. • Simetriniai rakto šifrai: EIGamal ir RSA. • Kriptografiniai „hash“: RIPEMD-160, MD5, SHA-1, SHA-2, ir TIGER. • Skaitmeniniai parašai: DSA ir RSA. GnuPG yra hibridinė šifravimo programa, kuri naudoja kombinacija įprastų simetrinių raktų kriptografija didesniam greičiui pasiekti ir viešojo rakto kriptografija, saugiam ir lengvam apsikeitimui. Paprastai naudojamas vartotojo viešasis raktas yra užšifruotas taip kad galima būtų panaudoti tik kartą. Ši galimybė yra dalis OpenPGP standarto ir tai buvo dalis PGP nuo pat pirmo versijos.