Tõsine turvalisus: Microsoft Office 365 rünnati nõrga krüptimisega PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Tõsine turvalisus: Microsoft Office 365 rünnati nõrga krüptimise tõttu

Me pole praegu päris kindlad, kuidas seda nimetada, seetõttu viitasime sellele pealkirjas hübriidnimega Microsoft Office 365.

(Nimi "Office" on Microsofti tekstitöötlus-, arvutustabeli-, esitlus- ja koostöörakenduste koondnimi. tapeti ära järgmise kuu või paari jooksul muutuda lihtsalt Microsoft 365-ks.)

Oleme kindlad, et inimesed jätkavad üksikute rakenduste nimede kasutamist (sõna, Excel, PowerPoint ja sõbrad) ja sviidi varjunimi Office aastaid, kuigi tarkvara uustulnukad tunnevad seda tõenäoliselt nii 365, pärast üldlevinud Microsofti eesliite eemaldamist.

Nagu võib-olla teate, sisaldavad Office'i eraldiseisvad rakendused (need, mille installite tegelikult kohapeal, nii et te ei pea oma asjadega töötamiseks võrku minema) oma võimalust salvestatud dokumentide krüpteerimiseks.

See peaks lisama täiendava turvakihi juhuks, kui jagate hiljem mõnda neist failidest kogemata või kavandatud viisil kellegagi, kes ei pidanud neid saama – seda on meili teel manuseid jagades kogemata üllatavalt lihtne teha.

Kui ja kuni te ei anna adressaadile ka faili avamiseks vajalikku parooli, on see neile lihtsalt nii palju hakitud kapsast.

Muidugi, kui lisate parooli e-kirja sisusse, pole te midagi võitnud, kuid kui olete mõne muu kanali kaudu parooli jagamisel isegi veidi ettevaatlik, olete ostnud endale täiendava turvalisuse petturite vastu. , snoops ja ebaviisakas, et pääseda hõlpsasti ligi konfidentsiaalsele sisule.

OME tähelepanu keskpunktis

Või on sul?

Järgi Teadlased Soome küberturvalisuse ettevõttes WithSecure võib teie andmetel olla palju vähem kaitset, kui võiksite mõistlikult eeldada.

Funktsioon, mida testijad kasutasid, on see, mida nad nimetavad Office 365 sõnumite krüpteeriminevõi Ome lühidalt.

Me ei ole nende katseid siin reprodutseerinud sel lihtsal põhjusel, et vabandust, Office'i põhitooted ei tööta Linuxis, mida me tööks kasutame. Office'i tööriistade veebipõhistel versioonidel ei ole sama funktsioonikomplekti kui täisrakendustel, nii et kõik tulemused, mida saame, ei ühti tõenäoliselt sellega, kuidas enamik Office'i ärikasutajaid, ah, 365 on Wordi, Exceli, Outlooki konfigureerinud. ja sõbrad oma Windowsi sülearvutites.

Nagu teadlased seda kirjeldavad:

Seda funktsiooni reklaamitakse selleks, et organisatsioonid saaksid turvalisel viisil saata ja vastu võtta krüpteeritud meilisõnumeid teie organisatsioonis ja väljaspool seda.

Kuid nad juhivad tähelepanu ka sellele, et:

Kahjuks on OME-teated krüptitud ebaturvalise elektroonilise koodiraamatu (ECB) töörežiimis.

EKP selgitas

Selgitama.

Paljud krüpteerimisalgoritmid, eriti Advanced Encryption Standard või AES, mida OME kasutab, on nn blokeerida šifrid, mis segavad korraga suuri andmetükke, mitte ei töötle järjestikku üksikuid bitte või baite.

Üldiselt peaks see aitama nii tõhusust kui ka turvalisust, sest šifril on rohkem sisendandmeid, mida algoritmi käivitava krüptograafilise vända igal pöördel segada-hakkida-hakkida ja vedeldada ning iga pööre viib teid kaugemale. andmete kaudu, mida soovite krüpteerida.

Näiteks AES-i põhialgoritm tarbib korraga 16 sisend lihtteksti baiti (128 bitti) ja segab need andmed krüpteerimisvõtme alla, et saada 16 krüptitud šifreeritud teksti väljundbaiti.

