Posso alterar minhas configurações de phassword/-phrase('s) de forma que seja importante qual chave de várias pilhas (por exemplo, a shift
chave esquerda em vez da direita) é escolhida?
Posso dar um passo adiante e pedir uma ordem específica de pressionamentos de tecla e suas combinações, mesmo que o resultado não seja visível se a senha for digitada em um (qualquer) programa de texto (por exemplo, excluir texto durante a entrada)?
Não. Ambas as Shiftteclas (presumindo que seu teclado tenha duas teclas Shift, o que não é garantido de forma alguma) executam exatamente a mesma operação ao inserir texto via teclado (apesar de idéias extravagantes como remapear RShiftou Composealgo assim, mas não é mais uma Shifttecla ). An
a
é distinto de anA
, mas não há como distinguir umA
criado por RShift- Ade um enviado para entrada por LShift- A, ou mesmo de um enviado colando da área de transferência, ou digitando um código Unicode ou ASCII no teclado numérico enquanto segura Alt( em algumas configurações), ou qualquer um dos inúmeros meios possíveis de enviar entrada de texto. Uma vez que oA
tenha sido inserido, anA
é umA
é umA
.Não para senha, pois é apenas uma sequência de bytes.
Quanto à senha, se você reescrever o sistema de autenticação de senha (ou apenas adicionar um módulo). No entanto, você pode quebrar algumas coisas (por exemplo, sudo e outras coisas que você ou eu consideramos). O computador pode ler códigos de chave e medir o tempo, mas o sistema de senha padrão armazena apenas uma string de teste. Poderia ser adaptado, mas veja o próximo parágrafo.
Você está considerando violar a primeira regra de segurança: “Um dispositivo de segurança deve ser difícil para um invasor e fácil para um usuário legítimo”. Isso parece dificultar para um usuário legítimo e adiciona muito pouca dificuldade para um invasor.
Dito isto, pode ser um bom exercitador, mesmo que na prática, reduza a segurança. Um amigo certa vez escreveu um sistema de login que apenas mediu a rapidez com que ele poderia pressionar espaço (anos depois, percebi que este era um sistema biométrico).
A resposta do DopeGhoti (Não!) é a correta, desde que estejamos falando de software padrão, o que significa ler a senha como uma única linha de texto que você pode digitar da maneira que quiser (e até corrigir erros de digitação), até clicar Digitar.
Dito isto, é tecnicamente possível distinguir as teclas shift esquerda/direita, como
xev
facilmente demonstra. Portanto, desde que o próprio teclado envie códigos de teclas diferentes, dependendo de qual tecla foi pressionada, você poderá trabalhar com ele - se se der ao trabalho de criar seu próprio wrapper que lê pressionamentos de tecla individuais em vez de texto.Indo além, você pode até adicionar coisas como ter que digitar a senha em um ritmo específico, ou qualquer outra coisa. Como códigos de trapaça que alguns jogos antigos costumavam ter. Você pode até usar um controlador de jogo real para inserir esses ...
Então (sim!) quase tudo é possível, mas você teria que desenvolver um programa que fornecesse tal funcionalidade e transformá-lo em uma representação textual ou hash, que pode ser usada como a senha. E o problema então é fazer com que o usuário tenha uma chance real de reproduzir a mesma representação/hash repetidamente.
Portanto, se você decidir transformar sua entrada de senha em um jogo de ritmo, isso deve permitir uma margem de manobra generosa. Com um teclado normal pressionando shift duas vezes (sem digitar uma letra) não há mal nenhum, como seu software lidaria com tais erros de entrada?
De qualquer forma, com esforço, é possível. A grande questão, então, é se há algum ponto em fazer isso. Distinguir a tecla shift esquerda/direita adiciona apenas 1 bit de entropia de qualquer maneira. Não parece muito útil.
Os wrappers de frase secreta em geral não são inéditos, são feitos para oferecer suporte a hardware dedicado, por exemplo (como integrar uma resposta de desafio yubikey). Autenticação de 2 fatores, senha de alta entropia, pode valer a pena.