14

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

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

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

5 ответов5

51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12

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

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

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

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

5

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

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

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

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

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

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

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

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

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

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

2

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

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

и т.п.

0

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

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

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