creando aplicaciones más seguras para iphone/ipad

37
Creando aplicaciones más seguras para iPhone/iPad Norberto Ortigoza

Upload: software-guru

Post on 06-May-2015

304 views

Category:

Technology


1 download

DESCRIPTION

http://sg.com.mx/sgce/2013/sessions/creando-aplicaciones-m%C3%A1s-seguras-para-iphoneipad Conforme los dispositivos basados en iOS como el iPhone y el iPad se utilizan cada vez más en contextos empresariales, los desarrolladores de software que construyen aplicaciones empresariales móviles y los administradores de sistemas que gestionan dicha infraestructura, se ven en la necesidad de incorporar mecanismos de seguridad requeridos en dicho contexto. En esta plática exploraremos los principales elementos del modelo de seguridad de iOS y cómo se pueden utilizar para construir aplicaciones mas seguras para contextos empresariales. Esta es una plática técnica donde se abordarán conceptos de bajo nivel del sistema operativo.

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