Cifrado de session en el framework MultipeerConnectivity para iOS

Estoy trabajando en el framework multipeer de iOS y estoy muy contento con él. Estoy compartiendo algunos datos generales así que tengo que hacer el encryption. Cuando creamos la session obtenemos tres opciones:

self.session = [[MCSession alloc] initWithPeer:self.myPeerID securityIdentity:nil encryptionPreference:MCEncryptionRequinetworking]; 
  1. MCEncryptionNone
  2. MCEncryptionOptional
  3. MCEncryptionRequinetworking

    Leí la guía de Apple, pero no pude encontrar mucha información al respecto. Si paso MCEncryptionRequinetworking , ¿alguien sabe qué tipo de encryption hace? Gracias.

Alban Diquet analizó las comunicaciones del marco y documentó sus resultados en esta presentación de BlackHat . Desde la página 58:

MCEncryptionRequinetworking con authentication :

  • DTLS con authentication mutua:
  • Cada compañero envía su certificate y valida el certificate del otro lado.
  • RSA y EC-DSA TLS Cipher Suites
  • 30 suites de encryption admitidas en total, incluidas las suites de encryption PFS.
  • En la práctica, TLS_RSA_WITH_AES_256_CBC_SHA256 siempre se negocia, lo que no proporciona PFS

Desde la página 61:

MCEncryptionRequinetworking sin authentication :

  • DTLS con suites de encryption TLS anónimas No se intercambiaron certificates
  • Suites de encryption AES TLS "Anon":
    • TLS_DH_anon_WITH_AES_128_CBC_SHA,
    • TLS_DH_anon_WITH_AES_256_CBC_SHA,
    • TLS_DH_anon_WITH_AES_128_CBC_SHA256,
    • TLS_DH_anon_WITH_AES_256_CBC_SHA256