Zabezpečení aplikace firmy   otázka

VB.NET

Potřebuji zabezpečit NEinstalované aplikace ve firmě, tak aby nesly spoustet mimo firemní sit. Nemam cíl zabezpečit na 100%.

Momentálně řeším přes RijndaelManaged zakryptovaní a dekryptování licenčního kodu (název firmy, časová platnost, název aplikace).

Co doporučujete pro identifikaci názvu firmy (resp. firemní sítě)?

Domena sice existuje, ale ne na každé pobočce nebo je jiná. Ověření pres IP adresy jedn. serveru se mi nezdá moc bezpečné. Stanice na kterých to běhá (20-30) nemají přístup na web.

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

Myslím že to děláte zbytečně složitě. Já bych to udělal tak, že aplikace by ověřovala hodnotu hash sériového čísla systémového disku, která by byla uložena v licenčním souboru. Pokud by se neshodovala vypočítaná hodnota s hodnotou v licenčním souboru tak aplikaci by nebylo možné používat. Sice by bylo nutné obejít všechny pracovní stanice a vytvořit příslušné licenční soubory, ale provázání na hardware je jedna z nejspolehlivějších způsobů ochrany.

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

To je ta největší ptákovina a největší podvod, se kterými SW firmy v posledních letech přišly :-(

(teď nemyslím Vaši radu, která je vzhledem k současným trendům jistě správná, ale samotnou technologii tohoto způsobu ochrany).

Problémem totiž je, že musíte zabezpečit pokud možno nepřetržitou a trvalou službu zákazníkům, pro generování licenčních kódů. No a pokud takový zákazník používá trochu náročnější (a dražší) SW třeba z USA, pak mohu z vlastní zkušenosti říci, že takový zákazník mnohdy se slzou v oku vzpomíná na doby, kdy měl kontrolu řešenu HW klíčem vstrčeným v LPT či USB portu.

Jakýkoliv závažnější problém s HW totiž dost komplikuje život - havárie disku (bohužel se mi stalo), potřeba přeformátování disku (změní se sériové číslo svazku !), nebo prachsprosté inovování HW nese s sebou nutnost kontaktovat výrobce s požadavkem na nový licenční soubor.

No a již několikrát za "počítačový" život se mi stalo, že dodavatel či dokonce výrobce mnou používaného SW zanikl, fůzoval s konkurencí či se přestal daným SW zabývat, no a být tenkrát rozšířena tato ochrana, pak skutečně nevím... (samozřejmě nemluvím o OEM verzích vázaných na HW, jenomže touto ochranou se vlastně i z mnoha "plných" SW stávají skryté OEM verze (ovšem za plnou cenu), u kterých jen můžete doufat, že v čase, kdy budete potřebovat svůj produkt odvázat od Vašeho HW, bude ještě někdo ochoten Vám opět licenční soubor vygenerovat).

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

Ano, máte pravdu v tom, že takovýto a další podobné způsoby ochrany software ztěžují život platícím zákazníkům. Ovšem co jsem pochopil z příspěvku na který jsem odpovídal, tak se jedná o interní firemní software, u kterého je to jedno, protože firma ho bude mít plně pod kontrolou. Dále bych podotknul, že sériové číslo disku je unikátní identifikátor hardware který nelze změnit (není to Volume Serial Number které se vám zobrazí pomocí příkazu VOL), tudíž formátování nevadí a problém nastane až při fyzické výměně disku. Jinak způsob provázání software na hardware používá například i firma Microsoft se svými OEM verzemi Windows (tam je to provázáno na základní desku)...

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

Mala otazka. Ako zistite seriove cislo disku? Akym prikazom?

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

Žádným příkazem z příkazové řádky to zjistit nelze. Lze to zjistit například pomocí WMI (VB.NET/VBScript/PowerShell).

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

Je jasné, že si rozumíme :-)

Nicméně pár problémů zůstává:

