Szerteszana²

grin agymenései
Archívum Október 2017

What Firefox loses while blending in

2017-10-30 09:17 írta grin

"Fuck you, Mozilla."

Don't take me wrong: I understand security, I have the knowledge to see why rewriting APIs can be good, I can see why replacing a bad internal structure with a decent, state-of-the-art one is good.

There is a difference, however, between forcing the developers to change to the new set of internal functions, and therefore force people to replace the old add-ons with the new ones -- versus removing old function calls when new ones aren't yet written and not available, alienating add-on developers with mediocre communication and inflexibility.

It is not helping that by replacing the old with the new the browser incidentally loses the flexibility of manipulations the add-ons have enjoyed, which resulted rich funcionality available from the outside developers and the core browser was not forced to accumulate millions of interesting functions which is used by some percent of the users, but they are indeed very important for that few percent.

So what Mozilla does right now? They are rewriting the internals to be faster and more secure. While doing it they create new internal access (API) for addons to be able to do their magical work within the browser; except, they haven't created all of the old APIs and recreated some (well, due to the new structure some say many) APIs with much less functionality. They started to remove the old APIs. When plugin developers complained that their old code stop working and it's not possible to write new one since there is no API for that the mozilla developers said "your problem, not mine" (well, often they simply said "fuck off" in various forms, but it's just the difference of style, really, same thing). So some developers of really important, or some really well written plugins said "sorry, there's no happy feeling to write this stuff anymore, I'm gone". Since, you have to see, these developers wrote code for good feeling, not money. No good feeling, no code.

Let me show you an example. There was a feature in mozilla which grouped the various tabs in tab groups, then was able to display a quick overview of tabs to pick from; it's essential when you work with large amounts of tabs. Then the core developers said "well we don't use it so you shouldn't either" and removed the feature and said "well this is Firefox, so if you need it code an addon!". And so that is exactly what happened, and Tab Groups addon was created with the same functionality. Happyness. Then comes new Firefox and all the APIs required for Tab Groups are either removed or changed to the extent that it's not possible to do it anymore. And the developer calls out to Mozilla to make it possible to have it rewritten. "It's not a good way to do things", says Mozilla, "we don't need that addon." Nice.

I see the Firefox Nightly channel, this is where the latest development version can be checked, tried. Eventually Nightly become Beta, then Release, then ESR (Extended Support Release), which is what most everyone uses. Right now Nightly rejects 95% of the addons I have been using. It takes half a year until Nightly become ESR. You have 6 months to get away.

Let me just show some:

Morituri

  • Tab Groups - with 570 tabs it's not possible to live without this
  • Auto unload tab - free memory used by a tab without losing its state
  • DownThemAll - download manager with brains
  • Master Password Timeout - essential security when a strong master password protects lots of not that important passwords
  • Saved password editor - what the name says, this is essential when someone uses the password db
  • PasswordMaker - create passwords with a strong master and the hash of the website address (good for some kind of use)
  • Session manager - I hate to lose browser state; firefox by itself loses it every few restarts, session manager never have lost any.
  • YouTube video and audio downloader - obviously
  • HttpFox - tracing the web traffic to hunt bugs
  • Lazarus form recovery - do you like to lose the feedback form you typed for 35 minutes? Firefox does.
  • NoScript - clickjacking, fake forms, evil javascript; we don't need those
  • Calomel SSL validation - TLS security checker, for the security geek
  • HTTP2 / SPDY indicator - I like to know
  • Tab memory usage - firefox can't say which tab eats memory
  • Stylish - when I want CSS to do what I want
  • UAcontrol - for some really braindead sites

And some small stuff not important even to me.

All of these are going to be trashed.

What works

  • uBlock origin
  • uMatrix (webext)

That's… um… not a long list.

What now?

Some addon developers still hope to kick some sense into Mozilla developers and try to create tickets to have the missing API coded by the time the new WebExtension based addons (well, those few) will trump over the old ones. Some people are creating tickets to tell mozilla about their addon usage and the loss they will experience when the shit will hit the fan. Some Mozilla developers try to help.

But in general Mozilla core developers reply that "this feature need 4th level security review so it has been delegated to committe no. 44 and it's been planned to be discussed in some future non-specific date." Which means in human language that "we do not oppose your request but we don't support it either, we put it into the TODO pile and let's hope someone's picking it up; you may code an API for it and you may even use it but you should expect us to notice and remove or change it any time". (This is what's happening to most of the security related APIs.) For some feature they said "we don't like this feature, so we try to remove everything related to it", which means that they don't just remove the API but they remove the whole feature (this may well happen to one of the most important thing Firefox have: the integrated, secure password storage).

So I expect either they delay the release of Beta, Release and whatever (until the required APIs going to be discussed and designed and accepted and coded and verified and hopefully after addon developers had some time to actually incorporate them into their code, which seems rathat unlikely) or they release it in its current crippled form, which kills off lots of addons and alienate lots of addon developers and people actually start looking for better alternatives.

And the inconvenient thing is that if Firefox addons can do exactly the same as Chromium addons then there's no point to pick Firefox; or at least out of 100 reasons to do it there are some 20 left.

But either way, the users going to lose the functionality of the old addons. So it's going to be worse for them.

…except that I know these kind of addons are only used by geeks and hackers and coders, and the average people use addons which make buttons look like yawning cats, addons which animate the background and addons which play a merry tune when the page have loaded. Those people will not notice much. They going to write their passwords into a text file, they will click on the phishing sites' fake buttons, their memory use will be compensated by buying more RAM, and they don't give a fuck about who and how figure out what the bugs are and how to fix them.

It's the hard life of the intelligent minority versus the happily ignorant masses.

Have you been pwned?

2017-10-06 11:47 írta grin

A jelszóbiztonságról szeretnék neked mesélni.

Kaptam egy emailt egy tök jó szolgáltatástól, a neve Have I been pwned?, ami neminformatikus nyelven annyit jelent, hogy „ellopták-e az adataimat?”. Az email közölte, hogy az XY@PQ.ORG email címemet a BimBamBum webes szolgáltatás 2014-es betörésekor megszerezték a jelszóval együtt, amit a BimBamBum Inc. egy 15 perc alatt visszafejthető „kódolással” kódolt le.

Szar ügy.

Ez ugye mit jelent?

  • Ha a jelszó egyszerű volt (általában a 10 karakternél rövidebb, vagy szótárban is létező szavakat tartalmazó szavakat [bármilyen „tréfás” átirattal, pl. „j3lsz0” vagy „jElSzo”] tekintsük rövidnek), akkor vehetjük úgy, hogy nem volt kódolva, vagyis az emailcím+jelszó páros ismert.
  • Ha a jelszó ismert, akkor az email+jelszó párost már el is adták jó pénzért több tucat bűnözőnek, szíves felhasználás céljából. Ezután MINDEN nyilvános szolgáltatáson robotok ezrei fogják végigpróbálni, hogy ez a párosítás eredményez-e sikeres belépést, az email küldéstől a twitteren át a banki belépésekig. Ha eredményez, boldogan használni fogják.
  • Ha a jelszó bonyolult volt, és te nem vagy politikailag vagy gazdaságilag értékes célpont, akkor nem tudják a jelszót visszafejteni, és esélyesen „csak” az email címedet fogják árulni, mint ellenőrzött spam célpontot.

És akkor most elmesélem, hogy nekem miért nem okoz ez lelki törést. Azért, hogy legközelebb neked se okozzon.

Az én jelszavam kódolt változtatát is elvitték. Nem mennek vele semmire.

Az adott szolgáltáson még 2014-ben, amikor kiderült, és a szolgáltató értesített megváltoztattam a jelszót. (Sok szolgáltató ezt automatikusan megteszi, amúgy.) Így oda ezzel már nem fognak belépni. Pipa.

A jelszavam hosszú, az ottani konkrétan 12 karakteres volt. Így ennek direkt visszafejtése (ebben az esetben) valószínűtlen, mivel a mostani technológia szerint egészen sok pénz kellene hozzá (becslések szerint 100-nál több GPU 1 évig dolgozna rajta, becsült költsége $2.5 millió.)

De tegyük fel, hogy nem volt hosszú, vagy valakinek épp van a sufniban 1000 GPU-ja és rászán egy hónapot az én kis jelszavamra. Szóval megvan a jelszó.

Ezt a jelszót csak ezen az egy szolgáltatáson használom. Másképp fogalmazva: minden belépéshez új jelszót készítek. A fentiekből kitalálhatóan hosszabbat, mint 10 karakter. A fentiekből kitalálhatóan véletlenszerű karakterekből és nem szótári szavakból.

Ez azt jelenti, hogy még ha tudják is a jelszót, azt semmilyen más szolgáltatás esetén nem fogják tudni használni, és mivel ezen a szolgáltatáson már megváltoztattam, ott sem. Nem nyertek vele semmit, maximum az email címemet spammelni (ami egy másik okból nem zavaró: az email címem közvetlenül tanítja a spam szűrőmet, amit több tucat server is használ, így minden spammer hozzájárul a világ spam-mennyiségének csökkentéséhez).

„Jó, jó, ” – mondhatod – „de hogy jegyezzek meg végtelen számú jelszót? Post-iteljem a homlokomra?”

Jó ötlet! Na de tényleg, nem az. Tök zavaró amikor pislogsz és levágja a szemhéjadat. Ne ezt tedd.

Jelszó-manager, password manager, password vault, meg Allah tudja, milyen neveken futnak azok a programok, amik megjegyzik a jelszavakat. És most mondhatod, hogy nahát, fantasztikus, akkor ha valaki ellopja ezt a file-t, ott vannak a jelszavak!

Nyilván a jelszavakat titkosítani kell. Ez nehéz feladat: az interneten található „biztonságos” jelszótárolók nagy része egyszerűen csak – népies kifejezéssel élve – szar. Nem biztonságos, rosszul van megírva, siralom. A másik feladat sem könnyebb: ha jó is a titkosítás akkor is kell egy mesterjelszó (master password), ami sokkal biztonságosabb, mint a jelszavak, amiket tárol, hiszen ha ezt visszafejti valaki akkor ott az összes jelszó. És ezt meg kell jegyezni, ezt az egyet, de azt nagyon, és ezt sokat kell begépelni, hiszen – optimális esetben – a jelszótároló rendszeresen rákérdez, ha egy ideig nem használtad (általában 5-10 perc nem használat után illik újra rákérdezni). Ez egy nehéz feladat.

Az első esetben sajnos vagy értesz a kriptográfiához, a programozáshoz, és sok időd van, és ellenőrzöd a kiválasztott jelszótároló program biztonságát, vagy pedig próbálsz olyan forrásokat találni, akik ezt megtették. Én nem tudok neked garantált választ adni…

Frissítés: Eredetileg azt írtam, hogy:

…de azt tudom, hogy én a Keepass2-t használom (én Linux és Android alatt, de eredetileg Windows-os); ez egy nyílt forrású, egészen sokat nézegetett program, és eddig jelentős kifogást nem hallottam róla. Ha gondolod, ezt tudod használni…
…de egy konktruktív szakmai vita folytán, mely során felmerült a KeePass gagyi integrációja a böngészőkkel, a múlt évezredbeli (vagyis Mono) GUI, illetve a tárolt adatok formátumának „elméleti (nem)biztonsága”, rátaláltam a Password Safe programra, és „ahogy megismertem Őt, azonnal megváltoztatta az életem, és ezen a héten húsz százalékkal olcsóbban!”. ;-) Úgyhogy úgy néz ki, hogy importáltam a KeePass jelszavaimat és most őt tesztelem; ugyanúgy offline, de jelentősen modernebbnek néz ki, és kellemes browser és android integrációja van. Így most úgy néz ki, ezt fogom használni. Én konkrétan az eszközeim között megosztom a jelszófile-t, így a gépen felvett jelszó elérhető a telefonon is (mert felhőből továbbra is csak a sajátot).

(Én nem szeretem az online jelszótárolókat, mint amilyen például a LastPass. Számos probléma volt velük azon túl, hogy hálózati kapcsolat szükséges a használatukhoz, ami nem minden esetben szerencsés, pláne, hogy jelszavakat küldözgetünk egy távoli rendszerre, még ha kódoltan is. Mások viszont szeretik és használják, így nem mondom, hogy ne. De azt se, hogy ige. :-))

