sexta-feira, 12 de dezembro de 2008

CURSO DE UNIX IX

CURSO DE UNIX IX gato-bravo-e-brasileiro
* Um Pouco Mais Sobre Processos em Background
No Bourne Shell, caso voce queira colocar uma serie de comandos em background, separados por ";", voce devera usar os parenteses. Por exemplo:
$ sleep 15; ls &
O "&" ira apenas afetar o ls, ou seja, o resultado obtido sera uma espera de 15 segundos em foreground e entao a execucao do comando ls em background.
Neste caso, voce devera usar:
$ (sleep 15; ls) &
Com o comando acima voce obtera o resultado desejado.
Outra coisa que acontece no Bourne Shell e que quando voce da um logout todos os seus programas que foram colocados em background sao terminados. Para evitar isso, use o comando "nohup". Por exemplo, para fazer uma compilacao em background, independentemente se voce der um logout:
$ nohup cc program.c & [1] 3409 $ logout
* Passwords no UNIX
O UNIX sendo um sistema operacioal multiusuario acaba implicando na necessidade do usuario ter permissoes restritas. Isso normalmente e feito atraves de passwords.
Seja muito cauteloso quando for escolher um password: uma escolha errada pode se tornar numa grande dor de cabeca.
No UNIX os passwords estao guardados (de modo criptografado) no arquivo "/etc/passwd". Quando voce tenta logar no sistema, o programa "login" nao faz a descriptografia da sua senha e compara com o que voce entrou, mas sim criptografa o que voce entrou e compara com o que esta no "passwd". Se bater, ela esta correta.
Como voce pode perceber, uma senha criptografada *NAO* pode ser simplesmente descriptografada por um algoritimo reverso: ele nao existe.
* O Algoritimo crypt
O algoritimo "crypt", baseado no DES, e usado pelo UNIX para fazer a criptografia dos passwords. Ele usa uma chave de 56bit (oito caracteres low-ascii) para encriptar blocos de texto de 64bit. Hoje em dia nao ha nenhum metodo conhecido que consiga quebrar o algoritimo em pouco tempo, pelo fato dele ser "one way".
A criptografia dos passwords e feita da seguinte maneira: pega-se o password do usuario como chave de criptografia e criptografa-se um bloco de 64bit de zeros. Entao o processo e repetido, num total de 25 vezes. No final, adiciona-se o sal(*), e entao 64bit criptografados sao transformados em uma string de 11 caracteres, que sao guardados em "/etc/passwd".
Para se ter uma ideia, na epoca que este processo foi idealizado o processador PDP-11 demorava algo em torno de um segundo para completar o processo.
Mas nao para por ai. Para eliminar a possibilidade de se usar algum tipo hardware especializado em quebrar senhas, Robert Morris e Ken Thompson (os idealizadores) adicionaram o chamado "sal".
O sal e um numero de 12bit, ou seja, entre 0 e 4095, que muda o resultado do que o DES retorna. Sendo assim, cada password pode ser criptografado de 4096 maneiras diferentes! Quando voce muda seu password, o programa "passwd" escolhe qual sal usar baseado no relogio do computador.
Vejamos abaixo uma tabela de passwords, sais, etc.
password
sal
pass. criptografado
nutmeg
Mi
MiqkFWCm1fNJI
ellen1
re
re79KNd7V6.Sk
Sharon
./
./2aN7ysff3qM
norahs
am
amfIADT2iqjAf
norahs
7a
7azfT5tIdyhOI
Note como o password "norahs" foi criptografado de duas maneiras diferentes por terem sais diferentes.

ass:gato-bravo-e-brasileiro

Nenhum comentário: