Hmm, a preco zle pouzity xargs, ked to ide aj bez neho?
$ touch 'ubuntu 10.04.iso'
$ ls *.iso |xargs openssl md5
vs
openssl md5 *.iso
Samozrejme, nemusime vyuzivat len sluzieb shellu, ale to je zase o nieco zlozitejsie (negarantujem, ze to pobezi vsade):
find . -maxdepth 1 -iname '*.iso' -type f -print0 | xargs -0 openssl md5
pokud pises jen veci pro sebe a jednorazove, tak neni duvod, ale pokud neco delas, aby sis usetril cas i priste, pripadne, aby to mohl pouzit i nekdo jiny tak je to na miste.
Tenhle pristup proc bych mel psat veci kompatibilne, kdyz to stoji 5 znaku navic, malinko zavani MS apod. praktikama.
Dokumentace zmiňuje, že parametr -salt je implicitní volba, takže není asi třeba jej explicitně uvádět, jestli to dobře chápu.
Také bych trochu rozvinul tvrzení, že solení hesel komplikuje útok hrubou silou ... pokud se nepletu, tak reálně pouze znemožňuje použití předpočítaných hodnot klíčů/hashů. Pokud by se někdo snažil hrubou silou prolomit zašifrovaný soubor, tak pravděpodobně bude napodobovat chování uživatele a zkoušet zadávání hesel, kde solení není žádnou překážkou.
Jinak děkuji za pěkný článek a co se pokračování týče, tak o vytvoření vlastní jednoduché CA tu už něco kdysi bylo, ale hlasoval bych pro téma "ručních" operací s certifikáty jako jsou třeba podpisy dokumentů/mailů a jejich ověřování
ale přeci při dekódování (= ověřování hesla, když to tak řeknu) je sůl známá, takže ji útočník může vesele použít, ne?
komplikuje to útoky, kdy přijde člověk a má několik GB spočítaných hashů a jenom vyhledává shody, aniž by je přímo počítal ... tuším, že na tomhle principu jsou založené Rainbow Tables k prolamování WinXP (ale nevím jestli je to aktuální)
Je to o řád složitější. Máš řady v Rainbow tables a vygeneruješ řadu z hashů prolamovaného systému. A když máš štěstí, tak se potkáš. Pak nastoupíš o stupeň výše v rainbow table a dogeneruješ hashe až ke kolizi. Nakonec použiješ onu kolizi. Při troše snahy pak odfiltruješ i tu sůl (ultimate win).
Rainbow table totiž zásadně neobsahuje všechny řetězy možných hashů, jen jejich část.
V případě basic authentication se údaje předávají v hlavičce Authorization
.
Authorization: Basic username:password
Přičemž username:password musí být zakódováno pomocí base64.
Klientský certifikát zadáte jako parametry -cert
resp. -key
. Ale openssl
je v případě HTTPS vhodné asi jen na ladění SSL, jinak je jednodušší použít wget
nebo curl
.
Díky, ale nepochopil jsem to. Předpokládejme volání příkazu
openssl ocsp -issuer issuerCert.pem -cert myCert.pem -text -url http:/www.nejakaadresa.cz/cesta
Nemám kam dát hlavičku s Authorization
. Tuto lze přidat leda do zmíněného příkazu curl
.
Klientský certifikát jsem myslel pro ověření klienta pro přístup k serveru (namísto basic authentication). Nikoli jako předmět o němž se snažím získat status.
Přímo na webu OpenSSL je jedna Win varianta linkovaná. Zkušenosti ovšem nemám.
Ujo Google :
http://www.linuxsoft.cz/article.php?id_article=389
a pozrite si clanok ....
Hanbite sa.
Dost užitečný option u s_client je -servername, který zapíná Server Name Indication. Je už celkem dost serverů, které na stejné IP sdílejí různé FQDN.
Zobrazení celého certificate chainu v PEM kódovaní:
openssl s_client -connect www.google.com:443 -servername www.google.com -tls1 -verify 5 -showcerts < /dev/null
Rozparsování serverového certifikátu se SHA256 fingerprintem:
openssl s_client -connect www.google.com:443 -servername www.google.com -tls1 < /dev/null | openssl x509 -noout -text -fingerprint -sha256
Dále, různě zvolené ciphersuites v optionu -cipher můžou servery teoreticky vrátit jiné certifikáty - jiný pro RSA, DSA a ECDSA.
Spíš scháním nějakou jednoúčelovou knihovnu (C/C++) na digitální podpis,je mi jedno, podle jaké normy, a jak se generují klíče, ale hrozně rád bych ocenil, aby to fungovalo jak má, tedy podepsat soukromým klíčem a ověřit veřejným klíčem. A opět, nechci kolos, který umí deset norem a dvacet hashovacích funkcí a zvedne velikost výsledné binárky z 1MB na 20MB.
To mate bohuzel smulu. Ale s timhle, co jste napsal, by vam mohly stacit ty examples, co k OpenSSL jsou dodavane.
Ono delat "jednoucelovou knihovnu" se nikomu nechce, protoze jak se zacne mluvit o digitalnich podpisech a sifrovani tak lidi zacnou vyzadovat certifikace a podobne ptakoviny a nakonec stejne skoncite u OpenSSL nebo GnuTLS, kde pro programatora je jedno horsi nez druhe.
Marco Peereboom napsal "assl" jako wrapper nad OpenSSL; ten kod jsem nijak nezkoumal, nicmene jednoduche a pochopitelne bych cekal, ze to bude dostatecne :-)