home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / sci / crypt / 3228 < prev    next >
Encoding:
Internet Message Format  |  1992-09-14  |  2.1 KB

  1. Xref: sparky sci.crypt:3228 alt.security:4365
  2. Newsgroups: sci.crypt,alt.security
  3. Path: sparky!uunet!zaphod.mps.ohio-state.edu!darwin.sura.net!spool.mu.edu!umn.edu!csus.edu!netcom.com!henderso
  4. From: henderso@netcom.com (Mark Henderson)
  5. Subject: Re: pgp2.0 signature security problem
  6. Message-ID: <#yynvxl.henderso@netcom.com>
  7. Date: Mon, 14 Sep 92 19:17:32 GMT
  8. Organization: Netcom
  9. References: <1992Sep12.174358.11564@colnet.cmhnet.org>
  10. Lines: 55
  11.  
  12. In article <1992Sep12.174358.11564@colnet.cmhnet.org> res@colnet.cmhnet.org (Rob Stampfli) writes:
  13. >I recently had a chance to play around with pgp2.0 on a sVr2 Unix machine.
  14. >There appears to be a big security problem with the signature mechanism:
  15. >If you "sign" a file, and then add additional information to the end of
  16. >the signed file, pgp includes this additional information as part of what
  17. >it says you signed.  For instance:
  18. >
  19. >echo 1 2 3 4 5 | pgp -fs >xyzzy.pgp
  20. >echo 6 7 8 9 10 >>xyzzy.pgp
  21. >pgp xyzzy.pgp
  22. >
  23. >pgp now tells me I have signed the phrase:
  24. >
  25. >    1 2 3 4 5
  26. >    6 7 8 9 10
  27. >
  28. >when I have in fact only signed the first line.
  29. >-- 
  30. >Rob Stampfli  rob@colnet.cmhnet.org      The neat thing about standards:
  31. >614-864-9377  HAM RADIO: kd8wk@n8jyv.oh  There are so many to choose from.
  32.  
  33. The following may be a fix. I haven't tested it extensively, it may
  34. very well screw something else up.
  35.  
  36. Mark
  37.  
  38. *** crypto.c.orig    Mon Sep 14 10:31:12 1992
  39. --- crypto.c    Mon Sep 14 10:31:48 1992
  40. ***************
  41. *** 1494,1505 ****
  42.           }
  43.           CONVERSION = (lit_mode == MODE_TEXT) ? EXT_CONV : NO_CONV;
  44.   #ifdef CANONICAL_TEXT
  45. !         copyfile(f,g,-1L);    /* copy rest of file from file f to g */
  46.   #else
  47.           if (lit_mode == MODE_BINARY)
  48. !             copyfile( f, g, -1L );
  49.           else
  50. !             copyfile_from_canon( f, g, -1L );
  51.   #endif
  52.           CONVERSION = NO_CONV;
  53.   
  54. --- 1494,1505 ----
  55.           }
  56.           CONVERSION = (lit_mode == MODE_TEXT) ? EXT_CONV : NO_CONV;
  57.   #ifdef CANONICAL_TEXT
  58. !         copyfile(f,g,text_len);    /* copy rest of file from file f to g */
  59.   #else
  60.           if (lit_mode == MODE_BINARY)
  61. !             copyfile( f, g, text_len );
  62.           else
  63. !             copyfile_from_canon( f, g, text_len );
  64.   #endif
  65.           CONVERSION = NO_CONV;
  66.   
  67.