Oraclize afirma ofrecer una recuperación segura y demostrablemente honesta de una página web aprovechando TLSnotary (un servicio que permite a un auditor verificar si una página web específica se recuperó con precisión)
El propósito de Oraclize parece ser hacer que esta información esté disponible para los contratos inteligentes.
Pero, según tengo entendido, el único factor que mantiene segura la prueba notarial de TLS es que la persona que realiza la auditoría genera y retiene un dato secreto hasta que la persona auditada les proporciona el hash de la página web recuperada. Obviamente, un contrato no puede generar y retener un secreto. ¿No significa esto que el contrato en sí no puede verificar la prueba del notario TLS?
Parece que se necesita alguna aclaración sobre cómo Oraclize está manejando exactamente el secreto de notario de TLS.
Oraclize también parece ofrecer una herramienta web que le permite desempeñar el papel de auditor. ¿Pueden varias personas auditar la misma prueba de TLSnotario en paralelo? Y supongamos que de alguna manera me las arreglo para atrapar a Oraclize haciendo trampa. ¿Cómo puedo demostrar esto a un tercero?
En términos más simples, ¿cuánto puedo confiar en el servicio de Oracle?
No tome mis preguntas a mal: estoy muy entusiasmado con la idea de que los oráculos realmente prueben sus afirmaciones. ¡Solo me gusta hacer preguntas difíciles!
Oracle almacena el secreto de notario de TLS en una máquina virtual de Amazon Web Services (AWS) .
Usando las técnicas descritas aquí , pueden proporcionar algunas garantías adicionales con respecto al software que se ejecuta en la instancia de AWS y cuándo/si se ha modificado desde que se inicializó. Las "pruebas de honestidad" que brindan (y le permiten verificar con su herramienta web ) son las certificaciones firmadas de esta instancia de AWS de que se produjo una prueba de notario de TLS adecuada (en lugar de la prueba de notario de TLS en sí, que sería imposible para un tercero). para verificar después del hecho).
Probablemente sea difícil para el usuario promedio entender lo que esto significa en términos de seguridad y confianza, así que permítanme elaborar un poco sobre las implicaciones de seguridad de esta técnica.
Oraclize es mejor que nada para recuperar contenido de una página web HTTPS. Probablemente sea lo mejor que podemos hacer en este momento para hacer afirmaciones públicas sobre el contenido de las páginas web seguras. Pero no debe considerarse una solución final o completamente segura para la recuperación de contenido web. En muchos casos, hacer que sus aplicaciones usen TLSnotary es estrictamente superior a usar Oracle. ¡Y tener un proveedor de información que firme su contenido directamente es superior a ambos en todos los casos! Oraclelize es un paso adelante decente, pero no es la solución final . ¡Tenga cuidado de usar su servicio de una manera adecuada al nivel de riesgo de su aplicación!
La forma en que me explicaron el notario de TLS (por el autor en IRC) fue que el tercero debe conservar los datos para evitar que la fuente manipule sus datos y haga parecer que los datos capturados no son auténticos. En otras palabras, un mentiroso "¡Yo nunca dije eso!" de la gente de alojamiento web.
En realidad, es seguro porque es como cuando navega a un sitio seguro HTTPS, puede ver que es una empresa X (si inspecciona los certificados). ¡TLS Notary es esencialmente capaz de registrar esos bytes de tal manera que pueda reproducirlos más tarde para que pueda autenticar los bytes nuevamente! muy ingenioso (Pero la matemática de cómo hace esto en el documento técnico está por encima de mi cabeza. https://tlsnotary.org/TLSNotary.pdf )
Como @JeffColeman mencionó en un comentario, TLSnotary es un protocolo interactivo, el auditor debe mantener en secreto una parte de la clave maestra para que funcione toda la solución. Porque si el auditado conoce la clave maestra completa, el auditado podrá calcular la clave HMAC del servidor y luego podrá modificar cualquier cosa simplemente regenerando un nuevo HMAC.
Pero para Oracle, son básicamente tanto auditor como auditado. Entonces, el problema es: ¿cómo puedo estar seguro de que el auditor y el auditado no están en connivencia, es decir, Oraclize no está haciendo trampa?
En general, es extremadamente difícil demostrar que el auditor y el auditado se han coludido. Porque para probar que hicieron trampa, tenemos que probar que el auditado ya conocía la parte secreta de la clave maestra durante la transmisión. Y debido a que el secreto finalmente se publicará (porque lo necesitamos para realizar la verificación), ¿cómo podemos saber en qué momento el auditado conoció el secreto?
Oracle resuelve este problema ejecutando el auditor en AWS y publicando el código y la información de tiempo de ejecución del auditor al público para que pueda verificar la integridad del entorno del auditor. Si bien es relativamente fácil detectar cambios , a menos que realmente audite el código fuente y la configuración de todo el entorno, aún es difícil asegurarse de que el auditor solo esté haciendo lo que se supone que debe hacer y nada más (sin errores, sin asunto previsto o no). Es por eso que solo dijimos que probablemente sea honesto .
Martín Loehnertz
David 天宇Wong