Ath Tse Ответов: 1

Собственное пользовательское шифрование в WCF?


Я создаю настольное клиент-серверное приложение WCF на языке C# и хочу настроить WCF на использование собственного пользовательского шифрования.
Я вообще не хочу использовать сертификаты.
Возможно ли это?

Что я уже пробовал:

До сих пор я ничего не нашел в интернете.

Richard Deeming

Простой ответ: не.

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

Памятка разработчику шифров-любителю[^]

Ath Tse

Спасибо за совет.
Мое приложение очень маленькое, и я не могу сказать клиенту, что он должен заплатить за сертификат.

Richard Deeming

Тогда не плати за него. :)

Давайте зашифруем[^] предоставит вам бесплатный SSL-сертификат для любого сайта, который вы контролируете.

Если вы находитесь в Windows, и DNS для вашего сайта указывает на ваш сервер, вы можете использовать этот инструмент[^] (тоже бесплатный) чтобы автоматически получить и установить бесплатный сертификат "Let's Encrypt". Он также настроит запланированную задачу для автоматического обновления сертификата незадолго до его истечения, так что вам даже не нужно беспокоиться об этом.

Ath Tse

Мой сервер-это просто обычный компьютер (нигде не размещенный) без статического ip-адреса.
Клиент-это еще один компьютер, который будет подключаться к серверу через интернет.
Я пробовал использовать самоподписанный подход, но он не сработал.
Я думаю, что мой алгоритм шифрования достаточно безопасен.
Есть ли пример, чтобы сделать это?

Richard Deeming

Нет. Вместо того чтобы изобретать велосипед, почему бы не сосредоточиться на том, чтобы заставить работать самозаверяющий сертификат? Я уверен, что если вы опубликуете вопрос с подробностями проблемы, с которой вы столкнулись, чтобы заставить его работать, кто-то сможет указать вам правильное направление. :)

Ath Tse

ОК,
Я так и сделаю.
Спасибо!

1 Ответов

Рейтинг:
2

Leo Chapiro

Я удивляюсь, что вы "до сих пор ничего не нашли в интернете": Безопасной службы WCF с помощью пользовательских зашифрованных маркеров – chsakell блог[^]

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


Взгляните, кажется, это то, что вам нужно.


Ath Tse

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

stelios1984

Вы неплохо говорите по-английски..

Я тоже нахожусь на одном корабле с вами.
Я использую xamarin.Формы и портативная библиотека классов, в которой я ссылаюсь на свой WCF.

Благодаря Xamarin.Формы и комбинация PCL я не могу использовать все функции безопасности WCF и теперь мой сервис
выставляется (в каждом запросе я могу видеть от fiddler тело в xml) я смотрю в интернете уже более 1 недели, как зашифровать конверт и расшифровать его на клиенте или сервере, но никаких особых ресурсов на это нет..
Я пробую несколько методов, таких как реализация

IDispatchMessageInspector (сервер - WCF) и
IClientMessageInspector (клиент)

но опять же у меня все еще есть трудности, чтобы заставить его работать..

Теперь я пытаюсь реализовать пользовательский кодер, но на самом деле не знаю, с чего начать и как его реализовать. Все найденные ресурсы не так уж и много, так как тоже не очень хорошо понятны