V obecné rovině: buď je součástí Vaší instalace "špionážní SW", který si NW osahá a pošle o něm informace výrobci, na základě čehož jsou pak vygenerována licenční čísla (myslím, že tak nějak je to v případě těch OEM verzí od MS - aniž jakkoliv v tomto případě zpochybňuji vazbu SW na konkrétní HW, zde je to u OEM verzí zcela férové, forma ověřování zcela košér není - sám jistě víte vztah mnohých uživatelů k jakémukoliv neautorizovanému a neřiditelnému odesílání informací někam "k velkému bratrovi".

Nebo necháte zákazníka samotného o počítači něco zjistit, zjištěné si nechat nahlásit a na základě této informace generovat. No a snad pro jednoduchost přístupu se hlásí různé věci - a v mém případě je to, bohužel, skutečně sériové číslo svazku (nikoliv disku), tedy to VOL (samozřejmě zatížené dříve popsanými problémy).

A největším problémem (morálním) v tomto případě je skutečnost, že třeba takováto ochrana znepříjemňuje život nám platícím, ale ty skutečné piráty moc neomezí (slyšel jsem, že údajně je na NETu SW, kterým je možno toto VOL nastavit na libovolnou hodnotu).

No a pokud se lokálního použití týká- jak bylo v dotazu specifikováno. Záleží na konkrétních podmínkách nasazení.

Pokud je autor SW součástí celopodnikodnikového oddělení, které se stará o PC v celé společnosti (a může se k nim tedy fyzicky v reálném čase dostat - tam nevím, pokud něco psal o pobočkách), pak je jistě toto řešení OK, jinak bych byl spíše skeptickým (dálkové generování licenčních souborů na základě stažených dat asi nebude schůdné, pokud velká část PC nemá přístup k Internetu.

Ale na druhou stranu asi nic bezpečnějšího ne moc složitého k dispozici asi není.

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

V případě aktivace OEM verze Windows máte několik možností, z nichž jedna je aktivace po telefonu. Tedy na základě vašeho hardware se vygeneruje kód který je nutné nahlásit operátorovi Microsoftu a ten poté zpětně nahlásí potřebné aktivační číslo. Nikam se tudíž nic automaticky neodesílá.

Pokud by chráněný software měla používat nějaká celostátní společnost, asi by nebyl problém rozeslat program na vytváření licenčních klíčů IT správcům jednotlivých poboček. Nebo jiné, podstatně složitější řešení by bylo napsat nějaký aktivační server (všechny pobočky bývají většinou propojeny pomocí VPN nebo jinak).

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

Dalo by se to udelat na číslo serverového disku nebo nějakého HW na serveru? Jak bych to potom ověřil? Nejsem spravcem a proto udržovat aktualní seznam 30 disků mi nepříjde moc šikovné. Celkem by to byly 3 servery, na každé pobočce bych to nasměřoval na nejbližší z nich.

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

Pomocí WMI se dá zjistit unikátní identifikátor hardware (disku) i vzdáleného počítače, jenže potom se budete potýkat s oprávněním, volající kód se totiž musí autentizovat na vzdáleném počítači jako člen Administrators a rovněž na místním počítači musí mít oprávnění pro použití WMI (nejsem si jist jestli User bude stačit).

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

Co takhle dat txt se zaheshovaným kodem právě na každý server a ověřit přes něj? Do kodu pro jistotu zaheshovat i absolutní cestu kde je txt ulozen, aby to jinde nefungovalo?

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

No tak to potom mohou být pro změnu problémy s přístupovým oprávněním k tomu souboru a navíc dávat do kódu absolutní cestu je holý nesmysl. Pokud vám nevyhovuje ani jedno z mnou uvedených řešení, tak můžete ještě zkusit napsat jednoduchý autentizační server, který bude využívat WCF nebo .NET Remoting a k tomu vám potom postačí TCP konektivita klientů na daný server a rozhraní s jedinou metodou pro ověření...

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