Interoperability Testing Simplified

Slides:



Advertisements
Similar presentations
Copyright line. Configuring Server Roles in Windows 2008 Exam Objectives New Roles in 2008 New Roles in 2008 Read-Only Domain Controllers (RODCs) Read-Only.
Advertisements

Encrypting Wireless Data with VPN Techniques
Single Sign-On with GRID Certificates Ernest Artiaga (CERN – IT) GridPP 7 th Collaboration Meeting July 2003 July 2003.
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Websydian products.
Windows 2000 Security --Kerberos COSC513 Project Sihua Xu June 13, 2014.
Active Directory and NT Kerberos Rooster JD Glaser.
COM vs. CORBA.
Trnsport Test Suite Project Tony Compton, Texas DOT Charles Engelke, Info Tech.
High Performance Computing Course Notes Grid Computing.
Environmental Council of States Network Authentication and Authorization Services The Shared Security Component February 28, 2005.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
The Architecture Design Process
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Avanade: 10 tips for å sikring av dine SQL Server databaser Bernt Lervik Infrastructure Architect Avanade.
TAM STE Series 2008 © 2008 IBM Corporation WebSEAL SSO, Session 108/2008 TAM STE Series WebSEAL SSO, Session 1 Presented by: Andrew Quap.
Chapter 8 Hardening Your SQL Server Instance. Hardening  Hardening The process of making your SQL Server Instance more secure  New features Policy based.
AFS & Kerberos Best Practices Workshop 2008 Design Goals Functions that require authentication Solution Space Kerberos, GSSAPI or SASL (Decide on your.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Managing Your Datacenter with Microsoft System Center Configuration Manager Kent Agerlund, ECM MVP, Coretech.
Microsoft ® Official Course Module 8 Securing Windows 8 Desktops.
Software Testing Life Cycle
POSITIONING STATEMENT For people who operate shared computers with Genuine Windows XP, the Shared Computer Toolkit is an affordable, integrated, and easy-to-use.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Lecture 23 Internet Authentication Applications modified from slides of Lawrie Brown.
Module 14: Configuring Server Security Compliance
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Step By Step Windows Server 2003 Installation Guide Step By Step Windows Server 2003 Installation Guide.
Windows NT ® Single Sign On Cross Platform Applications (Part II) John Brezak Program Manager Windows NT Security Microsoft Corporation.
Lecture 16 Page 1 Advanced Network Security Perimeter Defense in Networks: Virtual Private Networks Advanced Network Security Peter Reiher August, 2014.
Scaling NT To The Campus Integrating NT into the MIT Computing Environment Danilo Almeida, MIT.
Software Assurance Session 13 INFM 603. Bugs, process, assurance Software assurance: quality assurance for software Particularly assurance of security.
Lecture 19 Page 1 CS 236 Online 16. Account Monitoring and Control Why it’s important: –Inactive accounts are often attacker’s path into your system –Nobody’s.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Module 3 Configuring File Access and Printers on Windows 7 Clients.
Debugging and Profiling With some help from Software Carpentry resources.
ISA Server 2004 Introduction Владимир Александров MCT, MCSE, MCSD, MCDBA Корус, Управител
Microsoft Management Seminar Series SMS 2003 Change Management.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Rob Davidson, Partner Technology Specialist Microsoft Management Servers: Using management to stay secure.
The Road to Continuous Delivery at Perforce Jonathan Thorpe Technical Marketing Manager Perforce Laurette Cisneros Build & Release Engineering Manager.
Module 9 User Profiles and Social Networking. Module Overview Configuring User Profiles Implementing SharePoint 2010 Social Networking Features.
1 Running Experiments for Your Term Projects Dana S. Nau CMSC 722, AI Planning University of Maryland Lecture slides for Automated Planning: Theory and.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
MTA EXAM Software Testing Fundamentals : OBJECTIVE 6 Automate Software Testing.
1 Active Directory Service in Windows 2000 Li Yang SID: November 2000.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Integrating the Code during the Development Alexander Vakrilov Telerik Corporation
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
T Project Review Magnificent Seven Final demonstration
Active Directory and NT Kerberos. Introduction to NT Kerberos v5 What is NT Kerberos? How is it different from NTLM NT Kerberos vs MIT Kerberos Delegation.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
By: Brett Belin. Used to be only tackled by highly trained professionals As the internet grew, more and more people became familiar with securing a network.
Stop Those Prying Eyes Getting to Your Data
Constructing Deploying and Maintaining Enterprise Systems
Software testing
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Session 9 Testing Vocabulary
Network Security – Kerberos
ARCH-1: Application Architecture made Simple
Chapter 7 –Implementation Issues
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
16. Account Monitoring and Control
Presentation transcript:

Interoperability Testing Simplified gssMonger Interoperability Testing Simplified David L. Christiansen Windows Core Operating System Division Security Technology Unit

The Plan The Basics of Interoperability Testing Introduction to GssMonger How GssMonger Aids in Testing Simplified Demo of the GssMonger suite Future Plans for the Tool

What is Interop Testing? Trying one implementation of something against another implementation of the same thing.

Different from Protocol Testing Interop Testing Integration Test “Does my stuff work with your stuff?” Requires 2+ implementations. Harder to debug Easy to measure Important to System Administrators Important to Implementers Protocol Testing Targeted Test “Does my stuff look like the standard?” Requires only one implementation Viewpoint-Sensitive Easy(er) to debug Hard to measure Important to Implementers

Interop is not Transitive A and B can interop with C, but not each other. Testing against the reference implementation is not enough!

Interop is not Reflexive Probably obvious, but it bears repeating. It’s an easy (but bogus) assumption to make… “If I can logon at the Windows machine, obviously I could do so on a unix machine…”

Why Test for Interoperability? As with any bug, it is usually much easier, cheaper, and faster to fix it before release than afterward. Interop bugs tend to block deployments Interop bugs affect customers in a meaningful, tangible way. “What, why doesn’t xlock work with a Microsoft KDC? Who do I report that bug to?” -Hypothetical Customer

Challenges of Interop Testing Expensive. Requires other implementations (and understanding of them) Tedious Tests must be run against all important platforms Combinatorics are boring Test matrix grows exponentially with implementations Philosophically and Politically Taxing Requires you to define “works” for your implementation. Resolving bugs sometimes requires negotiation between implementers.

Example Postulate two realms Each realm has one server An MIT Realm A Windows Domain Each realm has one server The Windows domain has several clients All in all, a very typical heterogenous deployment.

A user in the Windows domain logs on to a client machine (right) …then authenticates to a server in the MIT Realm (left)

Easy, Right? Now, imagine that the server is a web interface to a database It now has to delegate to another server

The Sysadmin’s Burden Of course, you have to test all your client architectures too since each can have its own bugs… And each server is also a client. You also want to test with principals in each realm…

And don’t forget delegation… But if you’re implementing, you want all the machines to interoperate. Else, you have bugs that someone will find… And don’t forget delegation…

Too Many Variations! I doubt that this level of analysis is being performed today, at least using the publicly available suites. All 8x4x4=128 variations above would be difficult to perform with gss-client and gss-server. Add in the additional complexity of logging on to four clients in the unix realm (8x8x4=256 variations) Imagine as an implementer testing all 64 combinations of gssapi flags in conjunction with the above (thousands of variations).

gssMonger to the Rescue!

How does gssMonger Help? Performs baseline interoperability tests Against self (regression) Against others (interop) Automation Vastly reduces the tedium of running the same application in so many modes (kinit, gss-client… repeat, repeat, repeat…) Comprehensive Tests lots of different features in various combinations. Disambiguating: No philosophy– measurable interop statistics. If gssmonger fails, it will fail for customers too It “works” if the test succeeds. Diagnostics Provides surface errors as exposed by the implementation. Does not hide errors behind other layers

What does gssMonger do? Evaluates interoperability matrix using: Context negotiation Session protection (wrap, encrypt, sign) Password Change Password Set Delegation Provides single interface point (the master) that can control the entire testbed.

What is gssMonger? Master/Slave testing framework Designed to test context negotiation with MIT Kerberos in the Win2000 timeframe The gss-sample apps just weren’t enough. Abstraction ported to other platforms (such as Heimdal) over the years. Can also perform baseline gssapi regression (functional) testing Has found non-interop errors in various implementations (MS, MIT, Heimdal). Extensible to new classes of tests Source Code Available

Two Primary Components gssMaster gssMaggot Oversees tests Does not perform tests Collects diagnostic data from Maggots. Produces human-readable output Currently runs only on Windows. Runs tests by performing tasks as directed by Master: Authenticate to so-and-so Change XYZ’s password Knows the underlying Kerberos implementation Portable Talks only to the Master.

How gssMonger simplifies testing in the previously described bed A Specific Example How gssMonger simplifies testing in the previously described bed

1. Install gssMaggot everywhere Every machine that you might authenticate to or from should run gssMaggot. Tell the maggot whether the machine can be a server or not. Maggots require very little configuration.

2. Run gssMaster somewhere Needs a list of principals that can be used in testing Needs to know where the maggots are. gssMaster will then coordinate testing using the maggots All user interaction is done by the Master.

3. Analyze Output Hopefully, you’ll see 100% success. To an Admin, this means a correctly configured setup. To an Implementer, it means the scenario can be setup interoperably (because you did it).

One Variation gssMaster tells a Maggot to authenticate to one of the server Maggots using a client principal. The Master reports that (in this case) authentication failed.

Full Regression Run Just as in the single variation case, gssMaster produces a report describing what percentage of pairings actually interoperated. Anything listed as a failure (previous slide) is a scenario that verifiably doesn’t work.

DEMO

Going Forward

The Dream… I had hoped we could create a standard bed of machines that we could test against over the internet This proved Hard. Schedules Priorities Infrastructures It’s still the dream 

Lessons Learned One team’s test time is another team’s crunch time Testing multiple prerelease platforms together is not terribly productive. Most Importantly: No amount of cool test software can change the need to actually run it. One of the reasons interop summits are productive

Future Enhancement There are places that gssMonger can’t go right now, but could and should to further the goal of interoperability in the future. PKINIT: in progress, needs community help Other protocols (we have NTLM, some SPNEGO…) There are always bugs, of course… What would benefit the community?

Call to Action Please please please please please run this tool against your implementation. First run it against yourself (regression). If your stuff works, run it with other implementations in the mix (actual interop) We do run this test extensively inside Microsoft But we can’t keep up on new releases of other implementations. If everyone tests his/her latest bits against the other major released implementations, the major bugs will be shaken out.

In Closing Interop Testing is important but not easy gssMonger can manage and greatly simplify this arduous task If everyone does a little of it, the job gets quite a bit easier Please run gssmonger.

Questions?