A második és sokkal nehezebb probléma a mesterjelszó, ami – mint említettem – legyen megjegyezhető, legyen hosszú, ne legyen kitalálható, ne tartalmazzon szótári szavakat[1], és ne legyen extrém bonyolult beírni (például telefonon). Ez egy szép, egymásnak is látszólag ellent mondó feltételrendszer. Az emberiség által jelenleg legjobbnak tartott módszer az, hogy nem „jelszót”, hanem „jelmondatot” használsz, vagyis több, lehetőleg egymáshoz semmi kapcsolattal nem rendelkező szót, vagy olyan mondatot ami írásban nem fordul elő, lehetőleg legalább 1-2 olyan szóval, ami egyáltalán nem létezik. Jó, hülyén hangzik, de a klasszikus módszerek egyike például, hogy veszel egy számodra megjegyezhető kifejezést, mondjuk „három ember képes egy titkot megőrizni, ha ebből kettő már meghalt” (– Benjamin Franklin), és a kezdőbetűkből képzed a „heketmhekmm” szót. (Praktikus módon, ha könyvből akarsz kifejezést nyerni, akkor igyekezz nem unalomig ismert forrást találni, például kerüld az iskolában kötelező módon tanított verseket vagy a Himuszt [bár azt úgysem tudod már].)

