2012-04-20 2 views
0

У меня есть tcp-сервер и с помощью cms/pkcs # 7 для защиты сообщения, передаваемого между клиентом и сервером. Будет ли обычной практикой передавать открытый ключ клиентам на сервер, как часть начального сеанса? В качестве открытого ключа, когда начинается сеанс, начальная команда clp передаст ключ вместе с другими подробными подробностями, которые сервер должен знать о клиенте. Это общественность, поэтому ее не нужно зашифровывать, она общедоступна.Лучший подход для передачи открытого ключа с клиента на сервер

Связь клиент/сервер обеспечивается с помощью ssl/tls.

Спасибо. Боб.

ответ

1

Не доверяете ли вы SSL/TLS или почему вы снова зашифровываете защищенный канал? Это имеет смысл только тогда, когда сервер передаст сообщение другим узлам, и он будет расшифрован где-то в другом месте, тем самым создавая сквозную защиту.

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

Если вы можете, вы должны сделать все это на уровне SSL/TLS, используя взаимную аутентификацию SSL/TLS (аутентификация сертификата клиента). Если вы не можете, убедитесь, что вы разработали протокол защищенного уровня приложения для аутентификации клиента и его открытого ключа. В противном случае возможно выдавать себя за других клиентов.

+0

Звуки, наконец, как настоящие советы. Я доверяю ssl/tls. Как передать сертификат на сервер? –

+0

Это зависит от API, который вы используете для завершения SSL. Не уверен, какие у вас варианты с .NET, но я думаю, что эта статья Microsoft KB может помочь вам начать работу: http://support.microsoft.com/kb/895971 –

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

  • Нет связанных вопросов^_^