GPG все еще видит хороший знак с отзывом подключа по-прежнему работает - PullRequest
0 голосов
/ 03 февраля 2019

Я создал ключ и создал подраздел.С подключом я подписал файл.Проверка работ.Отозвал ключ, проверка не держит.Это ожидаемое поведение.

Однако, если я попытаюсь подписать с тем же подразделом и проверить, что он все еще работает.Что я делаю неправильно?Вот что я делаю в полном объеме:

$ gpg --gen-key
$ gpg -k
/Users/mustafa/.gnupg/pubring.kbx
---------------------------------
pub   rsa2048 2019-02-03 [SC] [expires: 2021-02-02]
      5DD923FBCF6392A5CB366167D4C0627A07510C6C
uid           [ultimate] Mustafa <mustafa91@gmail.com>
sub   rsa2048 2019-02-03 [E] [expires: 2021-02-02]

Используя ключ редактирования, добавьте подраздел.

$ gpg --edit-key 5DD923FBCF6392A5CB366167D4C0627A07510C6C

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E

gpg> addkey

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E
ssb  rsa2048/38616BDAE66E418C
     created: 2019-02-03  expires: 2019-02-13  usage: S
[ultimate] (1). Mustafa <mustafa91@gmail.com>

gpg> q
Save changes? (y/N) y

Подпишите файл и проверьте его.

$ gpg --armor --detach-sign --default-key 38616BDAE66E418C  test.txt
gpg: using "38616BDAE66E418C" as default secret key for signing

$ gpg --verify test.txt.asc test.txt
gpg: Signature made Sun Feb  3 21:49:43 2019 +03
gpg:                using RSA key 485FC77FC73DA3B800C7F41538616BDAE66E418C
gpg: Good signature from "Mustafa <mustafa91@gmail.com>" [ultimate]

Отзыв ключа с сообщением «Этот ключ теперь находится в руках врага».

$ gpg --edit-key 5DD923FBCF6392A5CB366167D4C0627A07510C6C
gpg> key 2

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E
ssb* rsa2048/38616BDAE66E418C
     created: 2019-02-03  expires: 2019-02-13  usage: S

gpg> revkey
sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E
The following key was revoked on 2019-02-03 by RSA key D4C0627A07510C6C Mustafa <mustafa91@gmail.com>
ssb  rsa2048/38616BDAE66E418C
     created: 2019-02-03  revoked: 2019-02-03  usage: S
[ultimate] (1). Mustafa <mustafa91@gmail.com>

Попробуйте проверить старую подпись и увидеть, что она не работает.

$ gpg --verify test.txt.asc test.txt
gpg: Signature made Sun Feb  3 21:49:43 2019 +03
gpg:                using RSA key 485FC77FC73DA3B800C7F41538616BDAE66E418C
gpg: Good signature from "Mustafa <mustafa91@gmail.com>" [ultimate]
gpg: WARNING: This subkey has been revoked by its owner!
gpg: reason for revocation: Key has been compromised
gpg: revocation comment: This key is now in the hands of the enemy.

Однако,пытаюсь подписать с отозванным ключом.

$ rm test.key.asc
$ gpg --armor --detach-sign --default-key 38616BDAE66E418C  test.txt
gpg: using "38616BDAE66E418C" as default secret key for signing

Почему не выходит из строя?Как это можно проверить?

$ gpg --verify test.txt.asc test.txt
gpg: Signature made Sun Feb  3 21:53:11 2019 +03
gpg:                using RSA key 5DD923FBCF6392A5CB366167D4C0627A07510C6C
gpg: Good signature from "Mustafa <mustafa91@gmail.com>" [ultimate]

1 Ответ

0 голосов
/ 09 февраля 2019

Посмотрите на свои последние два отрывка.Несмотря на то, что вы указали ключ подписи по умолчанию, равный 38616BDAE66E418C, при проверке он сообщает, что он подписан с помощью D4C0627A07510C6C.

Если вы используете -v подробный параметр gpg, вы увидите, что если указанный ключ по умолчанию отозван, он возвращается к следующему используемому ключу подписи.

Чтобы проиллюстрировать это, я воссоздал ваш сценарий:

sec  rsa2048/4E5CB15076F1318E
     created: 2019-02-09  expires: 2021-02-08  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/3303CBB274AECA3B
     created: 2019-02-09  expires: 2021-02-08  usage: E
The following key was revoked on 2019-02-09 by RSA key 4E5CB15076F1318E Herp Derp <herp@derp.com>
ssb  rsa2048/8ABD3900E64E7972
     created: 2019-02-09  revoked: 2019-02-09  usage: S
[ultimate] (1). Herp Derp <herp@derp.com>

Подписание с помощью подключадо отзыва:

$ gpg -v --armor --detach-sign --default-key 8ABD3900E64E7972 test.txt
gpg: using pgp trust model
gpg: using "8ABD3900E64E7972" as default secret key for signing
gpg: using subkey 8ABD3900E64E7972 instead of primary key 4E5CB15076F1318E
gpg: writing to 'test.txt.asc'
gpg: RSA/SHA256 signature from: "8ABD3900E64E7972 Herp Derp <herp@derp.com>"

Подписание с помощью подключа после отзыва:

$ gpg -v --armor --detach-sign --default-key 8ABD3900E64E7972 test.txt
gpg: Note: signature key 8ABD3900E64E7972 has been revoked
gpg: using pgp trust model
gpg: using "8ABD3900E64E7972" as default secret key for signing
gpg: Note: signature key 8ABD3900E64E7972 has been revoked
gpg: writing to 'test.txt.asc'
gpg: RSA/SHA256 signature from: "4E5CB15076F1318E Herp Derp <herp@derp.com>"

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

...