(ASP.NET) ASP.NET (2006 год)
>

Шифрование конфигурации

Пока строка подключения к SQL выглядит так, это никого не смущает. Но такую строку подключения выложить на Web-сервер никак невозможно. Что же делать?

Для этого в состав ASP2 включена утилита AspNet_RegIIS, через которую осуществляется доступ к АПИ, шифрующий строки подключения и другие параметры WEB.CONFIG:

                     -- CONFIGURATION ENCRYPTION OPTIONS --

-pe section         Encrypt the configuration section. Optional arguments:
                    [-prov provider] Use this provider to encrypt.
                    [-app virtual-path] Encrypt at this virtual path. Virtual
                    path must begin with a forward slash. If it is '/', then it
                    refers to the root of the site. If -app is not specified,
                    the root web.config will be encrypted.
                    [-site site-name-or-ID] The site of the virtual path
                    specified in -app. If not specified, the default web site
                    will be used.
                    [-location sub-path] Location sub path.
                    [-pkm] Encrypt/decrypt the machine.config instead of
                    web.config.

-pd section         Decrypt the configuration section. Optional arguments:
                    [-app virtual-path] Decrypt at this virtual path. Virtual
                    path must begin with a forward slash. If it is '/', then it
                    refers to the root of the site. If -app is not specified,
                    the root web.config will be decrypted.
                    [-site site-name-or-ID] The site of the virtual path
                    specified in -app. If not specified, the default web site
                    will be used.
                    [-location sub-path] Location sub path.
                    [-pkm] Encrypt/decrypt the machine.config instead of
                    web.config.

-pef section web-app-physical-dir
                    Encrypt the configuration section. Optional arguments:
                    [-prov provider] Use this provider to encrypt.

-pdf section web-app-physical-dir
                    Decrypt the configuration section.

-pc container       Create an RSA keypair in ContainerName. Optional arguments:
                    [-size key-size] Key-size. Default is 1024.
                    [-pku] User container instead of machine container.
                    [-exp] Make the private keys exportable.
                    [-csp provider] Csp Provider to use.

-pz container       Delete the ContainerName. Optional arguments:
                    [-pku] User container instead of machine container.

-pi container file  Import an RSA keypair from the Xml file. Optional
                    arguments:
                    [-pku] User container instead of machine container.
                    [-exp] Create exportable keys.
                    [-csp provider] Csp Provider to use.

-px container file  Export an RSA keypair to the Xml file. Optional arguments:
                    [-pku] User container instead of machine container.
                    [-pri] Include private keys.
                    [-csp provider] Csp Provider to use.

-pa container account
                    Add access for the account to the container. Arguments:
                    [-pku] User container instead of machine container.
                    [-csp provider] Csp Provider to use.
                    [-full] Add full access (default is Read access).

-pr container account
                    Remove access for the account from the container.
                    Arguments:
                    [-pku] User container instead of machine container.
                    [-csp provider] Csp Provider to use.

В проинципе те же действия можно выполнить и самому, обратившись к классам шифрования:





Как мы видим, мы получаем прекрасную криптованную секцию (причем совершенно разную каждый раз), которую мы можем включить в конфигурационый файл.

То же действие утилитой выполняется или с параметром -PE (с указанием имени IIS-приложения), или с параметром -PEF (с указанием месторасположения конфигурационного файла.





Единственная фишка теперь в том, чтобы учетной записи ASP.NET (конкретно NETWORK SERVICE) дать доступ к ключам шифрования (RSA key container) , иначе нас ждет разочарование:





Именно для этого и предназначены все остальные ключи шифрования в вышеуказанной утилите.





Кстати, не забудьте рестартануть IIS - его заглючивает после этого действия. В случае необходимости и сами ключи для RSA провайдера могут быть заменены. Для этого предназначен ключ <machineKey в разделе <system.web>. Но это уже более глубокие подробности, вникать в которые стоит при одном-единственном Web.config на нескольких серверах.



Comments ( )
<00>  <01>  <02>  <03>  <04>  <05>  <06>  <07>  <08>  <09>  <10>  <11>  <12>  <13>  <14>  <15>  <16>  <17>  <18>  <19>  <20>  <21>  <22>  <23
Link to this page: //www.vb-net.com/asp2/15/index.htm
<SITEMAP>  <MVC>  <ASP>  <NET>  <DATA>  <KIOSK>  <FLEX>  <SQL>  <NOTES>  <LINUX>  <MONO>  <FREEWARE>  <DOCS>  <ENG>  <CHAT ME>  <ABOUT ME>  < THANKS ME>