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


14

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

Qual é a razão por trás disso? Algum aspecto técnico que impede que os projetistas do sistema operacional permitam Fnchaves como senhas?

Uma razão pela qual consigo pensar é que, em alguns laptops, as Fnteclas ativam ou desativam o teclado numérico. Mas e os desktops? Como os teclados de mesa se separam Fn, por que não podemos usá-lo em senhas?


1
De que sistema operacional você está falando? Windows, Linux, Mac?
LPChip

2
Não sei se já vi um teclado com uma tecla fn. Certamente, isso por si só é um motivador, se significa que muitos teclados não podem digitar essa senha.
Vality

1
@Validade: os teclados de laptops os utilizam (por exemplo, meu netbook é muito pequeno para um teclado numérico, pressionando [Fn] eu posso usar um bloco de teclas de letras (e 7,8,9 na linha de números). End] são acessados apenas usando [Fn], mas eles não podem ser caracteres em senhas.
Chris H

2
O comportamento na tela de login do Ubuntu (14.04) é interessante e pode dar uma pista de alguns dos motivos subjacentes: posso ativar o numpad usando Fn + Numlock (normal para este teclado) e depois usar as teclas numéricas com êxito (não é dando muito para admitir que minha senha tem dígitos). Com [Fn] + as mesmas teclas (reconhecidas como números no win7), as teclas atuam como teclas de seta (mais Início, Fim ...). Este não é um comportamento esperado. Talvez uma combinação de não carregar as configurações de teclado do usuário quando não estiverem logadas e um alto potencial de confusão não valha a pena ser implementada.
Chris H

24
ri muito. As teclas fn são específicas do hardware. eles nem são específicos. Em seguida, você desejará usar as teclas de energia, redefinição e brilho na sua senha.
Mark Ch

Respostas:


51

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

O uso de teclas gravadas para senhas não daria nada além de desvantagens:

  • Segurança: Aumentar a senha 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 8 = 208827064576 combinações. Expandi-lo para letras e números daria 36 8 combinações, mais 13.5X. Mas se você em vez apenas fez uma letra mais longa , você' obtenha 26 9 senhas possíveis, exatamente 26x mais. Duas letras a mais? 26 10 possibilidades, 676 vezes mais. Estou a cavalo. )

    (Embora, por outro lado, cálculos simples como esse não sejam responsáveis ​​por ataques de dicionário, mas não acho que as mesmas pessoas que usam seu nome como senha fariam voluntariamente uma dança de tecla de função, se possível.)

  • As expectativas dos usuários: Quase todo mundo pensa de um passe palavra como algo que contenha palavras e letras (apenas mantido em segredo). Portanto, se uma chave gosta F7ou Fnnão digita um caractere normalmente, também não deve digitar nada nos campos da senha. Se fizer algo como redimensionar a janela ou abrir o Google, também deverá fazer exatamente o mesmo nos campos de senha.

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

    Digamos que você usou WinIsua senha e depois atualizou do Windows 98 para o Windows 10; agora você não pode mais digitar sua senha porque WinIé usada pelo próprio sistema operacional.

    Ou talvez você tenha usado FnRightcom seu laptop antigo, mas significa "pular para a próxima música" em seu novo. De repente, você não pode fazer login no Gmail, a menos que 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 com uma Fntecla? Ou um teclado Mac com a Wintecla? Mesmo os mesmos PCs nem sempre têm Pauseou SysRqmais.

    Como você digitaria essas teclas em um dispositivo móvel? Digamos em um telefone com 12 botões? Ou um iPhone, antes de começarem a permitir teclados de terceiros ...

    As pessoas têm esses problemas. Muitas vezes, eles nem conseguem digitar seu próprio script / idioma (mesmo latim básico com sotaques como áou ū) e são forçados a seguir o que o layout de teclado QWERTY dos EUA oferece - essa é a única coisa que funciona consistentemente em bibliotecas públicas e geralmente em todos os lugares.

  • Por fim, as senhas permanecem em texto (e muitos componentes do SO esperam que sejam em texto); portanto, o SO precisa decidir como converter cada pressionamento de tecla em algo que possa ser armazenado como texto.

    Os aplicativos de terminal do tipo xterm já fazem isso (assim como os terminais físicos reais) - e, no entanto, depois de três décadas , eles ainda não concordaram em uma maneira de fazê-lo. Existem pelo menos duas traduções diferentes para as teclas de seta e pelo menos quatro maneiras diferentes de traduzir F1-F12.

    Assim, você pode inserir F3e os programas baseados em terminal o verão como texto - mas você não sabe se será ESC O Rou ESC [ 1 3 ~ou ESC [ [ Cou ESC [ O...


1
Acabei de testar e F3 traduz como ESC O Rpara mim, não ESC O Q; Eu acho que você pode ter um erro de um por um;)
IMSoP 2/15/15

10
Estou mais interessado no exemplo em que alguém atualiza do Win98 para o Win10.
Engineer Toast

10
@EngineerToast: Cadeia de tolos ? Você apenas tem que fazer o downgrade temporariamente para mim, então atualizar para 2000 e XP, em seguida, fazer o downgrade para o Vista, atualizar para Win7, downgrade a 8, atualizar para 8.1, etc.
user1686

Especialmente a parte "variação entre dispositivos" é o motivo pelo qual, mesmo com um gerenciador de senhas, limito minhas senhas a puramente alfanuméricas e compenso com o comprimento, sempre que possível. Se precisar digitar uma senha manualmente (como fiz hoje), não lutarei excessivamente, principalmente em um dispositivo móvel.
Nzall

@grawity Certamente, uma máquina Win 98 de ponta não suporta o Win 10. A única maneira realmente viável de pensar é: "use o Win 98 de 99 a 2015, compre um novo computador em 2015".
precisa saber é o seguinte

12

O Linux aceita praticamente qualquer pressionamento de tecla (exceto as teclas modificadoras) como entrada para senhas. No meu sistema de arco, eu posso facilmente definir F12-F10-F9 como minha senha. O 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 já tentou: o gerenciador de janelas (GUI) engolirá determinadas chaves antes de passar sua entrada para o programa em que você está tentando inserir dados. Se você estiver em um console sem nenhuma GUI em cima dele , você poderá usar praticamente qualquer coisa que possa imaginar como entrada de senha.

EDIT: observe também que alguns teclados têm suas entradas de tecla fn conectadas às alterações de hardware. Por exemplo, no meu Lenovo fn + space, a luz de fundo do teclado alterna completamente independente do sistema operacional. O sistema operacional nem recebe o pressionamento de tecla nesse caso.

EDIT EDIT: a resposta da grawity (ad os comentários sobre esta resposta) entra em detalhes sobre por que você provavelmente não quer fazer isso.


8
Observe que sua senha não consiste realmente de F12-F10-F9; se você souber qual sequência ASCII foi codificada como, você pode digitar (ou colar) isso. O código de controle único (ou seja, caracteres não imprimíveis) que você está realmente salvando na senha provavelmente será ESC (ASCII 27), indicando o início de uma sequência de escape.
IMSoP

@IMSoP Sim, isso é coberto muito bem pela resposta da Grawity.
Simon

3
Fazer isso morderá você sempre que houver uma alteração no seu ambiente que faça com que diferentes textos sejam gerados pela mesma tecla de função. Pode ser tão pequena quanto uma alteração de localidade, uma sessão X remota ou uma atualização do ambiente de área de trabalho, e você não poderá fazer logon.
Kilian Foth

1
Aliás, eu tenho um backspace na minha senha. Isso foi uma dor.
Joshua

5

Isso depende do terminal , não do sistema operacional .

Alguns terminais podem ser configurados para armazenar seqüências de caracteres arbitrárias; Fiz isso nos anos 50 , usando sequências de escape para programá-las.

Mais recentemente, você pode definir o translationsrecurso xtermpara enviar uma sequência . Não existe uma sequê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) têm uma caixa de diálogo de preferências que permite colocar cadeias arbitrárias . Novamente, nenhuma sequência de escape, mas definitivamente configurável.

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

Em última análise, a resposta se reduz 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 , em vez de GUI . Em uma GUI, o aplicativo pode nem ver uma tecla de função como texto. As GUIs têm restrições diferentes, por exemplo (por comentário) no Windows, as senhas podem ser solicitadas na área de trabalho de segurança , portanto, não importa muito como o teclado está configurado. Em particular, como isso é executado separado de outros processos, você não pode usar um complemento (como a autohotkey) para armazenar / colar senhas. Outras GUIs têm suas próprias regras (consulte, XSendEventpor exemplo), que não são necessariamente determinadas pelo sistema operacional , mas pelas bibliotecas de tempo de execução.

Leitura adicional:


No Windows, as teclas fn + são tratadas da mesma forma que as teclas de mídia. Requer uma maneira especial de capturar a chave, algo que não é suportado no Windows, portanto o sistema operacional realmente importa.
LPChip

No Windows, as senhas podem ser solicitadas no subsistema de segurança, portanto, não importa muito como o teclado está configurado (acordado).
Thomas Dickey

O "subsistema de segurança" do Windows não é mágico. Ele não se conecta aos drivers do teclado nem nada. Se ele mostrar um prompt de senha, é um prompt de senha comum.
usar o seguinte comando

Eu não disse que era. Nesse sentido, grande parte de sua resposta não acho útil.
Thomas Dickey

2

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

  • Seu computador morre e você conecta seu disco rígido a outro. Você não pode inicializar sem a senha do disco rígido, que 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 para localizar Fnou F1no seu telefone.

etc.


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 objetivo das teclas de função é executar meta-operações distintas da entrada de texto.

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


As teclas Fn não são "100% específicas do sistema operacional". Eles são aproximadamente 95% específicos de hardware e talvez 5% específicos de SO. De qualquer maneira, porém, os padrões ASCII os excluem.
Matthew Najmon
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.