Problém s konfigurací aplikace   zodpovězená otázka

VB.NET, WinForms

Dobrý den,

chěl bych Vás požádat o pomoc při řešení následujícího problému.

Mám jednoduchou win aplikaci, která některé své konfigurační údaje ukládá do chráněné (protected) šifrované sekce v konfiguračním souboru aplikace. Jedná se o údaje určené pouze ke čtení a za běhu programu je aplikace nikdy měnit nebude.

K šifrování a načítání konfiguračních údajů využívám třídu ConfigurationManager.

Rád bych uvedený konfigurační soubor s již zašifrovanými údaji distribuoval na jiné počítače. A tady je právě kámen úrazu.

Pokud totiž aplikaci pustím na mém PC, kde je naistalováno i vývojové prostředí, vše funguje dle očekávání. Aplikace údaje ze zašifrované sekce konfiguračního souboru bez problémů rozšifruje,načte a pracuje s nimi.

V momentě, kdy aplikaci i se zašifrovaným konfiguračním souborem nahraji na jiný počítač, dojde při načítání údajů z konfigu k neošetřené vyjímce :

HRESULT:0x8007000D - Dešofrování pomocí zprostředkovatele DataProtectionConfigurationProvider se nezdařilo.

Pokud konfigurační soubor na svém PC dešifruji a nahraji na jiný počítač spolu s aplikací, tak vše funguje v pořádku - jenže data v konfigu jsou pro neoprávněné uživatel čitelná.

Netušíte, kde bych mohl dělat chybu, případně, co mám špatně?

Možná jsem celý proces s chráněnou sekcí v konfiguračním souboru špatně pochopil a uvedeným způsobem s ním takto nelze pracovat. Pokud tomut tak je, prosím o správné nasměrování.

Budu vděčný za jakékoliv rady.

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Problém bude v tom, že na jiném počítači nemáte privátní klíč pro dešifrování dat, který se ukládá do windowsáckého úložiště privátních klíčů a tam je ho třeba také nainstalovat u všech počítačů, na kterých bude aplikace běžet. To se dá zajistit například v rámci instalátoru nebo jednoduchým skriptem/dávkovým souborem. Pročtěte si o tom více na MSDN jak a kam se ten klíč ukládá, najdete to v kapitole o chráněné konfiguraci.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Přesně tak. Bohužel představa, že budete přenášet zašifrovaný soubor kamkoliv budete chtít je mylná. Tak šifrované sekce nefungují.

Alternativní možností si šifrovat sekce sám a implementovat tak vlastní způsob získávání šifrovacích klíčů.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji Vám za odpovědi.

Příznám se, že moc chytrý z toho ale nejsem.

Pokud jsem správně pochopil celý postup, musím si nejdříve vygenerovat klíč pomocí utility ASPNET_REGIIS a ten následně vyexportovat do souboru XML.

Co ale následně s uvedeným XML obsahující privátní klíč?

Omlouvám se, v této problematice se moc neorientuji.

Nemáte prosím náhodou link na nějaký článek, kde by byl uvedený postup pokud možno srozumitelně vysvětlen i s příkladem?

Vše, na co jsem doposud narazil se týká ASP.NET, ale mě zajímají desktopová aplikace.

Mnohokrát děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč by ne? Když budu všude používat stejný klíč tak není problém...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, s používáním stejného privátního klíče na všech počítačích nemám vůbec žádný problém. Jen pořád nerozumím tomu, kde jej uložit a jak s ním následně pracovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ten klíč není nikde fyzicky jako soubor, ale musí se právě nainstalovat do toho úložiště, to úložiště je něco podobného jako třeba úložiště pro certifikáty ve Windows. Jde to tam uložit například pomocí nástroje aspnet_regiis.exe, který je součástí .NET Frameworku.

Nastudujte pečlivě níže uvedené odkazy a snad to pochopíte. Jsou to sice věci popsané pro ASP.NET webové aplikace, ale stejný postup je i pro Windows Forms desktopové aplikace.

http://msdn.microsoft.com/en-us/library/...

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mnohokrát Vám děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslel jsem to tak, že někdy (pokud se nepoužívá instalátor) může být distribuce klíče problém.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback