Сейчас на форуме: tyns777, zds, JustLife (+3 невидимых)

 eXeL@B —› Программирование —› Двойное шифрование
Посл.ответ Сообщение

Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 21 декабря 2009 06:32
· Личное сообщение · #1

Добрый день.
Такой вопрос, есть файл, размером около 2 гигабайт. Хочется распространять его через сайт. Думаю над следующей моделью: на сервере файл зашифрован, когда клиент хочет купить продукт он проходит авторизацию, записываем его данные и прочее. Далее на сервере файл снова шифруется (нужны не только объемы на хостинге и выч. ресурсы, но и спец. программное обеспечение, сайт крутится на PHP, кстати возможно ли с его помощью шифровать такие большие файлы, я как-то пытался работать с файлом размером ~300 Mb, но он, по-видимому, пытался полностью его в память загрузить и вываливался с ошибкой).
На сервере файл должен быть зашифрован, чтобы если его кто-нибудь стырит не смог ничего получить.
После того, как клиент скачать дважды шифрованный файл я ему высылаю пароль, причем этот пароль должен расшифровывать исходный файл. Отсюда задача - получить ключ, расшифровывающий два этапа шифрования.
Если мы имеем дело с простым XORом это просто, результирующий ключ это просто XOR первого и второго ключа (я ничего не путаю?). Но как быть с более сложными алгоритмами.., XORу я как-то не доверяю.

Предлагаю обсудить идею, возможно ли это в принципе (я большого опыта по работе в веб не имею), поэтому интересно Ваше мнение.



Ранг: -4.3 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 21 декабря 2009 06:42 · Поправил: Jimbo77
· Личное сообщение · #2

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

Настолько дырявый сервер?

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

Что мешает клиенту, расшифровав ваш файл, продолжать распростронять его в уже расшифрованном виде?
Или этот вопрос принципиально не стоит?

З.Ы. Работать шифровальными алгоритмами с такими большими файлами (~2ГБ) на мой взгляд моветон. Тем более на веб сервере. Если это некая программная сущность, то гораздо практичнее и экономичнее шифровать отдельные, небольшие куски данной сущности без которых, априори, вся остальная часть комплекса не будет работоспособной.



Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 21 декабря 2009 09:33
· Личное сообщение · #3

Jimbo77 пишет:
Настолько дырявый сервер?

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

Файл представляет собой RAR архив, самораспаковывающийся, и содержит много файлов, просто данные. Частичное шифрование возможно, можно шифровать скажем каждые 100 байт с промежутком в килобайт (т.е. меньше десятой части), сомневаюсь, что в таком случае можно будет восстановить данные из архива (полезные файлы в архиве имеют размер 5-20 Mb), но это все-равно работа с большими файлами на сервере. Кстати, по всей видимости придется писать какой-то SFX для расшифровки, т.к. на большую компьютерную грамотность потенциальных пользователей не приходится рассчитывать - нужно чтобы "все само работало", кстати учитывая последнее, я надеюсь что если кто и решит уже расшифрованные материалы распространять, то хотя бы частично, но не полностью (сам понимаю, что это самая большая дыра, но похоже что в моем случае с ней ничего не поделать).

Друзья, меня интересуют Ваши мнения и предложения по существу вопроса.



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 21 декабря 2009 11:50
· Личное сообщение · #4

зачем так усложнять, пользователь проходит авторизацию генеришь для него ключ ( скажем от 32 символов ) и перепаковываешь в тот же RAR с паролем, если кто-то левый скачает то задолбается подбирать пароль, сам пользователь без проблем распакует.

если все так как ты описал. и не нужно будет изобретать велосипед!



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 21 декабря 2009 12:03
· Личное сообщение · #5

Wyfinger пишет:
Двойное шифрование

Да хоть тройное, только нафига? Для защиты от неавторизованного доступа к данным хватит обычного одинарного шифрования стойким алгоритмом. Если же речь идет об ограничении возможностей пользователей вашей программы (т.е. защита от реверсинга, кряка, и.т.п.), то вы ошиблись форумом, здесь не дают бесплатных советов для шароварщиков.

-----
PGP key <0x1B6A24550F33E44A>




Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 22 декабря 2009 08:13 · Поправил: Wyfinger
· Личное сообщение · #6

RSI пишет:
зачем так усложнять, пользователь проходит авторизацию генеришь для него ключ ( скажем от 32 символов ) и перепаковываешь в тот же RAR с паролем, если кто-то левый скачает то задолбается подбирать пароль, сам пользователь без проблем распакует.


