Delen via


Beveiligingsframe: Gevoelige gegevens | Oplossingen

Product/service Artikel
Grens van machinevertrouwen
Webtoepassing
Database
Web-API
Azure Document DB
Vertrouwensgrens voor Azure IaaS-VM's
Grens van Service Fabric-vertrouwensrelatie
Dynamics CRM
Azure Storage
Mobiele client
WCF

Zorg ervoor dat binaire bestanden verborgen zijn als ze gevoelige informatie bevatten

Titel DETAILS
Onderdeel Grens van machinevertrouwen
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Zorg ervoor dat binaire bestanden worden verborgen als ze gevoelige informatie bevatten, zoals handelsgeheimen, gevoelige bedrijfslogica die niet moet worden omgekeerd. Dit is om reverse engineering van assembly's te stoppen. Hulpprogramma's zoals CryptoObfuscator deze kunnen voor dit doel worden gebruikt.

Overweeg om EFS (Encrypted File System) te gebruiken om vertrouwelijke gebruikersspecifieke gegevens te beveiligen

Titel DETAILS
Onderdeel Grens van machinevertrouwen
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Overweeg het gebruik van Encrypted File System (EFS) om vertrouwelijke gebruikersspecifieke gegevens te beschermen tegen kwaadwillende personen met fysieke toegang tot de computer.

Zorg ervoor dat gevoelige gegevens die door de toepassing op het bestandssysteem zijn opgeslagen, zijn versleuteld

Titel DETAILS
Onderdeel Grens van machinevertrouwen
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Zorg ervoor dat gevoelige gegevens die zijn opgeslagen door de toepassing in het bestandssysteem zijn versleuteld (bijvoorbeeld met DPAPI), als EFS niet kan worden afgedwongen

Zorg ervoor dat gevoelige inhoud niet in de cache wordt opgeslagen in de browser

Titel DETAILS
Onderdeel Webtoepassing
SDL-fase Build
Toepasselijke technologieën Algemeen, Webformulieren, MVC5, MVC6
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Browsers kunnen informatie opslaan voor caching en geschiedenis. Deze bestanden in de cache worden opgeslagen in een map, zoals de map Tijdelijke internetbestanden in het geval van Internet Explorer. Wanneer deze pagina's opnieuw worden verwezen, worden deze in de browser weergegeven vanuit de cache. Als gevoelige informatie wordt weergegeven aan de gebruiker (zoals het adres, creditcardgegevens, burgerservicenummer of gebruikersnaam), kan deze informatie worden opgeslagen in de cache van de browser en kan deze daarom worden opgehaald door de cache van de browser te bekijken of door simpelweg op de knop Terug van de browser te drukken. Stel de headerwaarde voor antwoordheader voor cachebeheer in op 'no-store' voor alle pagina's.

Opmerking

<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>

Opmerking

Dit kan worden geïmplementeerd via een filter. Het volgende voorbeeld kan worden gebruikt:

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);
        }

Secties van de configuratiebestanden van web-apps versleutelen die gevoelige gegevens bevatten

Titel DETAILS
Onderdeel Webtoepassing
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Procedure: Configuratiesecties versleutelen in ASP.NET 2.0 met behulp van DPAPI, het opgeven van een beveiligde configuratieprovider, het gebruik van Azure Key Vault om toepassingsgeheimen te beveiligen
Stappen Configuratiebestanden zoals web.config, appsettings.json worden vaak gebruikt voor het opslaan van gevoelige informatie, waaronder gebruikersnamen, wachtwoorden, database-verbindingsreeks s en versleutelingssleutels. Als u deze gegevens niet beveiligt, is uw toepassing kwetsbaar voor aanvallers of kwaadwillende gebruikers die gevoelige informatie verkrijgen, zoals gebruikersnamen en wachtwoorden van accounts, databasenamen en servernamen. Versleutel de gevoelige secties van configuratiebestanden op basis van het implementatietype (azure/on-premises) met behulp van DPAPI of services zoals Azure Key Vault.

Het HTML-kenmerk voor automatisch aanvullen expliciet uitschakelen in gevoelige formulieren en invoer

