Debugging network activity on an iOS device can be challenging. There are fantastic tools built into Xcode that allow you to to see the data flowing in and out of the device, but troubleshooting network activity at the TCP level can be difficult. Often the best option you have is to perform a packet capture at the router level, but this presents it’s own set of challenges.
Debugging network issues no matter what platform you are on can be challenging. Often, the deeper you dig into the operating system the harder it can be to analyze and accurately interpret the network traffic you are seeing. And working with iOS is no different. Debugging iOS traffic from a device to a router or from a device to a server can present many challenges.
A few weeks ago Apple released a new open source framework on GitHub called Swift-NIO. What is Swift-NIO? The opening line on GitHub describes the project as a cross platform, event driven, non-blocking, application framework to develop high performance networking applications in Swift. So what does that mean? That means that Apple has developed a foundational project for any application that may need take advantage of an asynchronous networking framework, similar to that of Node.js.
Over the last 6 months I have noticed a lot of code going into CPython working with SSL and TLS. At first I did not think anything commits and brushed it off as bug fixes and improvements. However, as the months went by and I kept seeing these commits come through it started to get my curiosity piqued about what might be happening in language under the hood.
In an effort to always keep myself informed and up to date with the latest network security enhancements for iOS and macOS I downloaded and read through the Apple White Paper, entitled iOS Security Guide, January 2018. This security guide itemizes all of the latest security standards and enhancements Apple has put out for development and info security teams to reference when making decisions about how to design their applications. Reading through this document I can recognize many notable sections, but the section th