Насколько безопасен буфер обмена Windows?

49

Я использовал буфер обмена Windows как метод получения паролей от Lastpass в настольных приложениях.

Мне было интересно, насколько это безопасно? Не может ли какая-либо программа получить доступ к буферу обмена в любое время?

харакири
источник
1
Я помню, что доступ к буферу обмена был включен по умолчанию в некоторых (старых) версиях IE (возможно, IE6). Я нашел эту ссылку, где MS помещал окно предупреждения каждый раз, когда веб-сайт пытался получить доступ к вашему буферу обмена, но похоже, что его там не было раньше. Поэтому, если вы используете IE <= 6 (не так, правда?), Вы можете подвергнуться дополнительному риску.
Карлос Кампдеррос
3
Запуск буфера обмена на старом совместно используемом VMWare Player в офисе показывает много интересного о ваших коллегах. Мне всегда приходилось быть осторожным, когда я отвечал людям на моей старой работе, потому что был хороший шанс, если бы я его вырезал и вставил, он попадет в буфер обмена босса.
Питер Тернер
1
@ CarlosCampderrós Я думаю, что Flash все еще позволяет это.
CodesInChaos
2
У KeePass есть опция в настройках «Памяти»: «Поведение CLipboard: улучшено: разрешить вставку один раз и защиту от шпионов буфера обмена»
Д.Бедренко,

Ответы:

59

Это не безопасно.

Посмотрите этот вопрос и ответ на Security.stackechange.com , указанном ниже:

Буфер обмена Windows не является безопасным.

Это цитата из статьи MSDN .

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

Это, вероятно, должно относиться и к машинам с Linux.

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

Keltari
источник
4
Хотя чтение данных в буфере обмена является тривиальным, как объясняет Келтари, тот факт, что в первую очередь вредоносное программное обеспечение считывает ваш буфер обмена, является вашей главной заботой. Это причина, по которой копирование и вставка вашего пароля в поле пароля не влияет на безопасность вашего пароля. Возможность сделать это - убедительность. Не вводить 20-30-значный безопасный случайный пароль.
Ramhound
2
Конечно, пороговое значение намного ниже для вредоносных программ, которые считывают буфер обмена (вполне подойдет «полностью законный» фрагмент javascript, встроенный в веб-страницу) по сравнению с вредоносными программами, которые используют процесс браузера или считывают память другого процесса или устанавливают ловушку для захвата нажатия клавиш и т. д.
Деймон
24
@ Damon Насколько я понимаю, JS не имеет произвольного доступа к буферу обмена именно по этой причине.
полковник тридцать два
3
@Damon Согласно MDN , приложение должно иметь разрешение на использование команды вставки, поэтому случайные страницы не могут перехватить ваш буфер обмена, используя это.
полковник тридцать два
2
@zzzzBov - А что помешает кому-то добавить кнопку в Javascript под названием «Свободные деньги - нажмите здесь!», но кнопка фактически копирует ваш буфер обмена вместо того, чтобы давать вам деньги бесплатно?
Yay295
6

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

Есть также пользователи, которые могут случайно или преднамеренно раскрыть содержимое буфера обмена после получения физического доступа к компьютеру. Конечно, тогда они могут причинить много вреда, но получить реальный пароль (а не только доступ к веб-сайтам / программам) сложно (если у вас его нет в буфере обмена ...)

Так что либо убедитесь, что буфер обмена очищен (и это не на 100% надежно, поскольку некоторые приложения снова позволяют получать старые значения буфера обмена), либо используйте какое-то шифрование (это не тривиально, но даже простое защитит от случайной утечки пароля)

Mikus
источник
1
Шифрование не поможет в этом. Атака не направлена ​​против памяти, в которой хранится буфер обмена (или история буфера обмена). Атака извлекает содержимое буфера обмена с помощью стандартного API буфера обмена (либо запускающая программа, читающая его, либо другой пользователь, получающий временный доступ и запускающий вставку) ,
Питер Кордес
1
Не совсем Питер, мы не знаем архитектуру исходного решения, но если ваше приложение сначала помещает содержимое в буфер обмена, а затем извлекает его, оно может изменять данные таким образом, чтобы оно было понятно только для него самого. Поэтому, когда кто-то или даже вы с кем-то, кто смотрит, случайно обнаруживает контент, еще не ясно, что было внутри и как его использовать. На мой взгляд, любой способ раскрытия простого текстового пароля - это максимально возможное нарушение безопасности. Честно говоря, я бы никогда не подумал о том, чтобы скопировать его в буфер обмена или текстовый файл и т. Д. Есть лучшие способы общения между приложениями :)
mikus
3
@mikus в то время как истина, это обычно не то, как работает буфер обмена. Буфер обмена действительно полезен только для обмена контентом из одного приложения в другое. Одно приложение может также просто хранить зашифрованное содержимое в памяти для последующего поиска и вообще избежать буфера обмена.
Trlkly
На самом деле, я никогда не говорил иначе, но пока я не думаю, что какое-либо коммерческое приложение, такое как LastPass, оставляет что-то в буфере обмена, я думаю, что автор контролирует оба приложения. Тогда он может выбрать любую кодировку или шифрование, какое захочет, верно? и другие способы связи :) Если его последний пароль сохраняет незашифрованные пароли в буфере обмена, то его приложение просто не подходит для использования IMO.
Mikus
2

Как все согласны, буфер обмена обычно небезопасен. Таким образом, последующий вопрос очевиден: как получить сложные пароли / парольные фразы из менеджера паролей туда, где они нужны, не раскрывая их по пути.

Найдите менеджер паролей, в котором есть возможность «ввести пароль в следующем окне, на которое вы щелкнете» или что-то подобное. Я не знаю ни одного примера, потому что я не настолько параноидален в отношении большинства паролей. (И я на самом деле запоминаю очень мало паролей с высоким уровнем безопасности, которые я использую, например, мой закрытый ключ GPG.)

Сообщество вики: редактируйте названия программ, которые имеют эту функцию:

  • KeePassX

Моя версия KeepassX, 0.4.3, предлагает очистить буфер обмена через X секунд (по умолчанию 20, но 8 в порядке)

Peter Cordes
источник