Biztonság a COM-ban

A COM biztonsága szilárdan a Windows által biztosított biztonságon és az alapul szolgáló RPC biztonsági mechanizmusokon alapul. A COM-biztonság hitelesítési (a hívó személyazonosságának ellenőrzésének folyamata) és engedélyezési (annak meghatározása, hogy a hívó jogosult-e arra, hogy azt tegye, amit kér). A COM-ban két fő biztonsági típus létezik: aktiválási biztonsági és a biztonságihívása. Az aktiválási biztonság határozza meg, hogy az ügyfél egyáltalán elindíthat-e kiszolgálót. A kiszolgáló elindítása után a hívásbiztonság használatával szabályozhatja a kiszolgáló objektumaihoz való hozzáférést.

Ebben a biztonsági modellben a kiszolgálók kezelik és védik az objektumokat, az ügyfelek kiszolgálókon keresztül férnek hozzá az objektumokhoz, a kiszolgálók pedig megpróbálhatnak hozzáférni az ügyfél megszemélyesítéséhez.

A rendszer implementálja a Kerberos v5 hitelesítési protokollt és az Schannel biztonsági csomagot. Emellett olyan funkciókat is tartalmaz, mint a delegáltszintű megszemélyesítés, a kölcsönös hitelesítés, az AppID hitelesítési szintjeinek beállításának lehetősége a beállításjegyzékben, valamint az álcázás. A COM-biztonság használatával olyan objektumokat implementálhat, amelyek a biztonság veszélyeztetése nélkül képesek kiemelt műveleteket végrehajtani.

Mivel a COM biztonsági funkcióinak széles skálája érhető el, célszerű először meghatározni, hogy az alkalmazásnak milyen típusú biztonságra van szüksége. A legtöbb alkalmazás esetében az elfogadható biztonsági szint beállítása fájdalommentes folyamat lehet, de a COM-biztonság használatával is támogathatja a nagyon összetett biztonsági forgatókönyveket.

A biztonsági folyamatokat a beállításjegyzék beállításához Dcomcnfg.exe vagy a CoInitializeSecuritymeghívásával állíthatja be. Két elsődleges interfész, IClientSecurity és IServerSecurity (és a kapcsolódó segédfüggvények) lehetővé teszik a hívásszintű biztonság beállítását a programon belül.

A COM biztonságával kapcsolatos további információkért tekintse meg az alábbi témaköröket: