"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.
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
- 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.
-
Aaron Toponce: Random Passphrases Work, Even If They're Build From
Known Passwords.
- 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.).