We are building an iOS SDK using certificate transparency to verify SSL connections. This is was initially implemented using ATS in the info.plist but we came across an issue:
Users could install a profile and fully trust a root certificate that will allow them to override these checks. Burpsuite does this out of the box as well.
The workaround we found was to use URLSessionDelegate
and after evaluation, check the result of SecTrustCopyResult(_: SecTrust)
for the key kSecTrustCertificateTransparency
, making sure the value was true
.
The issue here is that this key is only present from iOS 13 onwards. How should we implement this for earlier versions of iOS? (we are currently supporting iOS 11.0 and up)