Как использовать поставщика симметричных ключей Enterprise Library 4.1 в Azure

У нас есть устаревшее приложение ASP.NET, которое использует поставщика симметричных ключей Enterprise Library 4.1, где ключ хранится в физическом файле, как показано в конфигурации ниже. Он использует защиту машинного ключа.

<symmetricCryptoProviders>
              <add algorithmType="System.Security.Cryptography.RijndaelManaged, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                protectedKeyFilename="F:\wwwroot2\MSEntLib3.1\key\EncryptionKey.key"
                protectedKeyProtectionScope="Machine" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.SymmetricAlgorithmProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                name="RijndaelManaged" />
            </symmetricCryptoProviders>

Я развернулся в Azure, и приложение выдает ошибку "EncryptionKey.key" не найден. Может ли кто-нибудь помочь, как мы продолжаем использовать Enterprise Library Crypto в Azure?

Есть ли возможность создать ключ и использовать его на любых веб-серверах, включая веб-роли Azure?

Спасибо


person Nil Pun    schedule 01.08.2013    source источник


Ответы (1)


Ключи поставщика симметричной криптографии хранятся в файле, на который ссылаются с помощью полного физического пути и имени файла в файле конфигурации приложения, и он защищен шифрованием DPAPI, как показано в вашей конфигурации. Поскольку DPAPI недоступен в Windows Azure, стандартное использование поставщиков симметричной криптографии Enterprise Library не работает.

Однако вы можете рассмотреть возможность создания собственного поставщика симметричных алгоритмов для использования с криптоблоком Enterprise Library. Этот поставщик может использовать поставщиков службы криптографии .NET для реализации шифрования и, как рекомендуется, хранить ключи в зашифрованном формате, выполнять шифрование в автономном режиме и сохранять их в хранилище BLOB-объектов Windows Azure. Дополнительные сведения об этом подходе см. в разделе Использование шифрования на основе сертификатов в приложениях Windows Azure и этот пост о защите строк подключения в Windows Azure.

person Grigori Melnik    schedule 14.08.2013