1 votos

Causa de la Época Unix tiempo de subdesbordamiento de enteros?

Estableciendo el tiempo en 64 bits iDevices 1 de enero de 1970 (Unix Epoch tiempo 0) y reiniciar, el iDevice se convierte en ladrillo a causa de un subdesbordamiento de enteros. Mi pregunta es acerca de que la operación realmente las causas del accidente:

Método 1: Usted llama a alguien en Época de tiempo 1455403324, este número se guarda la fecha cálculos para ver cuánto tiempo hace que usted hizo la llamada. Ahora cambiar el tiempo en que el 1/1/1970. 5 minutos han pasado y su Época el tiempo es de 300, pero una marca de tiempo de cálculo de la última llamada está en ejecución y la ecuación es de 300 (hora actual) - 1455403324 (tiempo de la última llamada), que es un valor negativo, causando el subdesbordamiento de enteros (suponiendo que la marca de tiempo entero sin signo, que no tienen sentido si no fuera porque al igual que la hipótesis con la actual época valor de tiempo, ¿cómo es posible que alguien ha llamado a otro x minutos en el futuro?)?

Método 2: Como alguien dijo antes, "En algunas zonas de tiempo, ajuste de la fecha a 1 de enero de 1970 configurar el reloj interno a un número menor que cero, ya que el tiempo se almacena en GMT (como el número de segundos transcurridos desde la medianoche de ese día) y, a continuación, la corrección que se aplica antes de la visualización", escribió por https://www.reddit.com/user/redion1992. "En otras zonas horarias, la configuración del reloj se traducirá en un momento positivo valor. La mejor conjetura es que esto es provocado por tener el valor de tiempo de menos de cero".

Son válidos o uno o el otro?

1voto

Max Puntos 21

Casi seguros de que no se debe a un desbordamiento de entero, pero en lugar de tiempo de la firma que se utiliza en los mecanismos de seguridad de iOS, como la SEP.

1voto

bovium Puntos 919

Este no es tanto la causa de su problema. iOS funciona con algo que se llama codesigning. Apple se escribe y se compila su código, criptográficamente signos en el fin de demostrar su autenticidad. Esto se hace con los certificados. Los certificados tienen generalmente dos valores de fecha.

  • El que se suele tropieza acerca de cuando el uso de internet es la fecha de finalización. Si su tiempo es después de esa fecha, el certificado no es válido, y lo que usted está intentando verificar que no se verifique.
  • La otra es la fecha de inicio que le dice a la computadora cuando el certificado comienza su período de validez.

El iPhone y su actual versión de iOS no han sido alrededor de 1970. Cuando arranque el dispositivo con el que se hace una comprobación de integridad del sistema, el uso de estos certificados. Si se establece la fecha del sistema a un punto en el tiempo antes de la fecha de inicio del certificado con el que el sistema de la firma, que simplemente no puede pasar la verificación.

Ver twitter de exchange: https://twitter.com/JZdziarski/status/698244919698333696

@JZdziarski: Una cosa que la gente no se da cuenta de iOS/OS X tienen un tiempo de validez en orden para firmar el código de certificados válidos.
@Ghostlyrics: @JZdziarski no veo cómo esto es una cuestión, dado que no NTP (o similar) por defecto?
@JZdziarski: @Ghostlyrics porque si la propia Apple certificados no válidos, ntp no se puede ejecutar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X