ความปลอดภัยของ TLS
iOS, iPadOS และ macOS รองรับความปลอดภัยชั้นขนส่ง (TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3) และความปลอดภัยชั้นขนส่งดาต้าแกรม (DTLS) โปรโตคอล TLS รองรับทั้ง AES128 และ AES256 และเหมาะกับกระบวนการรักษาความปลอดภัยในอนาคต แอปอินเทอร์เน็ตต่างๆ เช่น Safari, ปฏิทิน และเมล จะใช้โปรโตคอลนี้โดยอัตโนมัติเพื่อเปิดใช้งานช่องทางการสื่อสารระหว่างอุปกรณ์และบริการเครือข่าย API ระดับสูง (เช่น CFNetwork) ทำให้นักพัฒนาใช้งาน TLS ในแอปของตนได้อย่างง่ายดาย ในขณะที่ API ระดับต่ำ (เช่น Network.framework) ให้การควบคุมในระดับที่ละเอียด CFNetwork จะไม่อนุญาต SSL 3 และแอปที่ใช้งาน WebKit (เช่น Safari) จะถูกห้ามสร้างการเชื่อมต่อ SSL 3
ใน iOS 11 ขึ้นไป และ macOS 10.13 ขึ้นไป ใบรับรอง SHA-1 จะไม่ได้รับอนุญาตสำหรับการเชื่อมต่อ TLS อีกต่อไปยกเว้นว่าจะเชื่อถือแล้วจากผู้ใช้ ใบอนุญาตที่มีกุญแจ RSA ที่สั้นกว่า 2048 บิตก็จะไม่ได้รับอนุญาตอีกด้วย ชุดรหัสสมมาตร RC4 เลิกใช้แล้วใน iOS 10 และ macOS 10.12 ตามค่าเริ่มต้น ไคลเอ็นต์หรือเซิร์ฟเวอร์ TLS ที่ปรับใช้กับ API การส่งข้อมูลที่ปลอดภัยจะไม่เปิดใช้งานชุดรหัส RC4 และไม่สามารถเชื่อมต่อเมื่อ RC4 เป็นชุดรหัสเพียงชุดเดียวที่พร้อมใช้งานได้เท่านั้น ในการทำให้ปลอดภัยยิ่งขึ้น ควรอัปเกรดบริการหรือแอปที่ต้องใช้ RC4 เพื่อให้ใช้งานชุดรหัสที่ปลอดภัยได้ ใน iOS 12.1 ใบรับรองที่ออกหลังวันที่ 15 ตุลาคม 2561 จากใบรับรองรากที่ระบบเชื่อถือแล้วจะต้องมีการเก็บบันทึกการใช้งานไว้ในบันทึกการใช้งานความโปร่งใสของใบรับรองที่เชื่อถือได้เพื่อให้ได้รับอนุญาตสำหรับการเชื่อมต่อกับ TLS ใน iOS 12.2 ระบบจะเปิดใช้งาน TLS 1.3 ตามค่าเริ่มต้นสำหรับ API ที่ชื่อ Network.framework และ NSURLSession ไคลเอ็นต์ TLS ที่ใช้ API การส่งข้อมูลที่ปลอดภัยไม่สามารถใช้ TLS 1.3
ความปลอดภัยของการส่งข้อมูลแอป
ความปลอดภัยของการส่งข้อมูลแอประบุข้อกำหนดการเชื่อมต่อตามค่าเริ่มต้นเพื่อให้แอปปฏิบัติตามแนวปฏิบัติเพื่อให้เชื่อมต่อได้อย่างปลอดภัยที่สุดเมื่อใช้งาน API ที่ชื่อ NSURLConnection, CFURL หรือ NSURLSession ตามค่าเริ่มต้น ความปลอดภัยของการส่งข้อมูลแอปจำกัดการเลือกรหัสที่จะรวมอยู่ในชุดที่มีกระบวนการรักษาความปลอดภัยในอนาคตเท่านั้น โดยเฉพาะ:
ECDHE_ECDSA_AES และ ECDHE_RSA_AES ใน Galois/Counter Mode (GCM)
โหมด Cipher Block Chaining (CBC)
แอปสามารถปิดใช้งานข้อกำหนดกระบวนการรักษาความปลอดภัยในอนาคตต่อโดเมนได้ ในกรณีเพิ่ม RSA_AES ในชุดรหัสที่พร้อมใช้งาน
เซิร์ฟเวอร์จะต้องรองรับ TLS 1.2 รวมทั้งกระบวนการรักษาความปลอดภัยในอนาคต และใบรับรองจะต้องถูกต้องและลงชื่อโดยใช้ SHA256 ขึ้นไป โดยมีกุญแจ RSA 2048 บิต หรือกุญแจเส้นโค้งรูปไข่ 256 บิตเป็นอย่างต่ำ
การเชื่อมต่อเครือข่ายที่ไม่ตรงตามข้อกำหนดเหล่านี้จะดำเนินการไม่สำเร็จ นอกเสียจากแอปนั้นจะแทนที่ความปลอดภัยของการส่งข้อมูลแอป ใบรับรองที่ไม่ถูกต้องจะทำให้เกิดความล้มเหลวและไม่มีการเชื่อมต่อ ความปลอดภัยของการส่งข้อมูลแอปจะปรับใช้โดยอัตโนมัติกับแอปทั้งหมดที่คอมไพล์มาสำหรับ iOS 9 ขึ้นไปและ macOS 10.11 ขึ้นไป
การตรวจสอบความถูกต้องของใบรับรอง
การประเมินสถานะที่เชื่อถือแล้วของใบรับรอง TLS จะดำเนินการโดยสอดคล้องกับมาตรฐานอุตสาหกรรมที่สร้างขึ้น ดังที่เริ่มต้นไว้ใน RFC 5280 และมาตรฐานรวมที่เกิดขึ้นใหม่ เช่น RFC 6962 (ความโปร่งใสของใบรับรอง) ใน iOS 11 ขึ้นไปและ macOS 10.13 ขึ้นไป อุปกรณ์ Apple จะอัปเดตรายการปัจจุบันของใบรับรองที่ถูกเพิกถอนและถูกจำกัดเป็นระยะๆ รายการนี้รวบรวมจากรายการการเพิกถอนใบรับรอง (CRL) ที่เผยแพร่โดยผู้ให้บริการออกใบรับรองลำดับชั้นบนสุดแบบในตัวที่ Apple เชื่อถือแล้วแต่ละราย รวมถึงโดยผู้ออกใบรับรอง CA ลำดับชั้นถัดลงมาด้วย รายการดังกล่าวอาจรวมถึงการจำกัดอื่นๆ โดยขึ้นอยู่กับดุลพินิจของ Apple ข้อมูลนี้จะใช้พิจารณาทุกครั้งที่มีการใช้ฟังก์ชั่นเครือข่าย API เพื่อทำการเชื่อมต่อที่ปลอดภัย ถ้ามีใบรับรองที่ถูกเพิกถอนจาก CA มากเกินกว่าที่จะแสดงแต่ละรายการได้ การประเมินความน่าเชื่อถืออาจจำเป็นต้องใช้การตอบสนองสถานะใบรับรองออนไลน์ (OCSP) แทน และถ้าไม่มีการตอบสนอง การประเมินความน่าเชื่อถือจะดำเนินการไม่สำเร็จ