This session focuses on the security of Apple provided in OS X and iOS.
Apps build against with iOS 9 and OSX 11 cannot make HTTP connections. Add exceptions on info.plists for each insecure domain.
Multi-layered protections for OSX.
OSX 11 will move all third-party binary to user-space from system locations.
kSecAttrAccessibleWhenUnlocked
kSecAttrAccessibleAfterFirstUnlock
kSecAttrAccessibleAlways
//sample json:
{
"webcredentials":
{
"apps": [
"YWBN8XTPBJ.com.example.app",
"YWBN8XTPBJ.com.example.app-dev"
]
}
}
//saving to shared container
let user = "[email protected]"
let password = SecCreteSharedWebCredentialPassword().takeRetainedValue()
SecAddSharedWebCredential("www.example.com", username, passwoed) { error in print(error) }
//Retrieving from safari
SecRequestSharedWebCredential("www.macosforge.org", .None)
{ credentials, error in
if CFArrayGetCount(credentials) > 0 {
let dict = unsafeBitCast(CFArrayGetValueAtIndex(credentials, 0),
CFDictionaryRef.self) as Dictionary
let username = dict[kSecAttrAccount as String]
let password = dict[kSecSharedPassword as String]
login(username, password)
}
}
SecItem.h
Examples
Use Touch ID when :