Dvoufázoví ověřování v libovolné aplikaci

Dvoufázoví ověřování v libovolné aplikaci
« kdy: 06. 11. 2014, 23:59:34 »
Ahoj,
posledni dobou jsem si zvyknul pouzivat dvoufazove overovani pomoci Google Authenticatoru.
Pro SSH pouzivat soucasne 3 zpusoby:
1) Prihlasovani klicem, pak se pouziva pouze heslo ke klici (zadne dvoufazove overovani)
2) LAN - v lan se prihlasuju pouze pomoci jmena a hesla
3) Vsude jinde musim pouzit jmeno, heslo a vygenerovany kod z Google Authenticatoru
samozrejme muzu ve vsech pripadech pouzit jenom ssh klic.

Co potrebuju: nektere programy nepodporuji zadani overovaciho kodu a ja se pak nemuzu prihlasit.
Dneska se mi to stalo v Ubuntu Mate, pripojovaci klikatko v nautilu se nebylo schopne zeptat na overovaci kod.

At neresim porad jen SSH - co treba Samba? Windows se taky ptaji jenom na jmeno a heslo, ale zadny overovaci kod neresi.

Je nejak mozne zadat overovaci kod primo do hesla? Nebo existuje nejake jine reseni?
« Poslední změna: 07. 11. 2014, 12:37:25 od Petr Krčmář »
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."


Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #1 kdy: 07. 11. 2014, 00:55:16 »
Yubico by to melo umet. Zkousel to nekdo? Je mozne to puzivat na vlastnim server s beznou Google Authenticator Android aplikaci bez Yubikey?

Citace
Yubico has implemented this in their PAM module. When you authenticate, you provide both password and one-time-pass.
E.g. password is "foo1234", and one-time-key is "abcd", you would log in with "foo1234abcd". Yubico's PAM would then cut "foo1234", validate "abcd", and if the validation is SUCCESS it will return "foo1234" to the next PAM module, e.g. pam_unix.so. You need to add the switch "use_first_pass" for pam_unix.so
https://code.google.com/p/google-authenticator/issues/detail?id=34#c3
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

Xyz

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #2 kdy: 07. 11. 2014, 01:03:10 »
Nevím jak s Google Authenticatorem, ale v případě YubiKey a RSA tokenu se většinou OTP zadává hned za heslo. Protože OTP má fixní počet znaků vezme PAM modul to zadané heslo, ufikne z něj posledních X znaků, první část ověří jako normální unixové heslo a druhou jako OTP. Tím pádem je aplikaci úplně jedno že používáš OTP (Google Auth, YubiKey, RSA) prostě se zeptá na heslo a co dostane předá PAMu aby si s tím nějak poradil.

Takže přihlašování by pak vypadalo takhle nějak:
Username: ferda
Password: ferdyheslo123456
Kde 123456 je ten kod z Google Auth.

Jak říkám s YubiKey to takhle funguje, stačí správně nakonfigurovat PAM pro danou aplikaci - my tak máme nakonfigurované např OpenVPN přihlašování přičemž OpenVPN samozřejmě o OTP nemá vůbec potuchy.

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #3 kdy: 07. 11. 2014, 01:22:34 »
Presne to potrebuju.

A daji se overovaci kody generovat Google Authenticatorem na Androidu?
Pokud by to slo, mohl bych pouzit yubico pam modul a pouzivat google authenticator.

Jaky presne token pouzivate? Uz delsi dobu take uvazuji o hw reseni. Rad bych ale, aby podporovalo bezne pouzivane "cloud" ucty (Google, Dropbox, Facebook) + abych to mohl pouzivat na svych serverech. Samozrejme by mel byt co nejlevnejsi :-)

"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #4 kdy: 07. 11. 2014, 01:33:45 »
Cenova zajimave vypada Gemalto's Ezio. Udajne by by mel byt kompatibilni s Google Authenticatorem.
Cena 13USD je vyborna, ale mozna by bylo nutne koupit drazsi verzi. U teto pisou "for Use with Amazon Web Services Only".

Je mozne pouzivat jeden HW token pro vice uctu, ktere pouzivaji Google Authenticator?
V androidi aplikaci jsem musel pridavat kazdy ucet samostatne. Mit 10 tokenu by nebylo uplne nejstastnejsi...


"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."


Xyz

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #5 kdy: 07. 11. 2014, 05:26:56 »
YubiKey se strka do USB a generuje neco takoveho: cccccbgfgdldunudiltnnrdflblfkbdvtlbuiuclukch - takze pocitam ze to neni kompatibilni s Google Authenticatorem.

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #6 kdy: 07. 11. 2014, 09:25:50 »
Jaky presne token pouzivate? Uz delsi dobu take uvazuji o hw reseni. Rad bych ale, aby podporovalo bezne pouzivane "cloud" ucty (Google, Dropbox, Facebook) + abych to mohl pouzivat na svych serverech. Samozrejme by mel byt co nejlevnejsi :-)
Zvažoval jsi i použití normálního tokenu nebo smartcarty (PKSC11)?

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #7 kdy: 07. 11. 2014, 21:55:27 »
Zvažoval jsi i použití normálního tokenu nebo smartcarty (PKSC11)?
Zatim moc ne. Nemam s nimi temer zadne zkusenosti.
Znas nejaky levny, ktery pujde snadno pod Linuxem? Rad bych mel i moznost pouzivat aplikaci na Androidu, nejen hw zarizeni.
Je mozne pak pouzivat token i pro pristup napr. ke Google uctu?
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

Re:Dvoufazove overovani v nepodporovane aplikaci (Google Authenticator)
« Odpověď #8 kdy: 07. 11. 2014, 22:59:22 »
Znas nejaky levny, ktery pujde snadno pod Linuxem?
Taková střední cesta býval Feitian, kterej funguje v pohodě s OpenSC, ale má dvě nevýhody:

1. čínský výrobce - někteří lidi tvrdí, že mu nevěří tolik, jako výrobcům z US a že prý se jim nelíbí nějaké ne úplně transparentní konstanty, co se prý někde ve zdrojácích používají. To už je na tobě, jakou máš míru paranoie... Každopádně OpenSC je opensource, takže tady jde jenom o riziko, že k tobě fyzicky přijde nějakej Číňan záměrně proto, aby ukradl ausgerechnet tvůj token s ausgerechnet tvým klíčem. Nevím, nakolik to považuješ za reálný riziko pro tebe osobně :)

2. svýho času šel koupit přes prodejce ve Francii (gooze.eu*), ale ti už to teď neprodávají, prý by to mělo jít koupit napřímo od Číňanů, ale to nevím.
Cena byla nějaká rozumná, do tisícovky u usb tokenu a u smartkarty snad dvě stovky? Už nevím, musel by ses poohlídnout.

Kdybys pokukoval po jiné značce, tak si hlavně dej pozor na to, jestli to je opravdu hw token a ne nějaký šméčko, který vlastní šifrování/podepisování dělá v sw... Musíš se dívat na konkrétní model - třeba Aladdin měl vtipně řadu 1000,2000 a 3000, kde první z nich byl sw a další už hw... 2k a 3k už se lišily myslím jenom FIPS certifikací nebo tak něco, ale 1k řada byla vyloženě šmé...

Asi nejlepší máš se kouknout na https://www.opensc-project.org/opensc/wiki/SupportedHardware

* ještě mají na webu návody, tak na to můžeš kouknout, jak se to používá - např. http://www.gooze.eu/howto/using-openssh-with-smartcards/using-ssh-authentication-agent-ssh-add-with-smartcards

Rad bych mel i moznost pouzivat aplikaci na Androidu, nejen hw zarizeni.
S tokenem/kartou se s trochou fantazie dají dělat různý kouzla, protože prostě v kartě máš normální RSA klíč a karta umí na žádost podepsat hash, aniž by klíč kartu opustil. Je na to standardní API (PKCS11), který pak umí různý softwary použít (např. PAM, Firefox, SSH, ssh-agent, windows...)

Protože je to otevřenej standard, můžeš si něco dopsat i sám - já jsem třeba zkusil takovouhle věc: https://github.com/mprymek/cagent  (BACHA! Nejsem žádnej bezpečnostní expert, takže použití čistě na vlastní nebezpečí!)

Je mozne pak pouzivat token i pro pristup napr. ke Google uctu?
Jsou nejspíš různý způsoby, ale žádnej nemám vyzkoušenej, takže nemůžu doporučit. Např. v MacOSu jde klíčem na smartkartě zamykat Keychain, kde můžeš mít uložený různý hesla k webům. Podobně to nejspíš bude s nějakýma těma gnome-keyringama apod., nevím, nepoužívám.

Jestli má Google nějakej oficiální support pro přímý přihlašování s využitím PKCS11, to nevím, ale nejspíš ne: https://productforums.google.com/forum/#!topic/chrome/hWW4OwtFxdY