home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Security / Security.zip / steal11.zip / STEALTH.MAN < prev   
Text File  |  2002-09-27  |  7KB  |  163 lines

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