12
iPhone Security: Understanding the KeyChain Nicholis Bufmack and Ryan Thomas CS 691 Summer 2009

iPhone Security: Understanding the KeyChain

  • Upload
    tulia

  • View
    34

  • Download
    1

Embed Size (px)

DESCRIPTION

Nicholis Bufmack and Ryan Thomas CS 691 Summer 2009. iPhone Security: Understanding the KeyChain. Presentation Outline. Mobile security issues The iPhone KeyChain Authentication Certificate storage Code signing and publisher verification Final Comments References. - PowerPoint PPT Presentation

Citation preview

Page 1: iPhone  Security: Understanding the KeyChain

iPhone Security:Understanding the KeyChain

Nicholis Bufmack and

Ryan Thomas

CS 691Summer 2009

Page 2: iPhone  Security: Understanding the KeyChain

Presentation Outline

Mobile security issues The iPhone KeyChain Authentication Certificate storage Code signing and publisher verification Final Comments References

Page 3: iPhone  Security: Understanding the KeyChain

Mobile Security Issues:The Problem

Mobile devices can connect to the internet. This brings with it the same problems as more traditional computing.

Additionally, more and more mobile devices allow users to download and install custom applications.

With both issues in mind, the developer must have a clear security solution in mind while simultaneously considering issues of limited processing power and memory.

Page 4: iPhone  Security: Understanding the KeyChain

Mobile Security Issues:The Problem (continued)

Traditional approach includes authentication services, keys, and certificates, as well as traditional shared key encryption.

Different developers using custom mechanisms leads to potential security gaps and management problems.

Most efficient approach is to have a shared repository for security tokens and a API for interfacing with the token library.

Page 5: iPhone  Security: Understanding the KeyChain

The iPhone Keychain

13.7 million iPhones sold in 2008 iPhone OS is based on the Mac OS X Security is handled by the Security Framework The storage for passwords, accounts,

certificates, and keys is called the Keychain. On the Mac, the Keychain can be easily

accessed to add, delete, and modify security tokens.

Page 6: iPhone  Security: Understanding the KeyChain

The iPhone Keychain (continued)

Page 7: iPhone  Security: Understanding the KeyChain

The iPhone Keychain (continued)

Security tokens are stored by Keychain Keychains allow security tokens to be stored in

logical groupings Everyone has a login, system, and system store

Keychain One Keychain must be the default. This is the

first place an application usually looks for a security token.

Within a Keychain, tokens are categorized.

Page 8: iPhone  Security: Understanding the KeyChain

Authentication

The Keychain can act as a simple password/username repository keyed on the application or service.

The Keychain can also act as an intermediary agent presenting authentication credentials on behalf of a user, service, or application.

Authentication tokens within the Keychain are encrypted.

Page 9: iPhone  Security: Understanding the KeyChain

Certificate Storage

The Keychain supports X.509 certificate storage.

RSA encryption Key storage and use Many helper functions exist to ease

development Root certificates are stored enabling verification

of certificate chains.

Page 10: iPhone  Security: Understanding the KeyChain

Code Signing and Publisher Verification

Code signing allows a software publisher to sign code for installation.

Users of the software can then validate the identity of the publisher before installation.

Useful for controlling proliferation of malware. Signing is based on presentation of a

developer's certificate. Extra steps for Apple developers if they want to

test on a device!

Page 11: iPhone  Security: Understanding the KeyChain

Final Comments

The Keychain API is powerful and robust, but may be daunting to the novice.

Those familiar with the OpenSSL library will have an easier time of it.

In fact, it's easy to port algorithms from OpenSSL to the Keychain API.

Implementations are somewhat different from platform to platform: what works on the Mac may need to be modified slightly for the iPhone.

Page 12: iPhone  Security: Understanding the KeyChain

References

Apple Developer Connection. http://apple.developer.com

Talukder, Asoke and Roopa Yavagal. 2006. Mobile Computing. New York: McGraw-Hill Professional