Jak lze tvořit maximálně spolehlivé aplikace)

Nová generace počítačů nabízí prostředky k zabezpečení softwaru, k ochraně dat i identit. Umožňuje tak vytvářet...


Nová generace počítačů nabízí prostředky k zabezpečení softwaru, k ochraně dat
i identit. Umožňuje tak vytvářet bezpečnější aplikace a předcházet útokům na
osobní počítače. Uživatelé však vyžadují nejen bezpečný, ale také stabilní
software. Zde by měl přinést své ovoce rostoucí důraz na testování nových
produktů. To je nyní často realizováno formou outsourcingu.

Nové "spolehlivé" počítače mají na základní desce bezpečnostní čip, označovaný
jako Trusted Platform Module (TPM). Ten spolu s příslušným softwarem vyhovuje
otevřené specifikaci, jejímž autorem je TCG (Trusted Computing Group)
organizace, kterou tvoří více než 90 společností. Čip TPM obsahuje
kryptografické klíče a další data uložená bezpečně (mimo tradiční úložiště),
což dovoluje změnit vlastnosti aplikací tak, aby zajišťovaly skutečně silnou
autentizaci, ochranu dat, řízení přístupu do sítě, bezpečné VPN, ochráněné
přenosy v bezdrátových sítích i bezpečnější komerční transakce. Díky velkým i
malým výrobcům jsou už v rukou uživatelů desítky milionů stolních počítačů,
notebooků a tabletů PC s technologií TPM. IDC odhaduje, že v roce 2007 bude
technologii TPM obsahovat 55 % počítačů dodávaných po celém světě.
Otázka vývojářů tedy zní: Jak vypadá interakce nějaké aplikace s TPM? Obrázek
na následující straně znázorňuje tři různé metody pro přístup ke službám, které
specifikace TCG povoluje. Poskytovatel šifrovacích služeb TCG (Cryptographic
Service Provider, CSP) je vyvolán buď šifrovacím protokolem Public Key
Cryptography Standard (PKCS#11), nebo Microsoft Crypto Application Library
(MSCAPI). Do hry může vstupovat také takzvaný TSS (TCG Software Stack)
softwarová vrstva, která je přímým rozhraním s TPM a v níž se může odehrát vše
podstatné pro využití služeb TCG. A lze využít rovněž TCG middleware software,
který pro usnadnění programování pokročilých bezpečnostních funkcí poskytuje
třetí firma.
Podívejme se nyní podrobněji na nástroje, které mají vývojáři k dispozici při
vývoji aplikací, odpovídajících specifikaci TCG.

Volání CSP
Vývojáři dosahují přístupu k CSP podle specifikace TCG prostřednictvím rozhraní
programu aplikace, které odpovídá normě MSCAPI nebo PKCS#11. CSP podle TCG
poskytuje šifrovací služby, čímž komplikuje hackerům realizaci jejich úmyslů.
Směřuje například provádění určitých šifrovacích a dešifrovacích operací pro
zabezpečení dat dovnitř bezpečného modulu TPM.
Pokud zná vývojář normu MSCAPI nebo PKCS#11, může poměrně snadno vybavit osobní
počítač s TPM základními bezpečnostními funkcemi. Pro aplikace, které už
používají softwarové CSP, může vývojář zpřísnit operace v asymetrickém RSA
klíči jednoduše tak, že zavolá nové CSP podle TCG, které spolupracuje s
cílovými platformami TPM. U aplikací, které ještě předtím nepoužívaly CSP,
normu MSCAPI nebo PKCS#11, je možné vložit volání TCG CSP a vytvořit tak klíče,
které se pak použijí k ochraně dat nebo k autentizaci uživatele. Protože moduly
TPM neumožňují šifrování ve velkém ani operace se symetrickými klíči, dokáže
TCG CSP rozlišit, kdy má použít hardware a kdy softwarové šifrování.

Zaměřeno na TSS
Jak již bylo zmíněno, tvoří TSS softwarovou vrstvu, která představuje rozhraní
s modulem bezpečného softwaru. Druhou možností využití TPM je tedy zapisovat
přímo do rozhraní TSS aplikace podle specifikace TSS, která je dostupná z TCG.
Bezpečnostní služby TSS umožňují aplikacím zajišťovat soukromí uživatelů,
ochranu jejich dat, provádění autentizace a verifikaci dostupných funkcí dané
platformy. Vrstva TSS obsahuje bohaté objektově orientované aplikační rozhraní,
do kterého patří funkce platformy TCG. A provádí rovněž veškeré funkce správy
klíčů, které jsou potřebné pro management omezených zdrojů TPM. Prostřednictvím
vrstvy TSS může vývojář aplikace uzavřít data v určitém počítači nebo je k němu
a k danému prováděcímu profilu trvale vázat, takže budou přístupná jen v jednom
prostředí. Jiným příkladem funkce TSS je bezpečné ukládání dat (to však není
realizovatelné prostřednictvím MSCAPI nebo PKCS#11).
Vrstva TSS představuje zároveň rozhraní pro pokročilé funkce, jako jsou
aplikace bezpečnostní strategie pro autentizaci a bezpečné časové otisky
transakcí a auditu, které mohou posílit vztah důvěry mezi vlastníkem počítače a
ostatními. Jako nejnižší úroveň programovacího rozhraní, která je dostupná pro
vývojáře aplikací, poskytuje vrstva TSS i další možnosti, ale za cenu výrazně
vyšší námahy vynaložené na vývoj a údržbu.

Produkty třetích stran
Třetí možnost realizace aplikací pracujících s TPM předpokládá využití
middlewarových produktů od dalších výrobců. Middleware je typicky vytvořen pro
usnadnění programování podobného softwaru. Vývojář aplikace pak použije
některou ze sad SDK (Software Developer Kit). Ta nejenže poskytuje pokročilé
schopnosti TCG, ale přidává i další funkce. Pomocí vhodných SDK se například
snadno dají přidávat přímo do aplikací takové funkce, jako je zálohování klíče
TPM pro podniková řešení nebo různé opravné funkce. Služby pro správu klíče
včetně jeho úschovy (key escrow) pro podnikové prostředí nebo obnovení klíče
pro koncové spotřebitele zvyšují flexibilitu, přičemž zachovávají bezpečnost.
Jiným příkladem produktů třetích výrobců jsou atestační servery, které dokáží
uživatele a poskytovatele služeb ujistit, že jsou počítače spolehlivé. Atestace
zajišťuje, že byly šifrovací klíče vygenerovány korektním způsobem a jsou
používány v bezpečném prostředí. Vývojář může vyvolat funkci atestace
spolehlivého počítače úpravou aplikace tak, aby vyžadovala a kontrolovala
příslušná pověření, která vystavuje atestační server.

Přínosy TCG
Hlavním přínosem strategie bezpečnosti TCG je možnost vývojářů vytvořit
bezpečnostní aplikace založené na hardwaru pomocí stávajících rozhraní PKCS#11
a MSCAPI. Při programování pokročilých funkcí lze využít předpřipravené funkce,
a snadno tak zvýšit bezpečnost dat i komfort uživatelů.
S tím, jak budou vývojáři vytvářet stále další a další aplikace využívající
TPM, se počítače nepochybně stanou spolehlivějším prostředím, které samo maří
útoky a pokusy o podrývání bezpečnosti a integrity.

Testování softwaru
Další z cest k vyšší spolehlivosti současných výpočetních prostředí vede přes
lepší testování softwaru. Mnohé společnosti tak zaměřují svou pozornost právě
tímto směrem.
Odhaduje se, že vady softwaru přijdou jen v USA ročně skoro na 60 miliard
dolarů (údaj NIST, National Institute of Standards and Technology). Mnohé
společnosti, jako například on-line brokeři na trhu akcií, nebo výrobci
telefonů jsou ochotni dát hodně za to, aby vadám zabránili.
"Traduje se, že testování je oblast, kam se uchylují neúspěšní programátoři. To
už neplatí," říká Vidur Kohli, vedoucí testování u společnosti Mphasis BFL, a
dodává, že testeři jsou dnes na stejné úrovni jako programátoři.
V minulosti prováděly velké firmy, jako třeba Microsoft, testování ve vlastních
provozech. Avšak analytici upozorňují, že stále častěji hledají nezávislé
experty, kteří by garantovali neutralitu a byli levnější. Tento trend je
příčinou nedávného boomu outsourcovaných služeb, které dnes jen v Indii
zaměstnávají asi půl milionu lidí. Růst v této oblasti potvrdila v minulém roce
i transakce, v jejímž rámci indická společnost Aztec Software and Technology
Services koupila soukromou testovací firmu Disha Technologies za 12 milionů
dolarů.

Ve znamení růstu
C. P. Gangadharaiah, viceprezident pro testovací služby firmy Wipro, tvrdí, že
se jeho tým během dvou let rozrostl na čtyřnásobek, tj. na 2 400 lidí.
"Předpokládáme další růst podobným tempem," svěřil se agentuře Reuters.
Představitelé Aztecu upozorňují, že asi 3 miliardy ze 4,6 miliardy vydávaných
za outsourcované testování posílají firmy do zahraničí a to podle nich
představuje příležitost pro společnosti z Indie, které profitují z využití
levných kvalifikovaných pracovníků.
Představitelé společností Tata Consultancy Services a Infosys Technologies,
které lze na žebříčku firem působících na indickém trhu se softwarem nalézt
před firmou Wipro, potvrzují, že testování patří k rozvíjejícím se odvětvím
podnikání. V posledním čtvrtletí se ale podle nich růst zpomalil.
"Testování by mohlo činit 25 % až 50 % rozpočtu na software," předpovídá Partha
Iyengar, viceprezident pro průmyslové výzkumy společnosti Gartner. Náklady na
nezávislé testování rostou podle Gartneru o 50-65 % ročně, objem práce, která
se provádí v zahraničí, pak o 35-40 %.
"Počet pracovníků zabývajících se testováním u indo-americké společnosti
Cognizant Technology Solutions se v roce 2004 zpětinásobil na 1 000 a v roce
2005 se zřejmě ještě zdvojnásobí," ilustruje situaci R. Chandrasekaran, výkonný
ředitel této společnosti. "Zaznamenáváme, že si naši IT zákazníci dávají
stranou více peněz na testovací služby," uvedl pro agenturu Reuters.

Nákladné vady
Testování už dávno není rutinou a velkou roli zde nehraje ani náhodná kontrola.
Bez ohledu na analytické dovednosti jsou odborníci zaměření na tuto disciplinu
trénováni v používání specializovaných nástrojů, které vyvinuly společnosti
jako Mercury Interactive nebo BMC Software.
Sohrab Azad manažer společnosti eQura Consulting, která se zabývá náborem
kvalifikovaných pracovníků, odhaduje, že jen v indickém Bangalore bude na
testování v příštích šesti měsících potřebovat 10 000 inženýrů.
"Velká města jako Dillí a Pune přitahují talenty ze severních indických měst
dvojnásobnými platy zkušení pracovníci si ročně přijdou na 800 000 až 1 milion
rupií (18 265-22 831 dolarů)," říká Azad.
Mezi potenciální konkurenty patří Rusko, Čína nebo Irsko, avšak za jedničku je
stále považována právě Indie. "Jakmile Čína překročí jazykovou bariéru, bude
zřejmě díky výhodě nízkých cen pro naše zakázky představovat hrozbu," odhaduje
ale Pradeep Waychal, vedoucí kvality u společnosti Patni Computer Systems.


Preference vývojářů
Jazyk C# poráží Javu to je jen jeden z řady závěrů průzkumu, který provedl
americký Computerworld mezi vývojáři. Nejvíce respondentů vybralo jako
platformu, kterou jejich organizace preferuje, .Net. Poté následoval Unix/Linux
a Microsoft Win32/COM/DCOM.
Polovina vývojářů uvedla, že používá open source kód, většina z nich pak
nevyvíjí 64bitové, linuxové ani bezdrátové aplikace (57, 60 a 64 %). Těch,
kteří tvrdili, že plánují vývoj 64bitových, linuxových nebo bezdrátových
aplikací, bylo relativně málo (9, 4 a 7 %). Skoro polovina vývojářů (48 %)
odpověděla záporně na otázku, zda jejich společnost používá jazyk UML (Unified
Modelling Language), 33 % naopak odpovědělo, že se UML v jejich organizaci
používá. Třináct procent uvedlo, že ho plánují používat v budoucnu.
Na otázku, zda jejich organizace vyvíjí webové služby, odpověděla více než
polovina, že webové služby už používají a pracují v této oblasti na větším
množství projektů (58 %). Dalších 15 % odpovědělo, že pracují na pilotních
projektech, a 12 % prohlásilo, že se o ně aktivně zajímá. Jen 9 % uvedlo, že je
tato oblast nezajímá.
Pokud porovnáme platformy Java a .Net, tvrdí 37 % respondentů, že většinou
používají Javu, zatímco 26 % uvádí, že většinou používají .Net a dalších 23 %
prohlašuje, že používají oba jazyky. 45 % respondentů označilo za svůj
preferovaný editor integrované vývojové prostředí (IDE). 35 % uvedlo, že
používá obojí IDE i běžné textové editory a 17 % respondentů vybralo za
prioritní nástroj textový editor.
Většina respondentů pracuje u společností s více než 100 zaměstnanci. 38 %
respondentů pracuje na pozici IT manažer, 36 % uvedlo, že mají titul vývojáře.
Vývoj aplikací probíhá za různými účely. Řada respondentů (přes 39 %)
prohlásila, že vývoj softwaru v jejich společnosti naplňuje jen interní potřeby
firmy. Víc než polovina respondentů (58 %) odpověděla, že pracují v útvaru
vývoje a vyvíjejí aplikace, které jsou nasazovány pro vnitropodnikové účely
nebo pro operace typu business-to-business.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.