logo_kerberos.gif

Difference between revisions of "Roadmap"

From K5Wiki
Jump to: navigation, search
Line 40: Line 40:
 
** "Lite" client
 
** "Lite" client
 
** "Lite" server
 
** "Lite" server
** "GSS-API": separate context establishment from message protection functions, e.g. Solaris user/kernel space split
+
** GSS-API: separate context establishment from message protection functions, e.g. Solaris user/kernel space split
 
* KDC Database modularity (long-term)
 
* KDC Database modularity (long-term)
 
** Does the existing DAL make sense?
 
** Does the existing DAL make sense?
Line 51: Line 51:
 
** Profile / configuration
 
** Profile / configuration
 
* Secure co-processor ("would be nice")
 
* Secure co-processor ("would be nice")
  +
* Crypto modularity -- make sure PKCS#11 etc. work well
   
 
=== End-user experience ===
 
=== End-user experience ===
   
* Localization of static error strings (1.7+)
+
* Localization
 
* Credential management
 
* Credential management
 
** KIM API (done)
 
** KIM API (done)
 
** Cross-platform CCAPI
 
** Cross-platform CCAPI
 
*** Done for Mac & Windows
 
*** Done for Mac & Windows
*** UNIX implementation (1.7+)
+
*** UNIX implementation
   
 
=== Administrator Experience ===
 
=== Administrator Experience ===
Line 65: Line 66:
 
* Improve key rollover
 
* Improve key rollover
 
** Application service keys
 
** Application service keys
  +
* Add interface to purge old keys (1.8 patch?)
  +
* Add interface to delete keys of specific enctypes (1.8 patch?)
 
* Decrease DNS-related fragility
 
* Decrease DNS-related fragility
 
* [[Projects/Trace logging|Trace logging]] for easier troubleshooting (1.9)
 
* [[Projects/Trace logging|Trace logging]] for easier troubleshooting (1.9)
Line 74: Line 77:
 
=== Performance ===
 
=== Performance ===
   
* Decrease DNS traffic (1.7)
+
* Decrease DNS traffic
** Stop trying to crawl up to the root
 
 
* Replay cache ("rcache")
 
* Replay cache ("rcache")
 
** Disable on KDC
 
** Disable on KDC
 
*** Avoids known false-positive issues
 
*** Avoids known false-positive issues
** Improve implementation (1.7+)
+
** Improve implementation
** Support disabling by service type name (1.7+)
+
** Support disabling by service type name
 
* Enhancements to improve concurrency
 
* Enhancements to improve concurrency
 
** Explicit state
 
** Explicit state
Line 87: Line 90:
 
=== Protocol evolution ===
 
=== Protocol evolution ===
   
* International strings in protocol (1.8+; IETF)
+
* International strings in protocol (need IETF feedback)
  +
** Principal names
  +
** Error strings, etc. (need language tag negotiation)
 
* Timestamp-independence
 
* Timestamp-independence
 
* Replay-proofing protocols
 
* Replay-proofing protocols

Revision as of 12:40, 16 February 2010

This is the outline of the development roadmap for MIT Kerberos. A more comprehensive list of projects is also available; some individual projects have links below.

Timeline

Target 6 to 12 month cycle. (9 months plus/minus 3)

krb5-1.8
Branch Jan. 2009
Release early Mar. 2010
krb5-1.9
Branch Sep. 2010
Release Dec. 2010
krb5-1.10
Branch Jul. 2011
Release Sep. 2011

Guiding principles

  • Code quality
  • Developer experience (including modularity)
  • End-user experience
  • Administrator experience
  • Performance
  • Protocol evolution

Current roadmap items

Code quality

  • Move toward test-driven development
  • Increase conformance to coding style
    • Selective refactoring
    • Continue formatting cleanup

Developer experience

  • Support readily building subsets
    • "Lite" client
    • "Lite" server
    • GSS-API: separate context establishment from message protection functions, e.g. Solaris user/kernel space split
  • KDC Database modularity (long-term)
    • Does the existing DAL make sense?
    • Make data model less "blobby"
    • Track IETF data model work
  • Plugin support improvements
    • PRNG
    • GSS-API mechanism glue
    • DNS / host-to-realm mapping
    • Profile / configuration
  • Secure co-processor ("would be nice")
  • Crypto modularity -- make sure PKCS#11 etc. work well

End-user experience

  • Localization
  • Credential management
    • KIM API (done)
    • Cross-platform CCAPI
      • Done for Mac & Windows
      • UNIX implementation

Administrator Experience

  • Improve key rollover
    • Application service keys
  • Add interface to purge old keys (1.8 patch?)
  • Add interface to delete keys of specific enctypes (1.8 patch?)
  • Decrease DNS-related fragility
  • Trace logging for easier troubleshooting (1.9)
  • Plugins for password quality checks (1.9)
  • Plugins for login failure lockout
  • Plugins for audit support
  • Plugins for password synchronization

Performance

  • Decrease DNS traffic
  • Replay cache ("rcache")
    • Disable on KDC
      • Avoids known false-positive issues
    • Improve implementation
    • Support disabling by service type name
  • Enhancements to improve concurrency
    • Explicit state
    • Reduce mutex contention
    • Support asynchronous APIs and frameworks such as Apple's Grand Central Dispatch; begin refactoring code to make this easier

Protocol evolution

  • International strings in protocol (need IETF feedback)
    • Principal names
    • Error strings, etc. (need language tag negotiation)
  • Timestamp-independence
  • Replay-proofing protocols
  • Encryption algorithm updates (SHA-2, SHA-3, CCM, GCM)
  • S4U2Self/S4U2Proxy

Completed roadmap items

Code quality

  • Remove krb4 (1.7)
  • Move applications to separate distribution (1.8)
  • Use safer library functions
    • Avoids false positives
    • Avoids need to (probably manually) evaluate "unsafe" calls
    • Stop using strcpy, strcat, sprintf, etc.
      • Mostly done
      • New internal APIs for complex operations
  • Reduce commitment to "difficult" platforms

Developer experience

  • GSS-API mechglue changes to enable NTLM support (1.7)
  • Crypto modularity (1.8)
    • Native (accelerated) crypto API support
    • Performance optimizations (caching, etc.)
    • New API design for encryption performance (1.8)
  • "The Great Reindent" (1.8)

End-user experience

  • Referrals (1.7)

Administrator experience

  • Incremental propagation (1.7)
  • Master key rollover (1.7)
  • Auditing support (log all ticket requests) (1.7)
  • Disable DES by default (1.8)
  • Lockout for repeated login failures (1.8)
    • Implement LHA/Apple proposal to store config information in ccache to signal when a realm supports referrals and thus the future capability to eschew reverse DNS resolution

Performance

  • New crypto API (1.8) facilitates optimizations
  • Replay cache ("rcache")
    • Collision avoidance (1.7)

Protocol evolution

  • Encryption algorithm negotiation (1.7)
  • Microsoft Kerberos extensions (1.7)
  • Improved PKINIT support (1.7)
  • Anonymous PKINIT (1.8)
  • FAST (done in 1.7 for a subset; IETF)