Biztonsági keret: Bizalmas adatok | Enyhítése

Termék/szolgáltatás Cikk
Gép megbízhatósági határa
Webalkalmazás
Adatbázis
Web API
Azure Document DB
Azure IaaS virtuális gép megbízhatósági határa
Service Fabric megbízhatósági határa
Dynamics CRM
Azure Storage
Mobilügyfél
WCF

Győződjön meg arról, hogy a bináris fájlok el vannak rejtve, ha bizalmas információkat tartalmaznak

Cím Részletek
Komponens Gép megbízhatósági határa
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Győződjön meg arról, hogy a bináris fájlok el vannak rejtve, ha bizalmas információkat tartalmaznak, például üzleti titkokat, bizalmas üzleti logikát, amelyeket nem szabad megfordítani. Ez a szerelvények visszafejtésének megakadályozására szolgál. CryptoObfuscator Ilyen eszközök is használhatók erre a célra.

Fontolja meg a titkosított fájlrendszer (EFS) használatát a bizalmas, felhasználóspecifikus adatok védelmére

Cím Részletek
Komponens Gép megbízhatósági határa
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Fontolja meg a titkosított fájlrendszer (EFS) használatát a bizalmas, felhasználóspecifikus adatok védelmére a számítógéphez fizikai hozzáféréssel rendelkező támadóktól.

Győződjön meg arról, hogy az alkalmazás által a fájlrendszerben tárolt bizalmas adatok titkosítva

Cím Részletek
Komponens Gép megbízhatósági határa
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Győződjön meg arról, hogy az alkalmazás által a fájlrendszerben tárolt bizalmas adatok titkosítottak (például DPAPI használatával), ha az EFS nem kényszeríthető

Győződjön meg arról, hogy a bizalmas tartalom nincs gyorsítótárazva a böngészőben

Cím Részletek
Komponens Webalkalmazás
SDL-fázis Építés
Alkalmazható technológiák Általános, Webes űrlapok, MVC5, MVC6
Attribútumok n/a
Hivatkozások n/a
Lépések A böngészők gyorsítótárazási és előzményadatok tárolására is képesek. Ezek a gyorsítótárazott fájlok egy mappában vannak tárolva, például az Internet Explorer esetében az Ideiglenes internetfájlok mappában. Amikor ezekre a lapokra ismét hivatkozik, a böngésző megjeleníti őket a gyorsítótárából. Ha bizalmas információk jelennek meg a felhasználó számára (például a cím, a hitelkártya adatai, a társadalombiztosítási szám vagy a felhasználónév), akkor ezek az információk a böngésző gyorsítótárában tárolhatók, és így a böngésző gyorsítótárának vizsgálatával vagy a böngésző "Vissza" gombjának megnyomásával olvashatók le. Állítsa a gyorsítótár-vezérlés válaszfejlécének értékét "nincs tároló" értékre az összes oldalon.

Példa

<configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="no-store" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="-1" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

Példa

Ez egy szűrőn keresztül valósítható meg. A következő példa használható:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Response.IsRequestBeingRedirected))
            {
                //// Since this is MVC pipeline, this should never be null.
                return;
            }

            var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(System.Web.Mvc.OutputCacheAttribute), false);
            if (attributes == null || **Attributes**.Count() == 0)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
                filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
                if (!filterContext.IsChildAction)
                {
                    filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");
                }
            }

            base.OnActionExecuting(filterContext);
        }

A webalkalmazás bizalmas adatokat tartalmazó konfigurációs fájljainak szakaszainak titkosítása