Titel DETAILS
Onderdeel Webtoepassing
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie MSDN: kenmerk automatisch aanvullen, Automatisch aanvullen gebruiken in HTML, BEVEILIGINGSprobleem met HTML-opschoning, automatisch aanvullen.,nogmaals?!
Stappen Het kenmerk voor automatisch aanvullen geeft aan of een formulier automatisch moet worden aangevuld of uitgeschakeld. Wanneer automatisch aanvullen is ingeschakeld, worden in de browser automatisch waarden voltooid op basis van waarden die de gebruiker eerder heeft ingevoerd. Wanneer bijvoorbeeld een nieuwe naam en wachtwoord in een formulier worden ingevoerd en het formulier wordt verzonden, wordt in de browser gevraagd of het wachtwoord moet worden opgeslagen. Wanneer het formulier wordt weergegeven, worden de naam en het wachtwoord automatisch ingevuld of ingevuld wanneer de naam wordt ingevoerd. Een aanvaller met lokale toegang kan het wachtwoord voor duidelijke tekst verkrijgen uit de browsercache. Automatisch aanvullen is standaard ingeschakeld en moet expliciet worden uitgeschakeld.

Opmerking

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

Zorg ervoor dat gevoelige gegevens die op het scherm van de gebruiker worden weergegeven, zijn gemaskeerd

Titel DETAILS
Onderdeel Webtoepassing
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Gevoelige gegevens, zoals wachtwoorden, creditcardnummers, SSN, enzovoort, moeten worden gemaskeerd wanneer ze op het scherm worden weergegeven. Dit is om te voorkomen dat onbevoegd personeel toegang heeft tot de gegevens (bijvoorbeeld wachtwoorden voor schouder surfen, ondersteuningspersoneel dat SSN-nummers van gebruikers bekijkt) . Zorg ervoor dat deze gegevenselementen niet zichtbaar zijn in tekst zonder opmaak en op de juiste wijze worden gemaskeerd. Dit moet worden geregeld bij het accepteren als invoer (bijvoorbeeld invoertype="password") en het weergeven op het scherm (bijvoorbeeld alleen de laatste 4 cijfers van het creditcardnummer).

Dynamische gegevensmaskering implementeren om de blootstelling van gevoelige gegevens aan niet-bevoegde gebruikers te beperken

Titel DETAILS
Onderdeel Database
SDL-fase Build
Toepasselijke technologieën Sql Azure, OnPrem
Kenmerken SQL-versie - V12, SQL-versie - MsSQL2016
Naslaginformatie Dynamische gegevensmaskering
Stappen Het doel van dynamische gegevensmaskering is om de blootstelling van gevoelige gegevens te beperken, waardoor gebruikers die geen toegang tot de gegevens mogen hebben, deze niet mogen bekijken. Dynamische gegevensmaskering is niet bedoeld om te voorkomen dat databasegebruikers rechtstreeks verbinding maken met de database en uitgebreide query's uitvoeren die delen van de gevoelige gegevens beschikbaar maken. Dynamische gegevensmaskering is een aanvulling op andere SQL Server-beveiligingsfuncties (controle, versleuteling, beveiliging op rijniveau...) en het wordt ten zeerste aanbevolen deze functie te gebruiken in combinatie met deze functies om de gevoelige gegevens in de database beter te beveiligen. Houd er rekening mee dat deze functie alleen wordt ondersteund door SQL Server vanaf 2016 en Azure SQL Database.

Zorg ervoor dat wachtwoorden zijn opgeslagen in gezouten hash-indeling

Titel DETAILS
Onderdeel Database
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Wachtwoord-hashing met behulp van .NET Crypto-API's
Stappen Wachtwoorden mogen niet worden opgeslagen in aangepaste gebruikersopslagdatabases. Wachtwoordhashes moeten worden opgeslagen met zoutwaarden. Zorg ervoor dat het zout voor de gebruiker altijd uniek is en u b-crypt, s-crypt of PBKDF2 toepast voordat u het wachtwoord opslaat, met een minimumaantal werkfactor iteraties van 150.000 lussen om de mogelijkheid van brute forcering te elimineren.

Zorg ervoor dat gevoelige gegevens in databasekolommen zijn versleuteld

