Сохранение ключа в ~/.yourApp
будет работать при условии, что вы установили разрешения для файла ключей на 0600 и разрешения для каталога ~/.yourApp
на 0700.
Конечно, вы полагаетесь на людей, которые не могут / не хотят использовать root-доступ для доступа к файлам ключей других пользователей. Если это проблема, вам нужно использовать какое-то хранилище ключей, доступ к которому контролируется главной парольной фразой.
РЕДАКТИРОВАТЬ : в ответ на следующие вопросы ОП:
Даже в этом случае главная парольная фраза должна храниться в системе, или пользователям придется вводить ее вручную для каждого запроса (я полагаю, даже хранение ее в памяти небезопасно, если вы не доверяете root).
Это все относительно. Если вы действительно параноик, вы не храните ключ ни на одной машине, которую полностью не контролируете. С другой стороны, большинство людей готовы полагать, что root не был скомпрометирован и (как запасной вариант), что кому-то, имеющему root-доступ, нужно приложить некоторые усилия, чтобы сломать хранилище ключей. Разблокированная копия вашего хранилища ключей в памяти может считаться «достаточно безопасной». Конечно, многие пользовательские программы для хранения ключей, кажется, работают на этом предположении.
Почему каталог должен быть установлен в 0700? Даже если бы это был 0777, файл внутри него с 0600 все равно был бы нечитаемым для других, верно?
Отчасти общая паранойя, отчасти пояс и брекеты, отчасти знак для других пользователей «держать свой нос подальше от моих личных вещей» и отчасти для защиты от кого-либо путем замены файла ключа. Последний пункт может быть критическим ... или нет ... в зависимости от того, как именно ключ используется вашим приложением.