• MySQL + PHP :: Хранение паролей клиентов в базе данных с целью их извлечения, как защить?

    vabka
    @vabka
    Токсичный шарпист
    есть необходимость хранения паролей клиентов от их сервисов (сервера, хостинги, и тд)

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

    Для хранения лучше использовать уже существующие хранилища для секретов. Например Hashicorp Vault.
    Ответ написан
    Комментировать
  • MySQL + PHP :: Хранение паролей клиентов в базе данных с целью их извлечения, как защить?

    solotony
    @solotony
    покоряю пик Балмера
    я так делал

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

    все данные подлежащие шифрованию сразу шифровал на клиентской машине и на сервере хранил только шифрованные данные.

    p.s. вопрос надежности надо рассматривать исходя из потенциальных атак и общих требовний.
    Ответ написан
    Комментировать
  • MySQL + PHP :: Хранение паролей клиентов в базе данных с целью их извлечения, как защить?

    @rPman
    Забудем что принципиально хранить пароли - плохая практика, но так как задача уже такова что хранение вынужденное то:
    1. шифровать логины и пароли (весь набор данных, не имеющих смысл друг без друга, лучше хранить сериализованными в одном поле, особенно когда от задачи к задачи поля меняются, т.е. логин пароль почта api key, gpg ключи шифрования и т.п. пусть это будет свободная json строчка, за ее анализ отвечает клиентская часть приложения)
    2. ключом/паролем, который не хранится в базе данных (он должен являться частью бакэнда, т.е. в том месте где на бакэнде хранятся настройки подключения к внутренним сервисам либо отдельное место хранения) - при разделении работ между людьми (обслуживать базы могут другие люди, чем те кто имеет доступ к бакэнду) чувствительные данные не утекут легко.
    3. логируй все, т.е. показал пароль - сохрани в специальном логе (в базе или файлах уже вопрос организации работ) - кто, когда, с какой машины, что получил
    4. когда показываешь пароль на клиентской машине, повторно запрашивай авторизацию (чтобы не использовалась автосохраненная), важный момент, это исключит кражу данных уже на стороне клиента, очень мало кто правильно организует рабочее место (это просто неудобно и дорого).
    Ответ написан
    2 комментария