Técnicas de Mitigação de Ameaças
Há várias técnicas de mitigação de ameaças disponíveis que você pode usar para proteger melhor as senhas. Essas técnicas são implementadas usando uma ou mais das quatro tecnologias primárias a seguir.
Tecnologia | Descrição |
---|---|
Cryptoapi | O CryptoAPI fornece um conjunto de funções que ajudam você a aplicar rotinas criptográficas a entidades de destino. O CryptoAPI pode fornecer hashes, resumos, criptografia e descriptografia, para mencionar sua funcionalidade primária. CryptoAPI também tem outros recursos. Para saber mais sobre criptografia e cryptoAPI, consulte Cryptography Essentials. |
Listas de controle de acesso | Uma ACL ( lista de controle de acesso ) é uma lista de proteções de segurança que se aplica a um objeto. Um objeto pode ser um arquivo, processo, evento ou qualquer outra coisa que tenha um descritor de segurança. Para obter mais informações sobre ACLs, consulte Controle de Acesso Listas (ACLs). |
API de proteção de dados | A DPAPI (API de proteção de dados) fornece as quatro funções a seguir que você usa para criptografar e descriptografar dados confidenciais: CryptProtectData, CryptUnprotectData, CryptProtectMemory e CryptUnprotectMemory. |
Nomes de usuário e senhas armazenados | Armazenamento funcionalidade que torna o tratamento de senhas dos usuários e outras credenciais, como chaves privadas, mais fácil, mais consistente e mais segura. Para obter mais informações sobre essa funcionalidade, consulte CredUIPromptForCredentials. |
Essas tecnologias não estão disponíveis em todos os sistemas operacionais. Portanto, a extensão em que a segurança pode ser melhorada depende de quais sistemas operacionais estão envolvidos. Aqui estão as tecnologias que estão disponíveis em cada sistema operacional.
Sistema operacional | Tecnologia |
---|---|
Windows Server 2003 e Windows XP |
|
Windows 2000 |
|
As técnicas de mitigação de ameaças a seguir usam uma ou mais das quatro tecnologias. Técnicas que exigem o uso de tecnologias que não estão incluídas no sistema operacional não podem ser usadas.
Obtendo senhas do usuário
Quando você permitir que o usuário configure uma senha, force o uso de senhas fortes. Por exemplo, exija que as senhas sejam um comprimento mínimo, como oito caracteres ou mais. Senhas também devem ser necessárias para incluir letras maiúsculas e minúsculas, números e outros caracteres de teclado, como o sinal de dólar ($), ponto de exclamação (!), ou maior que (>).
Depois de obter uma senha, use-a rapidamente (usando o mínimo de código possível) e apague todos os vestígios da senha. Isso minimiza o tempo disponível para um intruso "capturar" a senha. A compensação com essa técnica é a frequência com que a senha deve ser recuperada do usuário; no entanto, o princípio deve ser empregado sempre que possível. Para obter informações sobre como obter senhas corretamente, consulte Solicitar credenciais ao usuário.
Evite fornecer opções de interface do usuário "lembre-se da minha senha". Muitas vezes, os usuários exigirão ter essa opção. Se você precisar fornecê-la, no mínimo, certifique-se de que a senha seja salva de forma segura. Para obter informações, consulte a seção Armazenar Senhas, mais adiante neste tópico.
Limitar tentativas de entrada de senha. Após um determinado número de tentativas sem sucesso, bloqueie o usuário por um determinado período de tempo. Opcionalmente, alonge o tempo de resposta para cada tentativa no máximo. Esta técnica visa derrotar um ataque de adivinhação.
Armazenando senhas
Nunca armazene senhas em texto sem formatação (não criptografado). Criptografar senhas aumenta significativamente sua segurança. Para obter informações sobre como armazenar senhas criptografadas, consulte CryptProtectData. Para obter informações sobre como criptografar senhas na memória, consulte CryptProtectMemory. Armazene senhas no menor número possível de locais. Quanto mais lugares uma senha for armazenada, maior será a chance de um intruso encontrá-la. Nunca armazene senhas em uma página da Web ou em um arquivo baseado na Web. Armazenar senhas em uma página da Web ou em um arquivo baseado na Web permite que elas sejam facilmente comprometidas.
Depois de criptografar uma senha e armazená-la, use ACLs seguras para limitar o acesso ao arquivo. Como alternativa, você pode armazenar senhas e chaves de criptografia em dispositivos removíveis. Armazenar senhas e chaves de criptografia em uma mídia removível, como um cartão inteligente, ajuda a criar um sistema mais seguro. Depois que uma senha é recuperada para uma determinada sessão, o cartão pode ser removido, removendo assim a possibilidade de que um intruso possa obter acesso a ela.