Шифрование данных

Суть задачи:

Обеспечить обмен данными (текст) в зашифрованном виде между группой пользователей.

Шифровать данные на стороне клиента непосредственно в браузере (JS или Flash).

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

Вопроса два:
1. Какой метод шифрования лучше использовать?
2. Как быть с ключами шифрования?

Спасибо!
  • Вопрос задан
  • 4851 просмотр
Пригласить эксперта
Ответы на вопрос 5
wersoo
@wersoo
Без учета существования реализации тех или иных криптопротоколов в js или flash, так как не сталкивался, могу посоветовать почитать Шнайера «прикладную криптографию». Там же и схемы обмена ключами и прочие полезности. Либо уточните вопрос попробую ответить подробнее.
Ответ написан
wersoo
@wersoo
Основной проблемой мне кажется является обмен ключами, а точнее аутентификация пользователя. В вашем случае, как мне кажется, для аутентификации всех авторизованных клиентов нужна либо доверенная третья сторона, для хранения сертификатов; либо владение некоторой общей секретной информацией заранее, до начала общения по незащищенному каналу; либо прямой доступ друг к друг, без сервера, для минимизации возможности компрометации канала связи.

Как я это вижу, хотя, конечно, могу ошибаться.
1. Доверенная третья сторона должна публиковать сертификаты либо открытые ключи клиентов. Можно использовать ssl.
2. Общая информация, это как раз тот ключ симметричного шифрования, либо закрытый ключ ассиметричного, либо любая другая секретная информация, доказательство владением которой позволит аутентифицировать клиента.
3. Альтернативный канал связи который позволит обменяться авторизированным пользователям ключами без посредника в виде сервера.

А далее пользователь просто шифрует информацию и размещает на сервере.
Ответ написан
Комментировать
zhart
@zhart
Если все пользователи используют Firefox, то можно использовать один из предназначенных для шифрования аддонов.
Ответ написан
savostin
@savostin
Еще один программист
Если данные на сервере только хранятся и не требуют расшифровки, то на клиенте шифруете чем угодно по паролю/ключу, указанному клиентом, передаете на сервер. Без ключа расшифровать будет сложно. Обратно клиент получает зашифрованную инфу, вводит ключ и расшифровывает. Ключ естественно на сервер не передается.
Например www.mozilla.com/en-GB/firefox/sync/ так делает.
Ответ написан
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Ключ передавать по p2p?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы