284 lines
7.8 KiB
Groff
284 lines
7.8 KiB
Groff
.\" Man page for apg.
|
|
.\" Licensed under BSD-like License.
|
|
.\" Created by Adel I. Mirzazhanov
|
|
.\"
|
|
.TH APG 1 "2003 Aug 04" "Automated Password Generator" "User Manual"
|
|
.SH NAME
|
|
apg
|
|
\- generates several random passwords
|
|
|
|
.SH SYNOPSIS
|
|
.B apg
|
|
[\fB-a algorithm\fP] [\fB-M mode\fP] [\fB-E char_string\fP]
|
|
[\fB-n num_of_pass\fP] [\fB-m min_pass_len\fP] [\fB-x max_pass_len\fP]
|
|
[\fB-r\fP \fIdictfile\fP] [\fB-b\fP \fIfilter_file\fP] [\fB-p min_substr_len\fP]
|
|
[\fB-s\fP] [\fB-c cl_seed\fP] [\fB-d\fP] [\fB-y\fP] [\fB-l\fP] [\fB-t\fP]
|
|
[\fB-k\fP] [\fB-q\fP] [\fB-h\fP] [\fB-v\fP]
|
|
.PP
|
|
.SH DESCRIPTION
|
|
.B apg
|
|
generates several random passwords. It uses several password generation
|
|
algorithms (currently two) and a built-in pseudo random number generator.
|
|
.PP
|
|
Default algorithm is pronounceable password generation algorithm
|
|
designed by
|
|
.B Morrie Gasser
|
|
and described in
|
|
.B "A Random Word Generator For Pronounceable Passwords"
|
|
.I National Technical Information Service (NTIS)
|
|
.B AD-A-017676.
|
|
The original paper is very old and had never been put online,
|
|
so I have to use
|
|
.I NIST
|
|
implementation described in
|
|
.B FIPS-181.
|
|
.PP
|
|
Another algorithm is simple random character generation algorithm, but it
|
|
uses four user-defined symbol sets to produce random password. It means that
|
|
user can choose type of symbols that should appear in password. Symbol sets
|
|
are: numeric symbol set
|
|
.I (0,...,9)
|
|
, capital letters symbol set
|
|
.I (A,...,Z)
|
|
, small letters symbol set
|
|
.I (a,...,z)
|
|
and special symbols symbol set
|
|
.I (#,@,!,...).
|
|
.PP
|
|
Built-in pseudo random number generator is an implementation of algorithm
|
|
described in
|
|
.B Appendix C of ANSI X9.17
|
|
or
|
|
.B RFC1750
|
|
with exception that it uses
|
|
.I CAST
|
|
or
|
|
.I SHA-1
|
|
instead of
|
|
.I Triple DES.
|
|
It uses local time with precision of microseconds (see
|
|
\fBgettimeofday\fP(2)) and \fI/dev/random\fP (if available) to produce
|
|
initial random seed.
|
|
.PP
|
|
.B apg
|
|
also have the ability to check generated password quality using
|
|
dictionary. You can use this ability if you specify command-line options
|
|
.B -r
|
|
.I dictfile
|
|
or
|
|
.B -b
|
|
.I filtername
|
|
where \fIdictfile\fP is the dictionary file name and \fIfiltername\fP is the
|
|
name of Bloom filter file. In that dictionary you may place words
|
|
(one per line) that should not appear as generated passwords. For example: user names,
|
|
common words, etc. You even can use one of the dictionaries that come with
|
|
.I dictionary password crackers.
|
|
Bloom filter file should be created with \fBapgbfm\fP(1) utility included
|
|
in apg distribution. In future releases I plan to implement some other
|
|
techniques to check passwords (like pattern check) just to make life easier.
|
|
.sp
|
|
.SH "OPTIONS"
|
|
.SS "Password generation modes options"
|
|
.TP
|
|
.B -a algorithm
|
|
use
|
|
.B algorithm
|
|
for password generation.
|
|
.RS
|
|
.B 0
|
|
- (default) pronounceable password generation
|
|
.br
|
|
.B 1
|
|
- random character password generation
|
|
.RE
|
|
.TP
|
|
.B -n num_of_pass
|
|
generate
|
|
.B num_of_pass
|
|
number of passwords. Default is 6.
|
|
.TP
|
|
.B -m min_pass_len
|
|
generate password with minimum length
|
|
.B min_pass_len.
|
|
If \fBmin_pass_len > max_pass_len\fP then \fBmax_pass_len = min_pass_len\fP.
|
|
Default minimum password length is 8.
|
|
.TP
|
|
.B -x max_pass_len
|
|
generate password with maximum length
|
|
.B max_pass_len.
|
|
If \fBmin_pass_len > max_pass_len\fP then \fBmax_pass_len = min_pass_len\fP.
|
|
Default maximum password length is 10.
|
|
.TP
|
|
.B -M mode
|
|
Use symbolsets specified with \fBmode\fP for password generation.
|
|
\fBmode\fP is a text string consisting of characters \fBS\fP, \fBs\fP, \fBN\fP, \fBn\fP,
|
|
\fBC\fP, \fBc\fP, \fBL\fP, \fBl\fP. Where:
|
|
.RS
|
|
.TP
|
|
.B S
|
|
generator \fBmust\fP use special symbol set for every generated password.
|
|
.TP
|
|
.B s
|
|
generator \fBshould\fP use special symbol set for password generation.
|
|
.TP
|
|
.B N
|
|
generator \fBmust\fP use numeral symbol set for every generated password.
|
|
.TP
|
|
.B n
|
|
generator \fBshould\fP use numeral symbol set for password generation.
|
|
.TP
|
|
.B C
|
|
generator \fBmust\fP use capital symbol set for every generated password.
|
|
.TP
|
|
.B c
|
|
generator \fBshould\fP use capital symbol set for password generation.
|
|
.TP
|
|
.B L
|
|
generator \fBmust\fP use small letters symbol set for every generated password
|
|
(always present if pronounceable password
|
|
generation algorithm is used).
|
|
.TP
|
|
.B l
|
|
generator \fBshould\fP use small letters symbol set for password generation.
|
|
.TP
|
|
.B R,r
|
|
not supported any more. Use \fB-E char_string\fP option instead.
|
|
.RE
|
|
.RS
|
|
.br
|
|
\fBmode\fP can not be more than 4 characters in
|
|
length.
|
|
.PP
|
|
.B Note:
|
|
.br
|
|
Usage of L, M, N, C will slow down password generation process.
|
|
.PP
|
|
.B Examples:
|
|
.br
|
|
\fB-M sncl\fP or \fB-M SNCL\fP or \fB-M Cn\fP
|
|
.RE
|
|
.TP
|
|
.B -E char_string
|
|
exclude characters in \fBchar_string\fP from password generation process (in pronounceable
|
|
password generation mode you can not exclude small letters). To include special symbols that
|
|
can be recognized by shell (apostrophe, quotes, dollar sign, etc.) in \fBchar_string\fP use
|
|
the backslashed versions.
|
|
.RS
|
|
.PP
|
|
.B Examples:
|
|
.PP
|
|
Command \fBapg -a 1 -M n -n 3 -m 8 -E 23456789\fP will generate a set of passwords that
|
|
will look like this
|
|
.br
|
|
\fB10100110\fP
|
|
.br
|
|
\fB01111000\fP
|
|
.br
|
|
\fB11011101\fP
|
|
.br
|
|
.PP
|
|
Command \fBapg -a 1 -M nc -n 3 -m 26 -E GHIJKLMNOPQRSTUVWXYZ\fP will generate a set of passwords
|
|
that will look like this
|
|
.br
|
|
\fB16A1653CD4DE5E7BD9584A3476\fP
|
|
.br
|
|
\fBC8F78E06944AFD57FB9CB882BC\fP
|
|
.br
|
|
\fB8C8DF37CD792D36D056BBD5002\fP
|
|
.br
|
|
.RE
|
|
.SS "Password quality control options"
|
|
.TP
|
|
.B -k
|
|
check every generated password using \fBcracklib\fP. To use this ability you must
|
|
enable cracklib support during programm building.
|
|
.TP
|
|
.B -r \fIdictfile\fP
|
|
check generated passwords for their appearance in
|
|
.I dictfile
|
|
.TP
|
|
.B -b \fIfilter_file\fP
|
|
check generated passwords for their appearance in
|
|
\fIfilter_file\fP. \fIfilter_file\fP should be created with \fBapgbfm\fP(1)
|
|
utility.
|
|
.TP
|
|
.B -p min_substr_len
|
|
this option tells \fBapg\fP(1) to check every substring of the generated
|
|
password for appearance in \fIfilter_file\fP. If any of such substrings would
|
|
be found in the \fIfilter_file\fP then generated password would be rejected
|
|
and apg(1) will generate another one.
|
|
\fBmin_substr_len\fP specifies minimum substring length to check.
|
|
This option is active only if \fB-b\fP option is defined.
|
|
.SS "Pseudo random number generator options"
|
|
.TP
|
|
.B -s
|
|
ask user for random sequence for password generation
|
|
.TP
|
|
.B -c cl_seed
|
|
use
|
|
.B cl_seed
|
|
as a random seed for password generation. I use it when i have to generate
|
|
passwords in a shell script.
|
|
.SS "Password output options"
|
|
.br
|
|
.TP
|
|
.B -d
|
|
do NOT use any delimiters between generated passwords. I use it when i have to generate
|
|
passwords in a shell script.
|
|
.TP
|
|
.B -y
|
|
print generated passwords and crypted passwords (see man \fBcrypt\fP(3))
|
|
.TP
|
|
.B -q
|
|
quiet mode (do not print warnings)
|
|
.TP
|
|
.B -l
|
|
spell genetated passwords. Useful when you want to read generated password by telephone.
|
|
.RS
|
|
.B WARNING:
|
|
Think twice before read your password by phone.
|
|
.RE
|
|
.TP
|
|
.B -t
|
|
print pronunciation for generated pronounceable password
|
|
.TP
|
|
.B -h
|
|
print help information and exit
|
|
.TP
|
|
.B -v
|
|
print version information and exit
|
|
.SH "DEFAULT OPTIONS"
|
|
\fBapg -a 0 -M sncl -n 6 -x 10 -m 8\fP (new style)
|
|
.PP
|
|
If you want to generate really secure passwords,
|
|
you should use option \fB-s\fP. To simplify
|
|
.B apg
|
|
usage, you can write a small shell script. For example:
|
|
.br
|
|
\fB[begin]----> pwgen.sh\fP
|
|
.br
|
|
\fB#!/bin/sh\fP
|
|
.br
|
|
\fB/usr/local/bin/apg -m 8 -x 12 -s\fP
|
|
.br
|
|
\fB[ end ]----> pwgen.sh\fP
|
|
.SH "EXIT CODE"
|
|
On successful completion of its task,
|
|
.B apg
|
|
will complete with exit code 0. An exit code of -1 indicates an error
|
|
occurred. Textual errors are written to the standard error stream.
|
|
.SH "DIAGNOSTICS"
|
|
If \fI/dev/random\fP is not available, \fBapg\fP will display a
|
|
message about it.
|
|
.SH "FILES"
|
|
.B None.
|
|
.SH "BUGS"
|
|
.B None.
|
|
If you've found one, please send bug description to the author.
|
|
.SH "SEE ALSO"
|
|
\fBapgd\fP(8), \fBapgbfm\fP(1)
|
|
.SH "AUTHOR"
|
|
Adel I. Mirzazhanov, <a-del@iname.com>
|
|
.br
|
|
Project home page: http://www.adel.nursat.kz/apg/
|