Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
Pq proteger strings? Quais problemas podem ocorrer? | A maioria dos dados em seu aplicativo consiste em strings simples. Ex: senhas e de número de cartão de crédito são duas strings. A implementação System.String padrão n está otimizada para a segurança. Usar string para armazenar dados sensíveis tem alguns problemas: ■ O valor da string pode ser movida da memória pelo GC deixando várias cópias ao redor. ■ O valor de string n é criptografado. Se vc executar c/ falta de memória, pode ser q a string seja escrito como texto simples para uma página de arquivo no disco. O mesmo pode acontecer nas falhas de qdo ocorre despejo de memória. ■ System.String é imutável. Cada mudança vai fazer uma cópia dos dados, deixando múltiplas cópias na memória. ■ É impossível forçar o GC a remover todas as cópias de sua string na memória. |
System.Security.SecureString | O .NET oferece uma classe especial que pode ajudá-lo a minimizar a área de superfície que um atacante tem: System.Security.SecureString. A SecureString criptografa automaticamente o seu valor de modo que a possibilidade de um invasor encontrar uma versão de texto simples da string simples é diminuída. A SecureString tb está presa a um local de memória específica. O GC não move a string ao redor, de modo a evitar o problema de ter várias cópias. SecureString é uma string mutável que pode ser criada somente leitura qdo necessário. Finalmente, SecureString implementa IDisposable para q vc possa se certificar de q seu conteúdo é removido da memória sempre q vc n precisar mais usá-la. |
secure string resolve completamente os problemas de segurança de string? | SecureString ñ resolve completamente todos os problemas de segurança. Como precisa ser inicializada em algum momento, os dados q são utilizados para inicializar o SecureString ainda estão na memória. Para minimizar esse risco e forçar vc a pensar sobre isso, SecureString pode lidar apenas com caracteres individuais de cada vez. Ñ é possível passar uma string diretamente para um SecureString |
exemplo inicializando uma SecureString | |
converter a SecureString de volta para uma string normal | |
5 métodos da classe Marshal que podem ser utilizados qdo se trabalha com SecureString | |
SecureString é completamente segura? | É importante perceber que uma SecureString ñ é completamente segura. Vc pode criar um aplicativo, sendo executado em potência máxima, que será capaz de ler o conteúdo SecureString. No entanto, ele aumenta a complexidade de "hacking" da sua aplicação. Todos os pequenos passos q vc pode tomar para tornar a sua aplicação + segura criará um obstáculo maior para um atacante. |
Want to create your own Flashcards for free with GoConqr? Learn more.