Как зашифровать файлы в витой?

1

Я использую скрученный для создания сервера. Проблема в том, что я должен защитить свой код. Так как я не хочу публиковать его, я действительно не ввязываюсь в обфускацию или компиляцию кода python. Моя проблема заключается в том, что мое скрученное приложение должно запускаться с root uid, и у многих людей есть root-доступ к этому серверу. Меня не волнует, могут ли они прочитать его, но я хочу, чтобы они не могли его изменить! Какое лучшее решение, зная, что я использую скручен? Я видел в twistd, tapconvert и mktap, что скрученный может "шифровать" мой код, но я не нашел никакой хорошей документации об этом. Кто-нибудь может мне помочь?

Спасибо заранее за любой ответ =) Приятного дня!

/!\EDIT: У меня есть другой вопрос, я написал свой код, следуя этой части витой документации: http://twistedmatrix.com/documents/current/core/howto/application.html, поэтому я запускаю свой сервер с помощью команды как twistd -y server.py --logfile... Так как я это делаю, я предполагаю, что не могу использовать программное обеспечение, такое как cx_Freeze, чтобы скрыть свой код?

Теги:
encryption
twisted
obfuscation

2 ответа

4
Лучший ответ

У вас здесь много проблем.

мое скрученное приложение должно работать с root uid

Это плохо. Если в вашем приложении есть уязвимости, тогда они станут более серьезными, запуская их как root. Вы должны подумать о том, чтобы найти способ не запускать его как root. Например, если вы используете только root, поэтому можете привязываться к порту с низким номером, вместо этого используйте authbind.

у многих людей есть root-доступ к этому серверу

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

Меня не волнует, могут ли они прочитать его, но я хочу, чтобы они не могли его изменить!

Тогда вы должны попросить их не изменять его.

Я видел в twistd, tapconvert и mktap, что скрученный может "шифровать" мой код, но я не нашел никакой хорошей документации об этом. Кто-нибудь может мне помочь?

Вы не должны пытаться использовать функции шифрования twistd и mktap. Это не мешает кому-либо изменять ваш код. В лучшем случае они могут помешать кому-то прочитать некоторые из них. Как вы сказали, это даже не ваша цель. Даже если бы это была ваша цель, кто-то с правами root мог бы легко расшифровать эти файлы, поэтому он даже не поможет.

Если вы дадите код кому-то, ожидайте, что они смогут сделать что угодно и все, что захотят. Если вы размещаете код на сервере, вы эффективно предоставляете его всем, у кого есть root-доступ к этому серверу.

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

  • 0
    Спасибо за Ваш ответ. Основная причина, по которой мой софт запускается с root uid, заключается в том, что в какой-то момент он должен запускать другие двоичные файлы, которые также должны запускаться с правами root. В настоящее время я работаю над этой проблемой. Я пытаюсь удалить доступ к серверу от людей, которым я не доверяю, но для этого понадобится несколько раз. В любом случае меня интересует, чтобы кто-то не читал его, может быть, это помешает плохим коллегам изменить его =) Меня также интересует моя "культура" о том, как работает функция шифрования в twistd. Если у вас есть ссылка ... Спасибо!
0

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

Если вы обеспокоены, у вас действительно есть два варианта:

  1. Шифруйте файлы любым способом (я не знаю, делает ли это Twisted или как)

  2. "Скомпилируйте" код для вашей платформы. Есть несколько компиляторов Python, но я не знаю, работают ли они с Linux. Я парень свободного программного обеспечения, поэтому хочу, чтобы люди читали и меняли код. Защита меня не касается.

Думаю, у вас есть третий вариант защиты его по закону лицензией. Но если они нарушают вашу лицензию, то есть расходы на их рассмотрение в суд.

Не много вариантов. Сожалею.

Энтони

  • 0
    Спасибо за Ваш ответ. Мое программное обеспечение предназначено только для внутреннего использования моей компанией. Сервер работает под управлением FreeBSD, и около 10 человек получили root-доступ, и да, я знаю, что это реальная проблема ... Но ситуацию нельзя легко изменить. Я спросил о витой, потому что у tapconvert, mktap и twistd есть опция шифрования файлов, но я не могу найти, как она работает.
  • 0
    Шифрование данных или компиляция кода не защищают их от модификации или прочтения каким-либо значимым образом; это плохой совет. Код должен быть расшифрован, когда он выполняется в любом случае, и скомпилированный код (особенно в Python) легко читается.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню