BIND 10 #1104: support TSIG in DNS (Request) ACL
BIND 10 Development
do-not-reply at isc.org
Thu Jul 21 23:25:03 UTC 2011
#1104: support TSIG in DNS (Request) ACL
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: reviewing
Type: task | Milestone:
Priority: major | Sprint-20110802
Component: | Resolution:
xfrout | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: N/A | Estimated Difficulty: 0.0
Feature Depending on Ticket: | Total Hours: 0
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Thanks for the review.
Replying to [comment:6 stephen]:
> '''src/bin/xfrout/tests/xfrout_test.py.in'''
> In the part of test_parse_query_message that does the TSIG ACL checks,
TSIG_KEY is added to the "self.xfrsess" key ring multiple times - is this
needed?
Ah, good catch. No, they are not needed (not harmful in this context, but
simply redundant). Removed them, and added supplemental tests to catch
it if we do this again due to a naive copy.
> '''src/lib/acl/tests/dnsname_check_unittest.cc'''
> In the "match" test, the superdomain against which the check should be
made should be "com", not "org".
Another good catch (and it's embarassing in that this type of error
shouldn't happen with a pure TDD). Fixed.
> '''src/lib/python/isc/acl/_dns.py'''
> Is this really a good name for this file? _dns.py" is very close to
"dns.py".
I don't know if it's "good" or not:-) but it seems to be the common
convention in Python libraries. For example, socket.py uses
_socket.py the sqlite3 package uses _sqlite3.so, etc.
> A comment in this file refers to "log.so", which appears not to be
relevant here.
Yet another good catch. In fact, the entire comment should rather be
the same one as other .py in that directory. So I replaced it
as a whole.
I also noticed some editorial errors in comment lines of a .cc file,
so I fixed them.
> '''Miscellaneous'''
> The TSIG ACL check is only on the basis of record name, which prompts
the question "can we guarantee that the TSIG data is always checked?". In
other words, could it be possible for a user to construct an ACL for some
operation that includes a check on the TSIG key, but for the code for that
operation not to check it? In which case security could be subverted by
sending through a key of a given name but with arbitrary data.
We cannot guarantee that. The assumption is that if an application uses
a TSIG based ACL, it's application's responsibility to perform TSIG
validation before performing the ACL check. Maybe we should document
it as a note somewhere (but I'm not sure what's the best place for that.
In changelog at the moment?)
--
Ticket URL: <http://bind10.isc.org/ticket/1104#comment:7>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list