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 ⓘ