Szerelvény biztonsági szempontjai
Szerelvény létrehozásakor megadhatja azokat az engedélyeket, amelyeket a szerelvénynek futtatnia kell. Az, hogy bizonyos engedélyeket adnak-e egy szerelvénynek, vagy sem, bizonyítékon alapul.
A bizonyítékok két különböző módon használhatók:
A bemeneti bizonyítékok egyesítve lesznek a betöltő által összegyűjtött bizonyítékokkal, hogy létrehozzák a szabályzatfeloldáshoz használt bizonyítékok végső készletét. A szemantikai módszerek közé tartozik a Assembly.Load, a Assembly.LoadFrom és az Activator.CreateInstance.
A bemeneti bizonyítékokat a rendszer változatlanul használja a szabályzatfeloldáshoz használt bizonyítékok végső készleteként. A szemantikai módszerek közé tartozik a Assembly.Load(byte[]) és az AppDomain.DefineDynamicAssembly().
Az opcionális engedélyeket a szerelvényt futtató számítógépen beállított biztonsági szabályzat adja meg. Ha azt szeretné, hogy a kód kezelje az összes lehetséges biztonsági kivételt, tegye az alábbiak egyikét:
Szúrjon be egy engedélykérelmet az összes engedélyhez, amellyel a kódnak rendelkeznie kell, és kezelje a terhelési idő azon hibáját, amely akkor fordul elő, ha az engedélyek nincsenek megadva.
Ne használjon engedélykérést a kódhoz esetleg szükséges engedélyek beszerzéséhez, de készüljön fel a biztonsági kivételek kezelésére, ha az engedélyek nincsenek megadva.
Feljegyzés
A biztonság összetett terület, és számos lehetőség közül választhat. További információkért tekintse meg a legfontosabb biztonsági fogalmakat.
Betöltési időben a rendszer a szerelvény bizonyítékát használja a biztonsági szabályzat bemeneteként. A biztonsági szabályzatot a vállalat és a számítógép rendszergazdája, valamint a felhasználói házirend beállításai határozzák meg, és meghatározza az összes felügyelt kódhoz a végrehajtáskor megadott engedélyeket. Biztonsági szabályzatot lehet létrehozni a szerelvény közzétevője számára (ha rendelkezik aláírással), azon webhelyre és zónára (amely az Internet Explorer egyik koncepciója), amelyről a szerelvényt letöltötték, vagy a szerelvény erős nevére. A számítógép rendszergazdája például biztonsági szabályzatot hozhat létre, amely lehetővé teszi egy webhelyről letöltött és egy adott szoftvervállalat által aláírt kód elérését egy számítógépen lévő adatbázishoz, de nem biztosít hozzáférést a számítógép lemezére való íráshoz.
Erős névvel ellátott szerelvények és aláíró eszközök
Figyelmeztetés
A biztonság érdekében ne támaszkodjanak erős nevekre. Csak egyedi identitást biztosítanak.
A szerelvényt két különböző, de egymást kiegészítő módon is aláírhatja: erős névvel vagy SignTool.exe (Sign Tool) használatával. Az erős névvel rendelkező szerelvény aláírása nyilvános kulcs titkosítást ad a szerelvényjegyzéket tartalmazó fájlhoz. Az erős névaláírás segít ellenőrizni a név egyediségét, megelőzni a névhamisítást, és bizonyos identitást biztosítani a hívóknak a hivatkozás feloldásakor.
A megbízhatósági szint nincs erős névvel társítva, ami fontossá teszi a SignTool.exe (sign tool). A két aláíró eszköz megköveteli, hogy a közzétevő igazolja személyazonosságát egy külső szolgáltatónak, és beszerezze a tanúsítványt. Ez a tanúsítvány ezután beágyazódik a fájlba, és a rendszergazda eldöntheti, hogy megbízik-e a kód hitelességében.
A SignTool.exe (Sign Tool) használatával létrehozott digitális aláírást is megadhat egy szerelvénynek, vagy használhatja egyedül is. A két aláíró eszköz egyszerre csak egy fájlt tud aláírni; többfájlos szerelvény esetén aláírja a szerelvényjegyzéket tartalmazó fájlt. A rendszer egy erős nevet tárol a szerelvényjegyzéket tartalmazó fájlban, de a SignTool.exe (Sign Tool) használatával létrehozott aláírást a rendszer fenntartott helyen tárolja a szerelvényjegyzéket tartalmazó hordozható végrehajtható (PE) fájlban. A szerelvény SignTool.exe (aláírási eszköz) használatával történő aláírása akkor használható (erős névvel vagy anélkül), ha már rendelkezik olyan megbízhatósági hierarchiával, amely SignTool.exe (aláírási eszköz) által létrehozott aláírásokra támaszkodik, vagy ha a szabályzat csak a kulcsrészt használja, és nem ellenőrzi a megbízhatósági láncot.
Feljegyzés
Ha erős nevet és aláíróeszköz-aláírást is használ egy szerelvényen, először az erős nevet kell hozzárendelni.
A közös nyelvi futtatókörnyezet kivonat-ellenőrzést is végez; a szerelvényjegyzék tartalmazza a szerelvényt alkotó összes fájl listáját, beleértve az egyes fájlok kivonatát is, amelyek a jegyzék létrehozásakor léteztek. Az egyes fájlok betöltésekor a rendszer kivonatot ad a fájl tartalmához, és összehasonlítja a jegyzékben tárolt kivonatértékkel. Ha a két kivonat nem egyezik, a szerelvény nem töltődik be.
Az erős elnevezés és aláírás a SignTool.exe (Sign Tool) használatával digitális aláírásokkal és tanúsítványokkal garantálja az integritást. Minden említett technológia, azaz a kivonat ellenőrzése, az erős elnevezés és az aláírás a SignTool.exe (Sign Tool) használatával, együttműködve biztosítják, hogy a szerelvény semmilyen módon ne módosuljon.