Titel DETAILS
Onderdeel Database
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken SQL-versie - alle
Naslaginformatie Gevoelige gegevens versleutelen in SQL Server, Procedure: Een kolom met gegevens versleutelen in SQL Server, Versleutelen op certificaat
Stappen Gevoelige gegevens, zoals creditcardnummers, moeten worden versleuteld in de database. Gegevens kunnen worden versleuteld met versleuteling op kolomniveau of door een toepassingsfunctie met behulp van de versleutelingsfuncties.

Zorg ervoor dat versleuteling op databaseniveau (TDE) is ingeschakeld

Titel DETAILS
Onderdeel Database
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Informatie over TDE (Transparent Data Encryption) van SQL Server
Stappen De functie Transparent Data Encryption (TDE) in SQL Server helpt bij het versleutelen van gevoelige gegevens in een database en het beveiligen van de sleutels die worden gebruikt voor het versleutelen van de gegevens met een certificaat. Dit voorkomt dat iemand zonder de sleutels de gegevens gebruikt. TDE beschermt gegevens 'at rest', wat betekent dat de gegevens en logboekbestanden. Het biedt de mogelijkheid om te voldoen aan veel wetten, voorschriften en richtlijnen die in verschillende branches zijn vastgesteld.

Zorg ervoor dat databaseback-ups zijn versleuteld

Titel DETAILS
Onderdeel Database
SDL-fase Build
Toepasselijke technologieën SQL Azure, OnPrem
Kenmerken SQL-versie - V12, SQL-versie - MsSQL2014
Naslaginformatie Back-upversleuteling van SQL Database
Stappen SQL Server heeft de mogelijkheid om de gegevens te versleutelen tijdens het maken van een back-up. Door het versleutelingsalgoritmen en de versleuteler (een certificaat of asymmetrische sleutel) op te geven bij het maken van een back-up, kunt u een versleuteld back-upbestand maken.

Zorg ervoor dat gevoelige gegevens die relevant zijn voor web-API niet zijn opgeslagen in de opslag van de browser

Titel DETAILS
Onderdeel Web-API
SDL-fase Build
Toepasselijke technologieën MVC 5, MVC 6
Kenmerken Id-provider - ADFS, id-provider - Microsoft Entra-id
Naslaginformatie N.v.t.
Stappen

In bepaalde implementaties worden gevoelige artefacten die relevant zijn voor de verificatie van de web-API opgeslagen in de lokale opslag van de browser. Bijvoorbeeld: Microsoft Entra-verificatieartefacten zoals adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key enzovoort.

Al deze artefacten zijn beschikbaar, zelfs nadat afmelden of browser is gesloten. Als een aanvaller toegang krijgt tot deze artefacten, kan hij/zij deze opnieuw gebruiken om toegang te krijgen tot de beveiligde resources (API's). Zorg ervoor dat alle gevoelige artefacten met betrekking tot web-API niet zijn opgeslagen in de opslag van de browser. In gevallen waarin opslag aan de clientzijde onvermijdelijk is (bijvoorbeeld SPA (Single Page Applications) die gebruikmaken van impliciete OpenIdConnect-/OAuth-stromen, moeten toegangstokens lokaal worden opgeslagen), kunt u opslagopties gebruiken met geen persistentie. Bijvoorbeeld, liever SessionStorage naar LocalStorage.

Opmerking

Het onderstaande JavaScript-fragment is afkomstig uit een aangepaste verificatiebibliotheek waarin verificatieartefacten in lokale opslag worden opgeslagen. Dergelijke implementaties moeten worden vermeden.

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.
};

Gevoelige gegevens versleutelen die zijn opgeslagen in Azure Cosmos DB

Titel DETAILS
Onderdeel Azure Document DB
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Gevoelige gegevens versleutelen op toepassingsniveau voordat u gegevens opslaat in document DB of gevoelige gegevens opslaat in andere opslagoplossingen, zoals Azure Storage of Azure SQL

Azure Disk Encryption gebruiken om schijven te versleutelen die worden gebruikt door virtuele machines

Titel DETAILS
Onderdeel Vertrouwensgrens voor Azure IaaS-VM's
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Azure Disk Encryption gebruiken om schijven te versleutelen die worden gebruikt door uw virtuele machines
Stappen

