abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 1
včera 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 5
včera 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 0
včera 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
včera 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
1.12. 15:16 | Komunita

Na GOG.com začal zimní výprodej. Řada zlevněných her běží oficiálně také na Linuxu. Hru Neverwinter Nights Diamond lze dva dny získat zdarma. Hra dle stránek GOG.com na Linuxu neběží. Pomocí návodu ji lze ale rozběhnout také na Linuxu [Gaming On Linux].

Ladislav Hagara | Komentářů: 1
1.12. 13:14 | Bezpečnostní upozornění

Byla vydána verze 2.7.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Řešeno je několik bezpečnostních problémů. Aktualizován byl především Tor Browser na verzi 6.0.7. Tor Browser je postaven na Firefoxu ESR (Extended Support Release) a právě ve Firefoxu byla nalezena a opravena vážná bezpečnostní chyba MFSA 2016-92 (CVE-2016-9079, Firefox SVG Animation

… více »
Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 759 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Ako skryvate hesla v kode?

9.6.2015 14:55 vasmo
Ako skryvate hesla v kode?
Přečteno: 1004×
Ako riesite ukladanie hesiel v programoch? Napr. cez prikaz strings je mozne zobrazit textove konstanty v exe suboroch.

Odpovědi

9.6.2015 15:06 Kit | skóre: 36 | Brno
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
V programech nijak. Hesla jsou v konfiguračních souborech, které jsou přístupné pouze té aplikaci.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
9.6.2015 15:13 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
1) je to špatně mít heslo hardcodované do aplikace 2) pokud to opravdu chceš tak použil třeba XOR, pak přes strings nic rozumného neuvidíš, ale jako ochrana to rozhodně není,...
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
9.6.2015 15:27 Martin H. | skóre: 27 | blog: linservis | Brno
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?

Přesně tak. Hesla jsou v konfiguračních souborech.
Standardně je nelze nijak skrývat (pokud myslíš např. před dalšími adminy, to nelze - snad jedině include souboru s heslem odněkud, kam má přístup apache, ale ne ten uživatel, co vidí strom přes FTP a pod.)

Pozor však na standardní chybu: konfigurační soubor má příponu .inc a ta není vázána na žádný interpterer. Takže pak stačí napsat např. www.mojedomena.cz/inc/config.inc a máš naservírovaný výpis zdrojového kódu , tedy i hesla.
Standardně by měl být config buď .php, nebo třeba config.inc.php - pokud fakt někdo vyžaduje .inc, pak buď .inc přidat jako soubor pro php, nebo omezit přístup přes .htaccess do té složky, kde jsou konfiguráky.

Pokud chceš vyšší bezpečnost, pak lze pomocí .htaccess nastavit, které konrétně soubory smí uživatel zavolat.

Příklad:

<FilesMatch "\.(php|inc)$">
Order allow,deny
Allow from all
</FilesMatch>
<FilesMatch "(index.php|login.php|other.php)$">
  Order allow,deny
   allow from all
</FilesMatch>

Tak i v případě znalosti názvu souboru jej uživatel přes prohlížeč nezavolá. Tak snad tento postřeh někomu pomůže.

--- Kapitalismus je lepší, než socialismus ... ale horší, než jsem čekal. (Jiří Suchý) ---
Jendа avatar 9.6.2015 15:33 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Podle mě nemluvil o webu, na php skripty se nevolá strings, protože ten vypíše celý soubor :).

K tématu: neřešíme to nijak, uchránit to nelze a pokud tvoje aplikace něco takového vyžaduje, pak je nejspíš špatně navržená.
14.6.2015 21:59 Heslo
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Proc hned spatne navrzena? Pokud jde o aplikaci pracujici napr. s databazi (jak db file nebo db server) tak kam ulozite heslo k databazi? Do konfiguracniho souboru jako plain text!? Nechavam jej v kodu a mam na to napsanou classu, ktera heslo slozi a vyda. Nevidim jinou moznost. Reakce typu
..., pak je nejspíš špatně navržená.
mi prijde uplne mimo.
Jendа avatar 14.6.2015 22:29 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Do konfiguracniho souboru jako plain text!?
Samozřejmě. V čem je problém?
Nechavam jej v kodu a mam na to napsanou classu, ktera heslo slozi a vyda.
Takže stačí tu aplikaci spustit a v okamžiku přihlašování k DB pořídit coredump?
Heron avatar 15.6.2015 16:26 Heron | skóre: 50 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Pokud jde o aplikaci pracujici napr. s databazi (jak db file nebo db server) tak kam ulozite heslo k databazi? Do konfiguracniho souboru jako plain text!?
To v té aplikaci máte také natvrdo zadrátovaný connection string, tedy hostname serveru, jméno databáze, jméno uživatele? To se musí konfigurace docela komplikovat, když jen k vůli změně serveru musíte změnit zdroják, překompilovat a sputit "s novou konfigurací". Co děláte, když chcete mít spuštěné dvě instance nad dvěma databázemi? Zkompilujete si dvě různé binárky?

