Obecně hodně záleží na konkrétním scénáři použití. Také zda se vám jedná o public nebo private key atd. Zda data šifrujete nebo podepisujete atd. Možností je více, napadají mě: - Klíč mít natvrdo v kódu. To je asi nejjednodušší, ale pomoci reflektoru by se k němu útočník dostal. - Použít již nějaký klíč co na počítači je, takto je to řešené ve webových aplikací, kde se používají tzv. derivované klíče - klíče odvozené od jednoho globálního klíče. Například v ASP.NET 4.5, jsou ve třídě MachineKey nové metody Protect a Unprotect. Ty pracují s klíčem z Machine.config a vytvoří z nich klíč odvozený. Díky odvozeným klíčům je zajištěno, že je na počítači uložen pouze jeden klíč, ale přitom se pro dané operace používá vždy klíč jiný. Nevím zda vy máte webovou či jinou aplikaci, ale asi by šlo tyto funkce ze System.Web použít i mimo webové aplikace. Případně se můžete těmito funkcemi pouze inspirovat a udělat si podle nich funkce svoje (viz. http://referencesource.microsoft.com/#Sy.... - Jiný doporučený způsob jak ukládat klíče jsou samozřejmě certifikáty. Ten si můžete libovolně vygenerovat vlastní (self-sign) a načítat například z Windows Certificate Store. Zde opět závisí hodně na situaci kde se klíč používá.
|