De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 25 de Abril de 1997
Muitas instituições possuem a necessidade, de tempos em tempos, de criar um grande número de contas. A digitação de senhas consumiria um tempo enorme, requerendo a mobilização de um grande número de pessoas para suprir a esta demanda.
Para acelerar este processo pode-se gerar as senhas automaticamente e utilizar um outro programa para encripta-las. Para efetuar a encriptação das senhas pode-se usar o programa makekey ou similares. O programa makekey é encontrado no sistema operacional AIX. A plataforma Solaris não possui este programa mas a versão existente no SunOS funciona normalmente. Os exemplos que se seguem utilizam o programa makekey.
Por exemplo, para encriptar a senha xptouytr executar o comando
echo xptouytr12 | makekey > encrippass
O arquivo encrippass irá conter a senha encriptada. O argumento para o programa makekey deve conter obrigatoriamente 10 caracteres sendo que os 8 primeiros consistem da senha que sera utilizada. (Para maiores detalhes sobre o programa makekey, consultar a manpage em anexo).
No nosso exemplo em particular o arquivo encrippass irá conter a string 12foa4VUwoL6E, que deve então ser inserida no arquivo /etc/passwd ou /etc/shadow, etc.
Deve-se tomar bastante cuidado com esta edição para evitar que erros de programação estraguem os arquivos passwd. Recomenda-se sempre que se gere um backup dos arquivos password antes da sua edição.
Outra recomendação importante é que todas as senhas criadas por este método sejam expiradas, requerendo do usuário a sua troca quando do primeiro login. A maneira de se implementar isto varia de sistema para sistema.
Deve-se também imprimir uma carta ao usuário contendo, além da identificação do usuário e sua senha, as normas e políticas de uso dos computadores.
Existem vários programas disponíveis para geração aleatória de senhas. Incluo a seguir o código fonte do programa genp.c, que pode ser utilizado com esta finalidade.
----------------------------- genp.c ---------------------------------------- /* genp - generate pronounceable passwords. * David Sherman, The Law Society of Upper Canada, dave@lsuc.on.ca */ #include <stdio.h> char pwd[100]; char *vowels[]= { "a", "e", "i", "o", "u", "y", "ai", "ou", "oy", "ay", "ow", "ar", "al", "el", "er", "or", "ax", "ex", "ix", "il", 0 }; char *consonants[]= { "b", "c", "ch", "d", "dr", "f", "fl", "g", "h", "j", "k", "kn", "kr", "m", "n", "p", "s", "sh", "sm", "sn", "st", "t", "th", "v", "z", 0 }; main(argc, argv) char **argv; { register int maxvowels, maxcons; int total; register int r, i; int j; char **p; #define DEFTOTAL 1 if(argc < 2) total = DEFTOTAL; else total = atoi(argv[1]); if(total < 1) total = DEFTOTAL; for(p=vowels; *p; p++) ; maxvowels = p-vowels; for(p=consonants; *p; p++) ; maxcons = p-consonants; srand(getpid()); for(j=0; j<total; j++) { r = rand(); strcpy(pwd, consonants[r%maxcons]); for(i=r%5; i>0; i--) r = rand(); strcat(pwd, vowels[r%maxvowels]); r = rand(); strcat(pwd, consonants[r%maxcons]); for(i=r%7; i>0; i--) r = rand(); strcat(pwd, vowels[r%maxvowels]); r = rand(); strcat(pwd, consonants[r%maxcons]); for(i=r%3; i>0; i--) r = rand(); strcat(pwd, vowels[r%maxvowels]); puts(pwd); } }
--------------- man page makekey (aix 4.1.4) ----------------------
makekey Command Purpose Generates an encryption key. Syntax makekey [ ASCIICharacters ... ] Description The makekey command generates an encryption key for use with programs that perform encryption. Its input and output are usually pipes. The makekey command reads 10 characters from standard input and writes 13 characters to standard output. The first 8 of the 10 input characters can be any sequence of ASCII characters, as specified by the ASCIICharacters parameter. The last two input characters, called the salt, are chosen from the sets 0 through 9, a through z, A through Z, . (period), and / (slash). The salt characters are repeated as the first two characters of the output. The remaining 11 output characters are chosen from the same set as the salt and constitute the output key that you use as the encryption key parameter of programs that perform encryption. Examples Entering the following example at the command line generates an encryption key: makekey 1234567890 The makekey command generates an encryption key based on the input string 1234567890 and displays the following encryption key below, with the $_ (shell prompt) appearing immediately after the generated key and on the same line. 90y744T/NXw1U$_ Implementation Specifics Software Product/Option: Base Operating System/ Base Application Development Toolkit Standards Compliance: BSD 4.3 Related Information The crypt, encrypt, or setkey subroutine.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários