» »

Intervju z Dustinom Kirklandom, glavnim razvijalcem sistemov za šifriranje v Ubuntuju

English version

Dustin Kirkland je Ubuntu Core razvijalec, zaposlen pri podjetju Canonical. Preden je začel delati na razvoju Ubuntu serverja, je preživel 8 let pri IBM-u. Trenutno je osredotočen na razvoj Ubuntu Enterprise oblaka za prihajajočo različico Ubuntuja, 10.04 LTS, pred tem pa je delal na številnih drugih paketih in zmogljivostih najpopularnejše distribucije, vključno s šifriranim domačim imenikom. Je tudi vzdrževalec eCryptfs, kriptografskega datotečnega sistema, ki ga omenjena funkcionalnost uporablja. Vsekakor dovolj razlogov, da mu zastavimo nekaj vprašanj.

Slo-Tech: Od izdaje Karmic Koale naprej Ubuntu tudi uradno podpira eCryptFS. Lahko na kratko poveste kaj to sploh je in kako deluje?

Dustin Kirkland: eCryptfs je kriptografski datotečni sistem, ki je v Linux jedru prisoten že od različice 2.6.19. Od konkurentov, kot sta encfs in sshfs, ki delujeta s pomočjo FUSE-a v uporabniškem prostoru, se loči po tem, da gre za datotečni sistem v slojih, ki šifrira vsako datoteko posebej, namesto da bi šifriral celotno bločno napravo z dmcryptom ali šifriranim LVM-jem. Te zmogljivosti po mojem mnenju prinašajo številne zanimive prednosti in nudijo dobro rešitev za šifriran domači imenik. Pri zagonu sistema recimo ni potrebno vnašanje gesla. Ker se šifriranje izvaja v okviru jedra operacijskega sistema, je performančni udarec manjši. Kriptografski algoritmi so uveljavljeni in preizkušeni, saj se že uporabljajo marsikje drugje v jedru. Z rsyncom ali podobnimi orodji je možno ustvarjati inkrementalne varnostne kopije na oddaljen sistem, saj ni šifrirana celotna bločna naprava in lahko prenesemo samo posamezne spremenjene datoteke. Iz istih razlogov tudi prostora za šifrirane podatke ni potrebno dodeljevati vnaprej – šifrirane datoteke se enostavno zapišejo v globlje ležeč datotečni sistem.

Slo-Tech: Kakšne vrste zaščite uporabljate? Kako je šifrirni ključ zaščiten v pomnilniku (lahko administrator shrani vsebino pomnilnika v datoteko in iz nje izlušči ključ)? Se uporabljajo kakšni ukrepi za zmanjševanje učinkovitosti napadov s slovarjem (npr. uporaba soli)? Kaj pa imenik /tmp?

Dustin Kirkland: Osebno vedno priklopim /tmp v pomnilnik kot tmpfs. V Ubuntuju ob vsakem ponovnem zagonu tako ali tako izbrišemo vsebino tega imenika. Sicer pa ima večina mojih sistemov več kot 4 GB pomnilnika, tako da v /etc/fstab enostavno dodam ukaz: tmpfs /tmp tmpfs rw.

Kar se tiče drugega dela vprašanja – skrivanje podatkov pred administratorjem ali korenskim uporabnikom sploh ni cilj eCriptfsja. Njegov namen je zgolj zaščita uporabnikovih občutljivih podatkov, zapisanih na disk. Če iščete način za shranjevanje podatkov tako, da bodo skriti pred administratorjem, bi potrebovali kombinacijo sistema MAC (kot na primer SELinux ali AppArmor) in šifrirno rešitev. Sam ne poznam tovrstne rešitve za Linux (niti ne mislim, da je najbolj uporabna), če ne verjamete korenskemu uporabniku, imate velike težave. V končni fazi bi lahko tak uporabnik enostavno namestil program za prestrezanje tipkanja in tako dobil vaše podatke. Ali pa jih enostavno izbrisal. Ali spreminjal. Škodljivih možnosti je ogromno.

Pravi cilj eCryptfsja je zaščita vaših podatkov v primeru, da vam ukradejo računalnik ali trdi disk. V takšni situaciji bo tat videl samo šifrirane podatke in bo moral za dostop do njih razbiti varnostni ključ – tudi če uporabi LiveCD in znotraj tega okolja do vašega datotečnega sistema dostopa kot korenski uporabnik.

V privzetem sistemu Ubuntu generiramo naključen 128-bitni ključ in ga “zvijemo” z vašim geslom za prijavo. Posledično vam za dostop do šifriranih datotek ni potrebno vnašati nobenega drugega gesla, lahko pa tudi kadarkoli spremenite svoje geslo, ne da bi bilo treba datoteke ponovno šifrirati.

To seveda pomeni, da se bo tat, če ima dostop do datoteke z ovitim ključem ($HOME/.ecryptfs/wrapped-passphrase), raje lotil vašega gesla za prijavo, namesto da bi napadal 128-bitni ključ.

Tukaj se lahko zaščitite na dva načina. Najbrž ni potrebno posebej poudarjati, da je dobro uporabljati močno geslo, kar velja še toliko bolj, če se ga uporablja pri šifriranju vaših podatkov. Druga možnost pa je, da shranite zgoraj omenjeno rizično datoteko na odstranljiv medij (recimo USB ključ ali SD kartico), ki ga nato ob uspešni prijavi v sistem vsakokrat odstranite, na vaš trdi disk pa enostavno postavite simbolično povezavo.

Slo-Tech: Imate kakšne načrte za implementacijo t.i. verjetnega zanikanja?

Dustin Kirkland: Žal ne. Če bi bil kdo pripravljen implementirati funkcionalnost in pripraviti dober popravek, sem ga sicer pripravljen pregledati in vključiti v kodo, sam pa tega ne nameravam storiti.

Seznanjen sem s tem, da druge podobne rešitve verodostojno zanikanje omogočajo in da se večina uporabnikov zanima zanj predvsem zato, da bi lažje preslepili varnostne službe na letališčih in mejnih prehodih. Mene to ni nikoli zanimalo. Žal.

Če ste v situaciji, kjer predstavnik oblasti hoče vaše podatke, lahko ali pridobi sodno odredbo za vaše pravo geslo, ali pa vam nameri pištolo v pogačico. V nobenem primeru vam še tako napredna programska oprema ne bo pomagala.

Slo-Tech: V prejšnjih izdajah Ubuntuja je eCryptFS že bil na voljo, vendar zgolj za testiranje. Odkritih je bilo nekaj resnih ranljivosti, npr. imena datotek niso bila šifrirana. Ste od takrat izvedli kakšna varnostna testiranja ali dali sistem v vpogled varnostnim strokovnjakom?

Dustin Kirkland: Omenjene očitke odločno zavračam, odsotnost kriptiranih imen datotek ni bila ranljivost, ampak zgolj želena funkcionalnost, ki še ni bila prisotna. Dodana je bila v novejši izdaji Linux jedra.

V začetku je eCryptfs razvijal IBM-ov Linux Technology Center, v glavnem je na tem delal Michael Halcrow. Trenutno je vzdrževalec eCryptFS funkcionalnosti Tyler Hicks iz IBM-a, medtem ko sam vzdržujem uporabniški prostor. IBM ima dolgo zgodovino razvoja odličnih datotečnih sistemov za Linux, Unix in Mainframe, kot tudi pionirstva na področju moderne kriptografije (V vednost: Preden sem se pridružil Canonicalu, sem 8 let delal za IBM).

Tako zaposleni pri Canonicalu kot člani skupnosti Ubuntu smo eCryptFS obsežno preizkusili. Red Hat je prav tako vložil kup napora v njegovo testiranje in utrjevanje za uporabo v RHEL5 (hvala, fantje!). Na svojem blogu sem organiziral več izzivov, v katerih sem prosil ljudi, naj razbijejo različne implementacije sistema, pri čemer je vsak zmagovalec prejel simbolično nagrado. Tudi s to metodo je bilo odkritih nekaj zanimivih hroščev, od katerih so bili vsi kritični nemudoma odpravljeni, ostalo je le še nekaj manj pomembnih, za katere vemo in jih spremljamo.

Slo-Tech: Kako je z obnavljanjem šifrirnega ključa (v primeru, da nekdo pozabi svoje geslo)? Obstaja kak mehanizem (tim. key escrow) za izdelavo varnostne kopije le-tega?

Dustin Kirkland: Venomer ponavljamo, da si mora uporabnik generirani ključ zapisati in ga shraniti na varno mesto. Jaz sem si svojega natisnil in shranil v sef na banki. Prav tako imam na varnem mestu shranjeno digitalno kopijo.

