2012-07-11 16 views
15

Estoy un poco confundido acerca de cómo almacenar claves (para el cifrado de datos) en Windows Azure.Administración de claves en Windows Azure

acuerdo con los siguientes dos enlaces (#1, #2), se recomienda almacenar las claves/Library clave en el Azure de almacenamiento de Windows:

Almacenamiento de su propia biblioteca clave dentro de los servicios de almacenamiento de Windows Azure es una buena forma de conservar cierta información secreta, ya que puede confiar en que estos datos estarán seguros en el entorno de múltiples inquilinos y estarán protegidos por sus propias claves de almacenamiento.

Pero el "Mejores prácticas de seguridad para desarrollo de Windows Azure Applications" (#3) recomienda no almacenar cualquier material relacionado clave en Windows Azure:

Además, los desarrolladores no deberían subir la tecla o cualquier introducción de material en Windows Azure Storage, independientemente de cuán cuidadosos sean a la hora de ocultarlo. Si cualquier computadora o servicio de almacenamiento se viera comprometido, podría llevar a la exposición de claves de cifrado.

¿Cuál es el mejor enfoque para almacenar claves para el cifrado en Windows Azure?

Respuesta

7

El servicio de la bóveda de claves Azure que se ha lanzado recientemente podría ser una solución perfecta para el problema. Esto se ha introducido para que las claves se puedan gestionar en un lugar central y el acceso se pueda controlar fácilmente. También es compatible con el servicio respaldado por HSM, lo que lo hace muy seguro.

Aquí es una artice en Getting Started with Azure Key Vault

+0

Esta es realmente la mejor respuesta para cualquier persona en azul. Lo único que posiblemente considerar es dividir las llaves. Mantenga la mitad de un archivo local (no el código fuente marcado), y el otro en AKV. Puede parecer exagerado pero es mucho más difícil violar un sistema si necesita atravesar múltiples servicios/dominios. – radpin

+0

5 años después, tengo que marcar esta respuesta como la mejor. Lectura adicional: https://azure.microsoft.com/en-us/blog/keep-credentials-out-of-code-introducing-azure-ad-managed-service-identity/ – Robar

1

Siempre hay un riesgo. Si alguien obtiene acceso a su cuenta de almacenamiento utilizando cualquier medio (como el uso de una herramienta), es posible que pueda encontrar su clave. Por lo tanto, al final, es necesario para proteger la cuenta de almacenamiento en sí misma del acceso no autorizado.

Por ejemplo, no permita que un desarrollador acceda a la cuenta de almacenamiento de producción. Esto incluye no permitirles acceder a la cuenta usando herramientas. Proteja la clave de la cuenta de almacenamiento y no filtre información en ninguna aplicación.

Solo los administradores de almacenamiento (y los desarrolladores en los que confías al 100%) pueden tener acceso completo a la cuenta de almacenamiento de producción. Entonces puede guardar la clave en su cuenta de almacenamiento.

+0

-1 Su respuesta contradice directamente el documento de mejores prácticas citada en la pregunta. –

+4

Además, del artículo de Microsoft al que se vinculó en mi respuesta: * "Un desarrollador puede almacenar la clave de cifrado en el almacenamiento de Windows Azure como un blob, que será seguro siempre que la clave de almacenamiento que haga referencia al almacenamiento de Windows Azure sea segura; pero esta no es una mejor práctica, ... "* –

10

Verá en mi primer comentario que estoy de acuerdo con sus inquietudes. :)

Azure no tiene una manera segura de almacenar claves que no sea su propio almacenamiento de certificados. Aquí está un artículo sobre el uso de este método:

Field Note: Using Certificate-Based Encryption in Windows Azure Applications

Se dará cuenta de que también he comentado en las deficiencias de ese artículo también ligarse a esta pregunta:

Read azure ServiceConfiguration file's certificate section using c#

Un ejemplo de utilizando el almacenamiento de certificados incorporado de Azure para cifrar las claves AES (evitando las restricciones RSA en la longitud de los datos cifrados, mientras se mantiene segura la clave AES) se puede encontrar en este proyecto:

Codeplex: Azure Table Encryption via Attribute

La clase SymmetricKeyHelper en el proyecto EncryptDecrypt es de particular interés.

Felicitaciones a @breischl por mencionarlo, y por sus contribuciones al proyecto.

+0

Gracias por su respuesta, su comentario al primer enlace me hizo escribir esta pregunta;) Definitivamente veré esos dos enlaces que proporcionó. – Robar

+0

@Robar: he agregado un comentario apropiado al segundo artículo al que también se ha vinculado, y he vinculado esta discusión con el primero. Quizás reconsideren sus recomendaciones, pero probablemente no. –

+0

1. Gracias por los enlaces, me ayudaron un poco. 2. Es bueno que hayas agregado el enlace a esta pregunta, quizás reconsideren sus recomendaciones. 3. Es una pena que no haya soporte real para almacenar claves o soporte de encriptación para blobs. – Robar

1

Sé que esto puede ser un poco tarde, pero si alguien está buscando una implementación rápida y fácil de cifrado para sitios web Azure, he creado un (Azure.Security y el código fuente está actualmente en GitHub. basado libremente en el proyecto Codeplex: Azure Table Encryption via Attribute, pero es mucho más sencillo y fácil de usar. Una publicación de blog seguirá en breve con instrucciones sobre cómo configurarlo y usarlo.

Cuestiones relacionadas