Azure Disk Encryption is een nieuwe functie die momenteel in preview is. Met deze functie kunt u de besturingssysteemschijven en gegevensschijven die worden gebruikt door een virtuele IaaS-machine versleutelen. Voor Windows worden de stations versleuteld met behulp van de standaard BitLocker-versleutelingstechnologie. Voor Linux worden de schijven versleuteld met behulp van de DM-Crypt-technologie. Dit is geïntegreerd met Azure Key Vault, zodat u de schijfversleutelingssleutels kunt beheren en beheren. De Azure Disk Encryption-oplossing ondersteunt de volgende drie scenario's voor klantversleuteling:

  • Schakel versleuteling in op nieuwe IaaS-VM's die zijn gemaakt op basis van door de klant versleutelde VHD-bestanden en door de klant geleverde versleutelingssleutels, die zijn opgeslagen in Azure Key Vault.
  • Schakel versleuteling in op nieuwe IaaS-VM's die zijn gemaakt op basis van Azure Marketplace.
  • Schakel versleuteling in op bestaande IaaS-VM's die al worden uitgevoerd in Azure.

Geheimen versleutelen in Service Fabric-toepassingen

Titel DETAILS
Onderdeel Grens van Service Fabric-vertrouwensrelatie
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken Omgeving - Azure
Naslaginformatie Geheimen beheren in Service Fabric-toepassingen
Stappen Geheimen kunnen gevoelige informatie zijn, zoals opslag verbindingsreeks s, wachtwoorden of andere waarden die niet mogen worden verwerkt in tekst zonder opmaak. Gebruik Azure Key Vault om sleutels en geheimen te beheren in Service Fabric-toepassingen.

Waar nodig beveiligingsmodellering uitvoeren en bedrijfseenheden/Teams gebruiken

Titel DETAILS
Onderdeel Dynamics CRM
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Waar nodig beveiligingsmodellering uitvoeren en bedrijfseenheden/Teams gebruiken

De toegang tot de functie voor delen op kritieke entiteiten minimaliseren

Titel DETAILS
Onderdeel Dynamics CRM
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen De toegang tot de functie voor delen op kritieke entiteiten minimaliseren

Gebruikers trainen op de risico's die zijn gekoppeld aan de Dynamics CRM Share-functie en goede beveiligingsprocedures

Titel DETAILS
Onderdeel Dynamics CRM
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Gebruikers trainen op de risico's die zijn gekoppeld aan de Dynamics CRM Share-functie en goede beveiligingsprocedures

Voeg een regel voor ontwikkelingsstandaarden toe met configuratiedetails in uitzonderingsbeheer

Titel DETAILS
Onderdeel Dynamics CRM
SDL-fase Implementatie
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie N.v.t.
Stappen Neem een regel voor ontwikkelingsstandaarden op met configuratiedetails in uitzonderingsbeheer buiten ontwikkeling. Test hiervoor als onderdeel van codebeoordelingen of periodieke inspectie.

Azure Storage Service Encryption (SSE) gebruiken voor data-at-rest (preview)

Titel DETAILS
Onderdeel Azure Storage
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken StorageType - Blob
Naslaginformatie Azure Storage-serviceversleuteling voor data-at-rest (preview)
Stappen

Azure Storage Service Encryption (SSE) voor Data at Rest helpt u bij het beveiligen en beveiligen van uw gegevens om te voldoen aan de beveiligings- en nalevingsverplichtingen van uw organisatie. Met deze functie worden uw gegevens automatisch versleuteld door Azure Storage voordat deze worden opgeslagen en ontsleutelt voordat ze weer worden opgehaald. Het versleutelings-, ontsleutelings- en sleutelbeheer is volledig transparant voor gebruikers. SSE is alleen van toepassing op blok-blobs, pagina-blobs en toevoeg-blobs. De andere typen gegevens, waaronder tabellen, wachtrijen en bestanden, worden niet versleuteld.

