Tisková verze článku  Poslat článek e-mailem  7. dubna 2007 | Radek Kropík | Komentáře (0)  

Jak ukládat citlivá data

Pokud na svém webu ukládáte například do databáze nebo i jiného úložiště nějaká citlivá data, jako jsou uživatelská jména nebo hesla, jistě vás napadlo, v jakém formátu je nejlepší tato data ukládat. V základu existují dvě možnosti, jak tato citlivá data ukládat a my si je nyní představíme.

Plain-text

Toto je jedna z možností, jak citlivá data ukládat a já vám s klidným svědomím můžu jen doporučit, abyste ji nepoužívali, neboť tato metoda ukládání dat spočívá v tom, že citlivá data jsou ukládána v prosté textové formě a nejsou nijak šifrována. Z toho vyplívá jisté nebezpečí, že by například šikovný hacker mohl tato data získat a nebyl by pak pro něj problém si je snadno přečíst. A je známo, že mnoho uživatelů používá k různým službám na internetu stejné heslo, měl by tudíž onen hacker v podstatě přístup i k těmto službám.

Hashovaná data

Druhá možno je citlivá data hashovat. Je to jedna z možností, jak citlivá data zabezpečit. Pro hackera není totiž jednoduchou záležitostí z tohoto hashe zrekonstruovat zpět původní data. A pokud vám toho hashování přijde ještě málo, můžete navíc použít tzv. salt – tj. k citlivým datům se přidá ještě náhodně vytvořená posloupnost znaků a pak až se celek zahashuje. A jak se takovýto salted hash používá v ASP.NET aplikacích si ukážeme na následujícím jednoduchém příkladu.

Nejdříve si vytvoříme formulář s jedním textboxem, do kterého zadáme naše heslo, které se nám po stisknutí tlačítka zahashuje a vypíše na obrazovku v tomto zahashovaném tvaru. Navíc si necháme vypsat, jaká salt se při hashování použila a samozřejmě bude také použita při rekonstrukci hesla.

<%@ Page Language="C#" AutoEventWireup="true"
     CodeFile="Hash.aspx.cs" Inherits="Hash" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
   Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Používáme HASH</title>
</head>
<body>
  <form id="form1" runat="server">
     <div>
         Zadejte heslo k hashování:
         <asp:TextBox ID="textHeslo" runat="server" />
         <asp:Button ID="hashujText" runat="server"
           Text="Hashuj heslo" OnClick="hashujText_Click" />
          <br />
          Salt je:
          <asp:Label ID="lblSaltTxt" runat="server" /><br />
          Hashované heslo je:
          <asp:Label ID="lblHashTxt" runat="server" />
      </div>
  </form>
</body>
</html>

A samozřejmě musíme také vytvořit funkci, která nám salted hash vytvoří.

protected void hashujText_Click(object sender, EventArgs e)
 {
  //Načteme heslo
  string heslo = textHeslo.Text
  //Vytvoříme salt
  byte[] bSalt = new byte[5];
  new RNGCryptoServiceProvider().GetBytes(bSalt);
  string sSalt = Convert.ToBase64String(bSalt);
  //Spojíme text z formuláře se salt
  byte[] bText = Encoding.UTF8.GetBytes(heslo + sSalt);
  //Vytvoříme hash
  byte[] bHash = new SHA256Managed().ComputeHash(bText);
  string sHash = Convert.ToBase64String(bHash);
  //Vypíšeme hash a salt
  lblSaltTxt.Text = sSalt;
  lblHashTxt.Text = sHash;
 }

A nyní již stačí uložit například do databáze odděleně hashované heslo a salt, která k heslu patří. Pokud nyní například hacker získá hesla z naší databáze a nezíská k nim patřičnou salt, bude pro něj těžké, ne-li nemožné zpětně heslo dekódovat. A to je právě účel použití „saltování“ hashe.

Z našeho ukázkového příkladu je vidět, že na používání salted hashe na citlivá data, jako jsou například hesla, není nic složitého. Jistě touto technikou přispějete k vyšší bezpečnosti vaší webové aplikace a nezbývá, než jen její použití doporučit.


Radek Kropík




Komentáře k článku


Příspěvky vyjadřují stanovisko čtenářů, nikoliv provozovatelů serveru a redakce nenese odpovědnost za jejich obsah.




     Komentáře k tomuto článku byly již uzavřeny.


Novinky a oznámení

19.10.11 - Nyní najdete nově u každého článku ikonu obálky. Pokud na ní kliknete, budete moci odeslat odkaz na vybraný článek na e-malovou adresu, kterou zadáte v zobrazivším se formuláři. Odpadá vám tak nutnost pro odeslání odkazu na zajímavý článek spouštět e-mailového klienta a zakládání nového e-mailu.

11.10.11 - Nově v magazínu naleznete tzv. QR kód, který obsahuje vždy adresu právě zobrazené stránky. Pokud máte zobrazenou některou z kategorií článků, obsahuje QR kód adresu této kategorie, pokud máte zobrazený článek, QR kód obsahuje adresu zobrazeného článku, v ostatních případech obsahuje QR kód hlavní adresu magazínu.

23.09.11 - V neděli 25.9.2011 v době mezi 1:00 a 5:00 hod. proběhl přesun služeb serveru na nový hardware. Za nedostupnost magazínu v době přesunu se vám omlouváme.


QR kód článku

QR kód článku

Aktualizace e-mailem

Nechcete, aby vám unikl nový článek? Není nic jednoduššího, než se zaregistrovat a kdykoliv vyjde v magazínu nový článek, dáme vám vědět e-mailem.




Ikonka pro Vás

Líbí se vám tento magazín a rádi byste ho nějak podpořili? Pokud máte své webové stránky, budeme vám vděčni, pokud si na ně přidáte naší ikonku. Stačí přidat na váš web HTML kód, kderý najdete zde.


Partnerské weby


Naši fanoušci na Facebooku


Statistika


Reklama