Методология шифрования текстовых данных

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

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

В то время как мне доверяют не записывать ключи (я надеюсь распространить однопользовательскую версию, которая будет содержать тот же код), я не могу не думать, что есть более распространенный способ сделать это или недостаток в этом мышлении где-то (я не очень хорошо разбираюсь в безопасности или шифровании, но некоторые, вероятно, не очень хорошо понимают md5/sha1/blowfish). Это лучший способ сделать это?

1 ответ

Это один из редких случаев, когда выполнение шифрования и дешифрования на стороне клиента (через JavaScript) может иметь смысл.

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

Доступно несколько библиотек шифрования JavaScript. Я рекомендую посмотреть на JavaScrypt.

Другие вопросы по тегам