skripty a hesla

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pátek Září 13 15:25:51 CEST 2002


On Fri, 13 Sep 2002, Jirka Kosina wrote:

> > Hesla, pokud maji byt vubec (z nejakeho hodne dobreho duvodu) ulozena
> > nekde v souboru, patri do zvlastniho a zvlast chraneneho souboru.
> 
> Ten soubor musi mit ten skript (potazmo tedy webserver) pravo naincludovat 
> (nebo provest nejakou podobnou akci). Cili ve vyse zminenem modelu musi 
> byt citelny pro others (resp. staci, bude-li citelny pro nobody, ale to se 
> musi explicitne otravovat webmaster, protoze linux tusim neumi chown na 
> ciziho uzivatele...).

To, aby byl soubor s heslem citelny, neni ani nutne, ani zadouci. Ale lze
to vyresit jinak, nez samotne skripty. Napr, u skriptu muze byt grupa
vyuzita pro zapis zucastnenych autoru, zatimco u skriptu muze byt grupa
vyuzita pro cteni z webserveroveho uzivatele. Nebo muze skutecne zasahnout
webmaster ci jiny privilegovany uzivatel -- coz by melo byt snesitelne,
pokud se to heslo nebude menit kazdy den.

> Tomu, aby ten soubor s hesly byl citelny pro webserver se asi nevyhneme.  
> Takze postacujici IMHO je, kdyz soubory, ktere maji byt webserveru
> viditelne, maji nastaveneho stejneho skupinoveho vlastnika, pod kterym 
> bezi webserver. Uzivatele si do nich nebudou vzajemne cumet, a webserver 
> je uvidi vsechny. Ovsem je fakt, ze jakmile nekdo ziska prava webserveru, 
> tak ta hesla proste uvidi. Nejaka finta na tohle?

Pokud ma byt neco chraneno pred uzivatelem, pod kterym bezi webserver, tak
tam proste ten uzivatel (ci skupina) nesmi byt schopen strkat pracky.
Takze program, ktery to bude delat, musi bezet pod jinym uzivatelem a musi
byt patricne neduverivy vuci svemu okoli.


On Fri, 13 Sep 2002, Zdenek Mazanec wrote:

> :-) Jak chcete napsat web v php pracujici s databazi a _nemit_ jeslo v
> nejakem souboru citelnem pro apache? Tedy krom moznosti pristupu apache do
> databaze bez hesla.

Ja nic takoveho nerekl. Ovsem vyresit to lze: bud uplnou eliminaci hesla
(viz nize), nebo tim, ze programy pristupujici k databazi budou bezet pod
jinym uzivatelem.


On Fri, 13 Sep 2002, Zdenek Mazanec wrote:

> Je mi veru zahadou, jak chcete pozadat sluzbu xy o vysledek cehosi (dejme
> tomu sql dotazu) ANIZ by jste se byl nucen prokazat nejakym jmenem/heslem
> nebo jejich EKVIVALENTEM. Nikdo nerika, ze webovy skript ma mit databazi

Treba muzu mit (hypoteticky) system, kde jsou capability. Opravnenost
pristupu prokazuju drzenim prislusne capability. Na prvni pohled jsem si
moc nepomohl, ale capability muze byt -- narozdil od hesla, neco, co nelze
z principu ukrast (tedy heslo bych duslednou aplikaci Bell-LaPadulova
modelu take ochranil, ale asi jen tezko bych z toho vyrobil pouzitelnou
webovou aplikaci, protoze bych vesmes skoncil s tim, ze vystup takoveho
programu by byl aspon tak tajny, jako heslo pouzite pro pristup
k databazi) a pripadne zneuziti musi byt vzdy provedeno zprostredkovane
pres toho, kdo capability drzi.

V unixovem systemu by do jiste miry sel pouzit uid/gid aktualniho procesu.


On Fri, 13 Sep 2002, Zdenek Mazanec wrote:

> Super, a udelat jim rovnou klasickeho usera se shellem a dat jim misto
> nesifrovaneho http radeji ssh.. nebyl by to fajn napad?

Byl. Odpadly by obludne klicky, kterymi se lidi snazi z HTTP a HTML delat
klasicke interaktivni rozhrani, a bezpecnostni problemy by vyresil ten,
kdo to ma mit (mj.) v popisu prace -- operacni system.

> ...timto bych vyjadril nazor v tom smyslu, ze kod, ktery je na serveru
> ulozen jako plain text se da ochranit pouze za jen zcasti klaciky typu
> open_baseroot(), safe_mode, chrootovanym ftp a to je tak asi vsechno. Pokud
> nekdo zkompromituje uzivatele, pod jakym bezi web server, je to v pytli tak
> jako tak.

Jiz stari kryptografove <g> se naucili, ze bezpecnost nema spocivat
v utajeni algoritmu, ktere je znacne neprakticke, ale v utajeni nejakeho
jeho parametru (v jejich pripade klice, v nasem pripade hesla). A to je
to, kde ta diskuse zacala.


On Fri, 13 Sep 2002, Pavol Zibrita wrote:

> Btw otazka, neexistuje nieco, cim by si databaza zistila, ze klient,
> ktory sa nanu konektuje je dostatocne bezpecny? Teda napriklad apache 
> (php script) a podobne? Hm, nieco ako consolehelper ale pre databazy 
> (mozno to je uplne odveci...).

Nechapu? Consolehelper vesmes testuje, zda je to spousteno uzivatelem,
ktery je nalogovan na konzoli, a tem povoluje urcite operace podle
lpravidla: ten, kdo ma pristup ke konzoli, by to same mohl stejne udelat
kladivem ci sroubovakem.


--Pavel Kankovsky aka Peak
"Welcome to the Czech Republic. Bring your own lifeboats."



Další informace o konferenci Linux