Slo-Tech: Kaj se zgodi, ko uporabnik spremeni svoje geslo za prijavo. Ali je možno, da kopija prejšnjega ključa ali njegovega dela ostane zapisana na tim. praznem delu trdega diska, ki še ni bil prepisan?

Dustin Kirkland: Ko uporabnik spremeni geslo, enostavno uporabimo pam_ecryptfs za ponovno generiranje kombinacije naključno generiranega ključa in gesla.

Slo-Tech: Je možno uporabnikov ključ za eCryptFS povezati z drugimi moduli za avtentikacijo, kot sta na primer LDAP ali enkratno geslo? Kaj se zgodi, če administrator nato spremeni LDAP geslo?

Dustin Kirkland: Šifriranega domačega imenika še nisem preizkušal v kombinaciji z LDAP-om, zato nisem prepričan, kako dobro, če sploh, takšna kombinacija deluje.

Če administrator spremeni uporabnikovo geslo (pri čemer ne vnese njegovega starega gesla), se šifrirani domači imenik ne bo avtomatsko priključil takoj ob zagonu.

V tem primeru se mora uporabnik prijaviti in s pomočjo ukazov ecryptfs-rewrap-passphrase ali ecryptfs-wrap-passphrase ponovno ustvariti kombinacijo naključno generiranega ključa in gesla. Priznam, malce nepraktično, ampak upam, da gre za robni primer.

Slo-Tech: Kaj pa izmenjevalna particija?

Dustin Kirkland: Šifriranje izmenjevalne particije je kritičnega pomena za katerikoli sistem, kjer se izvaja kakršnokoli šifriranje, ne le za eCryptfs.

Če Ubuntu namestite z uradnega CD-ja in pri tem označite, da bi želeli šifriran domači imenik, bo vaša izmenjevalna particija avtomatsko šifrirana s pomočjo dmcrypta in ob zagonu naključno ustvarjenega ključa. S tem vam ni treba vnašati gesla ob vsakem zagonu, bo pa onemogočena hibernacija sistema (spanje še vedno deluje).

Osebno sploh ne uporabljam izmenjevalnega prostora. Če moram izmenjevati podatke na trdi disk, zmogljivost močno trpi, tako da raje dodam več pomnilnika v sistem :-).

Slo-Tech: Velika prednost eCryptFS-ja je nedvomno njegova primernost za večuporabniška okolja, kljub temu pa nešifrirana korenska particija še vedno ostaja težava. Nameravate v prihodnjih izdajah Ubuntuja ponuditi šifriranje datotečnih sistemov s pomočjo LUKS-a (Debian to možnost ob namestitvi že ima)?

Dustin Kirkland: Tudi Ubuntu ponuja šifriranja datotečnega sistema LUKS v alternativni in strežniški namestitvi. Uporabniki, ki jih naprednejša namestitev ne moti, lahko omenjeno funkcionalnost že sedaj brez težav uporabljajo. Šifriran LVM + LUKS je definitivno bolj celovita šifrirna rešitev, saj šifrira celoten trdi disk.

Še vedno pa ima nekatere pomanjkljivosti, ki so z našim šifriranjem domačega imenika rešene. Geslo moramo recimo vnesti že pred samim zagonom. V zadnjem času se trudimo, da bi izboljšali čas zagona sistema, a če je treba čakati na vnos gesla, je ves ta trud zaman.

Prav tako zna biti zadeva nepraktična v strežniških centrih, kjer direkten dostop večino časa ni možen in je treba sisteme zagnati na daljavo. Neugodno je, da morajo geslo poznati prav vsi uporabniki, ki želijo izvesti ponovni zagon.

Kot sem že omenil, je s tovrstnim načinom šifriranja tudi nemogoče delati varnostne kopije drugače, kot za celo napravo naenkrat. Za konec velja omeniti še performančne izgube – obstaja namreč ogromno podatkov, ki niso nikakor občutljivi (recimo vsebina /usr/bin in /lib) in jih nima smisla šifrirati.

Slo-Tech: Najbrž vam je znan napad zlobne sobarice (tim. Evil Maid attack) in ostali bootkit napadi. Ali obstajajo kakršnikoli načrti za omejevanje teh napadov? Na primer: hranjenje zagonske particije na zunanji napravi, šifriranje korenske particije s pomočjo LUKS-a, preverjanje integritete zagonskih skript, itd.

