Partilhar via


Quadro de segurança: Dados sensíveis | Atenuações

Produto/Serviço Artigo
Limite de confiança da máquina
Aplicação Web
Base de dados
API Web
Banco de Dados de Documentos do Azure
Limite de confiança da VM IaaS do Azure
Limite de confiança do Service Fabric
Dynamics CRM
Armazenamento do Azure
Cliente Móvel
WCF

Certifique-se de que os binários sejam ofuscados se contiverem informações confidenciais

Título Detalhes
Componente Limite de confiança da máquina
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Certifique-se de que os binários sejam ofuscados se contiverem informações confidenciais, como segredos comerciais, lógica de negócios sensível que não deve ser revertida. Isso é para parar a engenharia reversa de montagens. Ferramentas como CryptoObfuscator podem ser usadas para este fim.

Considere o uso do EFS (Sistema de Arquivos Criptografados) para proteger dados confidenciais específicos do usuário

Título Detalhes
Componente Limite de confiança da máquina
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Considere o uso do EFS (Sistema de Arquivos Criptografados) para proteger dados confidenciais específicos do usuário de adversários com acesso físico ao computador.

Certifique-se de que os dados confidenciais armazenados pelo aplicativo no sistema de arquivos sejam criptografados

Título Detalhes
Componente Limite de confiança da máquina
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Certifique-se de que os dados confidenciais armazenados pelo aplicativo no sistema de arquivos sejam criptografados (por exemplo, usando DPAPI), se o EFS não puder ser imposto

Verifique se o conteúdo confidencial não está armazenado em cache no navegador

Título Detalhes
Componente Aplicação Web
Fase SDL Compilar
Tecnologias aplicáveis Genérico, Web Forms, MVC5, MVC6
Atributos N/A
Referências N/A
Passos Os navegadores podem armazenar informações para fins de cache e histórico. Esses arquivos armazenados em cache são armazenados em uma pasta, como a pasta Temporary Internet Files no caso do Internet Explorer. Quando essas páginas são referenciadas novamente, o navegador as exibe de seu cache. Se informações confidenciais forem exibidas para o usuário (como endereço, detalhes do cartão de crédito, número de segurança social ou nome de usuário), essas informações podem ser armazenadas no cache do navegador e, portanto, recuperáveis examinando o cache do navegador ou simplesmente pressionando o botão "Voltar" do navegador. Defina o valor do cabeçalho de resposta do controle de cache como "no-store" para todas as páginas.

Exemplo

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

Exemplo

Isto pode ser implementado através de um filtro. Pode utilizar-se o seguinte exemplo:

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

Criptografar seções dos arquivos de configuração do Web App que contêm dados confidenciais

Título Detalhes
Componente Aplicação Web
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Como: Criptografar seções de configuração no ASP.NET 2.0 Usando DPAPI, Especificando um provedor de configuração protegido, Usando o Cofre de Chaves do Azure para proteger segredos de aplicativo
Passos Arquivos de configuração, como Web.config, appsettings.json são frequentemente usados para armazenar informações confidenciais, incluindo nomes de usuário, senhas, cadeias de conexão de banco de dados e chaves de criptografia. Se você não proteger essas informações, seu aplicativo estará vulnerável a invasores ou usuários mal-intencionados que obtenham informações confidenciais, como nomes de usuário e senhas de contas, nomes de bancos de dados e nomes de servidores. Com base no tipo de implantação (azure/on-prem), criptografe as seções confidenciais dos arquivos de configuração usando DPAPI ou serviços como o Azure Key Vault.

Desative explicitamente o atributo HTML de preenchimento automático em formulários e entradas confidenciais

Título Detalhes
Componente Aplicação Web
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências MSDN: atributo de preenchimento automático, usando o preenchimento automático em HTML, vulnerabilidade de limpeza de HTML, preenchimento automático.,novamente?!
Passos O atributo autocomplete especifica se um formulário deve ter o preenchimento automático ativado ou desativado. Quando o preenchimento automático está ativado, o navegador completa automaticamente os valores com base nos valores que o usuário inseriu antes. Por exemplo, quando um novo nome e senha são inseridos em um formulário e o formulário é enviado, o navegador pergunta se a senha deve ser salva. Depois disso, quando o formulário é exibido, o nome e a senha são preenchidos automaticamente ou são preenchidos à medida que o nome é inserido. Um invasor com acesso local pode obter a senha de texto não criptografado do cache do navegador. Por padrão, o preenchimento automático está habilitado e deve ser explicitamente desativado.

Exemplo

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

Verifique se os dados confidenciais exibidos na tela do usuário estão mascarados

Título Detalhes
Componente Aplicação Web
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Dados sensíveis, como senhas, números de cartão de crédito, CPF, etc., devem ser mascarados quando exibidos na tela. Isso é para evitar que pessoas não autorizadas acessem os dados (por exemplo, senhas de navegação no ombro, pessoal de suporte visualizando números SSN de usuários). Certifique-se de que esses elementos de dados não estejam visíveis em texto sem formatação e estejam adequadamente mascarados. Isso deve ser tomado cuidado ao aceitá-los como entrada (por exemplo, digite type="password"), bem como exibir de volta na tela (por exemplo, exibir apenas os últimos 4 dígitos do número do cartão de crédito).

Implemente o mascaramento dinâmico de dados para limitar a exposição de dados confidenciais a usuários não privilegiados

Título Detalhes
Componente Base de Dados
Fase SDL Compilar
Tecnologias aplicáveis Sql Azure, OnPrem
Atributos Versão SQL - V12, Versão SQL - MsSQL2016
Referências Mascaramento dinâmico de dados
Passos O objetivo do mascaramento dinâmico de dados é limitar a exposição de dados sensíveis, impedindo que usuários que não deveriam ter acesso aos dados os visualizem. O mascaramento dinâmico de dados não visa impedir que os usuários do banco de dados se conectem diretamente ao banco de dados e executem consultas exaustivas que expõem partes dos dados confidenciais. O mascaramento dinâmico de dados é complementar a outros recursos de segurança do SQL Server (auditoria, criptografia, segurança em nível de linha...) e é altamente recomendável usar esse recurso em conjunto com eles, além disso, para proteger melhor os dados confidenciais no banco de dados. Observe que esse recurso é suportado apenas pelo SQL Server a partir de 2016 e pelo Banco de Dados SQL do Azure.

Verifique se as palavras-passe estão armazenadas no formato hash com salt incluído

Título Detalhes
Componente Base de Dados
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Hashing de palavras-passe com as APIs Criptográficas .NET
Passos As senhas não devem ser armazenadas em bancos de dados de armazenamento de usuário personalizados. Os hashes de palavras-passe devem ser armazenados com valores salt. Certifique-se de que o sal para o usuário é sempre único e você aplica b-crypt, s-crypt ou PBKDF2 antes de armazenar a senha, com uma contagem mínima de iteração de fator de trabalho de 150.000 loops para eliminar a possibilidade de força bruta.

Verifique se os dados confidenciais nas colunas do banco de dados estão criptografados

Título Detalhes
Componente Base de Dados
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos Versão SQL - Todos
Referências Criptografando dados confidenciais no SQL Server, Como criptografar uma coluna de dados no SQL Server, criptografar por certificado
Passos Dados sensíveis, como números de cartão de crédito, devem ser criptografados no banco de dados. Os dados podem ser criptografados usando criptografia em nível de coluna ou por uma função de aplicativo usando as funções de criptografia.

Verifique se a criptografia no nível de banco de dados (TDE) está habilitada

Título Detalhes
Componente Base de Dados
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Noções básicas sobre TDE (criptografia transparente de dados) do SQL Server
Passos O recurso TDE (Criptografia de Dados Transparente) no SQL Server ajuda na criptografia de dados confidenciais em um banco de dados e protege as chaves usadas para criptografar os dados com um certificado. Isso impede que qualquer pessoa sem as chaves use os dados. A TDE protege os dados "em repouso", ou seja, os dados e os arquivos de log. Ele fornece a capacidade de cumprir muitas leis, regulamentos e diretrizes estabelecidas em vários setores.

Verifique se os backups do banco de dados são criptografados

Título Detalhes
Componente Base de Dados
Fase SDL Compilar
Tecnologias aplicáveis SQL Azure, OnPrem
Atributos Versão SQL - V12, Versão SQL - MsSQL2014
Referências Criptografia de backup do banco de dados SQL
Passos O SQL Server tem a capacidade de criptografar os dados durante a criação de um backup. Ao especificar o algoritmo de encriptação e o encriptador (um Certificado ou Chave Assimétrica) ao criar uma cópia de segurança, pode-se criar um ficheiro de cópia de segurança encriptado.

Certifique-se de que os dados confidenciais relevantes para a API da Web não sejam armazenados no armazenamento do navegador

Título Detalhes
Componente API da Web
Fase SDL Compilar
Tecnologias aplicáveis MVC 5, MVC 6
Atributos Provedor de Identidade - ADFS, Provedor de Identidade - Microsoft Entra ID
Referências N/A
Passos

Em determinadas implementações, artefatos confidenciais relevantes para a autenticação da API da Web são armazenados no armazenamento local do navegador. Por exemplo, artefatos de autenticação do Microsoft Entra como adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key etc.

Todos esses artefatos estão disponíveis mesmo após o logout ou o navegador ser fechado. Se um adversário tiver acesso a esses artefatos, ele poderá reutilizá-los para acessar os recursos protegidos (APIs). Certifique-se de que todos os artefatos confidenciais relacionados à API da Web não sejam armazenados no armazenamento do navegador. Nos casos em que o armazenamento do lado do cliente é inevitável (por exemplo, aplicativos de página única (SPA) que aproveitam os fluxos implícitos do OpenIdConnect/OAuth precisam armazenar tokens de acesso localmente), use as opções de armazenamento com não ter persistência. por exemplo, prefira SessionStorage a LocalStorage.

Exemplo

O trecho JavaScript abaixo é de uma biblioteca de autenticação personalizada que armazena artefatos de autenticação no armazenamento local. Tais implementações devem ser evitadas.

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

Criptografar dados confidenciais armazenados no Azure Cosmos DB

Título Detalhes
Componente Banco de Dados de Documentos do Azure
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Criptografe dados confidenciais no nível do aplicativo antes de armazenar no banco de dados de documentos ou armazene dados confidenciais em outras soluções de armazenamento, como o Armazenamento do Azure ou o SQL do Azure

Usar a Criptografia de Disco do Azure para criptografar discos usados por Máquinas Virtuais

Título Detalhes
Componente Limite de confiança da VM IaaS do Azure
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Usando o Azure Disk Encryption para criptografar discos usados por suas máquinas virtuais
Passos

O Azure Disk Encryption é um novo recurso que está atualmente em visualização. Esse recurso permite criptografar os discos do sistema operacional e os discos de dados usados por uma máquina virtual IaaS. Para Windows, as unidades são criptografadas usando a tecnologia de criptografia BitLocker padrão do setor. Para Linux, os discos são criptografados usando a tecnologia DM-Crypt. Isso é integrado ao Azure Key Vault para permitir que você controle e gerencie as chaves de criptografia de disco. A solução Azure Disk Encryption suporta os seguintes três cenários de encriptação de cliente:

  • Habilite a criptografia em novas VMs IaaS criadas a partir de arquivos VHD criptografados pelo cliente e chaves de criptografia fornecidas pelo cliente, que são armazenadas no Cofre de Chaves do Azure.
  • Habilite a criptografia em novas VMs IaaS criadas a partir do Azure Marketplace.
  • Habilite a criptografia em VMs IaaS existentes já em execução no Azure.

Criptografar segredos em aplicativos do Service Fabric

Título Detalhes
Componente Limite de confiança do Service Fabric
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos Ambiente - Azure
Referências Gerenciando segredos em aplicativos do Service Fabric
Passos Os segredos podem ser qualquer informação confidencial, como cadeias de conexão de armazenamento, senhas ou outros valores que não devem ser manipulados em texto sem formatação. Use o Azure Key Vault para gerenciar chaves e segredos em aplicativos de malha de serviço.

Execute modelagem de segurança e use Unidades/Equipes de Negócios quando necessário

Título Detalhes
Componente Dynamics CRM
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Execute modelagem de segurança e use Unidades/Equipes de Negócios quando necessário

Minimizar o acesso ao recurso de compartilhamento em entidades críticas

Título Detalhes
Componente Dynamics CRM
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Minimizar o acesso ao recurso de compartilhamento em entidades críticas

Treinar os usuários sobre os riscos associados ao recurso Compartilhamento do Dynamics CRM e às boas práticas de segurança

Título Detalhes
Componente Dynamics CRM
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Treinar os usuários sobre os riscos associados ao recurso Compartilhamento do Dynamics CRM e às boas práticas de segurança