Cím Részletek
Komponens Webalkalmazás
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Útmutató: Konfigurációs szakaszok titkosítása a ASP.NET 2.0-ban DPAPI használatával, Védett konfigurációs szolgáltató megadása, Azure Key Vault használata az alkalmazás titkos kulcskódjának védelméhez
Lépések Az olyan konfigurációs fájlok, mint a Web.config, appsettings.json gyakran bizalmas adatok tárolására szolgálnak, például felhasználónevek, jelszavak, adatbázis-kapcsolati sztring és titkosítási kulcsok tárolására. Ha nem védi ezeket az információkat, az alkalmazás sebezhetővé válik a támadók vagy rosszindulatú felhasználók számára, amelyek bizalmas információkat szereznek be, például a fiók felhasználóneveit és jelszavait, az adatbázisneveket és a kiszolgálóneveket. Az üzembe helyezés típusa (azure/on-prem) alapján titkosítsa a konfigurációs fájlok bizalmas szakaszait DPAPI vagy olyan szolgáltatások használatával, mint az Azure Key Vault.

Az automatikus kiegészítés HTML-attribútumának explicit letiltása bizalmas űrlapokon és bemeneteken

Cím Részletek
Komponens Webalkalmazás
SDL-fázis Felépítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások MSDN: automatikus kiegészítési attribútum, Automatikus kiegészítés használata HTML-ben, HTML-fertőtlenítő biztonsági rés, automatikus kiegészítés.,ismét?!
Lépések Az automatikus kiegészítés attribútum azt határozza meg, hogy egy űrlapnak be- vagy kikapcsolt állapotúnak kell-e lennie. Ha az automatikus kiegészítés be van kapcsolva, a böngésző automatikusan kitölti az értékeket a felhasználó által korábban megadott értékek alapján. Ha például új nevet és jelszót ad meg egy űrlapon, és az űrlap elküldve van, a böngésző megkérdezi, hogy menteni kell-e a jelszót. Ezután, amikor az űrlap megjelenik, a név és a jelszó automatikusan kitöltésre kerül, vagy a neve beírásakor fejeződik be a kitöltés. A helyi hozzáféréssel rendelkező támadók a böngésző gyorsítótárából szerezhetik be a tiszta szöveges jelszót. Alapértelmezés szerint az automatikus kiegészítés engedélyezve van, és kifejezetten le kell tiltani.

Példa

<form action="Login.aspx" method="post " autocomplete="off" >
      Social Security Number: <input type="text" name="ssn" />
      <input type="submit" value="Submit" />    
</form>

Győződjön meg arról, hogy a felhasználói képernyőn megjelenő bizalmas adatok el vannak rejtve.

Cím Részletek
Komponens Webalkalmazás
SDL-fázis Felépítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések A képernyőn megjelenő bizalmas adatokat, például jelszavakat, hitelkártyaszámokat, SSN-t stb. maszkoljuk. Ennek célja, hogy megakadályozza, hogy illetéktelen személyek hozzáférjenek az adatokhoz (például a váll fölötti betekintéssel történő jelszólopás, vagy amikor a támogató személyzet megtekinti a felhasználók személyi azonosító számát). Győződjön meg arról, hogy ezek az adatelemek nem láthatók egyszerű szövegben, és megfelelően maszkoltak. Ezt figyelembe kell venni, miközben bemenetként fogadja el őket (pl. input type="password") és vissza kell jeleníteni a képernyőn (például csak a hitelkártyaszám utolsó 4 számjegyét kell megjeleníteni).

Dinamikus adatmaszkolás implementálása a bizalmas adatexpozíció korlátozásához nem kiemelt felhasználók számára

Cím Részletek
Komponens Adatbázis
SDL-fázis Építés
Alkalmazható technológiák Sql Azure, OnPrem
Attribútumok SQL-verzió – V12, SQL-verzió – MsSQL2016
Hivatkozások Dinamikus adatmaszkolás
Lépések A dinamikus adatmaszkolás célja a bizalmas adatok expozíciójának korlátozása, megakadályozva, hogy azok a felhasználók, akik nem férhetnek hozzá az adatokhoz, ne tekinthessék meg őket. A dinamikus adatmaszkolás nem célja annak megakadályozása, hogy az adatbázis felhasználói közvetlenül csatlakozzanak az adatbázishoz, és olyan kimerítő lekérdezéseket futtasson, amelyek elérhetővé teszik a bizalmas adatok egy részét. A dinamikus adatmaszkolás kiegészíti az SQL Server egyéb biztonsági funkcióit (naplózás, titkosítás, sorszintű biztonság...), és az adatbázis bizalmas adatainak hatékonyabb védelme érdekében erősen ajánlott a funkció használata velük együtt. Vegye figyelembe, hogy ezt a funkciót csak az SQL Server támogatja 2016-tól és az Azure SQL Database-től kezdve.