Dustin Kirkland: Da, omenjeni napadi so mi znani, a nimam nikakršnih namenov, da bi se ukvarjal z njimi. Po mojem mnenju jih je najbolj smiselno reševati predvsem s pazljivostjo pri fizičnem nadzoru sistemov, ne pa s predizajniranjem programskih rešitev. Pri tem bi lahko bil koristen TPM, ali pa, kot ste sami rekli, uporaba /boot particije na USB ključu. Gotovo obstaja ciljna publika, ki bi s tem kaj pridobila, a večine Ubuntu uporabnikov se tovrstni problemi ne dotikajo.

Slo-Tech: Palimpsest, novo diskovno orodje v Gnomeu, sedaj podpira šifrirane particije. Žal je njihova uporaba možna zgolj z geslom, ne pa tudi z datoteko s ključem. Enako velja za orodje GNOME mount. Nam lahko poveste, če se bo to v bližnji prihodnosti spremenilo?

Dustin Kirkland: Žal o tem ne vem nič.

Slo-Tech: Čisto praktično vprašanje – ko sem poskušal ustvariti novega uporabnika v Ubuntuju, nisem imel na voljo opcije za šifriran domači imenik. Zakaj je temu tako?

Dustin Kirkland: Predvidevam, da govorite o grafičnem vmesniku. V ukazni vrstici lahko uporabite ukaz: $ sudo adduser -encrypt-home in vaš problem bo rešen. V bistvu gre za funkcionalnost, ki obstaja in deluje, potrebno jo je le integrirati v GUI. Sam sodelujem pri razvoju Ubuntu Serverja, ki nima grafičnega upravitelja oken, tako da se načeloma izogibam orodjem z grafičnimi vmesniki ;-)

Slo-Tech: Od izdaje Karmic Koale je v Ubuntuju na voljo tudi Ubuntu One. Lahko na kratko razložite, za kaj gre? Najbolj me zanima tehnologija v ozadju (je NFS?).

Dustin Kirkland: Ubuntu One je oddaljena rešitev za shranjevanje podatkov v oblaku, ki je tesno povezana z namizjem Ubuntu, podobno kot DropBox. Vsi uporabniki Ubuntuja imajo brezplačno na voljo manjšo kapaciteto za shranjevanje datotek (mislim, da 2 GB), po želji pa lahko najamejo tudi več prostora (do 50 GB) kot dodatno storitev. Če uporabljate več sistemov z Ubuntujem in želite z vseh dostopati do svojih podatkov, je storitev gotovo zelo uporabna. O tehnični implementaciji ne vem prav dosti, ampak ne gre za NFS. Sistem bazira na FUSE.

Slo-Tech: Tahoe-LAFS je datotečni sistem za uporabo v oblaku, ki ponuja šifriranje in zanimive možnosti za reševanje podatkov, v Ubuntuju 9.10 so že na voljo binarni paketi za namestitev. Ali so v načrtu GUI orodja za ustvarjanje zasebnih oblakov (šifriranih pomnilniških naprav)?

Dustin Kirkland: Pomagal sem pri preizkušanju Tahoe-LAFS in sodeloval z njegovimi razvijalci, da se ga je lahko vključilo v Karmic Koalo, ampak kot sem že omenil višje, se poskušam izogibati orodjem z grafičnimi vmesniki, tako da o omenjenih načrtih ne vem prav dosti.

Slo-Tech: Kaj pa periferne naprave, kot so USB ključi? Je podpora za eCryptFS šifriranje v načrtu tudi zanje? Kaj pa Cryptsetup-LUKS podpora (s kakšnim orodjem z grafičnim vmesnikom)?

Dustin Kirkland: Trenutno nimam posebnih načrtov za integracijo USB pomnilniških naprav in eCryptFS-ja, bom pa funkcionalnost z veseljem preizkusil in vključil, če jo razvije kdo drug.

Na Cryptsetup-LUKS in grafičnih orodjih pa ne delam, tako da o tem res ne morem dosti povedati.

Slo-Tech: Ubuntu nima privzetega orodja za izdelavo varnostnih kopij. Ga nameravate v prihodnje vključiti in če, katerega (SBackup, Grsync, time-drive (Duplicity vmesnik))? Katerega bi sami priporočali?

Dustin Kirkland: Sam uporabljam kar cron + rsync + ssh. Ubuntujevo uradno orodje za omrežne varnostne kopije, reševanje in preverjanje podatkov je sicer Bacula.

