...ha rákérdezek valamire, akkor a másik pont azt fogja mondani, ami
a valódi szándéka. Pl. ha el akarja venni a táskámat az utcán, akkor
rákérdezés esetén erről értesít. :)
Ha ez a helyzet, hát Krav Maga.
Egy ilyen világban az adatáramlás is egészen jól koordinálható, ha
valakinek valamire szüksége van, akkor elkéri / megkérdezi.
Na ez nem az a világ.
Wake up Dorothy, you are not in Kansas anymore.
Gyűjtögetők
PRISM
NSA
GCHQ
Google
Facebook
...
Többé-kevésbé a következőkből áll a világ.
Vannak, akik "csak" gyűjtik az adatot. Buzzwordök: PRISM, NSA, GCHQ,
Google, Facebook, stb. Hallgatnak, analizálnak, saját hasznukra
fordítják azt az információt, amihez hozzájutnak.
A legtöbb jelenlévő ebbe a társaságba tartozik, hiszen valamilyen
módon akár egy jó edm kampány vagy egy Facebook alkalmazás is ezt a
célt szolgálja.
Adatot gyűjtünk, hogy értéket növelve visszaadjunk valamit és még mi
is keressünk rajta egy nagy halom pénzt. Google esetén hirdetés, NSA
esetén nemzetbiztonság.
Ghostery
# trackers: 1730
# cookies: 742
Ghostery
És ezek csak az ismertek. Gyalogoljatok fel egy tetszőleges warez
vagy pornó szájtra, ott lesz még egy nagy halom -- olyan is, amit nem
akartok. ;)
Irányítók
Vannak, akik a gyűjtögetésnél is tovább mennek és elveszik az adatot,
átveszik az irányítást, stb. Legtöbbször rájuk szoktunk úgy
hivatkozni, hogy hekkerek. Tuti van közöttünk ilyen is. :)
...és a tömeg
És persze van a bamba tömeg, ... érteni sem akarják ... nem is
dolguk.
célokhozzáértés
...és a rendszergazda
Megérkeztünk. Tipikusan olyan emberek, akikben megbízunk, akik pl.
segítik az életünket azzal, hogy telepítenek mindenféle okosságot.
Olyan dolgokat, amik legtöbbször segítik az életünket.
A probléma
Mi van, ha a rendszergazda hirtelen más érdekek mentén kezd mozogni?
Mi van... Szopó.
∴ Rendszergazda = Hekker.
Hirtelen belőle pont olyan ember lesz, akiben megbízunk, de épp nem
azokat a célokat... na. ez gond.
Példák
Legegyszerűbbtől... a nehezebbeken át...
Induljunk a legdurvábbtól: rendszergazdaként simán megnézzük az
egységsugarú felhasználók fájljait.
Ehhez még érteni se' kell a dolgot. Mint egy átlagfelhasználó.
Ennél egy fokkal keményebb dió, ha valamihez érteni is kell, mondjuk
egy adatbáziskezelő. Ha a connection string a gépen van (általában
ott van), akkor nyert ügyünk van.
...mi van, ha az titkosított? akkor kell olvasni a memóriát -- pl.
virtuális gépből...
vagy mondjuk felhasználói inputra van szükség? de hozzáférünk a
kódhoz valamilyen módon?
Még a cross-domain dolgokkal sem kell foglalkozni. Ott van a gépen a
"CGI" vagy megérkezik, vagy nem (általában meg fog)
Ebben az a durva, hogy google és api.jquery.com segítségével 1 perc
24 másodperc alatt vadászható össze.
Injected Ruby WS
require 'webrick' # stdlib része :)
Thread.new do
WEBrick::HTTPServer.new(
:Port=>2000,:DocumentRoot=>Dir::pwd
).start
end
Vagy mondjuk itt ez a pár sor Ruby kód, ugyancsak google egyperces,
amivel processzen belül tudok egyszerűen szervert indítani. Ha kell,
a WEBrick kódját is be lehet előtte a require sor helyett pakolni.
Rendszergazdaként ez még egyszerűbb is lehet, hiszen Apache, nginx és
egyéb szerver-hegyek állnak általában rendelkezésre.
Evalra annyi mód van... hát Ruuuby...
Vagy mondjuk Rack modult integrálni egy bármilyen Rails környezetbe.
Ken Thompson Hack
Mai tyúk-tojás #1
Sőt, az OSX olyan ökoszisztémát állított össze, amiben arra is van
lehetőség, hogy...
Vagy olyan dolgot telepít fel, amivel vírusként tudja kiterjeszteni
saját "rossz" érdekeltségét azokon a megoldásokon keresztül, amit én
állítok elő.
Erre jó példa a KTH, ami arról szól, hogy...
Megoldás
David A. Wheeler
http://imgur.com/a/BWbnU
és persze a linkerről, az összehasonlítást végző programról még szó
sem esett... :)
meg arról sem, hogy -- ha egészen paranoiásak vagyunk -- akkor
tulajdonképpen a hálózatról letöltött szoftverben sem bízhatunk meg.
sőt abban sem, amit most épp használunk -- lásd Apple...
írjunk újat, nulláról. napersze #2.
Az úr az, aki a kódot hozza
Ez a fontos!
∴ Rendszergazda = Szállító.
Tehát nem szabad bedőlni annak sem, hogy iCloud keychain, meg "igen
hatékony, 256 bites AES", mert az egész nem ér semmit, ha olyan
programot szállítanak, ami valahogy menti a jelszavainkat és elküldi
valahova néhanapján.
http://arstechnica.com/information-technology/2013/10/apple-claim-that-icloud-can-store-passwords-only-locally-seems-to-be-false/
JS crypto considered harmful
Mai tyúk-tojás #2
The PGP cryptosystem is approaching two decades of continuous study.
Just as all programs evolve towards a point where they can read email,
and all languages contain a poorly-specified and buggy implementation
of Lisp, most crypto code is at heart an inferior version of PGP.— Matasano Security
Hasonló tyúk-tojás problémák miatt nem érdemes mostanában (még) JS
titkosításra komoly üzletet alapozni. A különbség itt az, hogy ezeket
nem nagyon lehet megoldani.
Hogyan juttatunk el úgy kódot, hogy azt előbb-utóbb ne tudja
módosítani valaki a kliensen, a szerveren vagy akárhol, ahol
hozzáfér a csatornához vagy a kódhoz.
Probléma, hogy a tartalom vezérli a kódot, nincsenek rendszerközeli
primitívek cryptohoz, nincs rendes random generátor és nem lehet
biztonságosan tárolni egy kulcsot. Csak ennyi a probléma. Ha ezek
megoldódnak, akkor szuper.
http://www.matasano.com/articles/javascript-cryptography/
emscripten + OpenSSL
emscripten + GnuPG
És mégis vannak ilyen őrültek. Sőt, mindjárt kiderül, hogy én is...
Rossz eszközök
if ( moo)
{
blah();
}
if (bad)
goto err;
...
if (0) {
err:
do_something_horrible();
}
Ez OpenSSL.
Ha nem a paranoia, vagy a szuperzseni irányból, hanem a hozzánemértés
vagy a direkt genyaság irányából közelítjük meg, akkor az OpenSSL projekt
ragyogó állatorvosi lova a gányolt kódnak.
http://www.peereboom.us/assl/assl/html/openssl.html -- Marco Peereboom
*WASH_Eyes_outWith_soap*
Helyette számos esetben lehet PolarSSL-t használni, ami nem amerikai,
de legalább holland, ami egy kicsit közelebb van, meg jóval inkább
EU. Ennél is fontosabb, hogy lényegesen szebb a forráskódja és nem
terjedt róla el, hogy majmok programozták.
olyan kódban, ami ilyen, még a leggyakorlottabbak sem tudnak
értelmesen hibát keresni.
Nincs az a nyavaja, hogy ezt valaki átlássa, még automatákkal sem.
OK, automatákkal? hajrá. egy ilyet azok sem esznek meg.
Dark corners of C
Rob Kendrick
#define else
És persze ilyet is csinálhat a rendszergazda, egyszerűen az stdlib.h
vagy valamelyik bepakolásával...
Rob Kendrick -- Some dark corners of C
https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/edit?pli=1#slide=id.gec7eb408_3500
Megoldás?
Kikerülhető a gonosz Rendszergazda?
Megkerülni nem lehet, de ha a kódhoz semmi köze sincs, akkor
átugorható. Ha olyan forrásból tudjuk beszerezni a futtatott
kódjainkat -- kernel, libek, programok -- és csak a hálózati
kommunikáció, illetve a távoli adattárolás a feladata, akkor
elképzelhető.
Ultimate Holy Grail
Fully Homomorphic Encryption
Gentry, van Dijk, Halevi, Vaikuntanathan, Brakerski, Coron, Naccache,
Tibouchi
Ezt a három szót és ezt a pár nevet érdemes a következő pár évre
megjegyezni. A lényeg annyi, hogy olyan tárolási eljárást takar, ami
a titkosított adatokon a normál adatbázis-műveletek megtartását
jelenti, azaz titkosított adatokon SQL műveteleteket hajthatunk
végre, a feldolgozó számára az adat fekete dobozként megy be és úgy
is jön ki.
Végpont titkosított / aláírt kommunikáció
Bevásárlólista
Bizalom
Kód védelme, eljuttatása és futtatása
Adatok védelme és eljuttatása
Ha valami nem frankó és tiszta, akkor azt bahhatjuk