none
ProtectedData.Protect()

    Dotaz

  • Ahoj, může mi prosím někdo věcně objasnit na jakém principu je založeno šifrování pomocí ProtectedData.Protect()

    Cílem je zaslat do aplikace třetí strany jméno a heslo. Aby tyto údaje uživatel ale nemusel zadávat pokažde, chtěl bych je v počítači někde bezpečně uchovat. Nabízí se metoda Protect() a pro vyvolání UnProtect(). 

    Nevím jak to funguje, ale nemůžu se zbavit dojmu že všechny aplikace běžící pod stejným uživatelem mohou také získat pomocí UnProtect() případná uložená data (např. jméno a heslo). Utočník by pak podstrčenou aplikací vyvolal chráněné údaje.


    1. března 2014 17:36

Odpovědi

  • Ahoj,
    metoda ProtectedData.Protected(); pouze vykoná příkazy, které jsou v její konstrukci. Tato metoda přijímá pole dat, provede kryptu a vrátí zpět pole dat s implementovanou kryptou. Nejsem odborník na kryptologii, ale myslím, že další vývoj, jako jak uchovat hesla v bezpečí nebo jak dále pracovat s vráceným polem dat už je na každém vývojáři.

    Patrně jedna z nejbezpečnějších metod ukládání hesel v prostředí internetu, je „hašování“. Je ale také mnohem méně pohodlná, než jiné, které pouze dle nějakého algoritmu provedou kryptu, heslo se pak případně uloží do databáze. Tím, že se většinou jedná o standardní kryptovací algoritmy, není složité najít ten správný klíč a heslo zjistit. V případě „hašování“ je to ale naprosto nemožné. Heslo vytvořené hašováním totiž není možné zpětně dekryptovat. Vždy pokud uživatel odešle formulář s heslem, krypta jej zpracuje a v případě, že výsledek je shodný s uloženým hašem, vrátí true. Vysoká bezpečnost je patrná, heslo není možné zjistit ani s přímým přístupem k databázi, ale přináší i nějaká drobná omezení. Pro příklad uvedu, že pokud uživatel zapomene heslo, není možné pomocí automatické formuláře vygenerovat jiné, logicky. Je tedy nutné větší úsilí, ovšem ve výsledku úroveň bezpečnosti za trochu úsilí stojí.

    Luccka.

    3. března 2014 22:55

Všechny reakce

  • Ahoj,
    metoda ProtectedData.Protected(); pouze vykoná příkazy, které jsou v její konstrukci. Tato metoda přijímá pole dat, provede kryptu a vrátí zpět pole dat s implementovanou kryptou. Nejsem odborník na kryptologii, ale myslím, že další vývoj, jako jak uchovat hesla v bezpečí nebo jak dále pracovat s vráceným polem dat už je na každém vývojáři.

    Patrně jedna z nejbezpečnějších metod ukládání hesel v prostředí internetu, je „hašování“. Je ale také mnohem méně pohodlná, než jiné, které pouze dle nějakého algoritmu provedou kryptu, heslo se pak případně uloží do databáze. Tím, že se většinou jedná o standardní kryptovací algoritmy, není složité najít ten správný klíč a heslo zjistit. V případě „hašování“ je to ale naprosto nemožné. Heslo vytvořené hašováním totiž není možné zpětně dekryptovat. Vždy pokud uživatel odešle formulář s heslem, krypta jej zpracuje a v případě, že výsledek je shodný s uloženým hašem, vrátí true. Vysoká bezpečnost je patrná, heslo není možné zjistit ani s přímým přístupem k databázi, ale přináší i nějaká drobná omezení. Pro příklad uvedu, že pokud uživatel zapomene heslo, není možné pomocí automatické formuláře vygenerovat jiné, logicky. Je tedy nutné větší úsilí, ovšem ve výsledku úroveň bezpečnosti za trochu úsilí stojí.

    Luccka.

    3. března 2014 22:55
  • Ahoj Lucko, díky za odpověď

    4. března 2014 7:03