Slo-Tech: Francoska policija ravno izvaja prehod na Ubuntu. Najbrž bodo imeli tudi nekaj posebnih zahtev, kot so strojni žetoni in pametne kartice za shranjevanje šifrirnih ključev. Kako dobro so tovrstne naprave podprte v Ubuntuju?

Dustin Kirkland: Takšnih specifičnih zahtev zaenkrat že nisem videl, poznam pa ljudi, ki uporabljajo pametne kartice za svoje SSH in GPG ključe v Ubuntuju. Sam nimam čitalca, tako da ne morem deliti osebnih izkušenj.

Slo-Tech: Še zadnje vprašanje: kakšna je uradna politika Ubuntuja do šifrirarnja? Obstaja uradna podpora in načrti za investicije na tem področju ali je vse skupaj bolj zanimiva dodatna funkcionalnost, katere implementacija in zmogljivost je bolj odvisna od osebnih preferenc posameznih razvijalcev?

Dustin Kirkland: Varnost je absolutno kritičnega pomena za Canonical in Ubuntu, številne varnostne funkcije so že privzeto omogočene (nobenih odprtih vrat, avtentikacija na podlagi uporabniških vlog, avtomatske varnostne posodobitve, varnostno utrjevanje jedra in prevajalnikov, UFW, AppArmor) in jih uporabniki dobijo avtomatsko.

Več o tem: http://www.ubuntu.com/products/whatisub...

Šifriranje pa bo po drugi strani najbrž ostalo nekaj, kar ljudje po želji dodajo svoji varnostni konfiguraciji. Pač ni za vse – in to pravim jaz, eden največjih zagovornikov in glavnih razvijalcev kriptografskih sistemov v Ubuntuju. Veliko ljudi enostavno nima podatkov, katerih varnost in tajnost je kritična. Ali pa nikoli ne potujejo s svojim računalnikom. Ali pa je le-ta komajda zmožen poganjati sistem že brez šifriranja.

Kljub temu želimo, da šifriranje ostane resna opcija za vse uporabnike Ubuntuja. Nadaljevali bomo z inovacijami, ki po eni strani omogočajo enostavno uporabo in po drugi strani za to ne tvegajo varnosti.

Slo-Tech: Hvala za vaše odgovore.

Intervju s Philipom Zimmermannom

Intervju s Philipom Zimmermannom

Philip Zimmermann je avtor šifrirnega programa (za šifriranje datotek in elektronske pošte) PGP (Pretty Good Privacy). Prvo različico programa je napisal leta 1991, program je tekel na popolnoma običajnih računalnikih PC in je bil za tedanje standarde uporabniške ...

Preberi cel članek »

Šifriranje nosilcev podatkov v okolju Linux in Windows

Šifriranje nosilcev podatkov v okolju Linux in Windows

Cryptography is a data-protection technology just as gloves are a hand-protection technology. Cryptography protects data from hackers, corporate spies and con artists, whereas gloves protect hands from cuts, scrapes, heat, cold and infection. The former can frustrate FBI wiretapping, and the latter can ...

Preberi cel članek »

Vzpostavitev v celoti šifriranega sistema

Vzpostavitev v celoti šifriranega sistema

Priporočamo, da si najprej preberete članek z naslovom: [st.povezava /clanki/07003 Šifriranje nosilcev podatkov v okolju Linux in Windows]. Opozorilo: Uporaba spodaj opisanih postopkov lahko privede do resne izgube podatkov ali do okvare sistema. V nekaterih nedemokratičnih državah je osebna uporaba ...

Preberi cel članek »

Interview with Dustin Kirkland, Ubuntu Core Developer about encryption in Ubuntu

Interview with Dustin Kirkland, Ubuntu Core Developer about encryption in Ubuntu

Dustin Kirkland is an Ubuntu Core Developer, working for Canonical on the Ubuntu Server. His current focus is developing the Ubuntu Enterprise Cloud for the Ubuntu 10.04 LTS release, but previously he had worked on a number of Ubuntu features and packages, including Ubuntu's Encrypted Home Directories. ...

Preberi cel članek »

Napadi na delovni pomnilnik

Napadi na delovni pomnilnik

Delovni pomnilnik ali RAM (Random Access Memory) je del računalnika, v katerem se začasno shranjujejo podatki. Podatki v RAM pomnilniku naj bi se po izključitvi računalnika iz napajanja izgubili, vendar bomo v nadaljevanju videli, da to ne drži povsem. Poleg tim. "običajnega" delovnega pomnilnika, ...

Preberi cel članek »