Locked History Actions

Skirtumas „NaujasŽodisTemplate“

Pakeitimai tarp versijų 3 ir 85 (patvirtinamos 82 versijos)
Versija 3 nuo 2009-02-04 14:40:45
Dydis: 488
Redaktorius: Eimantas
Komentaras:
Versija 85 nuo 2013-04-03 21:33:15
Dydis: 4175
Redaktorius: Ramunas
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 1: Eilutė 1:
= Žodis angliškai = == Žodis angliškai ==
CBC padding attack
Eilutė 3: Eilutė 5:

== Santrumpa ==
##Jeigu yra įrašykite Santrumpą

Eilutė 10: Eilutė 7:
CBC priedų ataka
Eilutė 12: Eilutė 10:
== Apibrėžimas ==
##Suformuluokite termino apibrėžimą
Eilutė 15: Eilutė 11:
----
Eilutė 17: Eilutė 12:
##Plačiau paaiškinkite terminą, juo nusakomo objekto svarbą, veikimo principą ir tt. '''''Teorija:'''''
Eilutė 19: Eilutė 14:
----
== Naudota literatūra ==
''CBC (cipher block chaining) šifro bloko sukaustymas''
Eilutė 22: Eilutė 16:
##Pateikite naudotos literatūros sąrašą 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.
Eilutė 24: Eilutė 18:
''Padding – priedas''
Eilutė 25: Eilutė 20:
----
CategoryŽodis
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ų.''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:'''''

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. „

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

Žodis angliškai

CBC padding attack

Žodis Lietuviškai

CBC priedų ataka


Paaiškinimai

Teorija:

CBC (cipher block chaining) š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.

Padding – priedas

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ų.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:

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. „

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_%28cryptography%29

3. http://www.ipa.go.jp/security/rfc/RFC2246-06EN.html

4. Stanford University online Cryptography course