Diskuze: Zašifrování přihlašovacích údajů pro desktop aplikaci
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, nijak moc bezpečně to udělat nejde, ale jde docela dobře házet
klacky pod nohy.
Několik věcí bude společné pro všechny přístupy:
Symetrický algoritmus je takový, co používá stejný klíč pro
šifrování a dešifrování. To znamená, že nějakým způsobem musíš
získat klíč (o tom později). Potom vezmeš tvé heslo, zašifruješ a
uložíš na disk - zpátky obráceně.
Až do teď to není příliš zrádné, problémy začnou v momentě, kdy
chceš získat klíč.
Máš minimálně 3 možnosti (od nejhorší po použitelnou):
1. fixní klíč v kódu
Prostě do kódu na tvrdo zadáš klíč, kterým se bude šifrovat. Heslo
pořád bude zašifrované, ale v momentě, kdy ten klíč v tvém kódu někdo
objeví (nemusí mít kód!, stačí zkompilované .exe, jen je to těžší),
automaticky je prolomena ochrana úplně všech hesel na všech počítačích,
co ten program používají.
Tato technika je zcela nepoužitelná (ačkoliv lákavě jednoduchá)
2. dynamicky generovaný klíč
V podstatě stejné řešení jako v bodu 1, ale klíč není v kódu aplikace a
tudíž je pro každý počítač rozdílný. Problém je, že ten klíč musí
být v čitelné podobně pořád někde uložen na počítači a proto by si ho
mohl přečíst i útočník. Klíč se dá ale schovat na různá
neočekávaná místa, do registrů a pod.
Ten klíč se dá třeba vygenerovat při prvním spuštění programu, nebo se
může měnit při každém spuštění a hesla se přešifrovat.
Tohle je relativně bezpečné, ale jakmile někdo přijde na to, kam se klíč
ukládá a jak, zase je to zcela neefektivní.
3. ochrana uživatelským heslem
Heslo není nikde uloženo na počítači, ale odvodí se z hesla napsaného
uživatelem. Samotné heslo ale nelze použít k šifrování, musí se z něj
bezpečně vytvořit klíč - C# na to má přímo dedikovanou
třídu: https://msdn.microsoft.com/….110%29.aspx?…
Nevýhoda je, že to je jen tak silné, jak silné heslo si zadá uživatel.
Výhoda je, klíč není na počítači nikde uložen, takže si ho útočník
nemůže jen tak někde přečíst.
Pokud chceš dobré zabezpečení za cenu uživatelského nepohodlí (vždy je třeba zadat heslo), použij 3. možnost, pokud je zadávání hesla příliš nepohodlné a na tom FTP serveru není nic mission-critical, můžeš přemýšlet i o 2. možnosti, je "good enough".
Také bych si přihřál svou polívčičku a doporučil ti mou knihovnu na AES šifrování v C#: https://www.nuget.org/…/csharp-aes/ , co umí pobrat jak klíč, tak uživatelské heslo.
Díky za tipy, zvolím asi druhou možnost, mělo by jít o once setup věc a uživatel by o ní ani neměl vědět.
Zobrazeno 3 zpráv z 3.