2015-01-20 2 views
1

У меня есть клиентское серверное приложение, написанное на C#. На самом деле соединение tcp зашифровывается rsa и rijandel (например, бедный человек ssl). Я часто читал, что я должен использовать что-то вроде SSL, а не собственную реализацию. Я знаю причины этого. Но если я использую ssl, мне понадобятся два сертификата: один для клиента и один для сервера, верно? (Потому что и сервер отправляет некоторые данные клиенту и другим способом) Как я это делаю с клиентом? Или я должен использовать для этого сообщения другой канал шифрования?SSL или собственная реализация?

+0

Только серверу требуется сертификат. Посмотрите сайты с поддержкой SSL. Сервер отправляет вам страницу (зашифрован), и вы все равно можете ее расшифровать без необходимости иметь собственный сертификат. – itsme86

+0

Хорошо, тогда я не понимаю ssl. Мне нужны два секретных ключа и два открытых ключа. Клиент имеет закрытый ключ, а сервер имеет закрытый ключ. Если вы говорите, только сервер нуждается в сертификате, что является закрытым ключом для клиента? Является ли закрытый ключ от клиента также в сертификате, для меня это не имеет смысла. –

+0

Ключ получен с использованием некоторой математики, которая находится за пределами моего набора навыков. Я понимаю, что ключ имеет определенные математические свойства, которые позволяют совершать определенные сложные вещи. – itsme86

ответ

2

SSL (или TLS) использует public key cryptography для двух целей. Один из них - зашифровать канал связи (на самом деле просто для обмена симметричным ключом) и один для идентификации сервера. Открытый ключ пары открытых частных ключей обменивается сертификатом, который подписывается цифровой подписью органом.

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

Сертификаты клиентов обычно используются в сценариях, где фоновым службам или демонам необходимо идентифицировать себя с веб-службами. В этом случае для авторизации запроса пользователь не может использовать пользователя.

Смежные вопросы