Почему мы не можем использовать / устанавливать функциональные клавиши в качестве ключей пароля?


14

В любой операционной системе пароли с Fnне допускались. Например, я не могу сохранить Fn+ некоторый символ в качестве пароля.

В чем причина этого? Любой технический аспект, который мешает разработчикам операционной системы разрешать использование Fnключей в качестве паролей?

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


1
О какой ОС ты говоришь? Windows, Linux, Mac?
LPChip

2
Я не уверен, что когда-либо видел клавиатуру с клавишей fn. Конечно, это само по себе является мотиватором, если это означает, что многие клавиатуры не могут вообще вводить этот пароль.
Vality

1
@Vality: их используют клавиатуры ноутбуков (например, мой нетбук слишком мал для цифровой клавиатуры, нажав [Fn], я могу использовать блок буквенных клавиш (и 7,8,9 из строки номеров). [Home] и [ Конец] доступен только с помощью [Fn], но они не могут быть символами в паролях
Крис Х

2
Поведение на экране входа в Ubuntu (14.04) интересно, и может дать подсказку по некоторым основным причинам: я могу включить цифровую клавиатуру, используя Fn + Numlock (нормально для этой клавиатуры), а затем успешно использовать цифровые клавиши (это не так). много отдавать, чтобы признать, что в моем пароле есть цифры). С [Fn] + такими же клавишами (распознаваемыми как числа на win7) клавиши действуют как клавиши со стрелками (плюс Home, End ...). Это не ожидаемое поведение. Может быть, комбинация не загружает настройки клавиатуры пользователя, когда они не вошли в систему, и высокий риск путаницы делает его не стоящим для реализации.
Крис Х

24
лол. Клавиши fn зависят от аппаратного обеспечения. они даже не специфичны. затем вы захотите использовать клавиши включения, сброса и яркости в вашем пароле
Mark Ch

Ответы:


51

Пароли - не более чем текст ; они содержат символы, а не нажатия клавиш. Компьютеры не похожи на механические пишущие машинки, и между ними есть различие.

