c# .net security

c# - ¿Cómo uso SecureString de forma segura?



.net security (2)

Todos los ejemplos que he visto terminan convirtiendo una SecureString de nuevo en una cadena estándar antes de usarla, derrotando al objeto. ¿Cuál es una buena manera de usar una cadena segura sin este problema?

Sé que puedo colocar el SecureString en un BSTR pero ¿qué puedo hacer con este BSTR? ¿Puedo recuperar los personajes uno a la vez? ¿Si es así, cómo?


Creo que la página de MSDN que describe el SecureString lo dice mejor:

Representa texto que debe mantenerse confidencial.

SecureStrings no están destinados a ser utilizados como cadenas. Están destinados a ser titulares de información de acceso limitado que deben estar sujetos a una mayor seguridad.

Si desea modificar el contenido de un SecureString, todos los métodos necesarios están ahí.

Sin embargo, si necesita obtener el valor de la cadena segura, debe ToString () ya que no hay otros métodos expuestos para hacer esto.

En otras palabras, no utilice SecureStrings como cadenas.


Este enlace incluye mucha información útil, que incluye cómo obtener un bloque de memoria no administrada para pasar la cadena al código nativo (que probablemente también es seguro), una clase BCL que lo usa y enlaces a un par de ejemplos:

http://bartdesmet.net/blogs/bart/archive/2006/03/31/3851.aspx

Lo principal es que todavía no se usa mucho, pero eres libre de crear tus propias bibliotecas que dependen de él.