.NET-security

Biztonságos megoldások a Greptontól

, 2003. március 31. 15:44
A Microsoft .NET keretrendszer átfogó, több szinten megvalósított biztonsági infrastruktúra kialakítását teszi lehetővé a fejlesztők számára. Olyan nyelv, fejlesztőeszköz, amely a biztonsági kérdések minden területére kiterjedő megoldást nyújt, és így nemcsak a biztonsági kérdések megoldására fordított fejlesztési idő rövidül le, hanem egységes és elfogadott szabványokon alapuló megoldások születnek.
Az új fejlesztéseknél a Grepton felhasználja a .NET biztonsági megoldásait, az ott szerzett tapasztalatokat. Cikkünkben bemutatjuk, hogy milyen építőkockákból épülnek fel a Microsoft .NET keretrendszer biztonsági szolgáltatásai.

Kódellenőrzés

A .NET-futtatókörnyezet szigorúan figyel arra, milyen kód futtatására akarják rábírni. Első lépésben információt gyűjt annak származási helyéről, készítőjének adatairól, vagyis feltérképezi a kód azonosítására szolgáló információkat. Megvizsgálja, hogy honnan származik a programkód: internetről letöltött állományról, lokális merevlemezen tárolt vagy esetleg megosztott hálózati erőforrásról van-e szó. Ezután szigorúbban is megvizsgálja az állományokat, kriptográfiai jegyeket keresve. Ilyen lehet a kód "ujjlenyomata" vagy a készítőjének digitális aláírása. Ezután összeveti ezeket az adatokat a kódokra vonatkozó házirend szabályaival, és eldönti, hogy az adott programkód futtatható-e, vagy sem.

A .NET által bevezetett "erős név" (strong name) a kódok pontosabb azonosítását segíti. Ez tulajdonképpen a kódnak egy olyan digitális aláírása, amely nemcsak a készítőjére, hanem a verziószámára is vonatkozik, egyértelműen megjelölve azt. Az "erős név" nemcsak a kód eredetét igazolja, hanem felderíthetővé teszi számunkra bárminemű megváltoztatásának tényét is.

Szerepkör-ellenőrzés

Gyakran nem csupán kód-, hanem alkalmazásszintű jogosultság-ellenőrzésre is szükség van. Nemcsak azt szeretnénk megvizsgálni, hogy az adott programkód futtatható-e egyáltalán, hanem azt is, hogy a programot használó személy milyen dialógusablakot láthat, milyen funkciókat használhat fel. Így természetesen további, programfunkció- és metódusszintű ellenőrzésre is szükség van. Ennek támogatására vezette be a .NET keretrendszer a szerepkörfüggő (role-based) ellenőrzést.

Egy számla- és raktárprogram-kezelő alkalmazás esetében nem minden felhasználó rendelkezik azonos szerepkörrel. Van, aki csak a kimenő számlákat képes felvinni, van, aki törölni is tudja azokat, és akad, aki mindössze azt tudja ellenőrizni, hogy az adott termékből van-e még raktáron. Régebben az ilyen igény megvalósítására a programozó telerakta a programkódot ellenőrzésekkel, feltételekkel, elágazásokkal, egy-egy rész többször is szerepelt a programban aszerint, hogy melyik felhasználó futatta az alkalmazást.

A .NET keretrendszer egyszerűbb utat kínál a programozó számára. Első lépésként elérhetővé teszi a kódot futtató személy azonosítóinak (Identity) lekérdezését. Második lépésként e mellé felsorolhatjuk az adott személy alkalmazásra vonatkozó jogait, szerepköreit (Roles). Így megkapjuk a kívánt "főszereplő" (Principal) objektumot, amely azután bármely sorból lekérdezhető és ellenőrizhető. A fejlesztőnek tehát csak meg kell jelölnie, hogy egy adott metódust milyen szerepkörrel rendelkező felhasználó hívhat meg, a .NET futtatókörnyezete minden más lépést automatikusan elvégez helyette.

Biztonságos kommunikáció

Ha már rendbe szedtük a kódunk futtatásával és alkalmazásunk funkcióinak elérésével kapcsolatos jogosultságokat, akkor még meg kell oldanunk a biztonságos kapcsolódást más rendszerekhez. A .NET keretrendszer tartalmaz minden olyan eszközt, amellyel nemzetközileg elfogadott szabványokon alapuló, biztonságos kommunikáció alakítható ki bármely rendszerrel. Ha digitális aláírásról, digitális kulcs alapján történő titkosításról, jelszavak biztonságos tárolásáról van szó, a .NET fejlesztőkörnyezete lehetőséget biztosít szabványos PKI-megoldások alkalmazására, chipkártyák vagy az újabban elterjedőben lévő USB-token felhasználására.

A biztonságos kommunikációs csatornák kialakítására SSL, illetve HTTPS típusú webszolgáltatás-megoldásokat alkalmazhatunk, nemcsak az interneten, hanem a belső hálózaton is. A .NET-fejlesztőkörnyezet által felkínált megoldásban így nem csupán védett csatornán keresztül kapcsoljuk össze a rendszereket, de azok digitális kulcsok felhasználásával azonosíthatják is egymást, lehetetlenné téve az üzenetváltás lehallgatását és hamis üzenetek küldését.

Mint a fenti példákból is látható, a .NET keretrendszer építőköveiből egyszerűen alakíthatunk ki összetett, nagy biztonsági fokkal rendelkező rendszereket. A Grepton belső .NET-szabványában és az általa kialakított .NET-rendszerekben sikerrel használja fel a .NET biztonsági építőkockáit. Az új technológiával ismerkedő fejlesztőknek tehát csak azt ajánlhatjuk, hogy a Microsoft .NET által bevezetett új nyelvek mellett ismerkedjenek meg a .NET új biztonsági megoldásaival is.

Borbély András security-szakértő / Grepton Informatikai Rt.

Kövess minket a Facebookon!

Cikkgyűjtő

További fontos híreink

Gépek is rajthoz állnak a most induló Országos IT Megmérettetésen

2024. október 28. 18:06

Megnyitott a Vatera Galéria, a válogatott műtárgyak új platformja

2024. október 22. 15:25

Egy év alatt 45 milliárd forintot loptak el tőlünk a digitális bűnözők

2024. október 15. 16:51

Idén már ezernél is több résztvevőt várnak a Service Design Day-re

2024. október 7. 09:59