Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

How Free is BIND 8.2?

Posted by Roblimo on Sat Sep 11, 1999 11:16 AM
from the keepers-of-the-free-software-flame dept.
Bun writes "It looks like one of the foundations of the Internet may no longer be truly "Open Source". Apparently, the license restrictions on BIND 8.2 do not meet the Debian Free Software Guidelines (DFSG). Check out the Linux Weekly News for details. "
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Anonymous Coward
    Think about it... I convince your name server that client.com resolves to my box. Next time you try to telnet to client.com, I get your password. Of course ssh defeats this, etc., etc., but there are plenty of inventive things you can do if you can convince people that they're talking to someone trusted when they're really not.
  • Yes, Dents [dents.org] is a replacement for BIND. It is currently in active development.
  • Because ElGammal isn't an IETF specified algorithm for DNSSEC. ISC tries to conform to the RFCs as much as possible.

    Specs can be changed. All it takes is publication of draft and going through usual process until it becomes RFC.

  • Face it, not everyone is going to agree to the DFSG, for whatever reasons. Does that mean we should not accept things people like that write? Or should it not be acceptable to be used for the general workings of something so complex and pretty much anarchy-based as the Internet? Sorry, but I do not agree. I feel that being reasonable on both sides is better than not.
    Sure, some people will disagree with the DFSG. Those guidelines are there to draw a line between free software from unfree software (at least in the Debian organization's eyes). You could reasonably draw the line in a lot of different ways. So why not compromise when something potentially advantageous is just a little over the line?

    But if you compromise the line will keep being drawn on the other side of more and more restrictive licenses. Do we consider BIND free on the whole, even if a piece of it isn't? Do we consider the old Qt license free because anyone making free software can use it? Do we consider the Sun Community Source License free because you can read the source code? Do we consider Explorer free because anyone can download it off the Internet?

    The Golden Median is dumb -- the middle is only dependant on what you consider the edges to be. And if you allow the edges to be redefined then you'll just drift, controlled by whoever does the defining -- Security Dynamics?

  • Close but no cigar.

    If it did in fact say "everyone else", then it would be close to an open source license. Since it _does_ say "RSA Data Security" it is exactly the opposite of an Open Source License.
  • drc@isc.org writes:
    >I find it unfortunate that ISC is put into the
    >position of being either standards conformant
    >xor "free" according to the Debian folks.

    I think it's unfortunate that software patents have to put Debian or ISC into this position.

  • But shouldn't modularizing the thing, leaving only hooks for the RSA module in BIND, work fine?

    Yes. This is one of the options being discussed.

    Additionally, I'd like to point out that DNSSEC does not depend on RSA; other signature systems (DH and DSA) are possible too.

  • The reason RSA is being used for signatures is that it is more than 10-40 times faster than DSA or other similar methods when you do signature verification, moreover, DSA signature verification gets a lot slower as the modulus increases compared to RSA. This is due to the nature of the math used and no one has found a suitable alternative to RSA which provides the same security and comes even close to RSA in verificiation speed. This is an important feature because people will be doing a lot more verifications of DNS records than they will do signatures.
  • Which is one reason why many of the domains that I help set up have a bind server as the master, and dents as one of the slaves... The first rule in failover is not to use same technology on the "backup" system so that a failure on the primary does not also affect the secondary...



    https://www.mav.net/teddyr/syousif/ [mav.net]
  • Windows 2000 uses TSIG and Kerberos for update authentication according to Paul Leach, who works for Microsoft.

    Is there a difference between authentication for zone transfers and authentication for single IPs?


  • Surely the only problem is one of patents, not copyrights. But we already have 'free' software which is restricted in the US and Japan by patents, and some licenses (eg IBM's licence for Jikes [ibm.com]) restrict your use of certain patents, while the software itself is still considered free. (It is at least free in Europe, but maybe not for much longer; see freepatents.org [freepatents.org].)
  • The Linux Weekly news article states:
    The DNSsafe software cannot be used or distributed separately from the BIND software. You only have the right to use it or distribute it as a bundled, integrated product.

    which violates several points of the DFSG, in that it restricts distribution of the software;


    Surely this is incorrect. If it were correct then it would follow that the QPL license was not DFSG compliant, since the QPL also does not permit distributing any (strict) subset of the QPL'd source code. But this is a contradiction as the QPL has been declared DFSG compliant.
  • I noticed the same thing. The Open Source Definition has an extra clause, 10, that gives examples of licenses that meet the definition.

    The other more important difference I noticed is the the OSD specifically prohibits obsfucating the source code (see clause 2), while the DFSG does not.

    Leaving us in the rather odd position in which open source software (in the OSD sense) is actually "more free" than "free software" (in the DFSG sense).

    It's a strange world.
  • Why didn't the BIND folks use Diffie-Hellman instead?
    Couldn't this section of BIND be rewritten to use Diffie-Hellman?

    How is it that you are allowed to export the source code for RSA as long as you intend to use it for authentication? Can I export a cruise missle to Libya as long as it's intended to be used as a lawn ornament?

    I can't imagine how the source code could be written so that the RSA sections couldn't just be ripped out and used for encryption.
  • >Nothing to worry about.. move along now... ;)

    Nothing to worry about, in that a section of BIND that improves it's security in a much needed way can't be included in any free BIND?

    Now it's not as serious as it might be, but it's still pretty bad.

  • Ahh. But they appear to be much slower than
    RSA. Don't know myself. I haven't looked at it
    that much yet.
  • There is absolutely nothing wrong with a company puting restricitons on the use of software they have developed. Nothing at all.

    Agreed, but I'd like to distinguish between software written and a patent-license scheme. patented software is very bad, patented MATH is disgusting.

  • I find it quite amusing that one of the statements in the licence there was some objection to was:

    If you modify the...software itself...you must grant RSA Data Security the right to use, modify, and distribute your modifications....
    Now, if we replace `RSA Data Security' with `everyone else,' we get a statement that's darn close to the key tenet of a popular open source licence....

    cjs

  • the Debian folk do not consider it liberal enough.

    True enough. Sometimes the best you can do is not what everyone would like. But that's RSA's fault, not Debian's (or even ISC's). If they didn't insist on raking in the dough from their patented algorithm (a concept nobody outside the U.S. recognizes), there would be no problem here. And that's the key point here: the blame falls 90% on RSA's shoulders (and the other 10% goes to the IETF, for basically creating a broken standard). I don't know what else the ISC could have done in this situation.
  • I quoted him. That's when I mentioned performance. What I did was add additional requirements.

    Yes, some commercial compilers do perform better than GCC. So what. You weigh your own requirements against what is available. My requirements currently match best with GCC. So I'll use GCC. Sure I could get some performance gains with another compiler, but at the cost of some disadvantages (things that mismatch my requirements).

    Price is one of my requirements. Portability is one of my requirements. Sure, performance is a requirement, too, but it's not the exclusive one.
  • I agree that BIND should have included it since it did become standardized. The problem is not that it was included, but rather the way that it was included. The parts need to be separated in such a way that one can choose to have it, or to not have it. Just switching a flag to not compile it in is inadequate.

    My disappointment was that this was not seen until people started to realize the mistake that was made and complained. But we'll see .... when BINDsansDNSSEC comes out.

    I would prefer that any and every protocol involving things like encryption, authentication, or even compression, be designed so as to allow implementations to be "full" or "partial" with respect to these options. Then when to processes are negotiating their communication, they can simply negotiate what common ground they have with respect to the avaiable options, and proceed accordingly with the best actions (which may be to disconnect if no common ground exists on a certain option and the configuration requires the option be used or to not communicate).
  • by Anonymous Coward
    It's academic anyway. In less than year's time, the patent will have expired.

    (Not that it was ever valid in Europe, anyway.)

  • The non-free code is mixed in with the free code ATM, such that creating a version of BIND that uses only free software is non-trivial. However, I believe that this is being undertaken by the ISC.

    I'm definitly throwing some sort of party on September 20, 2000. I missed my chance when the Diffie-Hellman patent expired.
    --
  • IMO Debian is handling this very well and very maturely, their policies are excellent (OK, I wrote some of them but they have done a lot since then), and they are to be complimented for bringing attention to this issue.

    A lot of people are bringing up DENTS [dents.org]. It's an alternate DNS implementation, dedicated to remaining 100% Free Software, and it's technically superior too! Take a look, it's a really cool project. It's important to have another Free Software alternative to BIND, even if BIND is itself Free Software, just because DNS is so critical to the entire Internet.

    It's a mistake to put proprietary elements in IETF standards (and non-IETF standards as well). If RSA isn't willing to open this up, we're just going to have to develop an alternative to the standard (which is already in progress) and a way to gateway between the two standards.

    And last, this is one of the more mature Slashdot discussions concerning Open Source that I've seen in a while. Good going, folks!

    Thanks

    Bruce Perens

  • If you havn't looked at Dents [dents.org] yet, you should. It's a nifty modular DNS server. And, AFAIK, there is no "non free" code.
  • Just read the article, and to preempt the usual misinformed-just-enough-to-flame crowd: BIND is still open source - it's a particular add-on, the DNSafe that does not meet the OSD definition. Another reader was quick to point out that this is being worked on as well.

    Nothing to worry about.. move along now... ;)

    --

  • I just want to thank the Debian developers for keeping on top of issues such as this. I think that it's great that we have distributions like Redhat that are willing to stick to the GPL for their own software, but if the Community is going to stick to their roots we really do need *some* sort of organization to keep track of who is and who is not playing by the rules.

    I'm also looking forward to Debian's next package freeze, due to take place on Nov. 6th...
  • Not to disagree with Bruce, but "technically superior" hasn't been proved yet for DENTS. However, I do think the more modular architecture will make DENTS easier to extend and improve in the long run. And a few of its ideas (algorithmic name assignments) are very important for large-scale hosting and reverse-lookups.

    Also, in recent discussion on debian-devel, one guy from ISC said that even he was disturbed that BIND is the only production DNS implementation out there (because any BIND security problem becomes a problem everywhere on the 'net). That alone should be a good reason to get DENTS out the door. (Modern internet standards have to have multiple interoperable implementations, to avoid this very problem.)
  • The only problem is with the included RSA code, so we can fix it in 9/2000 when the RSA patents expire.
  • > modularizing the thing Yes, that's the plan [debian.org].
  • Authentication is authentication (well, there are two methods - the standard and Microsoft's :) ). The same authentication mechanisms can be applied to a zone transfer or an update (or even a normal query), since the authentication applies to the full DNS message and is based on the identity that sent the request.
  • Yes, RSA does encryption. It also can be used for authentication, but not exactly in the way you describe.

    An entity holds a public/private key pair. When sending a message, it generates a hash or digest(MD5, SHA1, etc), and applies the algorithm to the hash using its private key. This creates a digital signature which is sent along with the message. The public key is widely disseminated. Therefore, when the message and signature are received, the receiver can compute the message digest and use the RSA public key to prove that the signature is valid.

    This is not useful for encryption, since the message is sent in the clear, and cannot be obtained from the digital signature alone. This is how DNS Security works - KEY records store public keys in DNS, and SIG records contain digital signatures.
  • I do have to wonder (and probably and going to be flamed to no end on this)
    whether suddenly the Debian Free Software Guidelines are considered the
    de facto standard for what can be considered open source software. I do
    realize that it is the basis for being able to claim the official
    "Open Source" mark. But I fear that throwing up this argument against
    some services might be counterproductive. Face it, not everyone is going to agree to the DFSG, for whatever reasons.
    Does that mean we should not accept things people like that write? Or should it not be acceptable to be used for
    the general workings of something so complex and pretty much anarchy-based as the Internet?
    Sorry, but I do not agree. I feel that being reasonable on both sides is better than not. I really do not feel that allowing e.g. modular approaches to be able to not use proprietary parts would be sufficient to cover danger areas.
    And perhaps let's give ISC the chance to try to rectify the situation in such way that all parties are sufficiently cared about.

    There is a reason why often commercial compilers perform better than GCC - not using that advantage is sometimes plain silly.

  • Zone transfers aren't secured in this respect. Data within a zone is cryptographically signed, so that you can be sure that it really is valid, and someone hasn't been able to spoof you, etc....

    This way you can also be sure that when you ask for "fred.yourzone.org" and the answer is that the next valid label is "george.yourzone.org" that not only does "fred.yourzone.org" not exist, but that there are no other labels that exist between that and "george.yourzone.org", so "frederic.yourzone.org" doesn't exist (and you don't need to ask about it), nor does "fredbert.yourzone.org" (and you don't need to ask about it either), etc....


    The zone transfers are secured in the same way they always have been -- by the authoritative nameservers restricting what IP addresses it will respond successfully to AXFR (or IXFR) queries.


    Follow the links from http://www.isc.org/view.cgi?/products/BIND/docs/co nfig/trusted-keys.phtml [isc.org] to learn more about DNSSEC and how it works.
  • Additionally, I'd like to point out that DNSSEC does not depend on RSA; other signature systems (DH and DSA) are possible too.

    Yes, but due to the DNSSEC spec, alternate signatures do not interoperate. Also, DSA & DH are much, much slower than RSA. There is a reason the IETF chose RSA as the RFC "recommended" algorithm...

  • No-one outside the BIND group wants the awful RSAREF code.

    We would have prefered to not use code from RSADSI (it isn't RSAREF, it is DNSsafe -- they are different), however given RSA is the recommended algorithm in DNSSEC and RSA is patented, our choices were a bit limited.

    The patent will expire next year, so if BIND insist on shipping this non-free code I hope they will undertake to replace it with FREE code next year

    As as been referenced elsewhere, we will be creating a BIND-NORSA distribution for those who find the DNSsafe license objectionable.

  • MS Win2000 implementing some half-arsed version of the Dynamic DNS RFC

    No, their version of DDNS conforms to the RFCs. What is unique to Microsoft if their mechanism for secure dynamic updates. They use GSS-TSIG which is non-standard (but for which they have written an IETF Internet-draft). The problem is that to interoperate with Win2K, GSS-TSIG requires a GSS-API implementation that conforms to Microsoft's unique implementation of GSS-API. Unfortunately, it does not appear that Microsoft has provided enough information to create an interoperable GSS-API implementation.

    Dynmic DNS not making it into BIND till the new version

    No, BIND has had DDNS for 3 years. What was new to 8.2 was DNSSEC which provides security with public key cryptography (TSIG uses private key crypto) and is thus much more scalable (at least in theory). The problem is that the IETF chose RSA for the "recommended" signing algorithm (for good reasons) and RSA is patented. ISC negotiated a fairly liberal license but the Debian folk do not consider it liberal enough.

    a new dynamic dns is unnessary in most cases, and could be done fine with dhcp+a few scripts

    You can do this now with BIND 8, albeit not securely. 8.2.2 (due out real soon now) will have the ability to do secure dynamic update with the IETF standard TSIG (not Microsoft's GSS-TSIG).

    The problem (which may or may not be a problem, depending on your environment): you won't be able to interoperate with Win2K.

  • Specs can be changed.

    Indeed they can. Given the (IMHO) poor operational design of DNSSEC, they undoubtedly will be, particularly after we gain a bit of operational experience with the current DNSSEC protocol. However, the current proposed standard DNSSEC specification states that RSA is the recommended algorithm. ISC prefers to implement standards as opposed to (say) Microsoft which invents their own.

    All it takes is publication of draft and going through usual process until it becomes RFC.

    I gather you haven't been involved in the IETF much. It is a bit more involved than that...

  • by bjk4 (885) on Saturday September 11 1999, @03:44AM (#1689598) Homepage
    To clear things up... RSA is encryption. It involves use of exponentials, and at the risk of national security, here is how it works:

    Pick two big primes (p and q) and multiply them together to get n. Next, find two numbers, e and d, such that e*d === 1 mod n. This means that (a^e)^d == a and (a^d)^e == a all mod n. You then public your public key: e,n. You remember your private key: d. p and q remain private forever and are best forgotten.

    The reason RSA is used for authentication is because it does have an overhead because you are running modular arithmetic on 512 (or more) bit numbers. This is how authentication works:

    Same setup as before (p,q->n; get e,d)
    The challenger holds your public key (e,n) and sends you an unencrypted message, m. You send back m^d === c mod n. The challenger can verify your identity by raising c^e mod n, and comparing this to m.

    This operation only has to be done once, so it is relatively efficient for the security it provides. When setting up a secure connection, you can use RSA to authenticate someone and then to transmit a less secure session key. This session key isn't as secure, but it arrived securely. This is done for efficiency, and one can argue that it is an insecure model.

    -B

    ps. All this info is available from the books and from the source to many encryption products (ssh for instance)
  • by Svartalf (2997) on Saturday September 11 1999, @03:07AM (#1689599) Homepage
    After all, the patents expired on it and GPG uses it right now (besides, I've heard that it's better than RSA anyhow...)
  • by jelle (14827) on Saturday September 11 1999, @02:34AM (#1689600) Homepage
    So does this mean somebody should stand up and challenge the standard, and maybe make something based on The GNU Privacy Guard (GPG) [gnupg.org] to get encryption into something called GBIND?

    Is the Open Source community strong enough yet to overturn a bad standard in such way?

  • by Joheines (34255) on Saturday September 11 1999, @02:32AM (#1689601)
    Still, the software wouldn't be 100% free anymore. The RSA code would be like a source code comment if it is switched off and I don't think you can put non-open source-licensed commentary into an open-source program.
    But shouldn't modularizing the thing, leaving only hooks for the RSA module in BIND, work fine?
  • No! It's always a bad idea to allow a small erosion of values in exchange for some apparently wonderful benefit. The problem is that erosion adds up, and it's much harder to fight for it once it's gone. If Debian permits a non-open package to go into Debian core (where BIND belongs) then it's just one small step before you're signing your soul over just to get a usable version of Linux.

    The BIND people are like most old-school BSD groups, their number one aim is to get high quality working software to as many people as possible. They will accept any license as long as it includes free redistribution in some form.

    That's fine -- but it doesn't mean that what's good for them is good for Free Software. For Debian, and other free software projects the number one priority must be to keep software Free.

    Two other points while I'm here (1) Outside the USofA there are BETTER, FASTER, and MORE FREE implementations of the RSA algorithm. No-one outside the BIND group wants the awful RSAREF code. (2) The patent will expire next year, so if BIND insist on shipping this non-free code I hope they will undertake to replace it with FREE code next year.

    Nick.

  • by bwelling (62243) on Saturday September 11 1999, @02:48AM (#1689603) Homepage
    RSA is not used for encryption; DNS doesn't do encryption. RSA is not used for securing zone transfers, it's used for generic data authentication, as specified in the DNS Security RFCs. The other alternative is DSA, which is the required algorithm, but RSA verifications are approximately 60x faster, which makes a pretty big difference. A different implementation of RSA cannot be used, because of patent issues. Export control is not an issue, since RSA is only used for authentication.

    It looks like the only option is to optionally remove RSA support, which (fortunately) wouldn't be too difficult.
  • by techt (87303) on Saturday September 11 1999, @04:12AM (#1689604)
    There is absolutely nothing wrong with a company puting restricitons on the use of software they have developed. Nothing at all.

    However, including non-free software as an integral working part of a free software package defeats the purpose of having a free license in the first place. It severely cripples the freedoms granted by the free license. If one is to do that, then why not make the whole license non-free?

    In closing, I see nothing wrong with having non-free license software or free license software as long as the two are not fundamentally interdependant. Once the licenses are mixed, freedom is lost.
  • The Open Source Definition is pretty much the same as the Debian Free Software Guidelines, both by Bruce Perens, so if it doesn't meet the standards of one it won't meet the standards of the other. However I'm sure it'll soon meet both. And widespread use of DNSsec would be an *excellent* thing.
    --
  • by Decibel (5099) on Saturday September 11 1999, @03:48AM (#1689606) Journal
    As I understand it, the problem here is that you can't seperate the RSA code from the rest of the BIND code and redistribute it; you can only use it with BIND.

    So what?

    Is it so horrible that a company is giving away something that they developed, but that they don't want people spreading it around other than for the purpose they envisioned it for? They don't even say that you can't modify it, only that they retain the rights to incorporate your modifications.

    RSA's solution works, and it is free to use, even if it's not as free as some would like. I fully support open source and free software, but I also respect that some people or companies want to retain some forms of control.

    Is this a special case because it involved a piece of software that is crucial to the operation of the internet? I don't know. If it becomes a real issue in the future, then a solution can be found, but it seems that people are only making a stink about it right now because it's not 100% absolutely, completely free for everyone to use however they want. In other words, open source zealotry.

    I'm sorry if I sound negative about this, but I get frustrated when people get upset about a piece of free software because it's not licensed exactly the way they want. To quote an American expression, 'Why look a gift horse in the mouth?'

    Instead of trying to re-invent something that works and is free to use, why not just move on and tackle other issues?
  • When RSA asked if their code could become the de-facto standard for protecting AXFR and IXFR transfers in Bind 8, they were told they would have to offer up a completely free version with "no restrictions whatsoever", including export restrictions from the U.S. and no EULAs or patent/copyright problems. See comp.protocols.domains.* in dejanews for a long history of the discussion.

    There was a lot of talk at the time about whether the RSA code was truly free. General opinion was that it was not, but people have been using the code and just shrugging it off. Others preferred PGP or similar variations, but the strong crypto meant the ISC couldn't make the source available for free anonymous download. But the majority of voices wanted only one standard, since this stuff is pretty complex and having to support PGP/RSA/BlowFish/Joe'sXORhack would have been a nightmare.

    Now I expect some clients to start asking me about this, since I tend to put the latest Bind in every project I build. Seems that every client site I've been on, the techies all start reading slashdot :-) and following the issues.

    the AC
  • by Razron (12415) on Saturday September 11 1999, @02:27AM (#1689608) Homepage
    The problems are being worked out.

    The reason it is going to have problems is because
    they are adding RSA into the newer version to
    allow security transfers of zone files.

    They are trying to add an option to have no rsa
    as a build option.
  • by disappear (21915) on Saturday September 11 1999, @03:24AM (#1689609) Homepage
    > Why didn't the BIND folks use Diffie-Hellman
    > instead? Couldn't this section of BIND be
    > rewritten to use Diffie-Hellman?

    Well, it could be, but D-H is broken. (See Schnier's _Applied_Cryptography_ for details.) The D-H patents only mattered (until they expired) because they applied to all future, better ways of doing the same thing. (Because that's what patents protect.)

    > How is it that you are allowed to export the
    > source code for RSA as long as you intend to use
    > it for authentication?

    Because that's the law. (Well, Federal Regulation, actually, but enforced as law.) Encryption code used only for authentication and not actually for encryption (ie, digital signature-only stuff) is 100% exportable. (Read Schnier for more, again.)

    Of course (not that there's really any 'of course' about it), you can pretty much turn any digital signature software into data encryption. So it really doesn't make much difference.


    > Can I export a cruise missle to Libya as long as > it's intended to be used as a lawn ornament?

    Depends how much the Lybians contribute to the next presidential campaign. (Hey, it worked for the Chinese!)