В настоящее время я работаю над проектом, который требует передачи зашифрованных данных между узлами WCF. Насколько я понимаю, есть только два способа обеспечить безопасность данных, передаваемых через WCF.
Использование сертификатов может быть дорогостоящим и сложным в управлении, и, поскольку мы не гарантируем наличие машины серверного класса при каждом развертывании, о Домене также не может быть и речи. Использование на каждой машине одного и того же имени пользователя и пароля также проблематично, если этот пароль когда-либо потребуется изменить.
В настоящее время мы используем OpenSSH для туннелирования наших соединений между хостами. Есть ли еще одна опция, встроенная в структуру, о которой я не знаю?
Какую привязку вы используете?
В настоящее время мы используем привязку net.tcp, но любая привязка подойдет. SSH недостаточно, его просто сложно настроить на клиентских машинах





Если вы используете конечную точку http, вы можете использовать безопасный транспорт, такой как https.
Используйте традиционное шифрование данных, которые вы помещаете в контейнер WCF. Может быть что-то вроде следующего:
http://www.obviex.com/samples/EncryptionWithSalt.aspx
Мы учли это, но для сохранения строгой типизации функций это должно происходить на гораздо более низком уровне.
Для шифрования требуется ключ. Ключи обычно реализуются в виде сертификатов. Если вы владеете обеими сторонами связи, вы можете создать свой собственный сертификат бесплатно, не покупая сертификат у доверенного корневого центра.
Вероятно, самый дешевый способ - создать собственный центр сертификации. Это означает, что у вас есть полный контроль над сертификатами, но вам не нужно платить за внешнюю сертификацию. Если вы автоматизируете это соответствующим образом, вы можете дать каждой машине в вашей сети криптографическую идентификацию и использовать локальную сертификацию, чтобы связать все вместе.
Я бы не сказал, что это самый дешевый метод. Мы учли это, но для настройки и обслуживания потребовалось бы много усилий.
Вот альтернатива. Работает без сертификатов IIS и SSL / X509.
Мне также любопытно ответить на этот вопрос; есть ли причина, по которой туннелирование ssh недостаточно?