Transcript
Page 1: Creando aplicaciones más seguras para iPhone/iPad

Creando aplicaciones más seguras para iPhone/iPad

Norberto Ortigoza

Page 2: Creando aplicaciones más seguras para iPhone/iPad

Tuesday, July 9, 13

Page 3: Creando aplicaciones más seguras para iPhone/iPad

iOS

Creating Secure Applications

Norberto OrtigozaiOS/OS X Instructor

Tuesday, July 9, 13

Page 4: Creando aplicaciones más seguras para iPhone/iPad

iOS

Creating Secure Applications

Norberto OrtigozaiOS/OS X Instructor

Tuesday, July 9, 13

Page 5: Creando aplicaciones más seguras para iPhone/iPad

Why are you here?

Avoid the consequences of security issues

Realize that security is complicated

Determine optimal ways to prevent security issues

Tuesday, July 9, 13

Page 6: Creando aplicaciones más seguras para iPhone/iPad

Content

• Hacking Tools

• iOS Security Technologies

• Myths about Security

• Common Mistakes

Tuesday, July 9, 13

Page 7: Creando aplicaciones más seguras para iPhone/iPad

Hacking Tools

Tuesday, July 9, 13

Page 8: Creando aplicaciones más seguras para iPhone/iPad

Hacking Tools

• ps, nice, lsof, tcpdump, ifcon!g, route, netstat and sysctl

Tuesday, July 9, 13

Page 9: Creando aplicaciones más seguras para iPhone/iPad

Hacking Tools

• ps, nice, lsof, tcpdump, ifcon!g, route, netstat and sysctl

• otool, nm, gdb/lldb, class-dump, apple developer tools, Cycript

Tuesday, July 9, 13

Page 10: Creando aplicaciones más seguras para iPhone/iPad

Hacking Tools

• ps, nice, lsof, tcpdump, ifcon!g, route, netstat and sysctl

• otool, nm, gdb/lldb, class-dump, apple developer tools, Cycript

• iphone-dataprotection

Tuesday, July 9, 13

Page 11: Creando aplicaciones más seguras para iPhone/iPad

iOS Security Technologies

Tuesday, July 9, 13

Page 12: Creando aplicaciones más seguras para iPhone/iPad

Sandboxing

Tuesday, July 9, 13

Page 13: Creando aplicaciones más seguras para iPhone/iPad

Keychain

Tuesday, July 9, 13

Page 14: Creando aplicaciones más seguras para iPhone/iPad

Data Protection

Tuesday, July 9, 13

Page 15: Creando aplicaciones más seguras para iPhone/iPad

CommonCrypto

3DES

Key derivation functions (KDFs) SHA

AES

Tuesday, July 9, 13

Page 16: Creando aplicaciones más seguras para iPhone/iPad

Myths

Tuesday, July 9, 13

Page 17: Creando aplicaciones más seguras para iPhone/iPad

Certi!cations mean a device is secure and can be trusted (FIPS 140-2)

Myth #1

Tuesday, July 9, 13

Page 18: Creando aplicaciones más seguras para iPhone/iPad

Depending on a central set of manufacturer’s security mechanisms improves the overall security

Myth #2

Tuesday, July 9, 13

Page 19: Creando aplicaciones más seguras para iPhone/iPad

The iOS File system encryption prevents data on the device from being stolen

Myth #3

Tuesday, July 9, 13

Page 20: Creando aplicaciones más seguras para iPhone/iPad

If an application implements encryption securely, data cannot be recovered from the device

Myth #4

Tuesday, July 9, 13

Page 21: Creando aplicaciones más seguras para iPhone/iPad

Remote wipe and data erasure features will protect your data in the event of a theft

Myth #5

Tuesday, July 9, 13

Page 22: Creando aplicaciones más seguras para iPhone/iPad

Applications can securely manage access control and enforce process rules

Myth #6

Tuesday, July 9, 13

Page 23: Creando aplicaciones más seguras para iPhone/iPad

Case Study

Tuesday, July 9, 13

Page 24: Creando aplicaciones más seguras para iPhone/iPad

Case Study

@interface DTPinLockController : XXUnknownSuperclass <UITextFieldDelegate> { int mode; NSArray *pins; UITextField *hiddenTextField; BOOL first; NSString *pin; unsigned numberOfDigits;}

@property(retain, nonatomic) NSString* pin;@property(retain, nonatomic) unsigned numberOfDigits;- (void)pinLockControllerDidFinishUnloking;

@end

Tuesday, July 9, 13

Page 25: Creando aplicaciones más seguras para iPhone/iPad

Common Mistakes

Tuesday, July 9, 13

Page 26: Creando aplicaciones más seguras para iPhone/iPad

Storing the key with the lock

Mistake #1

Tuesday, July 9, 13

Page 27: Creando aplicaciones más seguras para iPhone/iPad

Unencrypted Application Data

Mistake #2

Tuesday, July 9, 13

Page 28: Creando aplicaciones más seguras para iPhone/iPad

Failure to use one-way hashes for passwords

Mistake #3

Tuesday, July 9, 13

Page 29: Creando aplicaciones más seguras para iPhone/iPad

Relying on logic checks, instead of enforcing security with encryption

Mistake #4

Tuesday, July 9, 13

Page 30: Creando aplicaciones más seguras para iPhone/iPad

Relying on Application-level policy enforcement

Mistake #5

Tuesday, July 9, 13

Page 31: Creando aplicaciones más seguras para iPhone/iPad

Failing to marry data encryption keys to a user passphrase

Mistake #6

Tuesday, July 9, 13

Page 32: Creando aplicaciones más seguras para iPhone/iPad

Case Study

Tuesday, July 9, 13

Page 33: Creando aplicaciones más seguras para iPhone/iPad

Case Study@interface SharedConfiguration { NSMutableDictionary* applicationData; NSMutableDictionary* currentTransaction; NSMutableArray *transactionsList; NSString *merchant;}...

data = [SharedConfiguration sharedConfiguration];data.applicationData.AccountInformation;{ securityQuestion: “What is the name of the city you were born in?”, securityAnswer: “New York City”, rpnumber: “12345”, terminalID: “1234”, gpsLatitude: “40.XXXXXXXXX”, gpsLongitude: “80.XXXXXXXXX”, merchantID: “1234567890123”, merchantUserName: “username”, merchantPassword: “password”, applicationPassword: “49283”}

Tuesday, July 9, 13

Page 34: Creando aplicaciones más seguras para iPhone/iPad

Summary

• Password strength

• Use Master passwords

• Random password generators

• Hash functions

• Server validation

• Hacking tools

Tuesday, July 9, 13

Page 35: Creando aplicaciones más seguras para iPhone/iPad

Q&A

Tuesday, July 9, 13

Page 36: Creando aplicaciones más seguras para iPhone/iPad

Contact Information

Norberto [email protected]://www.hiphoox.comTwitter: @hiphoox

CocoaHeads Grouphttp://www.cocoaheads.org/mx/MexicoCity/index.htmlTwitter: @cocoaheadsmx

Tuesday, July 9, 13

Page 37: Creando aplicaciones más seguras para iPhone/iPad

BooksHacking and Securing iOS Applications: Stealing Data, Hijacking Software, and How to Prevent It

Mac OS X and iOS Internals: To the Apple's Core

Apple Coding Guidehttps://developer.apple.com/library/ios/documentation/Security/Conceptual/SecureCodingGuide/Introduction.html

iPhone-dataprotectionhttp://code.google.com/p/iphone-dataprotection

References

Tuesday, July 9, 13


Top Related