Сейчас приблизительно так и происходит - после заказа я пакую архив и доставляю его заказчику (не по интернету, почтой), а после получения оплаты передаю ему ключ. Я хочу это автоматизировать, т.к. многие имеют возможность, ради такого дела, скачать такой объем данных. Но я же не буду паковать и заливать на сервер или непосредственно пересылать каждому заказчику такие объемы данных. Поэтому и хочу, чтобы все делалось на сервере автоматом, а я буду только отправлять пароли по получении оплаты.

Принципиальных проблем я не вижу. Ну ладно, пусть это будет даже обычный XOR, но а вот какими средствами это можно реализовать на сервере (мой сайт крутится на каком-то линуксе, я работаю на PHP, но возможно для этого нужно арендовать другой сервер, в котором был бы инструментарий для описанного мной шифрования (можно самому написать, например на Kylix, хотя я никогда на нем не работал) и возможность хранения и выдачи на приличной скорости больших объемов данных.

Да и чтобы все это удовольствие, как всегда, стоило подешевле.

Спрашиваю мнения - не является ли эта концепция полным бредом (я неопытен, могу сказать что прибыль от одного такого файла < 1000 руб, может на эти деньги и трафик окупить не удастся, я же не знаю). Кто может прояснить тонкие моменты - милости прошу к обсуждению..



Ранг: 43.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 22 декабря 2009 09:43 · Поправил: AlexVel
· Личное сообщение · #7

Wyfinger
по моему проще сделать так:
сжимаешь всю свою кучу файлов в один непрерывный SFX запароленный(ОБЩИЙ пароль) RAR архив с разбиением на тома скажем по 50 мегабайт. Получилось допустим 40 частей (2 Гб).
39 частей выкладываешь на хостинг как есть (скачивают все, кому не лень) и распологаешь ссылки на них у себя на страничке.
1-ю часть заRARиваешь еще раз под другим паролем (УНИКАЛЬНЫЙ для каждого купившего пользователя).
ссылку на 1-ю часть на страничке не отображаешь, а скажем посылаешь на мыло купившему пользователю вместе с 2-мя паролями (один из которых уникальный, другой - общий).
т.о. придется закачивать на хостинг только первую часть для каждого пользователя (т.е. 50 мег).
Ну и следишь за количеством скачиваний. Как только пользователь скачал - можешь удалить эту часть с хостинга



Ранг: 16.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 декабря 2009 14:30 · Поправил: alexas
· Личное сообщение · #8

AlexVel
Небольшая оптимизация: первый том архива можно сделать очень малого размера
Code:
  1. Rar.exe a -ppassword -v100k -v50m arcname files

Первый том будет размером в 100 кб, а остальные по 50 мегов.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 22 декабря 2009 22:06
· Личное сообщение · #9

AlexVel - отличный вариант!
alexas - супер! Только подумал, жать что нельзя сделать так, а оказывается можно!
Ещё бы сделать автоматически, что бы вводить только пароль к распаковщику этого 100 кб первого тома (после повторного накрытия), а распаковка основного архива начиналась автоматически вводя пароль для общего большого архива... Вроде в каком-то архиваторе можно скрипты писать? Тогда не нужно говорить два пароля и из остальных томов файлы не вытащить если в руки они попадут без первой части...



Ранг: -4.3 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 23 декабря 2009 01:55
· Личное сообщение · #10

alexas пишет:
Небольшая оптимизация: первый том архива можно сделать очень малого размера

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



Ранг: 43.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 23 декабря 2009 08:48
· Личное сообщение · #11

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

если архив непрерывный (т.е. solid), то даже при знании общего пароля без первой части файлы из остальных частей не вытащить (imho)



Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 23 декабря 2009 10:46 · Поправил: Wyfinger
· Личное сообщение · #12

AlexVel пишет:
если архив непрерывный (т.е. solid), то даже при знании общего пароля без первой части файлы из остальных частей не вытащить (imho)

Я в этом не уверен, сейчас проверю. Вернее все вытащить точно не получится, а вот какую-то часть..., впрочем, сейчас проверим.

ADD:
Ну что, видимо восстановить файлы без одного тома невозможно или по крайней мере затруднительно.
Это приемлемое решение, спасибо, наверное на этом остановимся.



Ранг: 43.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 23 декабря 2009 14:08
· Личное сообщение · #13

Wyfinger пишет:
видимо восстановить файлы без одного тома невозможно

не без _одного_ тома, а именно без ПЕРВОГО тома.
И именно в случае непрерывного (solid) архива.
Если из 10 томов не будет скажем последнего тома, то большинство файлов распакуются нормально (при известном пароле). Все вышесказанное справедливо для RAR архивов.
Для других архиваторов это м.б. не так.


 eXeL@B —› Программирование —› Двойное шифрование
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати