2009-11-19 2 views
4

Я не парень безопасности, поэтому любая помощь в этом была бы весьма признательна.Сохраняющиеся пароли веб-сервисов

У меня есть большое количество сторонних полевых устройств, которые имеют удаленные методы, которые можно вызывать через xml-rpc с помощью ssl. Для каждого вызова метода имя пользователя и пароль должны передаваться в виде обычного текста в качестве параметров вместе с любыми другими параметрами метода. Я не контролирую устройства или их реализацию.

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

Как зашифровать пароли службы устройства, чтобы их можно было дешифровать, когда нужно выполнить вызов? Как дешифровать пароль, когда нужно сделать вызов?

Я использую Java и Spring для приложения.

Примечание. Я не спрашиваю, как сохранить пароль пользователя.

+0

Забавная проблема :) У каждого пользователя есть свой идентификатор пользователя/пароль на устройство, есть ли «системный определенный» идентификатор пользователя/пароль на устройство или это комбинация? –

+0

Каждое устройство будет иметь одну пару имени пользователя-пароля, которая будет использоваться для каждого вызова xml-rpc, сделанного независимо от пользователя, зарегистрированного в веб-приложении. – LostHisMind

ответ

0

Мы решили аналогичные проблемы с this code.

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

+0

У каждой службы есть одно имя пользователя/пароль. Между пользователями и службами, к которым они будут обращаться, существует взаимосвязь «многие-ко-многим». Поэтому я не могу использовать пароль одного пользователя для шифрования имени пользователя и пароля службы, потому что другому пользователю, скорее всего, потребуется доступ к этой службе. – LostHisMind

1

Если у меня это право, есть только одно имя пользователя/pswd на полевое устройство (хотя каждый из них отличается и существует много полевых устройств).

Создайте безопасную прокси-службу с доступом ко всем паролям устройства. Пароли устройства могут храниться в зашифрованном виде с помощью открытого ключа прокси-сервиса. Ваше веб-приложение представляет собой ключ пользователя для прокси-сервиса, который (при условии, что он удовлетворен) ведет переговоры с полевыми устройствами от их имени. CryptoApi или одна из его оболочек должны быть все, что вам нужно.

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