Как зашифровать данные при разрешении ч / б для данного пользователя в Linux

В настоящее время я работаю над проектом поиска java, который будет распространяться на локальный сервер клиентов. Проект содержит некоторые ценные данные, которые, как мы надеемся, не могут быть доступны напрямую на компьютере, но доступны только из служб проекта / apis. Данные будут обновляться ежедневно и должны быть доступны для запроса 24/7. Я имею в виду eCryptFs, но после некоторого теста кажется, что после того, как зашифрованные данные смонтированы под пользователем службы, скажем 'root1', так как я должен держать зашифрованные данные в смонтированном состоянии для поддержки запроса, все остальные входы в систему пользователи могут получить доступ к зашифрованным данным без пароля. Есть ли способ поддержать мой сценарий? Благодарю.

2 ответа

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

Если у ваших пользователей есть root-доступ, вы ничего не можете сделать.

РЕДАКТИРОВАТЬ: В большинстве случаев, кто-то с учетной записью root может делать все, что могут другие пользователи. Таким образом, даже если вы получили права доступа к файлу для каждого пользователя, но только для определенного пользователя (что очень возможно), это было бы довольно бессмысленно. (Кто-то с доступом sudo/root может просто запустить sudo su USERгде USER - учетная запись с правами доступа. Я думаю, что лучший способ сделать это - посмотреть варианты, которые пользователи не могут контролировать. Первое, что пришло в голову - это скомпилированные программы. Хотя они на самом деле не предназначены для хранения защищенной информации, вы можете скомпилировать простую программу для вывода небольшого количества информации после некоторой задержки (чтобы не дать им просто запустить ее непрерывно, а затем скомпилировать все данные, которые они получают из нее. На самом деле, изменение вашей Java-программы может быть проще; просто храните информацию в виде огромной строки или чего-то в этом роде.:D Эти обфускаторы Java с открытым исходным кодом усложнят (но, конечно, не исключат), обратный инжиниринг вашей программы и, вместе с ней, данных внутри.

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

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

Другие вопросы по тегам