шифрование lua aes - PullRequest
       12

шифрование lua aes

2 голосов
/ 29 января 2012

Я нашел решение "lua aes" в сети некоторое время назад. И беспокоиться о его безопасности.

В нем говорится, что:

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

Об этом говорится в скрипте "теста шифрования файлов".

Мои вопросы:

Почему, чем он отличается от шифрования строки и записи ее в файл?

Как это может быть видно при шифровании? Это можно просмотреть и после шифрования?

В принципе, это безопасно для использования или нет?

Есть ли кто-нибудь, кто может подтвердить это, кто использовал это? Я отправил исходный разработчик по почте, но адрес электронной почты был недействительным.

Стоит ли вообще его использовать?

Ответы [ 2 ]

7 голосов
/ 29 января 2012

Я полагаю, что есть две причины, по которым была сделана эта рекомендация:

  1. Строки являются неизменными в Lua, поэтому нет способа перезаписать строку другими данными как только он будет создан.
  2. В Lua объекты собирают мусор. Сборщик мусора работает только в определенных точках программа и приложение не могут определить, когда будет запущен сборщик мусора после того, как больше не будет ссылок на объект. До тех пор строка пароля останется в памяти к точке 1.

См. Случай Java, который похож на Lua:

Почему char [] предпочтительнее, чем String для паролей?

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

Ближайшим Lua, эквивалентным массиву char, является таблица, заполненная числами. Здесь пароль хранится в виде таблицы, а не строки, где каждый элемент в таблице состоит из целочисленного представления каждого символа. Например, "pass" становится {0x70,0x61,0x73,0x73}. После того, как таблица, содержащая пароль, используется для шифрования или дешифрования, она заполняется нулями до того, как она не станет доступной для программы, и в конечном итоге соберет мусор.


Согласно вашему комментарию, возможно, меня неправильно поняли. Возможно, «тест шифрования файлов» хранит пароль в виде простого текста вместе с зашифрованным файлом, что позволяет любому, имеющему доступ к файлу, даже злоумышленникам, иметь возможность тривиально его расшифровать. Приведенные выше пункты все еще применяются, хотя. Это все еще только предположение, однако; Я не могу точно знать, что вы имеете в виду, если вы не предоставите ссылку на библиотеку шифрования, которую вы упомянули.


Я взглянул на библиотеку AES, и обеспокоенность по поводу того, что пароль «легко просматривается», возникает из-за того, что пользователь вводит пароль в виде обычного текста через командную строку или терминал, чтобы запустить программу Lua, даже если вывод программы содержит только зашифрованный текст. Несколько более безопасный способ предоставления пароля - не показывать ввод (как это делается в sudo) или маскировать ввод точками или звездами (как это делается на многих веб-страницах).

Либо это, либо приведенные выше пункты являются, пожалуй, единственным логическим объяснением.

1 голос
/ 30 января 2012

Вы также можете попробовать альтернативные методы, такие как LuaCrypto , который является привязкой к OpenSSL и может шифровать данные с использованием стандарта AES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...