Kerberos Integration Testing Project Plan

Adam Seering aseering at MIT.EDU
Thu Jul 12 19:11:09 EDT 2007


> Hi all,
> 	I'm working on setting up a nice integration testing system  
> between different Kerberos distributions running on different  
> OS'es.  I've been asked to type up my plan to date; it's attached.

But Mailman filters attachments...  Oops.  The relevant PDF's at  
http://web.mit.edu/aseering/Public/krb/KerbProjPlan.pdf ; text (c/o  
dvi2tty) is pasted below.

Adam




                           Kerberos  Interoperability  Test  Suite  Plan



                                                         Adam Seering


                                                         Summer 2007



     This project's long-term goal is to develop an extensible test  
suite that will test an array of Kerberos
implementations,  each  as  compiled  and  installed  on  an  array   
of  different  platforms,  against  each  other.
It will have the ability to do blanket tests (all implementations  
against one another) and spot tests (one
implementation against all others). It will store test results in a  
format that is human-readable and computer-
parseable.  It will have a command-line UI for running tests, and  
will have API hooks to allow GUIs to be
implemented.



1      Pro ject  Segments


There are many pieces to this project.  Here's an outline of those  
pieces, as I see them.  I have included
estimates of how much more time I expect some of these things to take  
(note that I've already made progress
on many of these things, as will be discussed later). I'm not very  
experienced at making these estimates, so
they are fairly rough;



1.1      Write  Kerberos  test  suite

     o  Verify that gssMonger1  works as intended.  Fix, or report  
and have fixed, any major or showstopper
        bugs. (1 week)

     o  Port the gssMaster controller from Windows Linux, and other  
POSIX-compatible OS'es (1 to 2 weeks)

     o  Modularize gssMonger tests (ie., make it easy to add new  
tests).  Add requested tests.  (Arbitrary; no
        minimum)



1.2      Build  virtual  test  rig

     o  Install an array of operating systems on krbdev-xen, for  
testing (3 days)

     o  Place the VM's on an internal network, behind an IPv4 NAT but  
with direct access via IPv6. Provide
        IPv4 VPN access to this network. (1 week)

     o  Write  a  propagation  mechanism  that,  given  a  Kerberos   
distribution,  will  install  and  configure  the
        distribution on the target machine, for any virtual machine  
in this test rig. (1 week)
_____________________________________________________1
      gssMonger is a test suite designed by Microsoft for interop  
testing.  It was designed with the MS Active Directory KDC
in mind, though it should support other KDC's. It consists of two  
binaries, gssMaster and gssMaggot. gssMaggot is installed
on an array of Kerberos client computers to be tested, and gssMaster  
connects to gssMaggot instances over IPv4 or IPv6 and
causes them to execute a series of authentication tests against a  
KDC. gssMaster outputs test results to an XML file.
    gssMonger was recently released as an open-source under the  
Microsoft Permissive License. Pieces of it are still being released;
no documentation is currently available.  Right now, gssMaggot builds  
under Windows and Linux i386, and gssMaster builds
under Windows.



                                                                   1
1.3      Write  User  Interface

     o  Write a program that accepts a matrix of test computers and  
Kerberos implementations. The program
        will turn that matrix into a set of one or more gssMonger  
tests, and will use gssMonger and other
        scripts described above to execute those tests. (1 to 2 weeks)



2      Intermediate  Output


This project is rather large; it is entirely possible that I won't be  
able to finish all of it this summer.  To
prevent this from causing wasted effort, I'll work through a number  
of intermediate steps, each of which will
be useful by itself.
     I plan to start by working on gssMonger. This task frequently  
blocks on other people; while waiting, I'll
work on building the virtual test rig. Some tests can be run using  
the stock gssMonger and a partial virtual
test rig, and the set of tests that can be run increases as I  
continue to work on these items, so there are a
variety of useful intermediate states here. I've already demonstrated  
Windows-only testing against an Active
Directory KDC; I hope to follow that with cross-platform testing  
against Active Directory, cross-platform
testing against an MIT Kerberos or Heimdal KDC, and cross-platform  
testing between arbitrary KDC's and
clients.  (The order of these may vary a bit depending on which  
pieces of documentation I get first from
Microsoft.)



3      Current  Progress


To date, I have run gssMonger tests against Windows systems and  
Microsoft's Kerberos implementations.
I have largely ported gssMaster itself to Linux and MacOS X; I'm  
currently in the process of debugging
the ported executable.  I have reported bugs in gssMaggot's x86_64  
support and in its IPv6 support under
Windows XP; both bugs should be fixed in future gssMaggot releases.
     I have looked through gssMonger's test-module system, and  
determined it to be sufficient for now. To add
a test, one writes a C function that executes that test, then adds  
that function (along with a few descriptive
strings) to an array in a header file.
     I have set up an array of virtual machines on krbdev-xen, and  
comparable arrays of machines on several
other computers.  I have both NAT and VPN setups working in test VM's  
on various computers.  NAT
currently fails on krbdev-xen for unknown reasons; I haven't been  
able to reproduce the problem on any test
machine so far.
     gssMonger is written in C, and I don't currently plan to modify  
it to use any other language.  From
discussion with other people, however, it seems wise to write any new  
programs and scripts in Python.



                                                                   2




More information about the krbdev mailing list