Por que não podemos usar / definir teclas de função como chaves de senha?

14

Em qualquer sistema operacional, as senhas com Fn não são permitidas. Por exemplo, não consigo manter Fn + algum caractere como senha.

Qual é a razão por trás disso? Qualquer aspecto técnico que impeça os projetistas de sistemas operacionais de permitir chaves Fn como senhas?

Uma razão que posso imaginar é que em alguns laptops as teclas Fn ativam ou desativam o teclado numérico. Mas e os desktops? Como os teclados de desktop têm Fn separados, por que não podemos usá-lo em senhas?

    
por BlueBerry - Vignesh4303 02.12.2015 / 12:18

5 respostas

51

As senhas não são mais do que texto ; eles contêm caracteres, não pressionamentos de tecla. Os computadores não são como máquinas de escrever mecânicas, e há uma distinção entre esses dois.

O uso de pressionamentos de tecla gravados para senhas não daria mais que desvantagens:

  • Segurança: tornar a senha mais longa pode ser mais eficiente em termos de segurança do que aumentar o alfabeto. (Se você começar com 26 letras básicas, uma senha de 8 letras tem 26 combinações 8 = 208827064576. Expandi-la para letras e números daria 36 combinações 8 , 13,5x mais Mas se você apenas fizer uma letra mais longa , você terá 26 9 senhas possíveis, exatamente 26x mais. Duas letras maiúsculas? 26 10 possibilidades, 676 vezes mais. Estou em um cavalo. )

    (Por outro lado, cálculos simples como esse não dão conta de ataques de dicionário, mas eu não acho que as mesmas pessoas que usam seu nome como senha executariam voluntariamente uma dança de função-chave se fosse possível .)

  • Expectativas do usuário: Quase todo mundo pensa em passar uma palavra como algo contendo palavras e letras (apenas mantido em segredo). Portanto, se uma tecla como F7 ou Fn não digitar um caractere normalmente, também não deverá digitar nada nos campos de senha. Se isso fizer algo como redimensionar a janela ou abrir o Google, ela deverá fazer exatamente o mesmo nos campos de senha também.

  • Propósito principal das teclas de função: Algumas chaves são usadas pelo próprio programa ou pelo sistema operacional. Quais chaves são usadas varia entre os sistemas. Às vezes, novos atalhos de teclado são adicionados.

    Digamos que você tenha usado Win I em sua senha e, em seguida, atualizado do Windows 98 para o Windows 10; agora você não pode mais digitar sua senha porque Win I é usado pelo próprio SO.

    Ou talvez você tenha usado o Fn Direito com o seu laptop antigo, mas significa "pular para a próxima música" no seu novo. De repente, você não pode fazer login no Gmail, a menos que você feche o music player primeiro.

  • Variação entre dispositivos: Algumas teclas não existem em todos os teclados . Quando foi a última vez que você viu um teclado de desktop de PC com uma tecla Fn ? Ou um teclado Mac com a tecla Win ? Mesmo os mesmos PCs nem sempre têm Pause ou SysRq .

    Como você digitaria esses pressionamentos de tecla em um dispositivo móvel? Vamos dizer em um telefone de recurso com 12 botões? Ou um iPhone, antes de começarem a permitir teclados de terceiros ...

    As pessoas têm esses problemas. Freqüentemente, eles não podem nem mesmo digitar seu próprio script / idioma (nem mesmo o Latin-with-acents básico como á ou ū ) e são forçados a manter o layout de teclado QWERTY dos EUA. a única coisa que funciona consistentemente em bibliotecas públicas e geralmente em todos os lugares.

  • Por fim, as senhas permanecem texto (e muitos componentes do sistema operacional esperam que elas sejam texto), portanto, o SO precisaria decidir como converter cada pressionamento de tecla em algo que pode ser armazenado como texto. / p>

    Aplicativos terminais semelhantes a xterm já fazem isso (assim como os terminais físicos reais) - e ainda assim, após três décadas , eles ainda não concordaram em uma maneira de fazê-lo. Há pelo menos duas traduções diferentes para as teclas de seta e pelo menos quatro maneiras diferentes de traduzir F1-F12.

    Então você pode inserir F3 e programas baseados em terminal verão isso como texto - mas você não sabe se será ESC O R ou ESC [ 1 3 ~ ou ESC [ [ C ou ESC [ O ...

por 02.12.2015 / 19:44
12

O Linux terá praticamente qualquer tecla pressionada (exceto teclas modificadoras por si só) como entrada para senhas. No meu sistema de arco, posso facilmente definir F12-F10-F9 como minha senha. F11 está faltando nessa linha, porque meu gerenciador de janelas engole essa chave e a interpreta como o comando "tela cheia".

Esse é o problema com a maioria das coisas que você provavelmente tentou: o gerenciador de janelas (GUI) englobará certas teclas antes de passar sua entrada para o programa que você está tentando inserir dados. Se você estiver em um console sem nenhuma GUI Além disso, você poderá usar praticamente qualquer coisa que possa imaginar como entrada de senha.

EDIT: note também que alguns teclados têm suas entradas fn-key ligadas a mudanças de hardware. Por exemplo, no meu espaço Lenovo fn + irá alternar a luz de fundo do teclado completamente independente do sistema operacional. O sistema operacional nem recebe a tecla neste caso.

EDIT EDIT: a resposta de Grawity (com os comentários sobre esta resposta) detalha porque você provavelmente não quer fazer isso.

    
por 02.12.2015 / 12:44
5

Depende do terminal , não do sistema operacional .

Alguns terminais podem ser configurados para armazenar sequências arbitrárias; Eu fiz isso por wyse-50's um tempo atrás, usando sequências de escape para programá-las.

Mais recentemente, você pode definir o recurso translations em xterm para enviar uma string . Não há uma seqüência de escape para isso (o que você consideraria útil: DECUDK é o mais próximo e envia seu resultado em hexadecimal).

Alguns terminais (como o Terminal.app) possuem uma caixa de diálogo de preferências que permite colocar cadeias arbitrárias . Novamente, nenhuma seqüência de escape, mas definitivamente configurável.

Alguns (aparentemente gnome-terminal e o konsole) permitem fazer algumas configurações limitadas do teclado.

Em última análise, a resposta reduz-se a encontrar

  • se o terminal que você está usando suportar esse recurso e
  • se sim, como usá-lo efetivamente.

Leitura adicional:

Esta resposta lida com senhas em terminais , ao invés de GUI . Em uma GUI, o aplicativo pode nem mesmo ver uma tecla de função como texto. GUIs têm diferentes restrições, por exemplo, (por comentário) no Windows, senhas podem ser solicitadas no desktop de segurança , por isso não importa muito como o teclado é configurado. Em particular, uma vez que isso é executado separado de outros processos, você não poderia usar um complemento (como autohotkey) para armazenar / colar senhas. Outras GUIs têm suas próprias regras (consulte XSendEvent para instância), que não são necessariamente determinadas pelo sistema operacional , mas pelas bibliotecas tempo de execução .

Leitura adicional:

por 02.12.2015 / 12:26
2

Simplificando, você não pode usar combinações de teclas Fn em sua senha porque não há caracteres correspondentes definidos para essas combinações. O ponto que eu quero fazer é que você não deve usar chaves não-padrão ao digitar sua senha, mesmo que você possa. Se algo der errado, você estará em apuros. Você saberá sua senha, mas não poderá digitá-la:

  • Seu computador morre e você conecta seu HDD em outro. Você não pode inicializar sem a senha do HDD, que você não pode digitar.
  • Você não tem acesso ao seu computador (por exemplo, em uma viagem) e precisa verificar um e-mail importante. Boa sorte ao localizar Fn ou F1 no seu telefone.

etc.

    
por 03.12.2015 / 12:28
0

Porque as teclas de função executam funções no seu computador. Eles não constituem a adição de texto ao contexto de texto atual (tais contextos incluindo entrada de senha). O ponto inteiro das teclas de função é realizar meta-operações que são distintas da entrada de texto.

Além disso, eles são 100% específicos do sistema operacional e, portanto, não são portáveis. Você não encontrará códigos de tecla de função em ASCII.

    
por 03.12.2015 / 14:02