Обмен зашифрованной инфой

nochnoy

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

Но вот проблема - когда я делаю файл доступным партнёру, этот файл должен надо перекодировать паролем партнёра (а пароль я не знаю).

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

Знатоки, расскажите как это вообще делается?
 

akd

dive now, work later
Команда форума
асинхронные ключи, RSA.
юзеры перед обменом файлами должны обменятся ключами. ключи можно генерить "на лету" и раздавать по требованию.
все остальное будет вполне себе костылями.
 

ksnk

прохожий
А как это выглядит для юзеров?
Вот юзер1 выкладывает файл1 и говорит что у него пароль1. В момент от загрузки файла до момента шифрования мы будем делать вид, что файл читать не можем ;) пароль1 тоже нигде не храниться...
Юзер2 связывается с юзером1 и говорит дай мне файл1. Юзер1 говорит - пароль1. Юзер2 указывает пароль и качает файл.

Так?
 

Вурдалак

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

zerkms

TDD infected
Команда форума

nochnoy

Новичок
Всё понял, спасибо вам.
Тогда другой вопрос. Как я понял на мастерхосте OpenSSL и в помине нет. Кто-нибудь знает хорошие (надёжные) RSA-библиотеки на чистом PHP? Я нашёл вот это http://phpseclib.sourceforge.net/ но не уверен насколько можно этому доверять. И вообще - библиотеки на php - это хорошая идея при шифровании файлов? Виртуальный хостпинг потянет?
 

akd

dive now, work later
Команда форума
Вурдалак, тут походу случай, когда задачу можно поменять. если пользователи действительно заинтересованы в безопасном обмене. :)
другое дело, шо нафик им сдался какой-то промежуточный сервис и сайт ..
 

nochnoy

Новичок
— Доктор, меня игнорируют...
— Следующий!
=))) Просто мне на стороне клиента совершенно не подходит. Юзеры сайта ничего себе устанавливать не будут. То что мне нужно - это шифрование с открытым ключом, на стороне сервера.
Саппорт мастерхоста ответил что OpenSSL у них стоит по умолчанию, значит RSA у них есть. Счастье тоже есть :)
 

ksnk

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

Кого обманываем? ;)
 

akd

dive now, work later
Команда форума
nochnoy, если на стороне клиента тебе не подходит, то можешь просто ничего не шифровать. один хер. :)
 

nochnoy

Новичок
При загрузке на сервере нет никакой разницы, rsa будет использоваться или не rsa. В момент загрузки файл открыт для копирования. Пароль для шифровки явно указывается юзером.
Пароль хранится только в памяти (в сессии), а файл сразу после загрузки шифруется, оригинал стирается. Я думаю, хватит им и того, что файло нигде не хранится в открытом виде :)
Можно конечно и на клиенте, но написать RSA на яваскрипте выше моих сил.
 

akd

dive now, work later
Команда форума
именнто так. если им надо безопасно - надо ставить.
 

ksnk

прохожий
Угу. Про архивы с паролями и обычный файл-хостинг никто почему-то не вспомнил?
imho - полное соответствие тз ;)
 

fixxxer

К.О.
Партнер клуба
ksnk
"Но вот проблема - когда я делаю файл доступным партнёру, этот файл должен надо перекодировать паролем партнёра (а пароль я не знаю)."

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