(Ärge ajage segadusse ploki suurus koos võtme suurus – AES-i krüpteerimisvõtmed võivad olla 128 bitti, 192 bitti või 256 bitti pikad, olenevalt sellest, kui ebatõenäoliselt soovite neid arvata, kuid kõik kolm võtme suurust töötavad 128 bitistel plokkidel iga kord, kui algoritmi "vändatakse".)

See tähendab, et kui valite AES-võtme (olenemata pikkusest) ja kasutate seejärel AES-i šifrit otse andmepaki peal ...

... siis iga kord, kui saate sama sisendi, saate sama väljundi.

Nagu tõeliselt massiivne koodiraamat

Sellepärast nimetatakse seda otsest töörežiimi EKP, lühike elektrooniline koodiraamat, sest see on justkui tohutu koodiraamat, mida saaks krüpteerimiseks ja dekrüpteerimiseks kasutada otsingutabelina.

(Täielikku "koodiraamatut" ei saa kunagi päriselus koostada, sest peate salvestama andmebaasi, mis koosneb kahest128 16-baidised kirjed iga võimaliku võtme jaoks.)

Kahjuks, eriti arvutivormingus andmete puhul, on teatud andmetükkide kordamine tänu kasutatavale failivormingule sageli vältimatu.

Näiteks failid, mis täidavad rutiinselt andmelõike nii, et need reastuvad 512-baidiste piiridega (tavaline sektori suurus kettale kirjutamisel) või 4096-baidistele piiridele (tavaline jaotusühiku suurus mälu reserveerimisel), toodavad sageli faile pikad nullbaidised jooksud.

Samamoodi sisaldavad palju kordusi tekstidokumendid, mis sisaldavad palju tähiseid, nagu päised ja jalused igal lehel või ettevõtte täisnime korduv mainimine.

Iga kord, kui korduv lihtteksti jupp lihtsalt juhtub AES-ECB krüpteerimisprotsessis 16-baidise piiriga reastama, ilmub see krüptitud väljundisse täpselt sama šifritekstina.

Seega, isegi kui te ei saa šifreeritud tekstifaili formaalselt dekrüpteerida, võite sellest teha koheseid, turvalisust purustavaid järeldusi tänu sellele, et sisendi mustrid (mida võite teada või järeldada, või arvata) on väljundis säilinud.

Siin on näide, mis põhineb artiklil, mille avaldasime peaaegu üheksa aastat tagasi ja selgitasime, miks Adobe kasutas nüüd kurikuulsat EKP-režiimis krüptimist oma kasutajate paroolide "räsimiseks" Pole hea idee:

Tõsine turvalisus: Microsoft Office 365 rünnati nõrga krüptimisega PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.
Vasakule. Algne RGBA pilt.
Õigus. Pildiandmed on krüpteeritud AES-128-ECB-ga.

Pange tähele, kuidas sisendis ühtlaselt valged pikslid tekitavad väljundis usaldusväärselt korduvat mustrit ja sinised osad jäävad mõnevõrra korrapäraseks, nii et algandmete struktuur on ilmne.

Selles näites võtab iga piksel algses failis täpselt 4 baiti, seega on iga sisendandmetes jooksev vasakult paremale 4 piksli pikkus 16 baiti, mis joondub täpselt iga 16-baidise AES-i krüpteerimisplokiga, rõhutades seega "EKB efekt".


Salateksti mustrite sobitamine

Veelgi hullem on see, et kui teil on kaks dokumenti, mille kohta teate, et need on sama võtmega krüptitud, ja teil on lihtsalt ühe neist lihttekst, saate vaadata läbi šifreeritud teksti. ei saa dekrüpteerida ja proovige selle osad sobitada teie šifreeritud teksti mustritega võimalik dekrüpteerida.

Pidage meeles, et te ei vaja võtit esimese dokumendi dekrüpteerimiseks, kui teil on see juba dekrüptitud kujul – seda teatakse mitte üllatavalt kui tuntud lihtteksti rünnak.

Isegi kui on vaid mõned vasted näiliselt süütust tekstist, mis pole ise salaandmed, võivad teadmised, mida vastane sel viisil ammutada saab, olla kullakaevandus intellektuaalomandi spioonidele, sotsiaalinseneridele, kohtuekspertiisi uurijatele ja muule.

Näiteks isegi kui teil pole aimugi, millele dokumendi üksikasjad viitavad, saate teadaolevate lihtteksti tükkide sobitamise teel mitme faili vahel kindlaks teha, et näiliselt juhuslik dokumentide kogum:

  • Kõik saadeti samale adressaadile, kui igaühe ülaosas on ühine tervitus.
  • Viidata samale projektile, kui seal on kordumatu identifitseeriv tekstistring, mis pidevalt ilmub.
  • neil on sama salastatus, kui soovite keskenduda asjadele, mis on selgelt mõeldud olema "saladasemad" kui ülejäänud.

Mida teha?

Ärge kasutage EKP režiimi!

Kui kasutate plokkšifrit, valige a plokkšifri töörežiim et:

  • Sisaldab nn IV või initsialiseerimisvektorit, valitud iga sõnumi jaoks juhuslikult ja kordumatult.
  • Korraldab teadlikult krüpteerimisprotsessi nii et korduvad sisendid tulevad iga kord erinevalt.

Kui kasutate AES-i, soovite tõenäoliselt praegu valida režiimi AES-GCM (Galois Counter Mode), mis mitte ainult ei kasuta IV-d, et luua iga kord erineva krüptimisega andmevoogu, isegi kui võti jääb samaks, vaid arvutab ka nn. Sõnumi autentimiskood (MAC) või krüptograafiline kontrollsumma samaaegselt andmete skrambleerimise või lahtikodeerimisega.

AES-GCM tähendab mitte ainult seda, et väldite korduvaid šifriteksti mustreid, vaid ka seda, et saate alati "kontrollsumma", mis annab teada, kas äsja dekrüpteeritud andmeid muudeti.

Pidage meeles, et kelm, kes ei tea, mida šifritekst tegelikult tähendab, võib siiski petta teid usaldama ebatäpset dekrüpteerimist, teadmata (või hoolimata), millise vale väljundiga te lõpuks saate.

MAC, mis arvutatakse dekrüpteerimisprotsessi käigus sama võtme ja IV alusel, aitab tagada, et teate, et saadud šifritekst on kehtiv ja seega olete peaaegu kindlasti dekrüpteerinud selle, mis algselt teises otsas sisestati.

Teise võimalusena kasutage spetsiaalset voo šifr mis loob pseudojuhusliku bait-baidipõhise võtmevoo, mis võimaldab teil andmeid krüpteerida, ilma et peaksite korraga töötlema 16 baiti (või mis iganes ploki suurust).

AES-GCM muudab sisuliselt AES-i voošifriks ja lisab autentimise MAC-i kujul, kuid kui otsite spetsiaalset voošifrit, mis on spetsiaalselt loodud sellisel viisil töötama, soovitame Daniel Bernsteini ChaCha20-Poly1305 (Poly1305 osa on MAC), nagu on kirjeldatud artiklis RFC 8439.

Allpool oleme näidanud, mida saime AES-128-GCM ja ChaCha20-Poly1305 abil (jätsime siin MAC-koodid kõrvale) ning 95,040 330 RGBA baiti (72 × 4 XNUMX baiti piksli kohta) koosneva "pildiga" Linuxi kerneli pseudojuhuslik generaator.

Pidage meeles, et see, et andmed näivad struktureerimata, ei tähenda, et need on tõeliselt juhuslikud, kuid kui need ei tundu juhuslikud, kuid väidavad, et need on krüpteeritud, võite sama hästi eeldada, et mõni struktuur on maha jäänud ja et krüptimine on kahtlustatav:

Mis saab edasi?

WithSecure'i andmetel, Microsoft ei kavatse seda haavatavust parandada, ilmselt Office 2010 tagasiühilduvuse põhjustel...

Office'i (2010) pärandversioonid nõuavad AES 128 ECB ja Office'i dokumente kaitsevad endiselt Office'i rakendused.

… Ja…

