NSSecureCoding

E820428

NSSecureCoding is an Apple protocol that extends NSCoding to require secure, type-checked archiving and unarchiving of objects to prevent object substitution attacks.

All labels observed (2)

Label Occurrences
NSSecureCoding canonical 35
NSSecureCoding (via encoded objects) 1

How this entity was disambiguated

Statements (45)

Predicate Object
instanceOf Apple protocol
Objective-C protocol
Swift protocol
category security-related API
serialization protocol
conformancePattern classes adopt protocol to be securely archived
definedIn Foundation framework
designGoal backward compatibility with NSCoding
opt-in secure coding behavior
documentationURL https://developer.apple.com/documentation/foundation/nssecurecoding
extends NSCoding
feature class whitelist during unarchiving
prevents decoding of unexpected classes
type-checked decoding
introducedTo improve NSCoding security model
language Objective-C
Swift
platform Apple platforms
iOS
macOS
tvOS
watchOS
purpose prevention of object substitution attacks
secure archiving of objects
secure unarchiving of objects
relatedTo NSCoder
NSKeyedArchiver
NSKeyedUnarchiver
requires encodeWithCoder:
implementation of NSCoding methods
initWithCoder:
requiresForFullSecurity requiresSecureCoding set to YES on coder
requiresMethod supportsSecureCoding
requiresProperty +supportsSecureCoding
requiresPropertySemantics class property
requiresPropertyType BOOL
securityProperty mitigates object substitution vulnerabilities
reduces risk of deserialization attacks
usedFor persisting objects to disk securely
secure XPC communication payloads
sending objects over IPC securely
usedWith NSKeyedArchiver requiresSecureCoding
NSKeyedUnarchiver requiresSecureCoding
validationMechanism NSCoder decodeObjectOfClass:forKey:
NSCoder decodeObjectOfClasses:forKey:

How these facts were elicited

Referenced by (36)

Full triples — surface form annotated when it differs from this entity's canonical label.

NSData conformsTo NSSecureCoding
NSDate conformsTo NSSecureCoding
NSCoder relatedTo NSSecureCoding
HKQuantitySample conformsTo NSSecureCoding
HKWorkout conformsTo NSSecureCoding
SKView conformsTo NSSecureCoding
SKCameraNode conformsTo NSSecureCoding
SCNNode conformsTo NSSecureCoding
SCNMaterial conformsTo NSSecureCoding
SCNGeometry conformsTo NSSecureCoding
SCNLight conformsTo NSSecureCoding
SCNParticleSystem conformsTo NSSecureCoding
AVCaptureDevice conformsTo NSSecureCoding
AVAudioPlayer conformsToProtocol NSSecureCoding
AVAudioRecorder conformsTo NSSecureCoding
GCMotion conformsTo NSSecureCoding
NSArray conformsTo NSSecureCoding
NSOperationQueue conformsTo NSSecureCoding
NSMutableSet conformsTo NSSecureCoding
NSFileHandle conformsTo NSSecureCoding
NSCoding relatedTo NSSecureCoding
NSCalendar conformsTo NSSecureCoding
NSDateComponents conformsTo NSSecureCoding
NSTimeZone conformsTo NSSecureCoding
NSKeyedArchiver conformsTo NSSecureCoding (via encoded objects)
linked to: NSSecureCoding
NSMutableData conformsTo NSSecureCoding
NSUnarchiver conformsTo NSSecureCoding
MPSVector conformsTo NSSecureCoding
CIImage conformsTo NSSecureCoding
HKQuantity conformsTo NSSecureCoding
HMEventTrigger conformsTo NSSecureCoding
HMCharacteristicEvent conformsTo NSSecureCoding
NSResponder conformsTo NSSecureCoding
NSControl conformsTo NSSecureCoding
NSImage conformsTo NSSecureCoding
NSColor conformsTo NSSecureCoding