Tekintve, hogy a jelszót sokszor be kell írni, én így a „jelmondat” és a „nem létező szó” kombinációt javaslom: 1-2 nem létező szóból álló, legalább 10 karakternél hosszabb mesterjelszó a mindennapi élethez elegendő biztonságot adhat („a tudomány mai állása szerint”). Ha az ember belehajít még egy-két írásjelet is, az is sokat dob a helyzeten, a fenti példából mondjuk egy „heketmhekmm%emaktyk” egészen frappáns jelszó lehet (persze ezeket a példákat kerüld el, mert az Anyám tyúkja is egészen ismert).

Az is igaz, hogy a mesterjelszó problémára létezik egy „harmadik” megoldás, a klasszikus információbiztonság elveinek megfelelően a „valami, amit tudsz + valami, amivel rendelkezel + valami, ami vagy”, vagyis egy titkos információ, egy titkosító eszköz és egy személyes biometriai jellemző (például ujjlenyomat vagy retinaminta). Ezzel várhatóan fogsz találkozni, valahányszor be kell menned a Nevadai sivatagban található Area-51 bázisra, de amúgy otthoni jelszótárolásnál nem jellemző. Vannak programok (és elvileg a KeePass is képes rá) amik képesek mesterjelszó helyett USB tokent használni; különösen ha a token PIN kóddal is védett, akkor ez meglehetősen biztonságos módja a jelszótárolásnak.

