XADM: Как безопасный протокол уровня Works

Переводы статьи Переводы статьи
Код статьи: 245152 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Статья содержит обзор того, как работает Secure Sockets Layer (SSL).

Дополнительная информация

Общие сведения О ключа шифрования

Криптографии открытого ключа Rivest-Shamir-Adleman (RSA) широко используется для проверки подлинности и шифрования в отрасли компьютера. Netscape лицензию RSA криптографии открытого ключа из RSA Data Security Inc. для использования в своих продуктов для проверки подлинности.

Шифрование с открытым ключом — это метод, использующий пару асимметричных ключей для шифрования и расшифровки. Каждая пара ключей содержит открытый ключ и закрытый ключ. Открытый ключ сделать открытым при широкому его. Закрытый ключ никогда не распространяется, он будет всегда держаться в секрете.

Данные, зашифрованные с помощью открытого ключа могут быть расшифрованы только с помощью закрытого ключа. И наоборот данные, зашифрованные с помощью закрытого ключа может быть расшифрован только с помощью открытого ключа. Это несимметричности — это свойство, которое делает криптографии открытого ключа, поэтому полезным.

С помощью открытого ключа шифрования для проверки подлинности

Проверка подлинности — это процесс проверки подлинности, таким образом, чтобы одна из сущностей может быть уверен, подлинности другого объекта. В следующих примерах пользователь а и пользователь с помощью криптографии открытого ключа для проверки подлинности пользователя Б. Следующая запись означает, что элемент был зашифрованы или расшифрованы с помощью ключа шифрования
{что-нибудь}СОКРАЩЕНИЯ
гдечто-нибудьпредставляет собой описание товара, зашифровать или расшифровать, иСОКРАЩЕНИЯЭто ключ, используемый для шифрования или расшифровки этого элемента.

В следующем примере пользователь хочет проверить подлинность пользователя б. пользователь В имеется пара ключей, одно открытое и одно частное. Пользователь В этом открытый ключ для пользователя A (это обсуждается в разделе «Передача из открытый ключ» данной статьи). Пользователь а формирует случайное сообщение и отправляет пользователю следующим образом:
A-> Brandom_message
Пользователь Б использует закрытый ключ для шифрования случайного сообщения и возвращает зашифрованной версии ответ пользователя
B-> A {random_message}User_B "s_private_key
Пользователь а получает сообщение и расшифровывает их с помощью открытого ключа, которые пользователю были опубликованы. Пользователь а сравнивает расшифрованного сообщения с сообщением, он отправившего пользователь Б; Если сообщения, он знает, выше сообщение пришло от пользователя Б, поскольку imposter предположительно может не знать закрытый ключ пользователя Б и поэтому сможет правильно шифрования случайного сообщение для пользователя а.

Дополнительные вопросы.

Если вы не знаете точно то, что вы шифрование, он никогда не является хорошей идеей для шифрования чего-либо закрытым ключом и затем отправить ее кому-нибудь еще. Это происходит потому, что вы может храниться за зашифрованное значение (Помните, что только можно выполнять шифрование, так как только у вас есть закрытый ключ).

По этой причине в данном примере, вместо того, чтобы шифровать сообщения, он отправлен пользователь создает дайджест сообщения и шифрует хэш этого сообщения. Дайджест сообщения является производным от случайных исходное сообщение и имеет следующие свойства полезно:
  • Дайджест трудно отменить. Кто-то пытается выполнить олицетворение пользователя Б не может определить исходное сообщение из выборки.
  • Impersonator имеет трудности при поиске другое сообщение, которое вычисляет то же значение дайджеста.
Пользователь Б защищен с помощью хэш. Пользователь Б вычисляет дайджест случайные сообщения, он отправлен, а затем шифрует результат. Пользователь Б отправляет обратно зашифрованного сжатого пользователь а. пользователь может вычислить дайджест одного и того же и для проверки подлинности пользователь расшифровку сообщения пользователь Б и сравнения значений.

Источник данных для проверки подлинности

