На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: maxim84_
  
> ASP.NET и SSL
    SSL (Security Socket Layer) – так называется защищённый качал связи между сервером и
    клиентом. При этом после согласования между сервером и клиентом уровня шифрации
    связи, все сообщение от клиента серверу и от сервера клиенту проходят при шифровке и
    дешифровке. При SSL даже если злоумышленник перехватит какое либо сообщение,
    он не сможет его прочитать, при этом шифруются и сами файлы Cookie, тем самым исключая возможность использования краденных Cookie.

    SSL-шифрование
    В алгоритме для шифрования применяется математическое значение, называемое ключом, без которого прочесть исходные данные невозможно. Существует множество методов
    шифрования для обмена информацией. Одни применяют открытый (общего пользода-
    ния) и закрытый (секретный) ключи, другие — секретные ключи общего пользования, распространяемые между прошедшими проверку подлинности системами. В протоколе
    SSL реализовано шифрование открытого ключа, объединяющее ключи:
    • открытый, доступный любому запросившему его лицу;
    • закрытый, известный лишь владельцу;
    • секретный общего пользования (ключ сеанса), создаваемый на основе данных открытого и закрытого ключей.

    SSL-подключение устанавливается в такой последовательности.
    1. Клиентский браузер обращается к серверу с помощью безопасного URL.
    2. US-сервер передает браузеру свой открытый ключ и сертификат.
    3. Клиент и сервер согласуют уровень шифрования для обмена информацией.
    4. Клиентский браузер шифрует ключ сеанса открытым ключом сервера и передает за-шифрованные данные серверу.
    5. US-сервер расшифровывает клиентское сообщение своим закрытым ключом. В итоге создастся SSL-соединение между клиентом и сервером.
    6. Для шифрования пересылаемых между клиентом и сервером данных применяется ключ сеанса.

    Для того, чтобы установить возможность использования SSL канала на вашем сайте необходимо сделать ниже перечисленное: (здесь будет описано как самому сгенерировать запрос на сертификат, как самому себе его сгенерировать, как установить сертификат на
    сайт и само собой научится клиентские браузеры принимать ваш сертификат).

    1. Само собой установить IIS
    2. Установите CA(Certificate Authority) – это как раз та часть которая будет генериро-вать сами сертификаты, подписывать их, и высылать запросившему лицу, в дан-
    ном случае и запросившим, и генерирующем будете вы сами, точнее ваш сервер.
    Кстати этот CA устанавливается на серверных версиях Windows (2000,2003).
    3. После того как всё это вы установили вы можете сгенерировать запрос сертификата
    для своего сайта – это делается следующим образом:
    - Правой кнопкой на своём сайте
    - В меню выбираете Свойства
    - Среди вкладок выбираете - Безопастность каталога
    - Далее Жмёте кнопку –Сертификаты(здесь вы заполняете различные свои дан-
    ные – в том числе кому выдаётся сертификат, это должно быть имя вашего домена,
    иначе при проверке браузером вашего сертификата, он будет ругаться, что имя по-
    лучившего сертификат не является именем использующего сертификат.
    При заполнении данных вы должны будете ввести имя текстового документа, IIS
    именно туда сгенерирует свой запрос на получение сертификата.
    Если вы посмотрите в этом документ то увидите нечто вроде этого

    ExpandedWrap disabled
      -----BEGIN NEW CERTIFICATE REQUEST-----
      MIIDMTCCApoCAQAwVjELMAkGA1UEBhMCUlUxCTAHBgNVBAgTADENMAsGA1UEBxME
      QmFrdTEOMAwGA1UEChMFU2luYW0xDjAMBgNVBAsTBVNpbmFtMQ0wCwYDVQQDEwRh
      eWF6MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvEWTiqWgh07kWXTd7hT4h
      NYNWgBCfPUkdPhGTWc3oy9wcj7qAlcS0VkCIugc3f58dn3AJg+nlY8qBPO5rgdoi
      NXonsQgpLkqW8LLgjF/LzgZQerUof+LOr577gUHttZ7vXOwEqJx8S1y5cO1oanuY
      zP8KXNodmPxT9fr9WD8YzwIDAQABoIIBmTAaBgorBgEEAYI3DQIDMQwWCjUuMi4z
      NzkwLjIwewYKKwYBBAGCNwIBDjFtMGswDgYDVR0PAQH/BAQDAgTwMEQGCSqGSIb3
      DQEJDwQ3MDUwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAHBgUrDgMC
      BzAKBggqhkiG9w0DBzATBgNVHSUEDDAKBggrBgEFBQcDATCB/QYKKwYBBAGCNw0C
      AjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUgBTAEEAIABTAEMAaABh
      AG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBp
      AGQAZQByA4GJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      AAAwDQYJKoZIhvcNAQEFBQADgYEAUAz86DI5fp/BVDlTTp+UKOX/iMoryfqNI7UM
      t52byz2F2e0uveUtHJh8p9TagiEXk/zWVKItLnzc19oQ7n/mrB764FPmBGQTzCwb
      IH6Y7h2s+zOwTkNE0hBjz06Iy35fIbO7iLDa7BhIYxSEgpq5c39AjHZTFzrXkP+C
      ed4KYWA=
      -----END NEW CERTIFICATE REQUEST-----

    4. После того как вы сгенерировали запрос, открываете этот документ и копируете всё его содержимое.
    5. Заходите в браузер и вводите адрес “localhost/certsrv” (сервис CA, именно так и работает через браузер).
    6. Вы выйдите на страницу на которой жмёте на ссылку “Запрос сертификата”,
    затем Дополнительно выбираете кодировку Base 64 ….., и в поле ввода вставляете,
    то что вы скопировали из текстового документа.
    7. Жмём –Далее
    Вам будет сказано (если вы конечно всё сделали правильно), что ваш запрос ушёл
    на место назначения, и номер вашего запроса.
    8 . Далее открываем уже установленный вами CA. Заходите на “Запросы на сертифи-
    каты”, там видите номер своего запроса, жмёте правой кнопкой на него и в меню
    выбираете – Удовлетворить (или что-то вроде этого)
    9. Далее заходите опять таки через браузер на выше упомянутую ссылку, и жмёте
    Скачать сертификат (или опять таки что то вроде этого) . Выбираете кодировку
    Base 64, и жмёте скачать. Вы скачиваете свой сертификат, и вот тут может какая
    беда: откройте свой сертификат и посмотрите кем и кому выдан сертификат,
    если в обоих местах стоит имя вашего CA, то это не то, что вам нужно (хотя вам
    стоит его сохранить куда-нибудь в укромном место, он вам понадобиться в самом конце). У меня было как так (я так с этим и не разобрался), однако существует,
    обходной вариант, т.к. вы себе сами генерируете сертификаты, то заходите на
    свой CA, там во вкладке кажется “Установленные сертификаты”, будет висеть ваш сертификат, кликаете его два раза, и в одной из вкладок находите кнопку “Копировать в файл”, даёте имя сертификату и не забудьте расширение .cer.
    10. Теперь у вас есть сертификат вашего сайта остаётся только установить его – это
    делаем так:
    - Опять заходим на свойство вашего сайта
    - Безопастность каталога
    - Здесь вам остаётся нажимать кнопки Дальше, только надо будет установить путь
    к полученному вами сертификату.
    11. Разумеется есть тот вариант, что защищать каналом SSL, вы захотите не все папки
    и файлы, там же в Безопастности каталога, есть кнопка “Изменить”, перед вами
    откроется панель на которой будет птичка где будет, что-то вроде “Требуется за-
    щищённая связь”
    12. Теперь осталось дело за малым научить браузер понимать ваш сертификат,
    если вы помните у вас есть сертификат вашего CA, где он награждает себя сам
    сертификатом, здесь требуется некоторое объяснение:
    Итак когда браузер принимает ваш сертификат он проверяет его на доверие.
    Т.е. он пробегается по Своим корневым доверенным сертификатом и сравнивает
    их вашим CA. Он смотрит на то кем выдан вашему сайту сертификат (посмотреть
    корневые доверенные сертификаты можно посмотреть в браузере, на вкладке
    Сервис-Свойства Обозревателя-Содержание) и т.к. как сертификат вашего CA у
    него не установлен он ругается на неизвестный сертификат.
    Что-бы установить в браузер сертификат вашего CA, необходимо открыть
    сертификат вашего CA, жмёте –

    Установить сертификат-Далее-Поместить все сертификаты в следующее храни-
    Лище-Обзор-Выбираете «Доверенные корневые сертификаты»-Готово.

    После этого браузер будет узнавать любой сертификат сгенерированный для лю-
    бого сайта вашим CA.

    13. Теперь так - как эта тема посвещена не только SSL,
    но и ASP.NET надо будет указать как включить поддержку
    SSL для вашего ASP.NET приложения.
    Для этого заходим в свой конфигурационный файл
    Web Config который находится у вас в той же папке,
    что и само приложение.
    Далее находите отдел authentication,
    и там вместе с вашим типом аутентификации включаете
    поддержку SSL, вставкой следующей строки
    requireSSL="true"
    и выключите protect присваиванием значения "None", ведь нет необходимости шифровать Cookie дважды.
    В конце концов у вас должно получиться нечто вроде этого

    <authentication mode="Forms">
    <forms name="MyForm" path="/" loginUrl="login.aspx" timeout="60" requireSSL="true" protection="None"/>
    </authentication>

    Теперь SSL у вас в приложении включен.


    Литература
    1. Уильям Р. Станек Internet Information Services 5.0 “Справочник администратора”
    2. Скембрей, Шема “Секреты хакеров. Безопастноть Web-приложений”.
    3. Wiley & Sons – “SSL & TLS Essentials. Securing the Web”
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0190 ]   [ 16 queries used ]   [ Generated: 19.04.24, 12:13 GMT ]