Összefoglalva tehát: ha nem akarod, hogy kiverjen a víz amikor kiderül, hogy ellopták egy jelszavadat egy feltört weblapról, webshopból vagy szolgáltatásból, akkor a jelszavaid legyenek egyediek, legyenek véletlenszerűek, legyenek hosszúak (10 karakter minimum), tárold őket biztonságos módon titkosított jelszókezelőben amit egy biztonságos, hosszú, megjegyezhető és használható jelmondattal védesz. Így egészen jók az esélyeid, hogy a nevedben ne történjenek olyan dolgok, amiket nem szeretnél, és ne vezessenek ahhoz, hogy az internet szolgáltatód letilt, a tárhelyszolgáltatód kizár vagy éjjel kettőkor mérsékelten udvrias rendőrök kérdezik a személyes adataidat.

Lábjegy

  1. Jogos kritikaként érkezett, hogy igazából ha 3-4 szóból áll a jelmondat akkor ha a szavak szótári, de amúgy vegyesen gyakori és ritka szavakból állnak, illetve nem kitalálhatóak vagy kapcsolhatóak a személyhez (mert tegyük fel, hogy aki vissza akarja fejteni akár infomációkat is próbálhat gyűjteni) akkor az is kellően biztonságosnak tekinthető. A statisztikák szerint egy átlagos beszélő 10-20 ezer szót ismer és használ, ami szavanként nagyjából 13 bitet jelentene, ha csak a szótári kombinációkat nézzük. Ilyen szempontból 4 szó már kielégítő, és ezeket már vizuális technikákkal meg lehet jegyezni.
  2. Aaron Toponce: Random Passphrases Work, Even If They're Build From Known Passwords.
  3. Password strength checker a zxcvbn könyvtárat és csak helyben futtatott javascriptet használva; főként angol szavakra kihegyezve.

Másiklábjegy (2017-11-12)

Mivel több esetben felmerült, beidéznék néhány cikket arról, hogy Bill Burr, aki 2003-ban elkészítette a ma már közismert „krixkrax jelszó, rendszeresen megváltoztatva” elvet bocsánatot kért a világtól a tévedéseiért, hogy mi változott 2017-ben és hogy miért nem alapvetően jó megoldás a userek halálra szivatása, és persze hogy mi az új NIST irányelv, ami a jelszavakról is említést tesz (lásd 5.1 fejezet illetve az Appendix A).

A lényeg – according to NIST – 2017-ben: minimum 8 karakter, és a maximum hossz minimum 64 karakter (de a melléklet említi a megabyte méretű jelszavak életrevalóságát is, persze inkább anekdotikus szinten), a karakterkészlet lehetőség szerint nem korlátozott (tehát lehet benne szóköz, bármi nem non-printing karakter, unicode [de ennél fontos a normalizálás: NFKC/NFKD], stb.), nem használunk publikus „hint”-eket és kifejezetten nem „titkos személyes információkat” (pl: mi a jó édes anyádnak… a neve?), valamint kiszűrni a nagyon gáz jelentkezőket: a legismertebb jelszavak listái, szótári szavak, ismétlődő mintázatok és kontextusfüggő egyezések, mint pl. a user saját neve vagy emailcímének darabjai. Javasolt a jelszóerősség mutatása, a jó jelszó ismérveinek nem kötelező érvényű ismertetése. Nem alkalmazunk további megkötéseket és nem követelünk rendszeres jelszóváltást (NIST SP-800-63B; 5.1.1.2.).

Archívum Október 2017

Szerteszana²

grin agymenései