Метод, описанный в разделе «Дополнительные вопросы» данной статьи, называется цифровой подписи. Этот метод требует, что пользователю подписать сообщение, он создается; это — почти как небезопасные, для пользователей, шифрование случайное значение, которое начинается с пользователем а. Как следствие протокол проверки подлинности этого примера требуется еще одно действие для обеспечения безопасности, пользователь должен создавать некоторые или все данные, как показано ниже:
A-> B B-> приветствия будут вы пользователь? Пользователь А, это является {пользователь Бвыборка[Пользователь А, это является пользователь B]}User_B "s_private_key
Когда пользователь использует данный протокол, пользователь знает, что сообщение отправляется для пользователя A, и таким образом, пользователь может безопасно подписи сообщения. Во-первых, пользователь Б отправляет незашифрованный версия сообщения "пользователь, это является пользователь B,", а затем пользователю отправляется digested зашифрованные версии. Пользователь а можно просто убедитесь, что пользователь — это пользователь и пользователю не нужно подписать все, что не были взяты с пользователя б.

Передача из открытые ключи

Как можно пользователь вручную из открытого ключа в безопасном режиме? Ниже приведен пример протокол проверки подлинности для пользователя б.
A-> B B-> A-> B B-> A
Hi, Hello я пользователь БUser_B "s_public_keyдоказать это пользователь, это является
{Пользователь Бвыборка[Пользователь А, это является пользователь B]}User_B "s_private_key
При использовании данного протокола, любой пользователь может олицетворять пользователя б. Imposter потребности — это открытый и закрытый ключи. Imposter могут находиться для пользователя A и олицетворения пользователя Б, предоставляя открытый ключ imposter вместо того, чтобы пользователь В открытый ключ. Затем imposter "подтверждает" imposter, что-то шифрование с помощью закрытого ключа imposter пользователю, что он не может сообщить, что imposter не пользователя б.

Для решения этой проблемы, стандарты сообщества изобретен объект с именем сертификата. Сертификат содержит следующие сведения:
  • Имя поставщика сертификата.
  • Сущность, для которого будет выдан сертификат (также известный как тема).
  • Открытый ключ субъекта.
  • Некоторые метки времени.
Сертификат подписан с помощью закрытого ключа сертификата поставщика. Все знают, открытый ключ поставщика сертификата (то есть, поставщик сертификата также имеет сертификат). Сертификаты представляют собой стандартный способ выполнить привязку к имени открытого ключа.

Если используется технология сертификат, все может проверить сертификат пользователя Б чтобы увидеть, если сертификат подделана. If User B keeps tight control of the private key, and User B actually obtains the certificate, then the certificate technology is secure. The following is the amended protocol using this technique:
A->B B->A A->B B->A hello Hi, I'm User B,User_B's_certificateprove
it User A, This Is User B {digest[User A, This Is User B] }User_B's_private_key
When User A receives User B's first message, User A can examine the certificate, check the signature (as in the previous example, by using a digest and public key decryption), and then check the subject (that is, User B's name) and see that it is indeed User B. User A can then trust that the public key is User B's public key, and can request proof of User B's identity.

User B goes through the same process as outlined in the previous example, by designing a message digest and then responding to User A with a signed version of the digest. User A can verify User B's message digest by using the public key from the certificate and checking the result.

A person who may want to interfere with secure communications (in this example, User C) can create the following scenario to try to do so:
A->C C->A A->C C->A hello Hi, I'm User B,User_B's_certificateprove
it ????
However, User C cannot satisfy User A in the final message. User C does not have User B's private key, so User C cannot construct a message that User A will believe comes from User B.

Exchanging a Secret

After User A has authenticated User B, User A can send User B a message that only User B can decode as follows
A->B {secret}User_B's_public_key
where the only way to determine thesecretis by decrypting the above message with User B's private key. Exchanging a secret is another powerful way to use public key cryptography. Even if the communication between User A and User B is observed, nobody but User B can determine the secret information.

This technique strengthens Internet security by using the secret as another key, but in this case it is a key to a symmetric cryptographic algorithm, such as Data Encryption Standard (DES), RC4, or IDEA. User A knows the secret because User A generated the secret before sending it to User B. User B knows the secret because User B has the private key and can decrypt User A's message. Because both User A and User B know the secret, they can both start a symmetric cipher algorithm and then send messages that are encrypted with the symmetric cipher algorithm. The following is a revised protocol that uses this technique:
A->B B->A A->B B->A A->B B->A hello Hi, I'm User B,User_B's_certificate
prove it User A, This Is User B {digest[User A, This Is User B] }User_B's_private_key
ok User B, here is a secret {secret}User_B's_public_key{some_message}secret_key
Метод, который используется для вычисленияsecret_key— протокол, который будет определен, ноsecret_keyможно просто скопируйте секретный код.

Помехами безопасности

Даже в том случае, если все предыдущие методы используются, кто хочет мешать безопасных соединений (для пользователей C) можно сделать это. Несмотря на то, что C пользователя не может обнаружить секрет, который обмен пользователь а и пользователь, пользователь C может конфликтовать с их диалога с re-arranging (или garbling) секретных сведений. Например пользователя C находится между пользователь а и пользователь, C пользователя также передать большую часть сведений вперед и назад без изменений, однако garble некоторых сообщений (удобно для пользователей C, чтобы сделать так, как C пользователь знает протокол, он и пользователь Б используется для связи):
А-> C C-> B B-> C C-> A-> C C-> B B-> C C-> A-> C C-> B B-> C C-> A
Здравствуйте, hello шины, я пользователь БUser_B "s_certificateПривет меня зовут пользователь Б
User_B "s_certificateподтвердить она подтверждает это пользователь, это является {пользователь Бвыборка[Пользователь A,
Это является пользователь B]}User_B "s_private_keyПользователь А, это является {пользователь Бвыборка[Пользователь А, это является
Пользователь Б]}User_B "s_private_keyOK Вот секретное {пользователь Бсекрет}User_B "s_public_key
OK Вот секретное {пользователь Бсекрет}User_B "s_public_key{some_message}secret_key
[{Garblesome_message}secret_key]
Пользователь C передает данные без изменений, пока пользователь A и B пользователей используют общий секрет. Затем пользователь C garbles пользователь В сообщение для пользователя а. На этом этапе он доверительных отношений пользователь Б, поэтому он может считаете искаженный сообщение и повторите отреагировать на него. Примечание C пользователя не знает пароль, можно сделать C всех пользователей, повреждение данных, зашифрованных с секретным ключом. В зависимости от протокола допустимое сообщение не может привести к C пользователя, но C пользователь может получить Счастливое и создать допустимое сообщение.

Во избежание такого рода повреждений, пользователь а и пользователь может вызвать код проверки подлинности сообщения в их протокола. Код проверки подлинности сообщения — это часть данных, которые вычисляются с помощью секретного и некоторые передаваемых данных. Описанный выше алгоритм дайджеста имеет право свойства для создания кода функции проверки подлинности сообщения, можно защищать от пользователя C:
message_authentication_code:=выборка[some_message,секрет]
Потому что пользователь C не известен секрет, C пользователя не удается вычислить правильное значение дайджеста. Даже если пользователь C случайным образом garbles сообщения, шансы на успех мал при наличии большого объема данных выборки. Например, с помощью MD5 (хороший криптографический алгоритм дайджеста изобретен, RSA), пользователь а и пользователь может отправить сообщение 128-разрядного значения кода проверки подлинности с их сообщения. Вероятность C пользовательского кода проверки подлинности сообщения правильный подбор составляет около 1 в 18,446,744,073,709,551,616. Для всех практических целей пользователя C не может подобрать код проверки подлинности правильно сообщения.

Ниже приведен пример протокола, исправлен снова использовать этот метод.
A-> B B-> A-> B B-> приветствия шины, я пользователь БUser_B "s_certificateподтвердить
Это пользователь, этот пользователь Б является {выборка[Пользователь А, это является пользователь B]}User_B "s_private_keyOk.
Пользователь Б, Вот секретное {секрет}User_B "s_public_key{some_message,message_authentication_code}secret_key
Можно попытаться garble сообщения пользователь C, но Показать вычисления кода проверки подлинности сообщения, сообщения не берутся из пользователь б. пользователь или пользователь может определить значение кода неверные сообщения проверки подлинности и прекращение связи. Пользователь C не может олицетворять пользователя б.

Свойства

Код статьи: 245152 - Последний отзыв: 18 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Exchange Server 4.0 Standard Edition
  • Microsoft Exchange Server 5.0 Standard Edition
  • Microsoft Exchange Server 5.5 Standard Edition
Ключевые слова: 
kbinfo kbmt KB245152 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:245152
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com