Annotation of pgp/contrib/stealth/stealth.man, revision 1.1.1.1

1.1       root        1: 
                      2:                Stealth V1.1 by Henry Hastur
                      3:                ----------------------------
                      4: 
                      5: Stealth is a simple filter for PGP which strips off all identifying header
                      6: information to leave only the encrypted data in a format suitable for
                      7: steganographic use. That is, the data can be hidden in images, audio
                      8: files, text files, CAD files, and/or any other file type that may contain
                      9: random data, then sent to another person who can retrieve the data from 
                     10: the file, attach headers, and PGP decrypt it.
                     11: 
                     12: Stealth is not intended to replace the standardised methods of using
                     13: encryption (e.g. ASCII-armoured PGP email) ; in an ideal world we would
                     14: all be able to send openly encrypted mail or files to each other with no 
                     15: fear of reprisals, however there are often cases when this is not possible,
                     16: either because the local government does not approve of encrypted 
                     17: communication, or perhaps because you are working for a company that
                     18: does not allow encrypted email but doesn't care about Mandelbrot
                     19: GIFs. This is where Stealth and steganography can come into play.
                     20: 
                     21: 
                     22: Compiling
                     23: ---------
                     24: 
                     25: Stealth has currently only been tested on BSD and SVR4 Unix (and as
                     26: such should work with most varieties of Unix), with both non-ANSI
                     27: compilers and ANSI compilers with 'minimal ANSI' flags. In order to
                     28: compile the program, you should just be able to extract the files
                     29: from the tar file provided, then type 'make'. If that fails you may
                     30: need to change the definition of CC and CFLAGS in the makefile to
                     31: get it to compile. On machines with gcc, the GNU C compiler, Stealth
                     32: can be compiled by simply changing the 'CC=cc' line in makefile to
                     33: 'CC=gcc'.
                     34: 
                     35: Stealth can be compiled on MS-DOS using the Microsoft C compiler with
                     36: the following command line :
                     37: 
                     38: cl /DDOS stealth.c
                     39: 
                     40: That's all there is to it - the compiler will output a STEALTH.EXE
                     41: ready for use. Other compilers should work, but you may need to change
                     42: header files and the code at the beginning of main() which sets the
                     43: mode of stdin and stdout to binary.
                     44: 
                     45: Usage
                     46: -----
                     47: 
                     48: Stealth always reads from its standard input and writes to the standard
                     49: output, though when adding headers to data the data has to be stored in a
                     50: temporary file (see Security Concerns below).
                     51: 
                     52: Command line arguments :
                     53: 
                     54:        -c      Conventional encryption used rather than public key
                     55:        -a      Add headers (defaults to strip headers)
                     56:        -v      Verbose output.
                     57: 
                     58: The -a argument takes a string specifying the key id to put into the
                     59: header. This can be specified either as an identifying name (e.g.
                     60: [email protected]), or as a 24-bit key id as given by the pgp -kv
                     61: command, prefixed by '0x' (See examples below). The latter has been
                     62: added for MS-DOS users who can only pass a single word to the program
                     63: for a key name.
                     64: 
                     65: Stealth needs to be able to find your pubring.pgp file, which it does
                     66: by first checking in the directory pointed to by $PGPPATH, then the
                     67: current directory.
                     68:  
                     69: 
                     70: Examples
                     71: --------
                     72: 
                     73: To encrypt a file with PGP and store it in the file pgp.stl prior to sending :
                     74: 
                     75: pgp -ef < secrets.dat | stealth > pgp.stl
                     76: 
                     77: To encrypt a file with conventional (IDEA) encryption, and pass to a
                     78: steganography program called steg_program :
                     79: 
                     80: pgp -fec < secrets.dat | stealth -c | steg_program
                     81: 
                     82: To take the output from a steganographic extraction tool, add headers
                     83: for key "Your Id", and decrypt :
                     84: 
                     85: steg_program | stealth -a "Your Id" | pgp -f > secrets.dat
                     86: 
                     87: [ Note : this use of " marks will only work on Unix, not MS-DOS. If
                     88:   you have to specify a key with more than one word, you will probably
                     89:   have to specify the key id instead ]
                     90: 
                     91: To take the conventionally encrypted output from a steg program, attach
                     92: headers and decrypt :
                     93: 
                     94: steg_program | stealth -ac | pgp -f > secrets.dat
                     95: 
                     96: To take the output from a steganography program, add  the headers
                     97: for a key whose 24-bit id is 23ffff, and decrypt :
                     98: 
                     99: steg_program | stealth -a 0x23ffff | pgp -f > secrets.dat
                    100: 
                    101: 
                    102: Limitations
                    103: -----------
                    104: 
                    105: Files can be signed, but can only be encrypted to one recipient - extra
                    106: RSA headers for all but the first recipient will be stripped from the
                    107: file. In addition, if you specify conventional encryption but pass an
                    108: RSA-encrypted file into the filter the RSA-block will be stripped. In
                    109: either case, stealth will print out warnings to inform you of this.
                    110: 
                    111: Stealth provides no support for ASCII-armoured PGP messages - it will
                    112: only work with the binary output format, and the output will have to
                    113: be converted to a useable form after processing, either with a
                    114: steganography program or a standard utility such as uuencode.
                    115: 
                    116: Finally, for technical reasons there are potential problems with public
                    117: keys of size (typically) 8*n + 1 or 8*n + 2 (e.g. 513 or 1026). If you
                    118: are encrypting to a key of a peculiar size, it's possible that the algorithm
                    119: used to add headers could fail, but fortunately this can be detected while
                    120: stripping the headers, and a warning will be printed. If this warning appears,
                    121: you will probably want to encrypt the data again until a suitably sized
                    122: RSA-block is created.
                    123: 
                    124: It is NOT neccesary to remove garbage data that the steganography program
                    125: may have added to the end of the PGP-encrypted data. PGP output contains
                    126: an encrypted end-of-file mark that allows the program to decrypt correctly
                    127: and ignore any trailing garbage.
                    128: 
                    129: 
                    130: Security Concerns
                    131: -----------------
                    132: 
                    133: After passing through the stealth filter, the PGP-encrypted data is
                    134: essentially white noise, with no identifying marks, and whilst it may
                    135: well have enough peculiarities for an expert cryptanalyst to recognize
                    136: it as encrypted data, the probability is much less than would be the
                    137: case with a PGP header identifying the recipient attached.
                    138: 
                    139: One other concern is that stealth has to create a temporary file when
                    140: reading in data to attach headers, and depending on the build options
                    141: chosen the program will store it in either $PGPPATH, the current directory
                    142: or /tmp. On Unix machines, the file will be deleted as soon as it is opened,
                    143: making it difficult to capture, but on other operating systems the file
                    144: will only be deleted when it has been used. (In either case the file will
                    145: be zeroed before being closed).
                    146: 
                    147: In addition, some operating systems will use temporary files on your disk
                    148: to emulate unix pipes (e.g. MS-DOS) - these files will not be zeroed when
                    149: finished with !
                    150: 
                    151: 
                    152: Export Restrictions
                    153: -------------------
                    154: 
                    155: Stealth is probably not covered by current export restrictions under the
                    156: US ITAR regs, but I'm not a lawyer, so if in doubt check it out yourself.
                    157: It was written outside the US and imported, so should soon be available
                    158: on some European ftp sites as well as US sites.
                    159: 
                    160: 
                    161:                                                Henry Hastur
                    162: 
                    163: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.