Влияет ли Heartbleed на ssh-ключи?


40

Влияет ли недавняя ошибка Heartbleed на ssh-ключи, которые я сгенерировал и использовал для отправки / извлечения кода с Github, Heroku и другими подобными сайтами?

Нужно ли заменить ключи, которые я использовал?

Ответы:


47

Нет, Heartbleed на самом деле не влияет на ключи SSH, поэтому вам, вероятно, не нужно заменять используемые вами ключи SSH.

Во-первых, SSL и SSH - это два разных протокола безопасности для двух разных применений. Аналогично, OpenSSL и OpenSSH также являются двумя совершенно разными программными пакетами, несмотря на сходство их названий.

Во-вторых, эксплойт Heartbleed приводит к тому, что уязвимый узел TLS / DTLS OpenSSL возвращает случайные 64 КБ памяти, но он почти наверняка ограничен памятью, доступной этому процессу, использующему OpenSSL. Если этот процесс, использующий OpenSSL, не имеет доступа к вашему секретному ключу SSH, он не может утечь его через Heartbleed.

Кроме того, вы обычно размещаете свой открытый ключ SSH только на серверах, к которым вы используете SSH, и, как следует из названия, открытый ключ - это ключ, который вы можете опубликовать. Неважно, кто это знает. Фактически, вы хотите, чтобы публичный пользователь знал ваш правильный открытый ключ.

Спасибо @Bob за указание на то, что уязвимость может повлиять на клиентские приложения, которые используют уязвимые версии OpenSSL в качестве своей клиентской библиотеки TLS / DTLS. Так, например, если ваш веб-браузер или VPN-клиент на основе SSL использовали уязвимую версию OpenSSL и подключены к вредоносному серверу, этот вредоносный сервер может использовать Heartbleed для просмотра случайных фрагментов памяти этого клиентского программного обеспечения. Если у этого клиентского приложения по какой-то причине была копия ваших закрытых ключей SSH в памяти, оно могло бы просочиться через Heartbleed.

Сверх того, я не думаю ни о каком программном обеспечении, кроме SSH, которое могло бы иметь копию вашего незашифрованного закрытого ключа SSH в памяти. Что ж, это предполагает, что вы храните свои SSH-ключи в зашифрованном виде на диске. Если вы не храните свои закрытые SSH-ключи в зашифрованном виде на диске, то, я полагаю, вы могли бы использовать некоторую программу передачи файлов или резервного копирования OpenSSL с использованием TLS для копирования или резервного копирования вашего домашнего каталога по сети (включая ваш ~/.ssh/id_rsaили другой закрытый ключ SSH). ), тогда он может иметь незашифрованную копию вашего закрытого ключа SSH в памяти. Опять же, если вы резервировали свой незашифрованный закрытый ключ SSH на вредоносный сервер, у вас, вероятно, больше забот, чем у Heartbleed. :-)


3
Обратите внимание, что общественное обсуждение действительно не имеет значения - Heartbleed влияет как на клиентов, так и на серверы. Но вы правы в том, что SSH отличается и не подвержен этой конкретной уязвимости .
Боб

1
@Bob Спасибо, записи Heartbleed были настолько ориентированы на сервер, что я не осознавал разветвлений на стороне клиента. Я обновил свой ответ, чтобы лучше решить эту проблему. Я до сих пор думаю, что люди вряд ли оставят где-нибудь закрытый ключ SSH, чтобы процесс, уязвимый для Heartbleed, мог его утечь.
Spiff

1
Следует отметить, что SSH использует библиотеку OpenSSL для шифрования. Однако, как вы указали, ssh не подвержен уязвимости, поскольку это другой протокол.
Псибар

1

«Во-вторых, эксплойт Heartbleed приводит к тому, что уязвимый узел TLS / DTLS OpenSSL возвращает случайные 64 КБ памяти, но он почти наверняка ограничен памятью, доступной этому процессу, использующему OpenSSL».

если машина скомпрометирована, то как вы можете доверять чему-либо на ней, включая ssh? от heartbleed.com

«Что протекает на практике?

Мы проверили некоторые из наших собственных сервисов с точки зрения злоумышленника. Мы напали на себя извне, не оставив следа. Без использования какой-либо конфиденциальной информации или учетных данных мы смогли украсть у себя секретные ключи, используемые для наших сертификатов X.509, имен пользователей и паролей, мгновенных сообщений, электронных писем и важных для бизнеса документов и коммуникаций. "

кто-то мог положить закрытый ключ без ключевой фразы на сервер, который, как он предполагал, не был вредоносным ... но оказался. Ошибка b / c SSL позволила выдать пароль пользователя, который имел «sudo» ... это, вероятно, не проблема .... но ...

люди иногда делают сумасшедшие вещи

http://blog.visionsource.org/2010/08/28/mining-passwords-from-public-github-repositories/


Я думаю, что эта цитата относится к человеку в середине атаки, использующему украденные ключи TLS. Злоумышленник не должен иметь доступ к памяти из других программ, в противном случае это указывает на проблему безопасности в операционной системе.
Мэтью Митчелл

Если пользователь помещает свой незашифрованный закрытый SSH-ключ на серверы, он нам не поможет. Отправьте ему ссылку на piv.pivpiv.dk .
Spiff
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.