Какой самый простой способ реализовать шифрование в WCF при использовании netTcpBinding? - PullRequest
8 голосов
/ 04 мая 2011

Я внедряю службу WCF, которая будет использоваться (частично) в частной локальной сети.

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

Я не верю, что аутентификация Windows будет подходящей, поскольку конечный пользователь может не поддерживать свои учетные записи Windowsи роли достаточно строго, чтобы использовать их в качестве аутентификации.Правильно ли я думаю, что это сделает это неуместным?Пожалуйста, исправьте меня, если я ошибаюсь.

Мой вопрос заключается в том, как проще всего реализовать шифрование в службе WCF с использованием netTcpBinding?особенно когда тип учетных данных Windows недоступен.

Я пытался поэкспериментировать с сертификатами (создавая свои собственные с помощью makecert), но существует явное отсутствие учебных пособий и документации, описывающих, как это сделать от начала до концаиспользование TCP и размещение сервиса в чем-то отличном от IIS.Многие из них рассказывают вам, как сгенерировать сертификаты в деталях (и нет двух из этих руководств, абсолютно одинаковых в этом отношении) и заканчивают словами: «1011 *

», используйте их для подписи сервисаи клиент

... ну, к сожалению, этот процесс мне нужно немного пояснить!

Как правило, решение для сертификатов кажется чрезмерным и слишком сложным.получить зашифрованные данные!

Любая помощь или исправления в любых предположениях, которые я мог бы сделать, были бы очень благодарны.

1 Ответ

2 голосов
/ 04 мая 2011

После обсуждения в комментариях ...

По моему опыту (и я выполнил много работ по сериализации / WCF), "преимущество" производительности NetTcpBinding (и NetDataContractSerializer) во многом мифично.Я никогда не видел значительных различий - и часто ванильные http-привязки выполняются быстрее.

Я бы переключился на BasicHttpBinding через SSL, который прост в настройке и безопасен.

Если вы хотите улучшенную производительность и т. Д., Я бы переключил сериализатор на что-то вроде protobuf-net (раскрытие: я автор).Этот действительно легко продемонстрировал преимущества в производительности и прекрасно работает внутри WCF (просто изменение в файле конфигурации), особенно по сравнению с BasicHttpBinding (с дополнительным повышением, есливы включаете кодировку сообщений MTOM, так как это двоичный формат).

Лично я никогда не использую NetTcpBinding;как уже упоминалось, производительность сомнительна, и вы получаете зависимость от вещей, которые не будут работать в basic-http, если вы обнаружите, что вам нужен WAN-доступ.

...