Всем привет. Пилю свою поделку - менеджер паролей. Данные перед отправкой на сервер шифруются в браузере и при получении расшифровываются обратно. Ключ, ясное дело, на сервер не передается никогда.
При изменении ключа вывожу модальное окно с напоминанием, что надо сменить ключ вручную на всех устройствах.
Внимание вопрос: можно как-то синхронизировать ключ в пределах одной учетной записи, но между устройствами? Я с компа и смартфона могу одновременно сидеть - в личном кабинете будет виден список активных сессий на сайте и любую сессию можно оттуда отключить.
Отсылать на почту новый ключ тоже нельзя, чтобы сервер его не знал.
Есть мысль написать расширение для браузера под это дело. Но тогда мобильники все равно не учтены будут.
Была такая мысль: сделать шифрование ключа еще одним ключом и через сервер синхронизировать. Но какая-то матрешка ))
Могу предложить использовать алгоритм Диффи Хеллмана для общения между вкладками через сервер. Например через веб сокеты.
Таким образом каждый клиент в рамках аккаунта будет иметь общий ключ (локально) с каждым другим клиентом. Этот ключ будет неизвестен серверу.
И тогда при обновлении мастер-ключа, достаточно будет локально зашифровать его для каждого другого клиента и сохранить зашифрованный ключ на сервере. Шифровать можно любым надёжным симметричным алгоритмом.
Надеюсь понятно объяснил.
P.S.: Не берусь утверждать что это достаточно безопасно.
Не надейтесь )))
Тут вопрос в другом: как бы юзеру облегчить жизнь ))
Вот зашел он из-под Хрома в личный кабинет, сохранил инфу и сменил ключ. Теперь на работе он из-под Оперы не получит инфу, пока правильный ключ не введет.
Как бы вот этот момент более безболезненным сделать?
Алексей Ярков: собственно я предложил этот процесс автоматизировать. Грубо говоря просто сохранить ключ на сервере, но в зашифрованном виде. Первая часть моего ответа о том, как можно зашифровать ключ так что бы сервер не мог его расшифровать.