Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kerberos + Android: A Tale of Opportunity

Avatar for wolfSSL wolfSSL
February 27, 2012

Kerberos + Android: A Tale of Opportunity

Slides from Chris Conlon's presentation about yaSSL's work porting the CyaSSL embedded SSL library, the MIT Kerberos library, and the Kerberos GSS-API to the Android platform.

To learn more, visit www.yassl.com.

Avatar for wolfSSL

wolfSSL

February 27, 2012
Tweet

More Decks by wolfSSL

Other Decks in Technology

Transcript

  1. Why Go Mobile? 80% of the world's population now has

    a mobile phone. © Copyright 2012 yaSSL Slide 3 / 39 ( 5 Billion Phones )
  2. Why Go Mobile? Of those 80%, are smartphones. © Copyright

    2012 yaSSL 1.08 Billion 21.6% Slide 4 / 39
  3. Why Go Mobile? In the US: the ratio is even

    higher, with smartphones making up 40% of all mobile phones. 60% 40% © Copyright 2012 yaSSL Slide 5 / 39
  4. Android? U.S. Smartphones (40%) © Copyright 2012 yaSSL Android 40%

    iPhone 28% Blackberry 19% Windows Mobile, 7% Other, 5% Windows Phone 7, 1% == Slide 7 / 39 Reason 1: US Market Dominance
  5. Android? Reason 2: Consumer Popularity © Copyright 2012 yaSSL • 

    100 million activated Android devices (now 400,000 / day) •  200,000 apps in Android Market (4.5 billion activations to date) •  310 devices available to consumers (112 countries) Slide 8 / 39
  6. Android? Reason 3: Developer Popularity © Copyright 2012 yaSSL • 

    450,000 developers building for the platform! Slide 9 / 39
  7. Android. Meaning? © Copyright 2012 yaSSL •  Opportunity for increased

    Kerberos visibility •  Useful for Android and Kerberos developers •  Fun to see where the community takes it Slide 10 / 39
  8. Goals We wanted to fill a missing gap. © Copyright

    2012 yaSSL 1.  Port Kerberos libraries to Android 2.  Port some C-based Kerberos client apps to Android kinit klist kvno kdestroy Slide 12 / 39
  9. Goals We wanted to spark community involvement. © Copyright 2012

    yaSSL 3.  Build a sample Android NDK App (with a simple GUI) 4.  Give changes back to community Slide 13 / 39
  10. Crypto Added new CyaSSL crypto implementation © Copyright 2012 yaSSL

    Slide 16 / 39 •  Kerberos crypto options: CyaSSL, OpenSSL, NSS, built-in
  11. Crypto Added new CyaSSL crypto implementation © Copyright 2012 yaSSL

    Slide 17 / 39 •  CyaSSL is very portable
  12. Android Port Kerberos Libraries + CyaSSL Android. © Copyright 2012

    yaSSL Slide 19 / 39 •  Cross-compiled libraries for Android •  Created shell script for easy reproduction by developers
  13. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 21 / 39 Home Screen •  Single screen •  Uses JNI •  Wrapper around native client apps
  14. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 22 / 39 kinit •  Gets a ticket using specified principal
  15. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 23 / 39 klist •  Lists our tickets
  16. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 24 / 39 kvno •  Gets a service ticket for the entered principal
  17. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 25 / 39 klist after kvno •  Verify that we got a ticket
  18. Android App Simple sample NDK project © Copyright 2012 yaSSL

    Slide 26 / 39 kdestroy •  Clear our ticket cache
  19. Notes •  Uses a keytab instead of passwords •  Storage

    locations have been chosen for convenience Android App © Copyright 2012 yaSSL Slide 27 / 39 Can be easily modified to what the developer needs Currently at /data/local/kerberos
  20. License Type •  Application code will remain under the MIT

    license Android App © Copyright 2012 yaSSL Slide 28 / 39
  21. GSS-API Java Wrapper © Copyright 2012 yaSSL Slide 30 /

    39 •  Provide Java bindings for developers to use •  Uses framework •  Wrapper around native Kerberos GSS-API library (Contains functionality found in gssapi.h)
  22. GSS-API Java Wrapper © Copyright 2012 yaSSL Slide 31 /

    39 2 example clients: •  Android client functionality •  Stand-alone Java app for desktop use
  23. GSS-API Integrated into sample app. © Copyright 2012 yaSSL Slide

    32 / 39 Example Client •  Est. context with example server •  Send wrapped message, verify returned sig. block (gss_wrap, gss_verify_mic) •  Repeat #2, but with gss_seal, gss_verify •  Misc. API tests and exit.
  24. GSS-API Integrated into sample app. © Copyright 2012 yaSSL Slide

    33 / 39 Example Server •  Est. context with client •  Receive and unwrap a message from the client •  Generate & send signature block for received message
  25. The Future Look to the Community. © Copyright 2012 yaSSL

    Slide 35 / 39 Availability •  Code will be linked from both MIT and yaSSL websites
  26. The Future Look to the Community. © Copyright 2012 yaSSL

    Slide 36 / 39 PR Activity / Visibility •  Blog posts •  Forum posts •  Press releases •  GitHub •  Mailing lists •  etc...
  27. References © Copyright 2012 yaSSL Slide 38 / 39 Statistics

    •  http://ansonalex.com/infographics/smartphone-usage-statistics-2012-infographic/ •  http://www.go-gulf.com/blog/smartphone •  http://blog.nielsen.com/nielsenwire/online_mobile/40-percent-of-u-s-mobile-users-own-smartphones-40- percent-are-android/ •  Google I/O 2011: http://www.google.com/events/io/2011 Project Locations Kerberos: http://web.mit.edu/kerberos/ CyaSSL: http://www.yassl.com/ •  Android NDK App: https://github.com/cconlon/kerberos-android-ndk •  GSS-API Java Wrapper: https://github.com/cconlon/kerberos-java-gssapi