Ваше понимание верно. Подписание пакета позволяет вам проверить, что загружаемые вами пакеты получены от доверенных разработчиков. Это исключает возможность мошенническому серверу распространения каким-либо образом изменять подписанную информацию.
Но, как вы сказали - What if Person A is malicious? Is that just up to your discretion?
- Точно - процесс подписи не имеет ничего общего с намерениями человека. Это только поможет вам убедиться, что данные были получены от них и не были подделаны.
Цифровая подпись похожа на паспорт - она подтверждает личность владельца, но ничего не говорит о его / ее намерениях.
Мне трудно понять, почему это делает программное обеспечение более безопасным
Потому что это предотвращает изменение пакетов или исходного кода на серверах распространения неавторизованными людьми. Например, если я размещаю общедоступное зеркало дистрибутива Linux на своем собственном компьютере, я могу заменить законный пакет OpenSSL своим собственным вредоносным. Если кто-то загрузит его и запустит процесс проверки подписи, произойдет сбой, так как я изменил пакет. Пользователь может решить не устанавливать его.
Чтобы эта схема работала, конечные пользователи должны загрузить открытые криптографические ключи от своих разработчиков и подтвердить, что они им доверяют. После этого они должны включить процесс проверки подписи в своей операционной системе.
Вот выдержка из документации Gentoo по этому вопросу.
Как все это работает на высоком уровне? Я также читал о кольцах доверия GPG. GPG использует те же ключи, что и ssh или https? Если нет, то какая разница?
Хотя я могу попытаться объяснить это, я сомневаюсь, что смогу сделать это лучше, чем люди на https://security.stackexchange.com/ .
Кроме того, на YouTube есть много видео на эту тему.