Alternative network identifier to SSID in iOS 13

As noted in https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo , we cannot get the SSID or BSSID in iOS 13 if the app doesn't have location permission. I understand that this is for privacy reasons, as the Wi-Fi SSID can be used to obtain location.


However, we just want to use the SSID to identify whether a network is the same or different as a previous network, so we can cache certain resolved IP address and proxy information which might be specific to each Wi-Fi network. For this purpose, we don't actually need the SSID itself; we just need some identifier that will be the same when it's on the same Wi-Fi network, and different for different networks. Is there a way to get some kind of an "anonymized network identifier" that will be consistent for networks with the same SSID for our app on a particular device, but which doesn't reveal the actual SSID so it doesn't affect the user's location privacy?

Replies

If you're just looking for something to hang your hat on, have you checked out https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor?


Just be careful with your caching, as it might be close to the edge of Apple's privacy mandate...even anonymous tags can be used to ferret out user demographics, etc.

Is there a way to get some kind of an "anonymized network identifier" that will be consistent for networks with the same SSID for our app on a particular device, but which doesn't reveal the actual SSID so it doesn't affect the user's location privacy?

No. I suspect that implementing this would be tricky because it’s much easier to de-anonymise data than you might think. However, you should feel free to file an enhancement request describing your requirements.

Please post your bug number, just for the record.

Taking a step back, you wrote:

However, we just want to use the SSID to identify whether a network is the same or different as a previous network, so we can cache certain resolved IP address and proxy information which might be specific to each Wi-Fi network.

Huh? It’s really common for the same SSID to be used in a lot of different locations (think “Big Brand Coffee Shop Free Wi-Fi”), so how can you cache stuff based on that?

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"