Modificação automatica de senha.

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor Renie » 29 Nov 2006 10:28

Anderson!

Você que não assimilou! hehehehehhehehehe

Como eu disse, você escolhe a matriz e os nrs a serem somados ( que podem também serem calculados a vontade com base no nr da senha).

a sequencia do exemplo parece óbvia pq usei uma matriz simples, 123, e
os nrs a serem somados, sequenciais.

em cima desta base, você pode brincar bastante!
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor Wagner de Queiroz » 29 Nov 2006 11:13

O papo ta ficando bom. Acho que esta na hora de eu dar uma alfinetada.


Se eu estivesse no seu lugar, eu usaria uma variavel que seja de conhecimento publico para gerar senhas pseudo aleatorias.
Esta variavel muda constantemente. nem sequer o administrador vai saber.

Esta variável é a data do dia mais o numero de série do equipamento.

Some o numero de série com a data atual.
Este novo numero sera sua semente para geracao de senhas.

Um programa no PC vai ter obviamente o numero de série da maquina em questao. VC NAO VAI INFORMAR A DATA DO DIA NO PC.

O supervisor vai simplesmente gerar as senhas dos usuarios no pc. Como de sempre, estas senhas vao expirar se o dia mudar certo ?

Segurança: Voce pode colocar um valor na maquina em questao que pode ser um código de autorizacao de supervisor. E este código tb o supervisor vai ter que ter no programa do PC.

Supondo:
Código: Selecionar todos
Número de Série:          1024  (Inventado)
Data atual:                    29/11/06
Autorização Supervisor: 0093
(Este código de autorizacao de supervisor sera inserido na maquina na data de instalação).

29+11+2006=2046
Soma com o codigo do supervisor
Total: 2139

Soma isso ao numero de série:1024
Total: 3163

O supervisor ao instalar o programa no PC, insere o seu codigo de ativacao: 0093 (Vc pode dar o numero para o supervisor)

O numero 3163 sera usado para gerar as senhas da maquina.
Supondo: Quero 10 inicializacoes:

Some 10 ao codigo 3163. Pegue o numero resultante, separe os digitos, multiplique um pelo outro, divida, faça or, xor, complemento, crc16, matriz oposta, vc inventa, contanto que gere a senha no formato que vc quer. (Levando em consideracao que o firmware de sua maquina tb tenha a mesma rotina para decodificar a senha digitada pelo peão).


Agora. Quando a senha expira. Vai pedir a nova senha.

O supervisor ao saber disso, insere no programa o numero de série do equipamento. O pc vai gerar as senhas.

O operador tem que digitar sua senha nova na maquina no mesmo dia. Senao. a maquina vai dizer: Senha invalida. Gere novamente a senha.

Os usuarios nao precisam saber do algoritmo nem que precisa de tudo isso de dados.


O supervisor só precisa do numero de série da maquina.
O codigo de autorizacao é dado por vc ou a maquina gera na primeira instalacao. Sendo que o supervisor precisa digitar este codigo de autorizacao ao instalar o programa no PC/PDA/Note. Este numero se possivel deveria ficar em segredo. Caso roubem a maquina e se tenha o programa, nao podera gerar senhas pq o numero de autorizacao foi gerado e é exclusivo do cliente.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor Anderson_Arantes » 29 Nov 2006 13:22

Caro Wagner,

A diversidade de idéias enriquece de técnica a solução final.Suas considerações sobre problema foram extremamente interessantes, mas, vale reiterar que não há previsão para aplicação de “relógio/calendário” no projeto e que a permissão de uso estaria mais adequada à aplicação se vinculada à ciclos de trabalho e não data.

Outra característica que omiti até aqui é que os usuários dessas unidades, por operar tipicamente em campo, se sujeitariam ao desconforto de uma solicitação diária de código de acesso para o supervisor/administrador podendo produzir um tráfego caótico no meio de troca de informação durante o início de cada turno de trabalho.

Seria interessante imaginar que duas máquinas embarcadas no mesmo ambiente dispondo de números de série seqüenciais (Ex: “n” e “n + 1”) deveriam produzir códigos não óbvios,uma vez que o extravio de uma poderia ser facilitado uma vez que as seqüências seriam próximas e de dedução viável(hipótese).

Estou aceitando sugestões baseadas na sua idéia, respeitando as diversas exigências de implementação.

Acho que quando alcançarmos uma solução prática sob várias óticas, todo ganharão uma vez que se poderia adicionar em muitos produtos tal recurso de segurança.

Muitíssimo grato por sua contribuição.
Anderson_Arantes
Bit
 
Mensagens: 42
Registrado em: 13 Out 2006 15:58
Localização: Rio de Janeiro

Mensagempor Wagner de Queiroz » 29 Nov 2006 15:26

o que eu havia dito sobre uma variavel numerica conhecida (Data) é valida, entretanto para sua aplicação esta variavel pode ser omitida.

Veja o calculo de CRC que possui uma pseudo aleatoridade bastante interessante.

Em suma: Cada byte possui um código.

Veja uma tabela hipotética:

01-54
02-F0
03-82
04-02
05-C3


Se vc somar o numero de série, um codigo de autorizacao gerado na instalacao da maquina e sabido por quem é realmente dono(Em caso de roubo, a maquina fica inoperante).

Vc soma o numero de série 1024 com um numero sequencial que é buscado nesta tabela aleatoria:

1024 + 1(1=54h) = 84+1024 =1108 + Codigo Autorizacao.

O uso do código de autorização permite que alguem de posse de diversas senhas de uma maquina faça um gerador de senhas para todas suas máquinas.

Entendeu o algoritmo ?

Depois voce pode fazer um xor com o byte menor e ou trocar nibbles. Isso vai gerar um numero mais estranho.

Neste caso, vc tem o problema de previsibilidade.

se a anterior é 842 a proxima será 077 que depois será 411

Entretanto o fato de voce trocar a variavel data por um ciclo de trabalho (Lote de produto por exemplo) pode dar um código bem melhor pois pode evitar a previsibilidade.

Mas, de toda forma esta aproximacao teórica ja deve ser bem interessante.

Eu tinha um caso especifico numa empresa onde trabalhei que eu codificava varios dados variaveis para geracao de um numero. Como este numero tinha que ter a mesma quantidade de digitos (Era para um cartao de cliente) E estas informacoes variavam em comprimento (Nome do cliente) Eu modifiquei uma tabela CRC16 para gerar a parte fixa em 4 digitos do cartão do usuário. Com o nome completo do usuario eu sabia se o codigo do cartao batia.

A ideia pode ser interessante no seu caso. Te adicionei no MSN caso tenha gostado do algoritmo e queira mais ideias.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor caduhitec » 30 Nov 2006 12:07

Fala Anderson,
veja se serve assim: a sua máquina fornece uma sequência aleatória, por exemplo FCEh como semente para que seja gerada uma senha, o usuário lhe passa esta chave (FCEh). Você faz uma conta com esta chave, por exemplo um XOR com 852h e você fornece a senha 79Ch para o usuário. A sua máquina pega esta senha e faz um XOR com 852h e compara com FCEh se for igual, bingo, senha correta. Somente você e a máquina sabem como calcular a senha. Se quiser complica um poruco mais o cálculo da senha, inserindo uns deslocamentos de bit's e NOT. A idéia é bem parecida com a do Renie, só inserí um processo a mais para a senha ficar mais difícil de ser descoberta. Mas lembre-se, se o usuário for esperto ele consegue levantar o algorítmo de geração de senha depois de lhe sollicitar uma meia dúzia de vezes a senha.
[]'s
Cadu
caduhitec
Bit
 
Mensagens: 17
Registrado em: 27 Out 2006 15:39
Localização: Rio de Janeiro - RJ

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x