He estado leyendo sobre Secure Remote Password protocol de Stanford, y parece ideal para el tipo de entorno en el que se ejecutan las aplicaciones de iPhone. Desafortunadamente, no he podido encontrar una buena implementación de Objective-C del protocolo. Ni, por lo que puedo decir, hacer el crypto libraries in the SDK implementarlo.Implementación de contraseña remota segura para iPhone
¿Alguien sabe de tal implementación?
Al fallar, ¿cuál es mi mejor apuesta, ¿crees? Podría intentar build OpenSSL into my app, pero se siente como realmente grande agregar para esta pequeña pieza. Podría intentar traducir las implementaciones JavaScript o Java en Objective-C, pero eso infringe la regla n. ° 1 de crypto (utilice una implementación conocida y probada).
Un par de elementos de seguimiento: primero, probablemente debería ser obvio por contexto, pero voy a necesitar algo que sea compatible con el uso comercial de código cerrado (la implementación de JavaScript a la que me vinculé, noté más adelante, es AGPL).
Además, suponiendo que termine yendo con OpenSSL, estoy teniendo problemas realmente para encontrar un ejemplo de usarlo para hacer SRP. Su sitio afirma que el código está allí, pero no puedo encontrar ninguna prueba de ello, ya sea en el OpenSSL documentation, o en el código fuente (v 0.9.8k). (O estoy leyendo mal serio las cosas, y todavía tengo que aplicar una de their patches a la fuente de OpenSSL?)
EDIT:
Lo que podría utilizar realmente en este momento está listo para el uso de código , una receta bastante completa o algún tipo de ejemplo de uso de SRP en OpenSSL. Estoy bastante seguro de poder improvisar algo desde cero con el protocol docs, pero realmente estoy tratando de evitar reinventar la rueda, si puedo evitarlo.
Entonces, ¿qué tan grande es la biblioteca OpenSSL para el dispositivo? (¿Y está lo suficientemente estructurado como para que el enlazador pueda dejar fuera los bits no utilizados?) –
libcrypto.a + libssl.a tienen más de 2.5M, pero no representan nada de eso en el binario final. Si recuerdo la última vez que investigué, OpenSSL agregó alrededor de 400-500k al tamaño binario final. Más de lo que quisiera, pero menos de lo que temía. Traté de reducir la cantidad de archivos en OpenSSL para mejorar el tiempo de compilación, ya que solo necesitábamos algunas funciones, pero rápidamente encontré que esto no funcionaba. OpenSSL está lo suficientemente estructurado para que el enlazador se divida, pero no lo suficiente para el compilador. YMMV dependiendo de qué funciones uses. –