Incluir uma regra de padrões de desenvolvimento que prescreva os detalhes da configuração no gerenciamento de exceções

Título Detalhes
Componente Dynamics CRM
Fase SDL Implementação
Tecnologias aplicáveis Genérica
Atributos N/A
Referências N/A
Passos Inclua uma regra de padrões de desenvolvimento que mostre detalhes de configuração no gerenciamento de exceções fora do desenvolvimento. Teste para isso como parte de revisões de código ou inspeção periódica.

Usar a Criptografia do Serviço de Armazenamento do Azure (SSE) para dados em repouso (visualização)

Título Detalhes
Componente Armazenamento do Azure
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos StorageType - Blob
Referências Criptografia do Serviço de Armazenamento do Azure para dados em repouso (visualização)
Passos

A Criptografia do Serviço de Armazenamento do Azure (SSE) para Dados em Repouso ajuda você a proteger e proteger seus dados para atender aos seus compromissos organizacionais de segurança e conformidade. Com esta funcionalidade, o Armazenamento do Azure encripta automaticamente os dados antes de continuar a armazenar e desencriptar antes da obtenção. A encriptação, desencriptação e gestão de chaves é totalmente transparente para os utilizadores. O SSE aplica-se apenas a blobs de bloco, blobs de página e blobs de acréscimo. Os outros tipos de dados, incluindo tabelas, filas e ficheiros, não serão encriptados.

Fluxo de trabalho de criptografia e descriptografia:

  • O cliente habilita a criptografia na conta de armazenamento
  • Quando o cliente grava novos dados (PUT Blob, PUT Block, PUT Page, etc.) no armazenamento de Blob; cada gravação é criptografada usando criptografia AES de 256 bits, uma das cifras de bloco mais fortes disponíveis
  • Quando o cliente precisa acessar dados (GET Blob, etc.), os dados são automaticamente descriptografados antes de retornar ao usuário
  • Se a criptografia estiver desativada, as novas gravações não serão mais criptografadas e os dados criptografados existentes permanecerão criptografados até serem reescritos pelo usuário. Enquanto a criptografia estiver habilitada, as gravações no armazenamento de Blob serão criptografadas. O estado dos dados não muda com o usuário alternando entre ativar/desabilitar a criptografia para a conta de armazenamento
  • Todas as chaves de criptografia são armazenadas, criptografadas e gerenciadas pela Microsoft

Tenha em atenção que, neste momento, as chaves utilizadas para a encriptação são geridas pela Microsoft. A Microsoft gera as chaves originalmente e gerencia o armazenamento seguro das chaves, bem como a rotação regular, conforme definido pela política interna da Microsoft. No futuro, os clientes terão a capacidade de gerenciar suas próprias chaves de criptografia e fornecer um caminho de migração de chaves gerenciadas pela Microsoft para chaves gerenciadas pelo cliente.

Usar a criptografia do lado do cliente para armazenar dados confidenciais no Armazenamento do Azure

Título Detalhes
Componente Armazenamento do Azure
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Criptografia do lado do cliente e Cofre da Chave do Azure para Armazenamento do Microsoft Azure, Tutorial: Criptografar e descriptografar blobs no Armazenamento do Microsoft Azure usando o Cofre da Chave do Azure, Armazenando dados com segurança no Armazenamento de Blobs do Azure com Extensões de Criptografia do Azure
Passos

O pacote Nuget da Biblioteca de Cliente de Armazenamento do Azure para .NET dá suporte à criptografia de dados em aplicativos cliente antes de carregar no Armazenamento do Azure e descriptografar dados durante o download para o cliente. A biblioteca também suporta a integração com o Cofre de Chaves do Azure para a gestão de chaves da conta do Storage. Aqui está uma breve descrição de como a criptografia do lado do cliente funciona:

  • O SDK do cliente de Armazenamento do Azure gera uma chave de criptografia de conteúdo (CEK), que é uma chave simétrica de uso único
  • Os dados do cliente são criptografados usando este CEK
  • O CEK é então encapsulado (criptografado) usando a chave de criptografia de chave (KEK). O KEK é identificado por um identificador de chave e pode ser um par de chaves assimétricas ou uma chave simétrica e pode ser gerenciado localmente ou armazenado no Cofre de Chaves do Azure. O próprio cliente de armazenamento nunca tem acesso ao KEK. Ele apenas invoca o algoritmo de encapsulamento de chave que é fornecido pelo Cofre de Chaves. Os clientes podem optar por usar provedores personalizados para empacotamento/desempacotamento de chaves, se desejarem
  • Os dados criptografados são carregados no serviço de Armazenamento do Azure. Verifique os links na seção de referências para obter detalhes de implementação de baixo nível.

