Silverlight: шифрование имени пользователя и пароля для веб-службы - PullRequest
3 голосов
/ 18 мая 2009

Шифрование - не моя удача.

Я пишу приложение в Silverlight 3, которое взаимодействует с веб-сервисом для аутентификации пользователей. Веб-сервис не обязательно будет размещаться под SSL. Я пытаюсь найти способ обратимо зашифровать имя пользователя и пароль перед их передачей, который не зависит от того, какой ключ и соль жестко закодированы в сборке Silverlight. Он не поддерживает RSA (или любой другой асимметричный алгоритм), поэтому я не могу использовать открытый ключ с сервера.

Существуют ли какие-либо шаблоны для подобных вещей?

Ответы [ 3 ]

5 голосов
/ 18 мая 2009

RSA действительно был бы наилучшим путем, но на самом деле нет никакой реализации ни в Silverlight 2, ни в 3 библиотеках. Это то, что действительно должно было быть добавлено на мой взгляд, хотя вряд ли это произойдет до Silverlight 4 сейчас. К сожалению, пользовательская реализация RSA, вероятно, будет по-настоящему болезненной, поэтому я не вполне осуществима.

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

  1. Используйте алгоритм обмена ключами Диффи-Хеллмана для согласования ключа, который будет использоваться для последующего шифрования. Это было разработано для работы по небезопасному каналу, поэтому здесь нет проблем. См. здесь для реализации C #.
  2. Используйте какое-то симметричное шифрование с ключом, установленным обменом Диффи-Хеллмана, для отправки имени пользователя / пароля по соединению. Сервер может затем расшифровать, используя один и тот же ключ, который, хотя и известен как клиенту, так и серверу, тем не менее unknown любой третьей стороне. Сила вашего алгоритма симметричного шифрования на самом деле не имеет значения в этом случае. (Кто-то исправит меня, если я ошибаюсь.) На самом деле простой шифр XOR должен делать эту работу. Кажется, вы также можете использовать стандарт AES , который включен в пространство имен System.Security.Cryptography Silverlight BCL.

Надеюсь, это поможет. Дайте мне знать, если вам что-то не понятно.

2 голосов
/ 19 августа 2009

Вот библиотека с открытым исходным кодом для шифрования RSA в Silverlight http://www.riawebsoft.ru/Silverlight/Rsa/Test.aspx

0 голосов
/ 29 ноября 2010

Я выпустил библиотеку RSA, которая совместима с .NET RSACryptoServiceProvider (как PKCS, так и OAEP) и соответствует стандартам RSA. Это открытый источник:

http://scrypt.codeplex.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...