Werkstroom voor versleuteling en ontsleuteling:

  • De klant schakelt versleuteling in voor het opslagaccount
  • Wanneer de klant nieuwe gegevens schrijft (PUT Blob, PUT-blok, PUT-pagina, enzovoort) naar Blob-opslag; elke schrijfbewerking wordt versleuteld met 256-bits AES-versleuteling, een van de sterkste blokcoderingen die beschikbaar zijn
  • Wanneer de klant toegang nodig heeft tot gegevens (GET Blob, enzovoort), worden gegevens automatisch ontsleuteld voordat ze terugkeren naar de gebruiker
  • Als versleuteling is uitgeschakeld, worden nieuwe schrijfbewerkingen niet meer versleuteld en blijven bestaande versleutelde gegevens versleuteld totdat ze door de gebruiker zijn herschreven. Terwijl versleuteling is ingeschakeld, worden schrijfbewerkingen naar Blob Storage versleuteld. De status van gegevens verandert niet met de gebruiker die schakelt tussen het in- of uitschakelen van versleuteling voor het opslagaccount
  • Alle versleutelingssleutels worden opgeslagen, versleuteld en beheerd door Microsoft

Houd er rekening mee dat op dit moment de sleutels die voor de versleuteling worden gebruikt, worden beheerd door Microsoft. Microsoft genereert de sleutels oorspronkelijk en beheert de veilige opslag van de sleutels, evenals de reguliere rotatie zoals gedefinieerd door intern Microsoft-beleid. In de toekomst krijgen klanten de mogelijkheid om hun eigen versleutelingssleutels te beheren en bieden ze een migratiepad van door Microsoft beheerde sleutels naar door de klant beheerde sleutels.

Versleuteling aan de clientzijde gebruiken om gevoelige gegevens op te slaan in Azure Storage

Titel DETAILS
Onderdeel Azure Storage
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Versleuteling aan de clientzijde en Azure Key Vault voor Microsoft Azure Storage, zelfstudie: Blobs versleutelen en ontsleutelen in Microsoft Azure Storage met behulp van Azure Key Vault, gegevens veilig opslaan in Azure Blob Storage met Azure Encryption Extensions
Stappen

Het Azure Storage-clientbibliotheek voor .NET Nuget-pakket ondersteunt het versleutelen van gegevens in clienttoepassingen voordat u uploadt naar Azure Storage en het ontsleutelen van gegevens tijdens het downloaden naar de client. De bibliotheek ondersteunt ook integratie met Azure Key Vault voor het beheer van sleutels voor opslagaccounts. Hier volgt een korte beschrijving van hoe versleuteling aan de clientzijde werkt:

  • De Azure Storage-client-SDK genereert een inhoudsversleutelingssleutel (CEK), een eenmalige symmetrische sleutel
  • Klantgegevens worden versleuteld met behulp van deze CEK
  • De CEK wordt vervolgens verpakt (versleuteld) met behulp van de versleutelingssleutel voor sleutel (KEK). De KEK wordt geïdentificeerd aan de hand van een sleutel-id en kan een asymmetrisch sleutelpaar of een symmetrische sleutel zijn en kan lokaal worden beheerd of opgeslagen in Azure Key Vault. De Storage-client zelf heeft nooit toegang tot de KEK. Deze roept alleen het algoritme voor sleutelverpakking op die wordt geleverd door Key Vault. Klanten kunnen ervoor kiezen om aangepaste providers te gebruiken voor sleutelterugloop/uitpakken als ze dat willen
  • De versleutelde gegevens worden vervolgens geüpload naar de Azure Storage-service. Raadpleeg de koppelingen in de sectie Met verwijzingen voor implementatiedetails op laag niveau.

Gevoelige of PII-gegevens versleutelen die naar lokale telefoons worden geschreven

Titel DETAILS
Onderdeel Mobiele client
SDL-fase Build
Toepasselijke technologieën Algemeen, Xamarin
Kenmerken N.v.t.
Naslaginformatie Instellingen en functies op uw apparaten beheren met Microsoft Intune-beleid, Sleutelhanger Valet
Stappen

Als de toepassing gevoelige informatie schrijft, zoals piI van de gebruiker (e-mail, telefoonnummer, voornaam, achternaam, voorkeuren, enzovoort)- op het bestandssysteem van mobiele apparaten moet het worden versleuteld voordat u naar het lokale bestandssysteem schrijft. Als de toepassing een bedrijfstoepassing is, verkent u de mogelijkheid om een toepassing te publiceren met Behulp van Windows Intune.