Criptografar dados confidenciais ou PII gravados no armazenamento local de telefones

Título Detalhes
Componente Cliente Móvel
Fase SDL Compilar
Tecnologias aplicáveis Genérico, Xamarin
Atributos N/A
Referências Gerencie configurações e recursos em seus dispositivos com políticas do Microsoft Intune, Manobrista de Chaves
Passos

Se o aplicativo escreve informações confidenciais, como PII do usuário (e-mail, número de telefone, nome, sobrenome, preferências, etc.)- No sistema de arquivos do celular, ele deve ser criptografado antes de gravar no sistema de arquivos local. Se o aplicativo for um aplicativo empresarial, explore a possibilidade de publicar o aplicativo usando o Windows Intune.

Exemplo

O Intune pode ser configurado com as seguintes políticas de segurança para proteger dados confidenciais:

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

Exemplo

Se o aplicativo não for um aplicativo empresarial, use keystore fornecido pela plataforma, chaveiros para armazenar chaves de criptografia, usando o qual a operação criptográfica pode ser executada no sistema de arquivos. O trecho de código a seguir mostra como acessar a chave das chaves usando o 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;
            }
        }

Ofuscar binários gerados antes de distribuir para usuários finais

Título Detalhes
Componente Cliente Móvel
Fase SDL Compilar
Tecnologias aplicáveis Genérica
Atributos N/A
Referências Ofuscação de criptografia para .NET
Passos Os binários gerados (montagens dentro do apk) devem ser ofuscados para interromper a engenharia reversa de montagens. Ferramentas como CryptoObfuscator podem ser usadas para este fim.

Definir clientCredentialType como Certificado ou Windows

Título Detalhes
Componente WCF
Fase SDL Compilar
Tecnologias aplicáveis .NET Framework 3
Atributos N/A
Referências Fortificar
Passos Usar um UsernameToken com uma senha de texto simples em um canal não criptografado expõe a senha a invasores que podem farejar as mensagens SOAP. Os provedores de serviços que usam o UsernameToken podem aceitar senhas enviadas em texto sem formatação. O envio de senhas de texto sem formatação por um canal não criptografado pode expor a credencial a invasores que podem detetar a mensagem SOAP.

Exemplo

A seguinte configuração do provedor de serviços WCF usa o UsernameToken:

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

Defina clientCredentialType como Certificate ou Windows.

O Modo de Segurança WCF não está ativado

Título Detalhes
Componente WCF
Fase SDL Compilar
Tecnologias aplicáveis Genérico, .NET Framework 3
Atributos Modo de Segurança - Transporte, Modo de Segurança - Mensagem
Referências MSDN, Fortify Kingdom, Fundamentos da WCF Security CoDe Magazine
Passos Nenhuma segurança de transporte ou mensagem foi definida. As aplicações que transmitem mensagens sem transporte ou segurança da mensagem não podem garantir a integridade ou confidencialidade das mensagens. Quando uma associação de segurança WCF é definida como Nenhum, a segurança de transporte e de mensagem é desabilitada.

Exemplo

A configuração a seguir define o modo de segurança como Nenhum.

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

Exemplo

Modo de segurança Em todas as ligações de serviço, há cinco modos de segurança possíveis:

  • Nenhum. Desativa a segurança.
  • Transportes. Usa segurança de transporte para autenticação mútua e proteção de mensagens.
  • Mensagem. Usa a segurança de mensagens para autenticação mútua e proteção de mensagens.
  • Ambos. Permite que você forneça configurações para transporte e segurança no nível da mensagem (somente o MSMQ suporta isso).
  • TransportWithMessageCredential. As credenciais são passadas com a mensagem e a proteção de mensagens e a autenticação do servidor são fornecidas pela camada de transporte.
  • TransportCredentialOnly. As credenciais do cliente são passadas com a camada de transporte e nenhuma proteção de mensagem é aplicada. Use o transporte e a segurança das mensagens para proteger a integridade e a confidencialidade das mensagens. A configuração abaixo informa ao serviço para usar a segurança de transporte com credenciais de mensagem.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>