2012-04-05 16 views
1

Wie kann ich transparent encryption/decryption zu meinem CloudPageBlob lesen und schreiben, wenn die Daten in Ruhe sind? HTTPS verschlüsselt nur im Transport ...Hinzufügen von Verschlüsselung * in Ruhe * zu einem CloudPageBlob? (nicht Transportverschlüsselung)

Angenommen, ich verwende den Code auf meinem Desktop und verwende einfach HTTP, um auf den Blobspeicher zuzugreifen.

+0

Verwenden Sie HTTPS anstelle von HTTP? –

+0

@breischl Ich kenne dich! Wir sind beide Commiters bei [Azure Table Encryption] (http://azuretablencrypt.codeplex.com/) (ich bin da nicht). Ähnlich wie dieses Projekt das Azure Table SDK erweitert, möchte ich das Blob SDK auf ähnliche Weise erweitern. Transparente Verschlüsselung Entschlüsselung der Daten. – LamonteCristo

+0

Das ist lustig! Es ist eine kleine Wolke. :) Ich habe etwas ähnliches wie diese Bibliothek für Block Blobs gemacht. Ich konnte keine Hooks wie den TableServiceContext finden, also ist es im selben Sinne nicht transparent. Ich habe nur Methoden geschrieben, die ich stattdessen lesen und schreiben lasse. Sie speichern die Crypto-Version in Blob-Metadaten und umschließen die Streams nach Bedarf in CryptoStream. Ich weiß nicht, ob das für Page Blobs funktioniert. –

Antwort

2

Nun, von dem, was ich verstehe, möchten Sie den Inhalt zusätzliche Verschlüsselung hinzufügen, bevor Sie es in die Leitung übertragen.

Um dies zu erreichen, müssen Sie Ihre eigenen Wrapper rund um die Storage Service REST API erstellen und nicht die von Microsoft bereitgestellten Storage Client Library verwenden. Nur mit Ihren eigenen REST-Callern können Sie den Inhalt verschlüsseln/entschlüsseln, bevor Sie ihn als Request Body festlegen. Dann, wenn Sie die Blobs herunterladen, müssen Sie sie von der Response Body entschlüsseln. Auf diese Weise können Sie eine "transparente Verschlüsselung" erreichen. Bis zu einem gewissen Grad transparent, weil Sie aus Anwendungs- gründen einfach EncryptedBlobStorageClient.UploadBlob (Pfad_zu_local_Datei) aufrufen. Aber Dies ist nicht wirklich transparent, wie es in Ihrer Anwendung lebt, und Sie können die verschlüsselten Blobs nicht ohne Ihre Anwendung verwenden.

Wenn Sie jedoch möchten, dass diese Verschlüsselung/Entschlüsselung auf dem Blob Service-Endpunkt lebt, ist dies nicht möglich.

0

Es ist nicht möglich, dies auf der Serverseite transparent mit Azure-Blobspeicher zu tun. Es ist jedoch möglich, es mit Amazon S3 zu tun:

http://aws.typepad.com/aws/2011/10/new-amazon-s3-server-side-encryption.html

Dies erfolgt sehr einfach mit einem Request-Header, und es gibt keine zusätzliche Gebühr für sie: o)

Wenn Sie bewegen konnte Ihre Anwendung, oder zumindest, verschieben Sie den Speicher nach S3, die Sie verwenden könnten.