1

Это вопрос о gpg. Когда я вхожу в систему Linux от имени определенного пользователя ("opsacc"), я могу зашифровать файл с помощью gpg. Затем я могу расшифровать файл без указания пароля. Открытые / закрытые ключи gpg для этого пользователя были созданы не мной. Проблема в том, что я хотел бы повторить этот сценарий, когда вы вошли в систему под другой учетной записью, но не могу этого сделать, потому что мне всегда нужно указывать кодовую фразу. То есть, когда вы вошли в систему как другой пользователь, я хотел бы настроить gpg, чтобы я мог зашифровывать файлы, а затем расшифровывать их, не вводя ключевую фразу. Руководство gpg и другие исследования показывают, что это невозможно.

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

В моем случае пользователь, который изначально настроил пары ключей для учетной записи "opsacc", похоже, сгенерировал более одной пары открытый / закрытый ключ. Я не уверен, если это необходимо для расшифровки файла без предоставления парольной фразы. Возможно, файл был создан в другой системе Linux, в которой существовала учетная запись с аналогичным именем. Также возможно, что одна из пар ключей была создана в другой системе и экспортирована / импортирована здесь.

Для получения дополнительной информации см. Вывод ниже из командной строки:

Я вошел на "сервер" как пользователь "opsacc", и с помощью gpg версии 1.4.5:

[opsacc@server1 ~]$ gpg --version
gpg (GnuPG) 1.4.5
Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
[opsacc@server1 ~]$

Я создал зашифрованный файл из stdin в командной строке, используя gpg:

[opsacc@server1 ~]$ gpg -o .SecretFile.gpg -r opsacc -e
my_secret_word
[opsacc@server1 ~]$
[opsacc@server1 ~]$ ls -l .SecretFile.gpg
-rw-rw-r-- 1 opsacc opsacc 595 Mar  6 11:50 .SecretFile.gpg
[opsacc@server1 ~]$
[opsacc@server1 ~]$ file .SecretFile.gpg
.SecretFile.gpg: GPG encrypted data
[opsacc@server1 ~]$ 

Затем я могу расшифровать файл без указания ключевой фразы:

[opsacc@server1 ~]$ gpg --decrypt --no-secmem-warning -q $HOME/.SecretFile.gpg
my_secret_word
[opsacc@server1 ~]$

Вот детали открытых / закрытых ключей:

[opsacc@server1 ~]$ gpg -k
/opt/home/opsacc/.gnupg/pubring.gpg
----------------------------------
pub   1024D/3B50F829 2009-03-25
uid                  opsacc <opsacc@localhost.com>
sub   2048g/63B0BE4D 2009-03-25

pub   1024D/82406185 2009-03-25
uid                  opsacc <opsacc@localhost.com>
sub   2048g/766F847E 2009-03-25

[opsacc@server1 ~]$ 
[opsacc@server1 ~]$ gpg -K
/opt/home/opsacc/.gnupg/secring.gpg
----------------------------------
sec   1024D/3B50F829 2009-03-25
uid                  opsacc <opsacc@localhost.com>
ssb   2048g/63B0BE4D 2009-03-25

sec   1024D/82406185 2009-03-25
uid                  opsacc <opsacc@localhost.com>
ssb   2048g/766F847E 2009-03-25

[opsacc@server1 ~]$ 

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

1 ответ1

1

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

Если парольная фраза не требуется, кажется, что ключ не зашифрован ни с одним. Экспортируйте ключ (gpg --export-secret-keys [key-id] и импортируйте его для другого пользователя (в его собственный домашний каталог GnuPG, gpg --import), которому необходимо ввести фразу-пароль. Теперь отредактируйте ключ (gpg --edit-key [key-id]) и добавьте фразу-пароль (passwd внутри оболочки редактирования GnuPG).

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

Но имейте в виду, что, получив пароль, он, конечно, может легко его удалить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .