<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 7/4/12 2:50 AM, PJ Eby wrote:<br>
    </div>
    <blockquote
cite="mid:CALeMXf7RG100Ld2gchuJWTkRQCaJbUh7TPRtLCcU1rNnVRcMsg@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">On Tue, Jul 3, 2012 at 7:33 PM, Jennings,
        Jared L CTR USAF AFMC 46 SK/CCI <span dir="ltr">&lt;<a
            moz-do-not-send="true"
            href="mailto:jared.jennings.ctr@eglin.af.mil"
            target="_blank">jared.jennings.ctr@eglin.af.mil</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">On hosts
          configured for compliance with U.S. Federal Information<br>
          Processing Standard (FIPS) 140-2<br>
          &lt;<a moz-do-not-send="true"
            href="http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf"
            target="_blank">http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf</a>&gt;,
          like<br>
          those in some banks and, yes, the U.S. Department of Defense,<br>
          cryptographic modules (such as OpenSSL, which underlies
          hashlib) are not<br>
          allowed to calculate MD5 digests, because MD5 is no longer a
          FIPS<br>
          Approved digest algorithm.<br>
        </blockquote>
        <div><br>
          So if it's not a cryptographic module, it's okay?&nbsp; ;-) <br>
          <br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          I know no one is trying here to lean on MD5 for security, but
          the<br>
          standard says nothing about the reason why you're using MD5:
          just that<br>
          you can't.<br>
          <br>
          No one expects a digest algorithm to fail, and Python 2.x may
          not have<br>
          been fixed to check for that before being frozen<br>
          &lt;<a moz-do-not-send="true"
            href="https://bugzilla.redhat.com/show_bug.cgi?id=746118#c3"
            target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=746118#c3</a>&gt;,
          so if you run<br>
          an MD5 checksum on a FIPS-compliant system with an unpatched
          Python 2.x,<br>
          the Python interpreter will segfault. (Ruby, too, had this
          problem and<br>
          was itself only recently fixed,<br>
          &lt;<a moz-do-not-send="true"
            href="http://bugs.ruby-lang.org/issues/4944" target="_blank">http://bugs.ruby-lang.org/issues/4944</a>&gt;.)<br>
          <br>
          I have to configure hosts in accordance with FIPS 140-2, so
          the more<br>
          places I can get rid of MD5, the less headaches I have.<br>
        </blockquote>
      </div>
      <br>
      If we replace it with something else, then I suggest we replace it
      with something that's even MORE braindead than md5 so that nobody
      will mistake it for a secure hash.&nbsp; Otherwise, we will have this
      exact same problem all over again when the replacement "secure"
      hash is disabled by a newer version of FIPS.<br>
      <br>
      The other option is simply to forego a checksum altogether and
      assume same size = same file.&nbsp; Honestly, I don't remember why we
      cared about detecting such modifications in the first place:
      neither PEP 376 nor 262 explain why, and 376 doesn't explain why
      it went with md5 instead of sha1 (as in PEP 262).<br>
    </blockquote>
    <br>
    I wanted to be able to offer a way for installers to detect that a
    file was changed to avoid deleting it for instance, and issue a
    warning to the user -- or maybe give a chance to the installer to
    save a copy of the file somewhere.<br>
    <br>
    I picked md5 because I wanted it brain dead and could not imagine
    that would&nbsp; be an issue somehow. Maybe zlib.crc32 would be a better
    choice.<br>
    <br>
    If we remove the hash, oh well. no big deal I guess. If an installer
    wants to add this feature it can maintain hashes itself.<br>
    <br>
    <br>
    <blockquote
cite="mid:CALeMXf7RG100Ld2gchuJWTkRQCaJbUh7TPRtLCcU1rNnVRcMsg@mail.gmail.com"
      type="cite">
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Distutils-SIG maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a>
<a class="moz-txt-link-freetext" href="http://mail.python.org/mailman/listinfo/distutils-sig">http://mail.python.org/mailman/listinfo/distutils-sig</a>
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>