[ Dusannn @ 19.04.2005. 19:05 ] @
Interesuje me, kako se na Linux-based OS-u moze promeniti mehanizam hesiranja lozinki koje se smestaju u /etc/shadow. Iz podrazumevanog MD5 u modifikovan MD5 (ili neki drugi).
Koje konfiguracione fajlove treba modifikovati? Koje biblioteke(..module) skinuti i povezati u kernel?
Unapred sam zahvalan na svakoj sugestiji, linku, licnom iskustvu, i td..

[ Dusannn @ 20.04.2005. 00:13 ] @
Ok..vidim da je veeeliki feedback..to je odlicno. :)
Nego..zakljucijem trodnevno istrazivanje i sa zakljuckom da imam dva potencijalna izlaza:
1. PAM (Plugable Authentification Modules)
2. Modifikaciju login programa ( i/ili crypt.h biblioteke)

Sad..ako postoji i treci nacin, ili ako imate jake argumente za neki od ova dva ... otvoren sam za sugestije.
Iskreno Vas,
Dule.
:)
[ random @ 25.05.2005. 14:34 ] @
Možda je najlakše da u startu koristiš neku distribuciju koja već ima podršku za moderniji hashing algoritam, kao što je recimo Openwall (koji koristi Blowfish). Ili možeš da patchuješ već postojeću distribuciju:

http://www.openwall.com/crypt/
http://www.openwall.com/tcb/

Da, pored Openwalla, tu je i ALT Linux... http://www.altlinux.com/
[ Dusannn @ 25.05.2005. 23:46 ] @
Veliko hvala na odgovoru!
Prvo, od kljucne vaznosti je da se zameni postojeci password hashing mehanizam i to postane integralni deo distribucije.
Drugo, od kernela 2.2 postoji Shadow Suite koji menja programe login, paswd i jos 10-tak. (sorce-vi su u paketu util-linux*.*).
Posle getty, dize se login program, pa ako pogledas malo source code *.c fajla, (mislim da se funkcija zove getspasswd(...) ili slicno ) pojavljuje se samo dekleracija te funkcije. Naravno, postoji i *.o file u kome se (verovatno) nalazi definicija. Resenje je da implementiram moj crypto-modul u kernel ( "custom_md".ko ) i da se promene dve funkcije koje imaju zadatak da heshuju i da uporedjivanjem dva digest-a izvrse autentifikaciju korisnika.
Elem, Shadow Suite je prvenstveno razvijan za BSD-based sisteme, "nategnuta" je dozvola za linux OS-ove. Ogranicena je na nekog poljaka i njegov razvojni tim. Znas kako kazu : " Secas se onih alpina? Nista od toga..Mrka kapa! "

Jedini si koji se javio na post uopste...zato imas moje poštovanje. Još jednom - HVALA!
Molim potencijalnog citaoca da oprosti na nepreciznim podacima iznetim u ovom postu, jer sam trenutno u sred projekta u C#, pa nisam u mogucnosti da podatke predstavim u njihovoj integralnoj formi, vec ovako ad-hoc, i po secanju.

[ random @ 29.05.2005. 16:45 ] @
Ok, ti hoćeš da modifikuješ shadow da koristi neku tvoju hash f-ju. Ali mi nije jasno sledeće:

1) Šta će ti kripto modul u kernelu?
2) Otkud ti to da je shadow razvijan za BSD sisteme? I šta je to nategnuto kod njegove licence (u pitanju je neka BSD-style licenca koliko vidim)?
3) Kako se to funkcije definicija nalazi u .o (objektnom, jelte) fajlu a nema je u sorsu? Možda je gcc generiše "na kvarno"? :o)
[ Dusannn @ 22.06.2005. 22:49 ] @
Zdravo!
Prvo, izvini zbog duze pauze izmedju tvog posta i mog odgovora (opravdano sam bio odsutan-razlozi zdravstvene prirode !)!
Citat:

1) Šta će ti kripto modul u kernelu?

Resenje je zahtevalo takav zahvat.
Citat:

2) Otkud ti to da je shadow razvijan za BSD sisteme? I šta je to nategnuto kod njegove licence (u pitanju je neka BSD-style licenca koliko vidim)?

Kako bi rekli englezi "right from the horses mouth"..znaci...
The current maintainer of the Shadow Suite, Marek Michalkiewicz <[email protected]> received the source code from the original author under a BSD style copyright that allowed redistribution.
Kod nije "otvoren" u klasicnom,linuxsovskom smislu, sto ces saznati ako procitas odgovor na pitanje broj tri. Kljucne reci "copyright" i "redistribution" ...znaci prosledi i koristi (ili obrnuto..kako ti je drago.
Citat:

3) Kako se to funkcije definicija nalazi u .o (objektnom, jelte) fajlu a nema je u sorsu? Možda je gcc generiše "na kvarno"? :o)

Zato sto se kompajliranje sastoji iz vise koraka, a jedan (medju)korak je generisanje tzv. "objektnog koda", ali to je vec prica za srednjoskolce...elem..deklaracija funkcije se nalazi u *.c fajlu dok se definicija funkcije nalazi u *.o fajlu, "masakrirana" od strane kompajlera i pretvorena u objektni kod, cekajuci linkera da zavrsi posao.
Deklaracije funkcija su ti date da bi mogao da ih koristis kao interface za neku tvoju aplikaciju, cisto da znas koje argumente da koristis..koju vrednost vraca..itd.

Opet..hvala na interesovanju.. cenim dobru nameru.
Zao mi je sto sam morao zbog novog posla da predjem na .NET tehnologiju...ali bice boljih dana.
Sve najbolje,
Dusan.