Работа със сертификати

За софтуер за сигурност Фондация Windows Communication (WCF) обикновено се използват цифрови сертификати X.509, чрез които се извършва идентификация на клиенти и сървъри, криптиране и съобщения цифрово подписани. Този раздел предоставя кратко описание на функциите за работа с цифрови сертификати X.509 и как да използвате тези функции в WCF. В допълнение, този раздел съдържа връзки към други секции за по-подробно обяснение на основни понятия и процедури, общи задачи с помощта на WCF и сертификати.

Основната функция на сертификата е притежател на сертификат за сертификата за автентичност на другите страни. Сертификатът съдържа публичния ключ на собственика, а частният ключ се държи от собственика. Можете да използвате публичния ключ за криптиране на съобщения, изпратени до притежателя на сертификата. Достъп до частния ключ е само собственик на сертификата, така че само той може да дешифрира тези съобщения.

Сертификатите трябва да са издадени от сертифициращ орган, който обикновено е с удостоверения за издатели от трета страна. Windows домейн включва ТЗ, която може да се използва да издава сертификати на компютрите в домейна.

Когато сертификатите често се налага да ги видите и да се покажат някои свойства. Това се постига лесно с помощта на конзолата за управление (MMC). За повече информация, вижте. В Как да се разглеждат сертификатите, като се използва ММС модул.

магазин сертификат

Сертификатите се съхраняват в хранилища. Има два основни съхранение, които са разделени на под-съхранение. администратор на компютъра можете да видите както на основната памет, с помощта на MMC фондове. Потребителите, които не са администратори могат да виждат само текущия потребител магазина.

  • На локалния компютър. Сертификати, които са достъпни от компютърна изпълними процеси, като ASP.NET. Това място се използва за съхраняване на сертификатите, удостоверяващи автентичността на сървъра за клиенти.
  • Съхранение на текущия потребител. Интерактивни приложения обикновено поставят сертификати за този магазин за текущия потребител компютър. В случай на клиентско приложение в този магазин се използват обикновено поставят сертификати за удостоверяване на самоличността на потребителя, когато се свързвате към услугата.

    Тези две съхранение подразделен на съхранение. По-долу са най-важното под-съхранение, използвани при програмирането с WCF.

    • Trusted Root Certification Authorities. Сертификати от този магазин може да се използва за създаване на верига от сертификати, които могат да бъдат проследени обратно към сертификата за Калифорния в магазина.

    Местната компютъра напълно се доверява на всеки сертификат се поставя в хранилището, дори и ако той не го направи от доверен орган за сертифициране от трета страна. Ето защо, в този магазин, не трябва да поставя на сертификатите за издателите, които нямат пълно доверие, или ако ефектите не са ясни.

  • Този частен магазин се използва за съхраняване на сертификатите, свързани с потребителя на компютъра. Обикновено в това хранилище съхранява свидетелства, издадени от сертификати на сертифициращия орган, които са в магазина "Trusted Root Certification Authorities". От друга страна, сертификат, който се намира в магазина могат да се издават независимо, и той ще се доверят на заявлението.

    За повече информация, вижте магазините сертификат. Виж магазина сертификат.

    Изберете съхранение

    Избор на място за съхранение на удостоверението зависи от режима и да стартирате клиента или мястото на обслужване. , Следните общи правила.

    • Ако услугата WCF в служба на Windows, използвайте локалния компютър магазина. Имайте предвид, че имате администраторски права, се изисква да инсталирате сертификата в местния магазин за компютри.
  • Ако услугата или клиентът е приложение, което работи върху името на профила на потребителя, използвайте магазин на текущия потребител.

    Достъп до хранилища

    Веригата на доверие и КО

    Всеки издател може да се направи надежден главен; за това, че е необходимо да се постави сертификат на издателя към сертификата за надеждни основни органи.

    Изключване на доверие механизъм за проверка на веригата

    Когато създадете нова услуга, потребителят може да използва този сертификат, че е издаден от CA, различна от попечителя, или сертификата на издателя да не се предлага в магазина "Trusted Root Certification Authorities". Възможно е да се изключите временно механизма, по веригата на удостоверение проверка за дадено удостоверение; Тази възможност трябва да се използва само в процеса на развитие. За да деактивирате този механизъм, създаден от стойността на имота CertificateValidationMode PeerTrust или PeerOrChainTrust. Тези режими се посочва, че удостоверението се издава от тях самите (доверие партньорска група) или да са част от верига на доверие. Каза имот може да се настрои за някой от следните класове.

    Идентифициране на потребителите

    CertificateValidationMode имот също ви позволява да персонализирате начина, по валидирането на сертификата. Настройката по подразбиране е ChainTrust. За да използвате стойността на избор. вие също трябва да инсталирате CustomCertificateValidatorType атрибут за монтаж и вида, които се използват за проверка на сертификат. За да създадете потребителски контрол валидиране е необходимо да се наследи от абстрактен клас X509CertificateValidator.

    Когато създадете потребителски удостоверяване структура на най-важният метод, който искате да го замените метод Потвърди. Примерен създаде за идентификация на потребителите структури см. Под контрол проверка на X.509 сертификати. За повече информация, вижте. В пълномощията раздел потребителя и проверка на пълномощията.

    Използването Makecert.exe програма за създаване на веригата на сертификат

    Средства за създаване на сертификати (Makecert.exe) ви позволява да създадете сертификати X.509, както и чифт публични и частни ключове. Частният ключ може да се съхранява на диска, а след това да я използват за издаване на новите сертификати и подписи, което ви позволява да се симулира йерархията на верига сертификати. Инструментът е предназначен за употреба като помощни средства при разработването на услуги; тя не трябва да се използва за създаване на сертификати за реалното предлагане. При проектиране на WCF услуга, използвайте следната процедура, за да се създаде верига от доверие, използвайки Makecert.exe програма.

    Създаване на верига на доверие, с помощта на програмата Makecert.exe

    Създаване на временен главен сертификат CA (самоподписаният) с помощта MakeCert.exe програма. Запазване на частния ключ на диска.

    Използвайте нов сертификат за издаване на нов сертификат, съдържащ публичния ключ.

    Внос на сертификата за корен център в магазина "Trusted Root Certification Authorities".

    Избирането на удостоверението за ползване

    Най-често срещаните въпроси за сертификати са следните: удостоверение за ползване, и защо? Отговорът зависи от това какви програми на потребителя - клиентът или услугата. По-долу са общи препоръки; Трябва да е ясно, че те не са изчерпателни отговори на тези въпроси.

    удостоверителни услуги

    Имайте предвид, че това поле може да съдържа няколко стойности с индивидуални представки. Най-често "КН" представка се използва за обозначаване на общото име, например, "CN = www.contoso.com". Освен това, полето за тема може да е свършил; в този случай, Alternative полето за името на субекта може да съдържа стойност за полето DNS-име.

    Също така имайте предвид, че полето възлага на сертификата трябва да съдържа подходяща стойност, като "Server Authentication" или "Client Authentication".

    клиентски сертификати

    клиентски сертификати обикновено не са издадени от трета страна, сертифициращи органи. В магазин "Private" текущия потребител обикновено съдържа сертификати, издадени от СО корена; в "цел" поле на сертификата е настроен на "Client Authentication". Клиентът може да използва този сертификат, когато се изисква взаимно удостоверяване.

    Сертификат отмяна проверка в пряка връзка към мрежата и режим на самостоятелна работа

    Сертификатът

    Всеки сертификат е валиден само за предварително определен период от време, наречен изтичане срока на годност. Действие се определя от стойностите на полетата Валидни от и валиден сертификат за Х.509. По време на проверките за удостоверяване дали сертификатът е изтекъл.

    CRL

    CA може да отмени валиден сертификат по всяко време. Това може да стане по много причини, като например, когато компромис сертификат частен ключ.

    В този случай, всички вериги, получени от отменения като невалиден и механизмите за автентификация вече не им се доверяват. За да се отнасят до отменянето на Сертификат всеки издател публикува списък с анулирани сертификати. като дата и час. Този списък може да бъде проверено от режима с връзка към мрежата или офлайн, чрез определяне на един от X509RevocationMode изброяване стойности за имота или RevocationMode DefaultRevocationMode следните класове: X509ClientCertificateAuthentication. X509PeerCertificateAuthentication. X509ServiceCertificateAuthentication и IssuedTokenServiceCredential. Стойността по подразбиране за всички имоти - Онлайн.

    SetCertificate метод

    В WCF, вие често се изисква да създадат сертификат или набор от сертификати за тази услуга, или клиентът ще бъде използвана за разпознаване, криптиране или подписване на съобщение. Това може да стане като се използва методът програмно SetCertificate различни класове, представляващи на X.509 сертификати. Следните класове са използвани за определяне на сертификата за метод SetCertificate.

    Множество сертификати с едни и същи стойности на полетата

    Архивът може да съдържа няколко сертификата със същото име, тема. Ето защо, ако параметъра е зададен x509FindType FindBySubjectName или FindBySubjectDistinguishedName. и има редица сертификати с такава стойност, не е изключение, тъй като в този случай не е възможно да се определи кой сертификат за използване. Това може да бъде потиснато чрез определяне на стойността на параметъра x509FindType FindByThumbprint. В разпечатката съдържа уникална стойност, която можете да използвате, за да търсите конкретен сертификат в магазина. Въпреки това, този подход има и недостатък: ако сертификатът е било отменено или актуализиран, вече не може да изпълнява SetCertificate метод като оригиналния маркировка ще бъде намерен. Ако сертификатът е невалиден, удостоверяване не се предава. Това може да бъде потиснато чрез определяне на стойността на параметъра x590FindType FindByIssuerName и посочва името на издателя. Ако посочите не се изисква издател, можете да зададете един от X509FindType изброяване ценности. например FindByTimeValid.

    конфигурация Сертификати

    Удостоверения може да се задават с помощта на конфигурацията. В случай на пълномощията на услуги, включително сертификати, посочени в раздел раздел serviceBehaviors. В случай на софтуерни клиентски сертификати, посочени в раздел раздел endpointBehaviors.

    Сравнение на удостоверението на потребителски акаунт

    В IIS и Active Directory осигурява функцията на картографирането на сертификат за сметка на Windows. За повече информация, вижте тази функция. Раздел Сравнение на сертификати на потребителски акаунти.

    Ако тази функция е активирана, можете да зададете свойства MapClientCertificateToWindowsAccount X509ClientCertificateAuthentication клас, за да е истина. Конфигурацията може да се настрои за елемента атрибут mapClientCertificateToWindowsAccount истинска стойност. както е показано в следния код.