[WithSecure'i teadlaste] aruannet ei peetud turvateeninduse nõuetele vastavaks ega ka rikkumiseks. Koodi ei muudetud ja seetõttu ei väljastatud selle aruande jaoks CVE-d.

Lühidalt, kui kasutate praegu OME-d, võiksite kaaluda selle asendamist tundlike sõnumite jaoks mõeldud kolmanda osapoole krüpteerimistööriistaga, mis krüpteerib teie andmed sõltumatult need sõnumid koostanud rakendustest ja töötab seega sisemisest krüptimisest sõltumatult. kood Office'i vahemikus.

Nii saate valida moodsa šifri ja moodsa šifri töörežiimi, ilma et peaksite pöörduma tagasi Office 2010 sisseehitatud vana kooli dekrüpteerimiskoodi juurde.


KUIDAS ME ARTIKLIS OLEVAD PILTID TEGIME

Alustage saidiga sop330.png, mille saate luua
ise, kärpides puhastatud SOPHOSe logo
ülemisest pildist, eemaldades 2-pikslise
sinine piir ja salvestamine PNG-vormingus.  Pildi suurus peaks olema 330 x 72 pikslit.
 Teisendage ImageMagicki abil RGBA-ks:

$ teisendada sop330.png sop.rgba

Väljund on 330 x 72 pikslit x 4 baiti piksli kohta = 95,040 XNUMX baiti.
 ===

Krüptige Lua ja LuaOSSL teegi abil (Pythonil on väga
sarnane OpenSSL-i sidumine):

-- laadige andmed
> fdat = misc.filetostr('sop.rgba')
> fdat:len()
95040

- luua šifreeritud objekte
> aes = openssl.cipher.new('AES-128-ECB')
> gcm = openssl.cipher.new('AES-128-GCM')
> cha = openssl.cipher.new('ChaCha20-Poly1305')

-- lähtestage paroolid ja IV-d
-- AES-128-ECB vajab 128-bitist parooli, kuid mitte IV
-- AES-128-GCM vajab 128-bitist parooli ja 12-baidist IV-d
-- ChaCha20 vajab 256-bitist parooli ja 12-baidist IV-d
> aes:encrypt('THEPASSWORDIS123')
> gcm:encrypt('THEPASSWORDIS123','andkrokeutiv')
> cha:encrypt('THEPASSWORDIS123THEPASSWORDIS123','qlxmtosh476g')

-- krüptida failiandmed kolme šifriga
> aesout = aes:final(fdat)
> gcmout = gcm:final(fdat)
> chaout = cha:final(fdat)

- voo šifr loob bait-baidi haaval väljundi,
-- seega peaks šifreeritud tekst olema tavatekstiga sama pikk
> gcmout:len()
95040
> chaout:len()
95040

-- me ei kasuta siin GCM-i ja Poly1305 MAC-koode,
-- aga iga šifr loob 128-bitise (16-baidise) "kontrollsumma"
-- kasutatakse dekrüpteerimise autentimiseks pärast selle lõpetamist,
-- tuvastada, kas sisend šifreeritud tekst on rikutud või häkitud
-- (MAC sõltub võtmest, nii et ründaja ei saa seda võltsida)
> base.hex(gcm:getTag(16))
a70f204605cd5bd18c9e4da36cbc9e74
> base.hex(cha:getTag(16))
a55b97d5e9f3cb9a3be2fa4f040b56ef

-- looge 95040 "pilt" otse failist /dev/random
> rnout = misc.filetostr('/dev/random',#fdat)

-- salvestage need kõik - pange tähele, et me kärbime selgelt AES-ECB
-- blokeerige šifri väljund täpselt vajaliku pildi pikkuseni, sest
-- EKP vajab polsterdust, et sisendi suurus sobiks ploki suurusega
> misc.strtofile(aesout:sub(1,#fdat),'aes.rgba')
> misc.strtofile(gcmout,'gcm.rgba')
> misc.strtofile(chaout,'cha.rgba')
> misc.strtofile(rndout,'rnd.rgba')

===

Failide laadimiseks tavalisse pildivaaturisse võite
peate need kadudeta PNG-vormingusse teisendama:

$ teisendada -sügavus 8 -suurus 330x72 aes.rgba aes.png
$ teisendada - sügavus 8 - suurus 330x72 gcm.rgba gcm.png
$ convert -depth 8 -size 330x72 cha.rgba cha.png
$ teisendada -sügavus 8 -suurus 330x72 rnd.rgba rnd.png

===

Arvestades, et krüpteerimisprotsess segab kõik neli
baiti igas RGBA pikslis, on tulemuseks oleval pildil
muutuv läbipaistvus (A = alfa, lühend läbipaistvusest).
 Teie pildivaatur võib otsustada seda tüüpi kuvada
malelaua taustaga pilt, mis tekitab segadust
näib olevat osa pildist, aga ei ole.  Seetõttu meie
kasutas algkujutise Sophose sinist a
krüptitud failide taust, et neid lihtsamaks muuta
vaatama.  Üldine sinine toon ei ole seega osa
pildi andmed. 

Ajatempel:

Veel alates Alasti turvalisus