Heslo je součástí přístupových údajů. Plaintext soubor s heslem může být viditelný pouze pro speciálního uživatele, pod kterým se daný program spouští. To, že je heslo v plaintextu rozhodně neznamená, že jej může přečíst každý. Kdyby tohleto platilo, tak to heslo nakonec nikdo nepotřebuje. (Prostě jen proto, že kdyby se někdo dostal k souboru s tím heslem - překonal by zabezpečení pomocí práv k souboru - tak by si stejným způsobem mohl rovnou odnést datové soubory té db.)

Petr Tomášek avatar 10.6.2015 17:10 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Pro konfigurace hesla pro napr. php skripty existuji daleko bezpecnejsi cesty (napr. SetEnv z konfigu apache)...

Ale na to se tazatel neptal...
9.6.2015 17:37 Sten
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Nijak. Heslo nemá být v programu, ale v konfiguraci, případně pro vyšší bezpečnost (konfiguraci lze zálohovat na nedůvěryhodná média) můžete používat keychain (KWallet, GNOME Keyring, MacOS Keychain ap.).

Pokud má někdo přístup k tomu programu, snadno získá heslo z paměti ve chvíli, kdy se používá, takže skrývat v tom případě ho stejně nemá smysl.
Jendа avatar 9.6.2015 17:48 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Nijak. Heslo nemá být v programu, ale v konfiguraci, případně pro vyšší bezpečnost (konfiguraci lze zálohovat na nedůvěryhodná média) můžete používat keychain (KWallet, GNOME Keyring, MacOS Keychain ap.).
Mně přijde že lidé co se takto ptají neřeší jestli má být heslo jinde, ale mají nejspíš nějaký program, který má někam přístup, a tento přístup se snaží omezovat na straně uživatele.
9.6.2015 22:22 tom
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Tak presne na to muze pouzit TPM a nikdo mu to heslo ze systemu nevytahne (pokud v TPM neni backdoor).
9.6.2015 20:15 R
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
V Linuxe nepouzivame exe programy a ani ich nevytvarame.
9.6.2015 20:43 chrono
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Programy, ktoré využívajú Mono sú exe súbory (a pravdepodobne sa nájde niekto, kto niečo také vytvára lebo používa aj v Linuxe). ;)
9.6.2015 21:05 Kit | skóre: 36 | Brno
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
To jsou IMHO výjimky. Mono je v linuxových OS spíš na okraji zájmu, protože Java je prostě výhodnější. Nemluvě o dalších zajímavých jazycích.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
9.6.2015 21:33 R
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Vidis, to je pravda. Bohuzial som to musel nedavno pouzit - na editaciu SIM kariet cez citacku smart kariet som nasiel jediny program: monosim.
10.6.2015 09:21 vasmo
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Jedna sa o executable subor, konkretnejsie ide o aplikaciu, ktora musi byt prenositelna - agent ju ma na svojom USB a spusta ju na klientskom PC, kde po skonceni prace ju vymaze. V tomto pripade je nutne, aby aplikacia pozostavala iba z jedneho suboru kvoli jednoduchosti kopirovania a tiez mazania. Obcas sa vsak stane, ze ju agent zabudne vymazat. Preto sa pytam na skryvanie hesiel. Teraz to je vyriesene sposobom, aky tu bol naznaceny (xor).
10.6.2015 09:39 pb
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Agent? To zní skoro tajemně. Mohl by to heslo agent zadat na klávesnici? Pak by v programu nebylo vůbec.

Když se to nějak "skryje", tak když tam "agent" ten soubor zapomene, tak záleží na "zbabělém a zákeřném podvratném živlu", jak moc to heslo chce. Pokud ho chce moc, tak ho z toho souboru dostane. Pokud ho chce málo, tak se asi nebude obtěžovat, pak třeba i ten xor může stačit. Pokud ho chce opravdu moc, tak ho získá, ikdyž v tom programu nebude vůbec.
10.6.2015 14:23 chrono
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Nemôže sa to heslo načítať priamo z USB kľúča?
10.6.2015 15:31 vasmo
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Ani agent nemoze poznat heslo. Heslo bude ulozene na USB v plaintexte? Ak nie, tak zase potrebujem desifrovaci protokol. Dalsia moznost, ktora ma napadla je nacitat heslo z internetu vhodnym sifrovanym protokolom. Alebo implementovat jednorazove hesla, ale to by znamenali prekopat vela veci.
10.6.2015 15:33 vasmo
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Oprava: desifrovacie heslo
10.6.2015 16:35 chrono
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Prečo nemôže poznať agent heslo? Ak problém nevyrieši asymetrický šifra, tak treba pohľadať iného agenta (aby nebol problém s tým, že heslo pozná).
Jendа avatar 10.6.2015 16:43 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Heslo bude ulozene na USB v plaintexte?
Ano, jinak to ani nejde.

Když dostanu ten exáč, tak s ním můžu provádět to stejné, co agent, a ani heslo extrahovat nepotřebuju. Pokud se s tím heslem může provádět víc než dovolí ten exáč, je to naprosto nesmyslně navržený systém, který spravuje přístupová práva na klientovi.
13.6.2015 19:47 Matlák
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Přesně tak. Agent ani nemusí tušit, že na tom PC, do kterého ten exáč nahrává, už sídlí program co mu ten exáč sebere. Spoléhat se na postup "přijdu, nahraju tam exe, spustím, smažu a zmizím" je neuvěřitelně primitivní (a i to by se to dalo ještě vylepšit třeba tím že si exáč sám vygeneruje nějaký baťák co ho automaticky smaže :-))

Taková operace přímo volá po jednorázových heslech. A jestli je to heslo opravdu "mocné" a jde s ním dělat i jiné operace než které provádí (jednorázově na tom PC) ten agent, je to hodně velký hazard.
Jendа avatar 10.6.2015 16:41 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
A k čemu se to heslo používá?
10.6.2015 18:22 R
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Tipujem to na nejaku "kvalitku" typu upload suborov niekam ("najlepsie" cez FTP), samozrejme bez SSL.
14.6.2015 10:35 Leinad | skóre: 14 | blog: spheniscidae
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?

Hádám, že se jedná třeba o program, který se napojuje přímo na databázi? A heslo nesmí jít najít proto, aby si pak nemohl někdo to heslo v programu najít, přihlásit se na databázi, celou ji stáhnout či smazat?

Pokud ano, jedná se o špatný návrh architektury. Jak píšou ostatní nade mnou, heslo půjde vždy zjistit. Takže se to musí řešit tak, že se program nebude připojovat přímo na databázi, ale naprogramuje se nějaká mezivrstva, která se umístí na server a která bude podporovat příkazy jen ty, co umí i ten program. Takže pak nikdo nezpůsobí víc škody, než umožňuje samotný program.

Jendа avatar 14.6.2015 14:32 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Například v MySQL jde uživateli nastavit, jaké příkazy smí vykonávat. Pokud třeba agent jenom sbírá data, povolíš mu jenom INSERT. Pokud naopak data jen čte, povolíš mu jen SELECT. Atd. Do každé tabulky to navíc může být nastavené pro různé uživatele různě.
14.6.2015 15:27 R
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Dokonca to funguje az na urovni stlpcov. Takze mozes mat pouzivatela, ktory cita nejake informacie, ale napriklad k stlpcu s heslami sa nedostane.
14.6.2015 22:08 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Takhle hrubé řízení přístupu nemusí stačit, ale často to lze vyřešit pomicí stored procedure. Někdy nestačí ani to a pak opravdu může být řešením middleware, ale zdaleka to není vždy.
finc avatar 17.6.2015 07:53 finc | skóre: 8 | blog: Finc | Kolín
Rozbalit Rozbalit vše Re: Ako skryvate hesla v kode?
Nevím, k čemu se přesně hodláš připojit, ale pokud chceš zachovat stávající architekturu, tak neexistuje uspokojivé řešení. Můžeš heslo uložit do konfiguračního souboru jako plaintext, můžeš ho mít v kódu, můžeš ho mít zamaskované nejakým saltem, apod. Ale nic z toho nebude řešení, které by nešlo obejít a z programu heslo "vydolovat".

Druhou a správnější variantou je poskytování služeb přes middleware. Uživatele vyzveš k přihlášení a potom pomocí tokenu (např. implementace OAuth 2.0) komunikuješ se zdroji na druhé straně. Aplikace pak obsahuje pouze "vstupní bod", což je adresa middleware, která je ovšem zabezpečená (https, token). Zbylé věci poskytuje buď samotný middleware (ideálnější varianta), nebo middleware nabídne možnosti jak se dostat na další zdroje (databáze, apod).
Kdo Vam dal pravo ty lidi urazet? A kdo ti dal pravo cumet z okna, ty kr.vo!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.