4

Что-то вроде вопроса noob, но я читал о подписи и о том, как она делает дистрибутивы Linux более безопасными. Докер недавно добавил подпись к изображению, что кажется классным. Почему это так важно? Просто потому, что я могу достоверно знать, что если Лицо А говорит, что они что-то сделали, то когда я загружаю и устанавливаю эту вещь, я могу сделать что-то, чтобы гарантировать, что Лицо А действительно создавало эту вещь?

Мне трудно понять, почему это делает программное обеспечение более безопасным. Что если человек А является вредоносным? Это только на ваше усмотрение? Это не похоже на отличную систему.

Как все это работает на высоком уровне? Я также читал о кольцах доверия GPG. GPG использует те же ключи, что и ssh или https? Если нет, то какая разница?

2 ответа2

3

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

Но, как вы сказали - 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 есть много видео на эту тему.

1

Идея в том, что вы знаете, кто такой человек А, и у вас есть основания доверять им. Тысячи других людей также доверяют человеку А, поэтому, если они делают вредоносную сборку, есть много людей, которые ее поймают. Поскольку вредоносная сборка будет подписана, у них будет доказательство того, что они были преданы А, а не просто доказательство того, что где-то есть какая-то проблема (черт возьми, возможно, они создали вредоносную сборку самостоятельно).

Напротив, без подписи кода вы должны доверять всему пути, по которому вы получаете код. И если вы получаете вредоносный код, вы не знаете, кто виноват или кому перестать доверять.

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