Autor | Zpráva | ||
---|---|---|---|
p.Petr Profil * |
#1 · Zasláno: 25. 8. 2022, 18:47:54
|
||
juriad Profil |
#2 · Zasláno: 25. 8. 2022, 20:00:15
Není to vůbec bezpečné. Z těch, koho napadne stisknout F12, to rozšifruje každý druhý.
Co to dělá? Každý znak vyxoruje s konstantním číslem (které je odvozené od salt) a zapíše jej hexadecimálně. Když dáš salt prázdný (""), tak první dvojice znaků je 48 , což je H v hexu, viz tabulka a zbylé jsou 6x , protože to jsou malá písmena.
Když dáš salt "salta", tak výsledek je stejný jako "lst", kvůli komutativnosti xoru a tomu, že x ^ x = 0 .
Celá šifra je náchylná na frekvenční útoky a při znalosti algoritmu stačí vyzkoušet 256 možností (ve skutečnosti méně, protože salt je jen text). Jak velký řetězec tím můžeš zašifrovat? Asi skoro libovolně velký; může to trvat déle a prohlížeč ti ten skript může zastavit, nebo dojde paměť. Text o délce 2 621 440 znaků mi trvá zakryptovat 2255 ms. |
||
Radek9 Profil |
#3 · Zasláno: 25. 8. 2022, 20:13:54
I kdyby ten „klíč“ byl opravdu soukromý a nedal by se vyčíst ze zdrojáku, tak to stejně není bezpečné. Jak psal juriad, při troše snahy to s pomocí frekvenční analýzy a hrubé síly rozlouskne i amatér. Použij něco rozumného, třeba AES.
|
||
Keeehi Profil |
#4 · Zasláno: 25. 8. 2022, 20:27:38
p.Petr:
„Chtěl bych se zeptat, jak moc je to bezpečné“ Vůbec. Vždyť sám autor odpovědi píše, že to není bezpečné. „jak velký řetězec můžu zašifrovat?“ Teoreticky neomezeně dlouhý. |
||
p.Petr Profil * |
juriad:
Moc děkuji za cennou informaci. Radek9: Můžeš to prosím upřesnit? Děkuji Keeehi: Tak to mi uniklo, k čemu to potom je netuším, ale díky. |
||
Keeehi Profil |
#6 · Zasláno: 25. 8. 2022, 23:59:05
p.Petr:
„Tak to mi uniklo, k čemu to potom je netuším, ale díky.“ Tak na internet může napsat kdokoliv cokoliv, že. Jsou i lidé, kteří by neměli problém vzít výstup z funkce btoa("test"); a říct o tom, že je to zašifrované.
Nicméně neřekl jsi nám, k čemu by to šifrování melo sloužit. Těžko se pak radí konkrétněji. Ale můj tip je, že stejně jako 99,999% dalších webových projektů můžeš s celým šifrováním skončit tím, že nasadíš https. A co se šifrování týče, tím to pro tebe bude asi končit protože víc nebude potřeba. Pokud by tvůj projekt nějakou čirou náhodou patřil do té malé skupiny projektů, které by potřebovaly nějaké další šifrování, pak si na tu část najmi někoho, kdo se tím zabývá. |
||
p.Petr Profil * |
#7 · Zasláno: 26. 8. 2022, 08:52:52
Šifrování by mělo sloužit k ochraně přihlašovacích údajů v html dokumentu. Mám tabulku a v tabulka obsahuje v každém řádku přihlašovací údaje s odkazem na přihlašovací stránku včetně nějakého popisu, a k tomuto bych chtěl mít přístup pouze já a to odkudkoliv, bude to dostupné na internetu. Díky
|
||
Radek9 Profil |
#8 · Zasláno: 26. 8. 2022, 09:21:34
p.Petr:
Jinými slovy chceš, aby byla někde veřejně na internetu vystavená tabulka se zašifrovanými přihlašovacími údaji, přičemž šifrovací klíč by sis pamatoval a zadával ho tam? To je otřesný nápad. I kdybys použil silnou šifru se silným klíčem, tak si jenom říkáš o to, aby se to někdo pokusil prolomit. Proč prostě nepoužiješ nějakého správce hesel? Má ho zabudovaný prakticky každý prohlížeč i smartphone. |
||
Keeehi Profil |
p.Petr:
Správným řešením je použít password managera. Na výběr je jich celkem dost. Existují i varianty zdarma, pokud je tohle tvým primárním cílem. Rozhodně bych se nepokoušel tvořit si vlastní verzi. To je totiž skvělý způsob jak si nechat veškerá hesla ukradnout. Radek9: Nevím, jestli se to někam posunulo ale ukládání hesel v prohlížeči nebývalo zrovna nejbezpečnější. Existovaly programy, které zobrazily veškerá hesla různých prohlížečů, jelikož jejich lokální uložiště nebyla šifrovaná. Je to lepší než vystavovat svá hesla na internetu ale já bych to nepoužíval. |
||
anonym_ Profil * |
#10 · Zasláno: 26. 8. 2022, 09:42:27
Keeehi:
„Je to lepší než vystavovat svá hesla na internetu“ Asi tak. Na druhé straně, tohle nebude dle dotazu tazatele aplikace, kterou by měla používat široká veřejnost a kde by mohl být zájem na jejím hacknutí. Takže prohlížeč mi přijde bezpečný dostatečně pro tuto záležitost. |
||
p.Petr Profil * |
#11 · Zasláno: 26. 8. 2022, 12:07:35
A PHP by na to bylo vhodnější? Co to AES jak psal Radek, to je taky k ničemu?
|
||
anonym_ Profil * |
#12 · Zasláno: 26. 8. 2022, 12:25:20
p.Petr:
Ano, PHP, databáze a samozřejmě hashovana hesla je správná cesta, jak řešit login. |
||
p.Petr Profil * |
#13 · Zasláno: 26. 8. 2022, 12:28:11
anonym:
Já ale neřeším žádný login. |
||
N71 Profil * |
#14 · Zasláno: 26. 8. 2022, 12:35:36
Pokud nemáš znalosti matematiky a kryptografie prakticky na vědecké úrovni, tak se do vymýšlení šifer vůbec nepouštěj. Jinak kryptografické knihovny pro JavaScript existují, například github.com/brix/crypto-js.
Implementačně je to ošemetné, JavaScript je zpracováván na klientu. Aby to mělo smysl, privátní klíč tedy musí vložit až klient, například vyplněním hesla, načtením souboru a podobně. |
||
p.Petr Profil * |
#15 · Zasláno: 26. 8. 2022, 12:56:56
N71:
No a je používání této knihovny opravdu bezpečné? |
||
Radek9 Profil |
p.Petr:
„A PHP by na to bylo vhodnější?“ Rozhodně. Pokud chceš mermomocí jít cestou HTML tabulky s hesly, tak ji alespoň schovej za heslo pomocí PHP (ideálně přes šifrované HTTPS spojení, nikoli HTTP). Úplně naivně třeba takhle: <form method="post"> <input type="password" name="password"> <input type="submit" value="Login"> </form> <?php $password = '$2a$12$L3LJkx5nsSihHVOLq6ivU.5TTxu.icmo8C2enE8lPb8QpfcBvwPX.'; // '123456' zahashované pomocí bcrypt (sem si musíš samozřejmě dát nějaké vlastní bezpečné heslo) if (isset($_POST['password']) && password_verify($_POST['password'], $password)) { ?> <table> ... </table> <?php } ?> Pořád riskuješ, že ti hesla někdo ukradne, pokud se ti dostane na server, ale v prohlížeči se k nim dostaneš jedině, pokud znáš heslo. „Co to AES jak psal Radek, to je taky k ničemu?“ Není to k ničemu, ale rozhodně bych to nedělal tak, že rovnou zašifrovaná hesla veřejně zobrazíš. Ideální by bylo použít obojí (tzn. jedno heslo na zobrazení tabulky a druhé heslo na její rozšifrování). „No a je používání této knihovny opravdu bezpečné?“ Ta knihovna je v pohodě. Jen ti nesmí utéct šifrovací klíč. |
||
p.Petr Profil * |
Radek9:
„ale v prohlížeči se k nim dostaneš jedině, pokud znáš heslo.“ Můžeš to upřesnit? To se bavíš o JS? Radek9: „Pořád riskuješ, že ti hesla někdo ukradne, pokud se ti dostane na server“ Hesla budou přece na serveru zašifrované, ne? |
||
Keeehi Profil |
#18 · Zasláno: 26. 8. 2022, 13:47:27
Tazatel chce ukládat si hesla, aby si je nemusel pamatovat. Přesně k tomuto účelu slouží password manager. Jediné bezpečné řešení pro jeho situaci je použít password manager.
p.Petr: Neber to prosím nijak zle ale bohužel na vytvoření vlastní verze password manageru nemáš potřebné znalosti. A není to bohužel něco, co se můžeš během chvilky naučit. Problém bezpečnosti je, že celý systém musí být absolutně bez chybičky. Stačí drobný problém v návrhu a celý systém se sesype a bude to, jako by žádné šifrování neexistovalo. Chyby v návrhu zvládnou dělat velké společnosti (Hyunday nezvládla správně zašifrovat software svého palubního počítače), je prakticky nemožné aby to správně navrhl někdo, kdo tomu vlastně vůbec nerozumí. Pokud nechceš, aby tvá hesla unikla, použij prosím nějaké hotové, široce rozšířené řešení. |
||
Radek9 Profil |
#19 · Zasláno: 26. 8. 2022, 13:52:55
p.Petr:
Motáš se v tom. Radši se na to, prosím tě, vykašli, bylo by to akorát plné bezpečnostních děr. Proč prostě nepužiješ nějakého správce hesel, který je přesně na tyhle věci určený? |
||
p.Petr Profil * |
#20 · Zasláno: 26. 8. 2022, 14:55:29
Radek9 Žádný správce hesel používat nebudu. Nehodlám někomu dávat hesla ke všemu možnému přímo na talíři.
|
||
anonym_ Profil * |
#21 · Zasláno: 26. 8. 2022, 15:09:34
p.Petr:
Ale přesně to předávání hesel na talíři děláš teď. Oproti tomu je jakýkoliv password manager nedobytna pevnost. Pokud ale jsi o své pravdě přesvědčen, nevím, o čem je pořad řec. Ps. S tím loginem v #12 jsem ustřelil, byl jsem myšlenkami jinde a neuvědomil si, ze neřešis login. |
||
Radek9 Profil |
#22 · Zasláno: 26. 8. 2022, 15:27:28
p.Petr:
Existují i self-hosted open-source varianty, které si prostě nainstaluješ na svůj server a hesla se v tu chvíli nesdílí s žádnou třetí stranou. Stačí hledat. |
||
Keeehi Profil |
#23 · Zasláno: 26. 8. 2022, 16:09:31
p.Petr:
To je asi jako tvrdit, nikdy nebudu používat žádný vyrobený zámek, protože výrobce by si mohl k němu vyrobit klíč. Tak raději se rozhodneš vyrobit vlastní. Ovšem jelikož toho o návrhu zámků moc nevíš, půjde otevřít nejenom tvým klíčem ale i kdejakou sponkou. Ale hlavně že budeš mít skvělý falešný pocit jak jsi vyzrál nad zlým vyrobcem zámků. |
||
Tomáš123 Profil |
#24 · Zasláno: 26. 8. 2022, 22:44:33
Keeehi:
+1 (kľudne ma zmaž, nepatrí to sem :-)) |
||
N71 Profil * |
#25 · Zasláno: 28. 8. 2022, 19:22:35
p.Petr:
„tabulka obsahuje v každém řádku přihlašovací údaje ... a k tomuto bych chtěl mít přístup pouze já a to odkudkoliv, bude to dostupné na internetu.“ Pokud se vrátíme k původnímu záměru, tak celkem bezpečná cesta je mít obsah té tabulky symetricky zašifrovaný nějakou spolehlivou šifrou (třeba AES) a při každém zobrazení obsah dešifrovat zadáním privátního klíče. Podle toho cos psal, s tím nemáš žádné zkušenosti, takže bych ti radil se do toho nepouštět. Stejnou službu ti totiž udělá zašifrovaný XLSX soubor umístěný do libovolného sdíleného souborového cloudu. |
||
Časová prodleva: 3 roky
|
0