Использование записанных нажатий клавиш для паролей не даст ничего, кроме недостатков:

  • Безопасность: увеличение длительности пароля может быть более эффективным с точки зрения безопасности, чем увеличение алфавита. (Если вы начнете с базовых 26 букв, 8-буквенный пароль будет иметь 26 8 = 208827064576 комбинаций. Расширение его до букв и цифр даст 36 8 комбинаций, что в 13,5 раза больше. Но если вместо этого вы просто увеличите его на одну букву , вы я получу 26 9 возможных паролей, ровно в 26 раз больше. Две буквы длиннее - 26 10 возможных, в 676 раз больше. Я на коне. )

    (Хотя, с другой стороны, такие простые вычисления не учитывают атаки по словарю, но я не думаю, что те же люди, которые используют свое имя в качестве пароля, добровольно исполняют танец с функциональными клавишами, если это возможно.)

  • Ожидания пользователей: Почти все думают проходное слово как нечто , содержащие слова и буквы (только держатся в секрете). Таким образом, если ключ, как F7или Fnне вводит символ обычно, то он также не должен вводить что-либо в поля пароля. Если он делает что-то вроде изменения размера окна или всплывающего окна Google, он должен делать то же самое в полях пароля.

  • Основное назначение функциональных клавиш: некоторые клавиши используются самой программой или операционной системой. Какие ключи используются, зависит от системы. Иногда добавляются новые сочетания клавиш.

    Допустим, вы использовали WinIсвой пароль, а затем обновились с Windows 98 до Windows 10; теперь вы больше не можете вводить свой пароль, потому что WinIиспользуется самой ОС.

    Или, может быть, вы использовали FnRightсо своим старым ноутбуком, но это означает «перейти к следующей песне» на вашем новом. Внезапно вы не сможете войти в Gmail, если сначала не закроете музыкальный проигрыватель.

  • Различия между устройствами: некоторые клавиши существуют не на всех клавиатурах. Когда вы в последний раз видели настольную клавиатуру ПК с Fnключом? Или клавиатура Mac с Winключом? Даже те же ПК не всегда есть Pauseили SysRqбольше.

    Как бы вы вводили эти нажатия клавиш на мобильном устройстве? Допустим, на функциональном телефоне с 12 кнопками? Или iPhone, прежде чем они начали разрешать сторонние клавиатуры ...

    У людей уже есть такие проблемы. Зачастую они не могут даже набрать свой собственный скрипт / язык (даже базовые латиницы с акцентами, например áили ū) и вынуждены придерживаться того, что предлагает раскладка клавиатуры США QWERTY - это единственное, что последовательно работает в публичных библиотеках и вообще везде.

  • Наконец, пароли остаются текстовыми (и многие компоненты ОС ожидают, что они будут текстовыми), поэтому ОС необходимо будет решить, как преобразовать каждое нажатие клавиши в нечто, что можно сохранить в виде текста.

    Терминальные приложения, подобные xterm, уже делают это (как и реальные физические терминалы) - и все же, спустя три десятилетия , они все еще не пришли к единому мнению, как это сделать. Существует как минимум два разных перевода для клавиш со стрелками, и как минимум четыре разных способа перевода F1-F12.

    Таким образом , вы можете вход F3и терминал на основе программы будут видеть его как текст , - но вы не знаете , будет ли это ESC O Rили ESC [ 1 3 ~или ESC [ [ CилиESC [ O ...


1
Я только что проверил, и F3 переводит как ESC O Rдля меня, а не ESC O Q; Я думаю, что у вас может быть ошибка "один на один";)
IMSoP

10
Меня больше всего интересует пример, когда кто-то обновляется с Win98 до Win10.
Инженер Тост

10
@EngineerToast: цепь дураков ? Вам просто нужно временно перейти на ME, затем обновить до 2000 и XP, затем перейти на Vista, перейти на Win7, перейти на 8, обновить до 8.1 и т. Д.
user1686

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

@grawity Я уверен, что машина верхнего уровня Win 98 не может поддерживать Win 10. Единственный реальный способ, о котором я могу подумать, это «использовать Win 98 с 99 по 2015, купить новый компьютер в 2015 году».
jpmc26

12

Linux будет принимать практически любое нажатие клавиш (кроме самих клавиш-модификаторов) в качестве ввода паролей. В моей архивной системе я легко могу установить F12-F10-F9 в качестве пароля. F11 отсутствует в этой строке, потому что мой оконный менеджер глотает этот ключ и интерпретирует его как «полноэкранную» команду.

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

РЕДАКТИРОВАТЬ: также обратите внимание, что некоторые клавиатуры имеют свои fn-клавиши ввода, жестко привязанные к аппаратным изменениям. Например, на моем Lenovo fn + space подсветка клавиатуры будет переключаться совершенно независимо от ОС. ОС даже не получает нажатия клавиш в этом случае.

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: ответ grawity (и комментарии к этому ответу) подробно описывает, почему вы, вероятно, не хотите этого делать.


8
Обратите внимание, что ваш пароль на самом деле не состоит из F12-F10-F9; если вы знаете, в какую последовательность ASCII она была закодирована, вы можете вместо этого напечатать (или вставить). Один управляющий код (т.е. непечатаемый символ), который вы фактически сохраняете в пароле, скорее всего, будет ESC (ASCII 27), что указывает на начало escape-последовательности.
IMSoP

@IMSoP Да, это очень хорошо охвачено ответом Гравити.
Саймон

3
Это будет кусать вас всякий раз, когда в вашей среде происходят изменения, в результате которых с помощью одной и той же функциональной клавиши генерируется различный текст. Это может быть незначительное изменение, например изменение локали, удаленный сеанс X или обновление среды рабочего стола, и вы не сможете войти в систему.
Килиан Фот

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

5

Это зависит от терминала , а не от операционной системы .

Некоторые терминалы могут быть сконфигурированы для хранения произвольных строк; Некоторое время назад я делал это для wyse-50 , используя escape-последовательности для их программирования.

Совсем недавно вы можете установить translationsресурс xtermдля отправки строки . Для этого не существует escape-последовательности (которая может оказаться полезной: она DECUDKявляется ближайшей и отправляет свой результат в шестнадцатеричном формате).

Некоторые терминалы (такие как Terminal.app) имеют диалоговое окно настроек, которое позволяет вам помещать туда произвольные строки . Опять же, нет escape-последовательности, но определенно настраивается.

Некоторые (очевидно, gnome-терминал и консоль) позволяют вам сделать некоторые ограниченные настройки клавиатуры.

В конечном итоге ответ сводится к поиску

  • если используемый вами терминал поддерживает эту функцию, и
  • если да, то как это эффективно использовать.

Дальнейшее чтение:

Этот ответ имеет дело с паролями в терминалах , а не с графическим интерфейсом . В графическом интерфейсе приложение может даже не видеть функциональную клавишу как текст. GUI имеют различные ограничения, например, (на комментарий) в Windows, пароли могут запрашиваться на рабочем столе безопасности , поэтому неважно, как настроена клавиатура. В частности, поскольку это выполняется отдельно от других процессов, вы не можете использовать надстройку (например, autohotkey) для хранения / вставки паролей. Другие графические интерфейсы имеют свои собственные правила (см., XSendEventНапример), которые не обязательно определяются операционной системой , но библиотеками времени выполнения .

Дальнейшее чтение:


В Windows клавиша Fn + обрабатывается так же, как клавиши мультимедиа. Требуется специальный способ захвата ключа, который не поддерживается в Windows, поэтому ОС действительно имеет значение.
LPChip

В Windows пароли могут запрашиваться в подсистеме безопасности, поэтому неважно, как настроена клавиатура (согласовано).
Томас Дики

Windows "подсистема безопасности" не волшебная. Он не подключается к драйверам клавиатуры или чему-то еще. Если он когда-либо показывает запрос пароля, это обычный запрос пароля.
user1686

Я не сказал, что это было. В соответствии с этим, большая часть вашего ответа я считаю бесполезным.
Томас Дики

2

Проще говоря, вы не можете использовать Fnсочетания клавиш в своем пароле, потому что для этих комбинаций не определены соответствующие символы. Суть в том, что я хочу сделать так, чтобы при вводе пароля вы не использовали нестандартные ключи, даже если бы могли. Если что-то пойдет не так, у вас будут проблемы. Вы будете знать свой пароль, но не сможете его ввести:

  • Ваш компьютер умирает, а вы подключаете жесткий диск к другому. Вы не можете загрузиться без пароля жесткого диска, который вы не можете ввести.
  • У вас нет доступа к вашему компьютеру (например, в поездке), и вы должны проверить важную электронную почту. Удачи в поиске Fnили F1на вашем телефоне.

и т.п.


0

Потому что функциональные клавиши выполняют функции на вашем компьютере. Они не представляют собой добавление текста в текущий текстовый контекст (такие контексты, включая ввод пароля). Весь смысл функциональных клавиш для выполнения мета-операций, которые отличаются от ввода текста.

Кроме того, они на 100% специфичны для операционной системы и, следовательно, вообще не переносимы. Вы не найдете коды функциональных клавиш в ASCII.


Клавиши Fn не "на 100% зависят от операционной системы". Они примерно на 95% аппаратно- зависимые, и, возможно, 5% специфичны для ОС. В любом случае, стандарты ASCII исключают их.
Мэтью Наджмон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.