Győződjön meg arról, hogy a jelszavak sózott kivonat formátumban vannak tárolva

Cím Részletek
Komponens Adatbázis
SDL-fázis Épít
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Jelszókivonat-készítés .NET crypto API-k használatával
Lépések A jelszavakat nem szabad egyéni felhasználói tároló-adatbázisokban tárolni. A jelszókivonatokat inkább sóértékekkel kell tárolni. Győződjön meg arról, hogy a felhasználók jelszóhoz használt sója mindig egyedi, és a jelszó tárolása előtt alkalmazza a b-crypt, s-crypt vagy PBKDF2-t, legalább 150 000 iterációval, hogy elkerülje a brute force támadás lehetőségét.

Győződjön meg arról, hogy az adatbázisoszlopokban lévő bizalmas adatok titkosítva lesznek

Cím Részletek
Komponens Adatbázis
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok SQL-verzió – Minden
Hivatkozások Bizalmas adatok titkosítása az SQL Serveren, útmutató: Adatoszlop titkosítása az SQL Serveren, titkosítás tanúsítvány alapján
Lépések A bizalmas adatokat, például a hitelkártyaszámokat titkosítani kell az adatbázisban. Az adatok oszlopszintű titkosítással vagy alkalmazásfüggvényekkel titkosíthatók a titkosítási függvények használatával.

Győződjön meg arról, hogy az adatbázisszintű titkosítás (TDE) engedélyezve van

Cím Részletek
Komponens Adatbázis
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Az SQL Server transzparens adattitkosítás (TDE) ismertetése
Lépések az SQL Server transzparens adattitkosítás (TDE) funkciója segít titkosítani az adatbázisban lévő bizalmas adatokat, és megvédeni azokat a kulcsokat, amelyek az adatok tanúsítványsal való titkosításához szükségesek. Ez megakadályozza, hogy a kulcsok nélkül bárki használja az adatokat. A TDE "inaktív állapotban" védi az adatokat, vagyis az adatokat és a naplófájlokat. Lehetővé teszi, hogy megfeleljen a különböző iparágakban létrehozott számos törvénynek, rendeletnek és irányelvnek.

Győződjön meg arról, hogy az adatbázis biztonsági másolatai titkosítva vannak

Cím Részletek
Komponens Adatbázis
SDL-fázis Építés
Alkalmazható technológiák SQL Azure, OnPrem
Attribútumok SQL-verzió – V12, SQL-verzió – MsSQL2014
Hivatkozások SQL-adatbázis biztonsági mentésének titkosítása
Lépések Az SQL Server képes titkosítani az adatokat biztonsági mentés létrehozásakor. A titkosítási algoritmus és a titkosító (tanúsítvány vagy aszimmetrikus kulcs) megadásával biztonsági mentés létrehozásakor titkosított biztonsági mentési fájlt hozhat létre.

Győződjön meg arról, hogy a web API-ra vonatkozó bizalmas adatok nincsenek tárolva a böngésző tárterületén

Cím Részletek
Komponens Webes API
SDL-fázis Létrehozás
Alkalmazható technológiák MVC 5, MVC 6
Attribútumok Identitásszolgáltató – ADFS, identitásszolgáltató – Microsoft Entra ID
Hivatkozások n/a
Lépések

Bizonyos implementációkban a Web API hitelesítéséhez kapcsolódó bizalmas összetevők a böngésző helyi tárolójában vannak tárolva. Például a Microsoft Entra hitelesítési összetevők, például adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key stb.

Ezek az összetevők a kijelentkezés vagy a böngésző bezárása után is elérhetők. Ha egy támadó hozzáfér ezekhez az összetevőkhöz, újra felhasználhatja őket a védett erőforrások (API-k) eléréséhez. Győződjön meg arról, hogy a Web API-val kapcsolatos bizalmas összetevők nincsenek a böngésző tárában tárolva. Ha az ügyféloldali tárolás elkerülhetetlen (például az Implicit OpenIdConnect/OAuth folyamatokat használó egyoldalas alkalmazásoknak (SPA) helyileg kell tárolniuk a hozzáférési jogkivonatokat, akkor a tárolási lehetőségeket úgy használhatja, hogy nem rendelkezik adatmegőrzéssel. Például inkább a SessionStorage-t válassza a LocalStorage-nak.

Példa

Az alábbi JavaScript-kódrészlet egy egyéni hitelesítési kódtárból származik, amely a helyi tárolóban tárolja a hitelesítési összetevőket. Ezeket a megvalósításokat el kell kerülni.

ns.AuthHelper.Authenticate = function () {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: ns.Configurations.Tenant,
clientId: ns.Configurations.AADApplicationClientID,
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage', // enable this for Internet Explorer, as sessionStorage does not work for localhost.
};

Az Azure Cosmos DB-ben tárolt bizalmas adatok titkosítása

Cím Részletek
Komponens Azure Document DB
SDL-fázis Épít
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Bizalmas adatok titkosítása alkalmazásszinten a dokumentum db-ben való tárolás előtt, vagy bizalmas adatok tárolása más tárolási megoldásokban, például az Azure Storage-ban vagy az Azure SQL-ben

Az Azure Disk Encryption használata a virtuális gépek által használt lemezek titkosításához

Cím Részletek
Komponens Azure IaaS virtuális gép megbízhatósági határa
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Az Azure Disk Encryption használata a virtuális gépek által használt lemezek titkosításához
Lépések

Az Azure Disk Encryption egy új funkció, amely jelenleg előzetes verzióban érhető el. Ez a funkció lehetővé teszi az IaaS virtuális gép által használt operációsrendszer-lemezek és adatlemezek titkosítását. Windows esetén a meghajtók az iparági szabványnak megfelelő BitLocker titkosítási technológiával vannak titkosítva. Linux esetén a lemezek titkosítása a DM-Crypt technológiával történik. Ez integrálva van az Azure Key Vaulttal, így szabályozhatja és kezelheti a lemeztitkosítási kulcsokat. Az Azure Disk Encryption megoldás a következő három ügyféltitkosítási forgatókönyvet támogatja:

  • Engedélyezze a titkosítást az ügyfél által titkosított VHD-fájlokból és ügyfél által biztosított titkosítási kulcsokból létrehozott új IaaS virtuális gépeken, amelyeket az Azure Key Vault tárol.
  • Engedélyezze a titkosítást az Azure Marketplace-ről létrehozott új IaaS virtuális gépeken.
  • Engedélyezze a titkosítást az Azure-ban már futó meglévő IaaS virtuális gépeken.

Titkos kódok titkosítása Service Fabric-alkalmazásokban

Cím Részletek
Komponens A Service Fabric megbízhatósági határa
SDL-fázis Épít
Alkalmazható technológiák Általános
Attribútumok Környezet – Azure
Hivatkozások Titkos kódok kezelése a Service Fabric-alkalmazásokban
Lépések A titkos kódok lehetnek bizalmas információk, például tárolási kapcsolati sztringek, jelszavak vagy más értékek, amelyeket nem szabad egyszerű szövegben kezelni. Az Azure Key Vault használatával kezelheti a kulcsokat és titkos kulcsokat a Service Fabric-alkalmazásokban.

Biztonsági modellezés végrehajtása és szükség esetén üzleti egységek/csapatok használata

Cím Részletek
Komponens Dynamics CRM
SDL-fázis Felépítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Biztonsági modellezés végrehajtása és szükség esetén üzleti egységek/csapatok használata

A megosztási funkcióhoz való hozzáférés minimalizálása kritikus entitásokon

Cím Részletek
Komponens Dynamics CRM
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések A megosztási funkcióhoz való hozzáférés minimalizálása kritikus entitásokon

A Felhasználók betanítása a Dynamics CRM Share szolgáltatással kapcsolatos kockázatokra és a bevált biztonsági eljárásokra

Cím Részletek
Komponens Dynamics CRM
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések A Felhasználók betanítása a Dynamics CRM Share szolgáltatással kapcsolatos kockázatokra és a bevált biztonsági eljárásokra

Vegyen fel egy fejlesztési szabványok szerinti szabályt, amely tiltja a konfigurációs részletek megjelenítését a kivételkezelés során.

Cím Részletek
Komponens Dynamics CRM
SDL-fázis Telepítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások n/a
Lépések Adjon meg egy fejlesztési szabványokra vonatkozó szabályt, amely a konfiguráció részleteit jeleníti meg a fejlesztésen kívüli kivételkezelésben. Ennek tesztelése kódvizsgálatok vagy időszakos ellenőrzés részeként.

Az Azure Storage Service Encryption (SSE) használata inaktív adatokhoz (előzetes verzió)

Cím Részletek
Komponens Azure Storage
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok StorageType – Blob
Hivatkozások Azure Storage Szolgáltatástitkosítás inaktív adatokhoz (előzetes verzió)
Lépések

Az Azure Storage Service Encryption (SSE) for Data at Rest segít az adatok védelmében és védelmében, hogy megfeleljen a szervezeti biztonsági és megfelelőségi követelményeknek. Ezzel a funkcióval az Azure Storage automatikusan titkosítja az adatokat a tárolás előtt, és visszafejti őket a lekérés előtt. A titkosítás, a visszafejtés és a kulcskezelés teljesen átlátható a felhasználók számára. Az SSE csak a blokkblobokra, lapblobokra és hozzáfűző blobokra vonatkozik. A többi adattípus, beleértve a táblákat, az üzenetsorokat és a fájlokat, nem lesz titkosítva.

Titkosítási és visszafejtési munkafolyamat:

  • Az ügyfél engedélyezi a titkosítást a tárfiókon
  • Amikor az ügyfél új adatokat (PUT Blob, PUT Block, PUT Page stb.) ír a Blob Storage-ba; minden írás 256 bites AES-titkosítással van titkosítva, amely az elérhető legerősebb blokk-titkosítások egyike
  • Amikor az ügyfélnek hozzá kell férnie az adatokhoz (GET Blob stb.), a rendszer automatikusan visszafejti az adatokat, mielőtt visszatér a felhasználóhoz
  • Ha a titkosítás le van tiltva, az új írások már nem lesznek titkosítva, és a meglévő titkosított adatok titkosítva maradnak, amíg a felhasználó újra nem írja. Amíg a titkosítás engedélyezve van, a Blob Storage-ba történő írás titkosítva lesz. Az adatok állapota nem változik, amikor a felhasználó engedélyezi vagy letiltja a tárfiók titkosítását.
  • Az összes titkosítási kulcsot a Microsoft tárolja, titkosítja és kezeli

Vegye figyelembe, hogy a titkosításhoz használt kulcsokat jelenleg a Microsoft kezeli. A Microsoft eredetileg létrehozza a kulcsokat, és kezeli a kulcsok biztonságos tárolását, valamint a belső Microsoft-szabályzatban meghatározott rendszeres rotációt. A jövőben az ügyfelek kezelhetik a saját titkosítási kulcsaikat, és migrálási útvonalat biztosíthatnak a Microsoft által felügyelt kulcsoktól az ügyfél által felügyelt kulcsokig.

Bizalmas adatok tárolása ügyféloldali titkosítással az Azure Storage-ban

Cím Részletek
Komponens Azure Storage
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Ügyféloldali titkosítás és Azure Key Vault a Microsoft Azure Storage-hoz, oktatóanyag: Blobok titkosítása és visszafejtése a Microsoft Azure Storage-ban az Azure Key Vault használatával, adatok biztonságos tárolása az Azure Blob Storage-ban Azure Encryption-bővítményekkel
Lépések

Az Azure Storage .NET NuGet-csomaghoz készült ügyfélkódtár támogatja az ügyfélalkalmazások adatainak titkosítását az Azure Storage-ba való feltöltés előtt, valamint az adatok visszafejtését az ügyfélre való letöltés során. A kódtár emellett támogatja az Azure Key Vault rendszerrel való integrálást a tárfiókkulcs-kezelés biztosítása érdekében. Az ügyféloldali titkosítás működésének rövid leírása:

  • Az Azure Storage ügyféloldali SDK létrehoz egy tartalomtitkosítási kulcsot (CEK), amely egyszeri használatú szimmetrikus kulcs
  • Az ügyféladatok titkosítása ezzel a CEK-sel történik
  • A CEK ezután be van csomagolva (titkosítva) a kulcstitkosítási kulccsal (KEK). A KEK-t kulcsazonosító azonosítja, és aszimmetrikus kulcspár vagy szimmetrikus kulcs lehet, és helyileg felügyelhető, vagy tárolható az Azure Key Vaultban. Maga a tárolási ügyfél soha nem fér hozzá a KEK-hez. Csak meghívja a Key Vault által biztosított kulcsburkoló algoritmust. Az ügyfelek dönthetnek úgy, hogy egyéni szolgáltatókat használnak a kulcsburkoláshoz/törléshez, ha szeretnék
  • A titkosított adatok ezután fel lesznek töltve az Azure Storage szolgáltatásba. Az alacsony szintű megvalósítás részleteiért tekintse meg a hivatkozások szakaszban található hivatkozásokat.

Bizalmas vagy PII-adatok titkosítása, amelyet a telefonok helyi tárolóba írnak

Cím Részletek
Komponens Mobilügyfél
SDL-fázis Felépítés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Az eszközök beállításainak és funkcióinak kezelése Microsoft Intune-szabályzatokkal
Lépések

Ha az alkalmazás bizalmas adatokat ír, például a felhasználó PII-jét (e-mail, telefonszám, utónév, vezetéknév, beállítások stb.)- a mobil fájlrendszerén, akkor titkosítva kell lennie, mielőtt a helyi fájlrendszerbe ír. Ha az alkalmazás vállalati alkalmazás, akkor vizsgálja meg az alkalmazás Közzétételének lehetőségét a Windows Intune használatával.

Példa

Az Intune a bizalmas adatok védelme érdekében az alábbi biztonsági szabályzatokkal konfigurálható:

Require encryption on mobile device    
Require encryption on storage cards
Allow screen capture

Példa

Ha az alkalmazás nem vállalati alkalmazás, akkor használja a platform által biztosított kulcstárat, a kulcsláncokat a titkosítási kulcsok tárolásához, amellyel titkosítási művelet végezhető el a fájlrendszeren. Az alábbi kódrészlet bemutatja, hogyan érheti el a kulcsot a kulcsláncból az iOS .NET használatával:

        protected static string EncryptionKey
        {
            get
            {
                if (String.IsNullOrEmpty(_Key))
                {
                    var query = new SecRecord(SecKind.GenericPassword);
                    query.Service = NSBundle.MainBundle.BundleIdentifier;
                    query.Account = "UniqueID";

                    NSData uniqueId = SecKeyChain.QueryAsData(query);
                    if (uniqueId == null)
                    {
                        query.ValueData = NSData.FromString(System.Guid.NewGuid().ToString());
                        var err = SecKeyChain.Add(query);
                        _Key = query.ValueData.ToString();
                    }
                    else
                    {
                        _Key = uniqueId.ToString();
                    }
                }

                return _Key;
            }
        }

A létrehozott bináris fájlok elrejtése a végfelhasználóknak való terjesztés előtt

Cím Részletek
Komponens Mobilügyfél
SDL-fázis Építés
Alkalmazható technológiák Általános
Attribútumok n/a
Hivatkozások Crypto Obfuscation for .NET
Lépések A generált bináris fájlokat (az APK-n belüli szerelvényeket) homályosítani kell, hogy megakadályozzák a szerelvények visszafejtését. CryptoObfuscator Ilyen eszközök is használhatók erre a célra.

A clientCredentialType beállítása tanúsítványra vagy Windowsra

Cím Részletek
Komponens WCF (Windows Communication Foundation)
SDL-fázis Építés
Alkalmazható technológiák .NET-keretrendszer 3
Attribútumok n/a
Hivatkozások Megerősít
Lépések Ha a UsernameToken egyszerű szöveges jelszót használ egy titkosítatlan csatornán, a jelszó elérhetővé teszi a jelszót azoknak a támadóknak, akik meg tudják szippantani a SOAP-üzeneteket. A UsernameTokent használó szolgáltatók elfogadhatják az egyszerű szövegben küldött jelszavakat. Ha egyszerű szöveges jelszavakat küld egy titkosítatlan csatornán, a hitelesítő adatokat elérhetővé teheti a támadók számára, akik meg tudják sniffenni a SOAP-üzenetet.

Példa

Az alábbi WCF-szolgáltatói konfiguráció a UsernameTokent használja:

<security mode="Message">
<message clientCredentialType="UserName" />

A clientCredentialType beállítása tanúsítványra vagy Windowsra.

A WCF biztonsági mód nincs engedélyezve

Cím Részletek
Komponens WCF
SDL-fázis Építés
Alkalmazható technológiák Általános, .NET-keretrendszer 3
Attribútumok Biztonsági mód – Átvitel, Biztonsági mód – Üzenet
Hivatkozások MSDN, Fortify Kingdom, A WCF Security alapjai CoDe Magazinban
Lépések Nincs definiálva átvitel- vagy üzenetbiztonság. Azok az alkalmazások, amelyek átvitel vagy üzenetbiztonság nélkül továbbítják az üzeneteket, nem garantálhatják az üzenetek integritását vagy titkosságát. Ha egy WCF biztonsági kötés Nincs értékre van állítva, az átvitel és az üzenetbiztonság is le van tiltva.

Példa

Az alábbi konfiguráció a biztonsági módot Nincs értékre állítja.

<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name=""MyBinding"">
        <security mode=""None""/>
      </binding>
  </bindings>
</system.serviceModel>

Példa

Biztonsági mód Az összes szolgáltatáskötéshez öt lehetséges biztonsági mód létezik:

  • Nincs. Kikapcsolja a biztonságot.
  • Szállítás. Átviteli biztonságot használ a kölcsönös hitelesítéshez és az üzenetek védelméhez.
  • Üzenet. Üzenetbiztonságot használ a kölcsönös hitelesítéshez és az üzenetek védelméhez.
  • Mindkettő. Lehetővé teszi az átvitel és az üzenetszintű biztonság beállításait (ezt csak az MSMQ támogatja).
  • TransportWithMessageCredential. A hitelesítő adatokat az üzenet, az üzenetvédelem és a kiszolgálóhitelesítés pedig az átviteli réteg biztosítja.
  • TransportCredentialOnly. Az ügyfél hitelesítő adatai az átviteli réteggel együtt lesznek átadva, és nincs üzenetvédelem alkalmazva. Használjon szállítási és üzenetbiztonsági intézkedéseket az üzenetek integritásának és bizalmasságának védelmére. Az alábbi konfiguráció arra utasítja a szolgáltatást, hogy az átviteli biztonságot használja az üzenet hitelesítő adataival.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding"">
      <security mode=""TransportWithMessageCredential""/>
      <message clientCredentialType=""Windows""/>
      </binding>
    </bindings>
    </system.serviceModel>