xref: /minix3/external/bsd/bind/dist/bin/tools/isc-hmac-fixup.html (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek<!--
2*00b67f09SDavid van Moolenbroek - Copyright (C) 2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
3*00b67f09SDavid van Moolenbroek -
4*00b67f09SDavid van Moolenbroek - Permission to use, copy, modify, and/or distribute this software for any
5*00b67f09SDavid van Moolenbroek - purpose with or without fee is hereby granted, provided that the above
6*00b67f09SDavid van Moolenbroek - copyright notice and this permission notice appear in all copies.
7*00b67f09SDavid van Moolenbroek -
8*00b67f09SDavid van Moolenbroek - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9*00b67f09SDavid van Moolenbroek - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10*00b67f09SDavid van Moolenbroek - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11*00b67f09SDavid van Moolenbroek - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12*00b67f09SDavid van Moolenbroek - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13*00b67f09SDavid van Moolenbroek - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14*00b67f09SDavid van Moolenbroek - PERFORMANCE OF THIS SOFTWARE.
15*00b67f09SDavid van Moolenbroek-->
16*00b67f09SDavid van Moolenbroek<!-- Id -->
17*00b67f09SDavid van Moolenbroek<html>
18*00b67f09SDavid van Moolenbroek<head>
19*00b67f09SDavid van Moolenbroek<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
20*00b67f09SDavid van Moolenbroek<title>isc-hmac-fixup</title>
21*00b67f09SDavid van Moolenbroek<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
22*00b67f09SDavid van Moolenbroek</head>
23*00b67f09SDavid van Moolenbroek<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
24*00b67f09SDavid van Moolenbroek<a name="man.isc-hmac-fixup"></a><div class="titlepage"></div>
25*00b67f09SDavid van Moolenbroek<div class="refnamediv">
26*00b67f09SDavid van Moolenbroek<h2>Name</h2>
27*00b67f09SDavid van Moolenbroek<p><span class="application">isc-hmac-fixup</span> &#8212; fixes HMAC keys generated by older versions of BIND</p>
28*00b67f09SDavid van Moolenbroek</div>
29*00b67f09SDavid van Moolenbroek<div class="refsynopsisdiv">
30*00b67f09SDavid van Moolenbroek<h2>Synopsis</h2>
31*00b67f09SDavid van Moolenbroek<div class="cmdsynopsis"><p><code class="command">isc-hmac-fixup</code>  {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>secret</code></em>}</p></div>
32*00b67f09SDavid van Moolenbroek</div>
33*00b67f09SDavid van Moolenbroek<div class="refsect1" lang="en">
34*00b67f09SDavid van Moolenbroek<a name="id2543366"></a><h2>DESCRIPTION</h2>
35*00b67f09SDavid van Moolenbroek<p>
36*00b67f09SDavid van Moolenbroek      Versions of BIND 9 up to and including BIND 9.6 had a bug causing
37*00b67f09SDavid van Moolenbroek      HMAC-SHA* TSIG keys which were longer than the digest length of the
38*00b67f09SDavid van Moolenbroek      hash algorithm (i.e., SHA1 keys longer than 160 bits, SHA256 keys
39*00b67f09SDavid van Moolenbroek      longer than 256 bits, etc) to be used incorrectly, generating a
40*00b67f09SDavid van Moolenbroek      message authentication code that was incompatible with other DNS
41*00b67f09SDavid van Moolenbroek      implementations.
42*00b67f09SDavid van Moolenbroek    </p>
43*00b67f09SDavid van Moolenbroek<p>
44*00b67f09SDavid van Moolenbroek      This bug has been fixed in BIND 9.7.  However, the fix may
45*00b67f09SDavid van Moolenbroek      cause incompatibility between older and newer versions of
46*00b67f09SDavid van Moolenbroek      BIND, when using long keys.  <span><strong class="command">isc-hmac-fixup</strong></span>
47*00b67f09SDavid van Moolenbroek      modifies those keys to restore compatibility.
48*00b67f09SDavid van Moolenbroek    </p>
49*00b67f09SDavid van Moolenbroek<p>
50*00b67f09SDavid van Moolenbroek      To modify a key, run <span><strong class="command">isc-hmac-fixup</strong></span> and
51*00b67f09SDavid van Moolenbroek      specify the key's algorithm and secret on the command line.  If the
52*00b67f09SDavid van Moolenbroek      secret is longer than the digest length of the algorithm (64 bytes
53*00b67f09SDavid van Moolenbroek      for SHA1 through SHA256, or 128 bytes for SHA384 and SHA512), then a
54*00b67f09SDavid van Moolenbroek      new secret will be generated consisting of a hash digest of the old
55*00b67f09SDavid van Moolenbroek      secret.  (If the secret did not require conversion, then it will be
56*00b67f09SDavid van Moolenbroek      printed without modification.)
57*00b67f09SDavid van Moolenbroek    </p>
58*00b67f09SDavid van Moolenbroek</div>
59*00b67f09SDavid van Moolenbroek<div class="refsect1" lang="en">
60*00b67f09SDavid van Moolenbroek<a name="id2543389"></a><h2>SECURITY CONSIDERATIONS</h2>
61*00b67f09SDavid van Moolenbroek<p>
62*00b67f09SDavid van Moolenbroek      Secrets that have been converted by <span><strong class="command">isc-hmac-fixup</strong></span>
63*00b67f09SDavid van Moolenbroek      are shortened, but as this is how the HMAC protocol works in
64*00b67f09SDavid van Moolenbroek      operation anyway, it does not affect security.  RFC 2104 notes,
65*00b67f09SDavid van Moolenbroek      "Keys longer than [the digest length] are acceptable but the
66*00b67f09SDavid van Moolenbroek      extra length would not significantly increase the function
67*00b67f09SDavid van Moolenbroek      strength."
68*00b67f09SDavid van Moolenbroek    </p>
69*00b67f09SDavid van Moolenbroek</div>
70*00b67f09SDavid van Moolenbroek<div class="refsect1" lang="en">
71*00b67f09SDavid van Moolenbroek<a name="id2543403"></a><h2>SEE ALSO</h2>
72*00b67f09SDavid van Moolenbroek<p>
73*00b67f09SDavid van Moolenbroek      <em class="citetitle">BIND 9 Administrator Reference Manual</em>,
74*00b67f09SDavid van Moolenbroek      <em class="citetitle">RFC 2104</em>.
75*00b67f09SDavid van Moolenbroek    </p>
76*00b67f09SDavid van Moolenbroek</div>
77*00b67f09SDavid van Moolenbroek<div class="refsect1" lang="en">
78*00b67f09SDavid van Moolenbroek<a name="id2543489"></a><h2>AUTHOR</h2>
79*00b67f09SDavid van Moolenbroek<p><span class="corpauthor">Internet Systems Consortium</span>
80*00b67f09SDavid van Moolenbroek    </p>
81*00b67f09SDavid van Moolenbroek</div>
82*00b67f09SDavid van Moolenbroek</div></body>
83*00b67f09SDavid van Moolenbroek</html>
84