Opmerking

Intune kan worden geconfigureerd met het volgende beveiligingsbeleid om gevoelige gegevens te beveiligen:

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

Opmerking

Als de toepassing geen bedrijfstoepassing is, gebruikt u de door het platform geleverde sleutelarchief, sleutelhangers om versleutelingssleutels op te slaan, waarmee cryptografische bewerking kan worden uitgevoerd op het bestandssysteem. In het volgende codefragment ziet u hoe u toegang hebt tot de sleutel van de sleutelhanger met behulp van xamarin:

        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;
            }
        }

Gegenereerde binaire bestanden verdoezelen voordat ze worden gedistribueerd naar eindgebruikers

Titel DETAILS
Onderdeel Mobiele client
SDL-fase Build
Toepasselijke technologieën Algemeen
Kenmerken N.v.t.
Naslaginformatie Crypto-verdoofing voor .NET
Stappen Gegenereerde binaire bestanden (assembly's binnen apk) moeten worden verborgen om reverse engineering van assembly's te stoppen. Hulpprogramma's zoals CryptoObfuscator deze kunnen voor dit doel worden gebruikt.

ClientCredentialType instellen op Certificaat of Windows

Titel DETAILS
Onderdeel WCF
SDL-fase Build
Toepasselijke technologieën .NET Framework 3
Kenmerken N.v.t.
Naslaginformatie Sterken
Stappen Als u een UsernameToken met een wachtwoord zonder opmaak gebruikt via een niet-versleuteld kanaal, wordt het wachtwoord zichtbaar voor aanvallers die de SOAP-berichten kunnen snuiven. Serviceproviders die de UsernameToken gebruiken, kunnen wachtwoorden accepteren die in tekst zonder opmaak worden verzonden. Het verzenden van niet-versleutelde wachtwoorden via een niet-versleuteld kanaal kan de referenties blootstellen aan aanvallers die het SOAP-bericht kunnen snuiven.

Opmerking

De volgende configuratie van de WCF-serviceprovider maakt gebruik van het UsernameToken:

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

Stel clientCredentialType in op Certificaat of Windows.

WCF-Beveiligingsmodus is niet ingeschakeld

Titel DETAILS
Onderdeel WCF
SDL-fase Build
Toepasselijke technologieën Algemeen, .NET Framework 3
Kenmerken Beveiligingsmodus - Transport, Beveiligingsmodus - Bericht
Naslaginformatie MSDN, Fortify Kingdom, Fundamentals of WCF Security CoDe Magazine
Stappen Er is geen transport- of berichtbeveiliging gedefinieerd. Toepassingen die berichten verzenden zonder transport- of berichtbeveiliging kunnen de integriteit of vertrouwelijkheid van de berichten niet garanderen. Wanneer een WCF-beveiligingsbinding is ingesteld op Geen, worden zowel transport- als berichtbeveiliging uitgeschakeld.

Opmerking

Met de volgende configuratie wordt de beveiligingsmodus ingesteld op Geen.

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

Opmerking

Beveiligingsmodus voor alle servicebindingen zijn er vijf mogelijke beveiligingsmodi:

  • Geen. Hiermee schakelt u beveiliging uit.
  • Vervoer. Maakt gebruik van transportbeveiliging voor wederzijdse verificatie en berichtbeveiliging.
  • Message. Maakt gebruik van berichtbeveiliging voor wederzijdse verificatie en berichtbeveiliging.
  • Beide. Hiermee kunt u instellingen opgeven voor beveiliging op transport- en berichtniveau (alleen MSMQ ondersteunt dit).
  • TransportWithMessageCredential. Referenties worden doorgegeven met de bericht- en berichtbeveiliging en serververificatie worden geleverd door de transportlaag.
  • TransportCredentialOnly. Clientreferenties worden doorgegeven met de transportlaag en er wordt geen berichtbeveiliging toegepast. Gebruik transport- en berichtbeveiliging om de integriteit en vertrouwelijkheid van berichten te beschermen. De onderstaande configuratie geeft aan dat de service transportbeveiliging met berichtreferenties moet gebruiken.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>