Recibimos una solicitud de uno de nuestros clientes, y dado que nunca antes había encontrado tal solicitud, ni siquiera sé por dónde empezar a buscar.
Nuestro cliente es una red de universidades, y les estamos construyendo un sitio. En ese sitio, entre otras cosas, habrá un formulario que los solicitantes potenciales pueden completar para obtener más información sobre los estudios en una de las universidades. Después de que un usuario complete este formulario, incluso dando su correo electrónico y / o número de teléfono, la universidad correspondiente los contacta con la información relevante.
Ahora, por razones legales, el cliente solicita que este formulario también tenga una casilla de verificación que el posible solicitante verifica para indicar que acepta obtener material promocional de estas universidades. Por supuesto que no hay problema. Pero aquí viene la parte extraña de la solicitud:
Los detalles de cada formulario completado deben guardarse en un método confiable. Aparentemente, guardar los valores del formulario en una base de datos, una columna que indica si el usuario estuvo de acuerdo o no, no es suficiente, porque una base de datos podría cambiarse después de que los usuarios hayan enviado el formulario. Nuestro cliente afirma que otros portales universitarios crean una captura de pantalla del formulario completado y lo guardan en algún lugar de una carpeta dedicada, de una manera fácil de encontrar, como darle al archivo un nombre que incluya el nombre del usuario y la fecha y tiempo.
Mi pregunta es la siguiente: ¿has oído hablar del uso de capturas de pantalla como método para demostrar que un usuario realmente ha completado un formulario? ¿Existen otros métodos que se consideran confiables?
Respuestas:
Nunca he oído hablar de algo así, y sería ridículo, porque una captura de pantalla falsa se puede producir tan fácilmente como un valor falso en una base de datos.
EDITAR Además, quiero decir, ¿WTF? Dado que no puede obtener una captura de pantalla de la pantalla de alguien en la web, obviamente tendrá que reconstruir la página en el servidor y tomar una captura de pantalla de eso, y luego ¿quién puede decir que no lo hizo?
fuente
Sé que estoy comenzando esta respuesta con una pregunta, pero tengo un punto:
Sin llamar para cuestionar el supuesto absurdo de la solicitud, si esta es una aplicación web típica basada en un navegador HTTP, ¿cómo se podría capturar programáticamente una captura de pantalla y enviarla al servidor?
Espero que esto sea imposible ya que representaría una seria preocupación de seguridad y privacidad del navegador.
Ahora imagine si el número de tarjeta de crédito de alguien también estaba en la pantalla en el momento de la captura de pantalla. Ahora inadvertidamente captura información de la tarjeta de crédito y su sistema ahora debe ser compatible con PCI. Esta es otra vía de preocupación por completo.
La única forma de hacerlo probablemente sería usar un complemento de navegador de terceros como Flash, Silverlight, Java Applets o un control ActiveX con privilegios elevados del sistema. El componente deberá estar firmado y el usuario deberá aceptar que el componente tenga acceso para ejecutar código en su máquina.
Hay demasiados agujeros con este plan y dudo seriamente que otras universidades implementen algo similar. Ciertamente nunca he oído hablar de esto en mi carrera profesional, al menos no con una aplicación web.
EDITAR:
Acabo de pensar en otra opción que probablemente reflejaría en mayor medida lo que creo que su cliente realmente está pidiendo.
Tenía una solicitud que hice para un cliente donde el cliente tenía que aceptar y firmar un documento NDA para obtener acceso a la aplicación. Lo logré a través de un documento PDF firmable. Puede tener un campo de firma en un documento PDF que, ya sea utilizando un componente USB de lápiz + almohadilla o simplemente haciendo clic en él para reconocer, para fines legales será tan bueno como si hubiera firmado físicamente el documento a mano.
Se llama firma electrónica y se mantienen en la corte.
El documento PDF después de ser firmado se encripta y se almacena un hash junto con él que verifica que el documento NO haya sido manipulado después de la firma. Los lectores de PDF modernos como Adobe pueden transmitir un documento firmado a un servidor donde puede almacenarlo en un sistema de gestión de documentos o en una base de datos para su custodia.
En cualquier momento, los usuarios administradores pueden recuperar uno de estos documentos e imprimirlos.
Esto puede estar más en la línea de lo que su cliente realmente necesita, pero tuvo un mal momento para explicarlo adecuadamente.
fuente
Creo que la verdadera pregunta sería si la persona cuyo nombre aparece en el formulario, ¿realmente completó el formulario?
En otras palabras, si alguien va al sitio web e ingresa el nombre "Bill Gates" y hace clic en la casilla "está bien enviarme un correo electrónico", ¿cómo podría una captura de pantalla demostrar que era el verdadero Bill Gates?
¿Han considerado hacer lo que hacen muchos sitios y enviar un correo electrónico de verificación con un enlace único en el que alguien tiene que hacer clic para confirmar? De esa manera, al menos tiene un registro de que tiene la confirmación de alguien con acceso a esa cuenta de correo electrónico.
fuente
No hay tal cosa
Esta discusión debe comenzar con el entendimiento de que no hay forma de probar absolutamente que la persona estuvo de acuerdo. Esto es cierto incluso en el mundo físico. Incluso si graba en video a la persona que firma físicamente un formulario y pone una gota de su sangre en el formulario, puede decir que el video fue falso, que se les extrajo la sangre sin su conocimiento y que se falsificó la firma. Pero no se necesita una prueba absoluta; solo una cantidad razonable de evidencia.
En el mundo digital, se puede falsificar cualquier dato (texto, imagen, datos en una base de datos o correo electrónico). Lo más parecido a la prueba que podemos tener es que el usuario cifre algo usando una clave privada y demuestre que su clave pública lo descifrará. Sin embargo, esto actualmente está más allá de la capacidad de la mayoría de los usuarios, y aún podrían decir que su clave privada fue robada.
Lo mejor que podemos hacer es:
Guardar una imagen en lugar de texto no agrega nada en términos de prueba; todo lo que hace es hacer que el proceso sea más lento y costoso.
Firmas electrónicas
En mi trabajo, tenemos una aplicación donde los usuarios firman una declaración. Legalmente, las jurisdicciones en las que operamos han aprobado leyes que dicen que un usuario que escribe su dirección de correo electrónico en un formulario puede contar como una firma electrónica. Ya hemos verificado que tienen acceso a la dirección enviando un enlace en el que deben hacer clic. Eso no es una prueba absoluta, pero se ha considerado lo suficientemente bueno para nuestros propósitos.
Independientemente de la información que capture, le sugiero que también capture una marca de tiempo , para que pueda decir "usted estuvo de acuerdo en esta fecha y hora exactas". No estoy seguro de si eso tiene alguna relevancia legal, pero me parece más convincente, porque le da más oportunidades al usuario de demostrar lo contrario ("Tengo pruebas de que no estaba en una computadora en ese momento", por ejemplo )
Volviendo loco con eso
Algunas cosas que podría hacer que podrían considerarse evidencia:
IANAL
Por favor, no tome nada de esto como asesoramiento legal.
fuente
capturing a timestamp
Es inútil. Hoy en día, es bastante fácil para un usuario normal crear un navegador o automatización de escritorio para programar el llenado de formularios en algún momento futuro.Otra opción sería registrar la publicación HTTP sin procesar del cliente. Esto tendría su IP, de dónde vinieron, qué navegador, etc., sin requerir una captura de pantalla. Luego, puede iniciar sesión en una tabla de solo inserción en forma cruda, o en un simple archivo de registro plano ...
Solo trato de pensar en otras opciones porque tiendo a encontrarme con solicitudes ridículas como esta con mucha más frecuencia de la que me gustaría ...
fuente
Una captura de pantalla se fabrica fácilmente, en caso de que lo desee. Como es cualquier tipo de hashing, marca de tiempo, etc., sin una base criptográfica. Se presume que existe un requisito reglamentario estricto para que la universidad pueda demostrar que obtuvieron un consentimiento positivo antes de enviar material de marketing a las personas o intercambiar su información con terceros.
La única forma confiable de hacerlo es exigiendo una firma criptográfica del usuario. Por ejemplo, vea la forma en que el sitio web http://launchpad.net le pide que firme criptográficamente el Código de conducta de Ubuntu.
Esto solo tiene fuerza de ley en las jurisdicciones donde se puede usar una firma criptográfica en un documento legal, pero al firmar un texto específico, el usuario puede proporcionar una prueba de su consentimiento que luego sea verificable. Sería prácticamente imposible para la universidad falsificar una firma correcta de la misma clave pública.
Tenga en cuenta que todavía es trivial para la universidad actualizar su base de datos, y así voltear el campo de consentimiento, y también reemplazar la clave pública por otra para la que conocen la clave privada, y generar una firma válida para esa clave.
Por lo tanto, sin que un tercero firme las claves para dar fe de que pertenecen a un individuo en particular, todo lo que se logra es que el usuario puede verificar si la universidad falsificó o no su configuración de privacidad; sin la firma de un tercero, es su palabra contra la universidad.
Si además requiere que se verifique toda la propiedad de la clave y la clave sea firmada por uno o más terceros de confianza, la universidad no podrá falsificar firmas aparentemente válidas sin mucha más exposición (tendrían que engañar o cooptar el tercero de confianza para que firmen sus claves falsas). La dificultad de este ataque aumentaría con el número de firmas de terceros requeridas, pero como señala otro afiche, no es imposible.
Entonces para resumir:
Problemas prácticos :
fuente
Comenzaría leyendo sobre Firmas electrónicas para el país / estado del cliente con el objetivo de averiguar qué métodos y requisitos son legalmente vinculantes. Estoy seguro de que ningún país o estado en su sano juicio requeriría una captura de pantalla como el único método de prueba para una firma electrónica vinculante.
Por ejemplo, en los Estados Unidos, 47 estados han aceptado la Ley Uniforme de Transacciones Electrónicas , que se aplica a "asuntos gubernamentales" entre otras cosas y, por lo tanto, probablemente se aplicaría a los requisitos de la universidad. Tiene las siguientes partes que pueden ayudar:
..
..
..
Una vez que supiera las leyes, estimaría el costo del mejor método de firma electrónica versus el costo del método de captura de pantalla.
Por último, discutiría con ellos mis hallazgos. Primero, les explicaría la mejor opción frente a la opción propuesta. A continuación, les explicaría la cantidad de tiempo que esto agregaría al proyecto. Por último, si estuviera en un lugar para hacerlo, les diría que esta "característica" agregaría x dólares a la factura final. Estaría muy seguro de utilizar el costo adicional para mí como justificación del costo adicional para ellos.
Si todavía no se movieran, vería si tienen un supervisor con cierta cordura con la que podría tener la misma reunión.
* No soy un abogado, así que busque asesoramiento legal si no está seguro de algo.
fuente
Al tratarse de una pregunta legal, una respuesta real dependerá, por supuesto, de las leyes nacionales y posiblemente de las leyes locales y de las circunstancias exactas. Obviamente, una respuesta real solo puede provenir de un abogado.
Sin embargo, en lo que respecta a mi conocimiento legal (limitado), no veo ninguna razón para asumir que una captura de pantalla se considere evidencia de algo, ya que obviamente es muy fácil de falsificar.
Su mejor curso de acción es probablemente explicarle a su cliente que esto es esencialmente un problema legal y que se requiere la ayuda de un abogado. Luego discuta con ellos si quieren que lo hable con un abogado, o si quieren hacerlo ellos mismos.
Para obtener una solución factible, es posible que desee discutirlo usted mismo (si el cliente está de acuerdo). Si no quieres esa molestia (o temes que no estén dispuestos a pagarte por ella), deja que lo hagan.
fuente
Si desea validar que un documento permanece inalterado (registro de la base de datos, lo que sea), la "mejor práctica" es la siguiente:
Esto se ha utilizado para garantizar que los registros de seguro no fueron alterados; sin embargo, el "tercero de confianza" al que pagamos una cierta cantidad de dinero, promulgó los hashes a medida que se firmaban para nosotros y para otros clientes, por lo que había varios custodios de los registros que podrían ser citados para obtener pruebas.
Esto es claramente una carga ridícula para algo como validar un campo booleano. Pero, si le muestra al cliente los gastos involucrados, probablemente dejarán de ser tontos.
fuente
Si bien la solicitud en sí es absurda, y no puede tener una prueba legal razonablemente hecha de que una persona A marcó la casilla de verificación al completar un formulario, hay una pregunta dentro de su pregunta que en realidad se puede responder:
Esto, en realidad, puede ser más fácil de hacer técnicamente.
1. Mantenga una prueba de que los datos no fueron alterados
Enviar un correo electrónico a usted mismo (a un buzón dedicado) con los valores realmente enviados por el usuario es fácil (bueno, puede ser, dependiendo de la configuración de su servidor, el umbral, las posibilidades de ser filtrado como correo no deseado, el número de correos electrónicos enviados por segundo, etc.), y es suficiente para mostrar que los datos no se alteraron después de que se enviaron . Por ejemplo, a menos que tenga un acceso ilimitado a los servidores de Google , estoy bastante seguro de que todos estarán convencidos de que no puedo alterar el contenido de los correos electrónicos que envié a mi propia dirección de GMail.
2. Mantenga una prueba de que los datos son correctos
Lo más probable es que el cliente no esté satisfecho, porque incluso si tiene una prueba de que los datos no se modificaron después, ¿cómo podemos estar seguros de que los datos no se modificaron entre el envío del formulario y el envío de información por correo electrónico? (y comprometerse con la base de datos)? En este caso, el siguiente paso es:
spamde la empresa de su clientespam.Sus correos electrónicos pueden procesarse automáticamente y conservarse como prueba.
3. Mantenga una prueba de que los datos son auténticos.
Ahora que tiene una prueba de que la persona que utiliza la dirección de correo electrónico dada realmente desea recibir el correo no deseado, el cliente aún puede estar insatisfecho (lo que generalmente sucede con clientes que tienen solicitudes tan locas). ¿Qué pasa si alguien hackeó el buzón de otra persona solo para registrar el hackee para recibir su correo no deseado?
En este nivel de locura, aún puede responder técnicamente a los requisitos. Ahora, en lugar de enviar un correo electrónico opcional, el usuario del sitio web debe:
Envíe un correo con una copia de identificación / pasaporte, y una carta con una firma, diciendo que esta persona realmente quiere recibir el correo no deseado.
Valide la dirección de correo electrónico a través de un código secreto que será enviado de vuelta.
Pero antes de hacer esto, convenza al cliente para que implemente lo que describí en la parte 2 y pruébelo. El cliente verá que después de un mes o dos, nadie envía ningún correo electrónico de suscripción voluntaria, y felizmente se olvidará de las pruebas legales y los datos alterados en la base de datos.
fuente
El estado legal de lo que haga es independiente del mérito técnico de la solución.
Por ejemplo :
Durante años, los parlamentarios británicos ignoraron las peticiones electrónicas porque la ley exigía que las peticiones llevaran una firma para cada persona. Entonces alguien nota que un hash de una dirección de correo electrónico, fecha, hora y comentario, aunque no contenía clave secreta, constituía una "firma digital" a los ojos de la ley del Reino Unido.
Por lo tanto, busque un abogado que le diga qué hacer y hágalo. No te preocupes si es sonido.
O haga lo que su cliente le pida, confiando en que ha consultado con un abogado. Asegúrese de que haya un registro de la discusión.
fuente
Therefore, get a lawyer to tell you what to do, and do it. Don't worry whether it's sound. Or, do what your client asks, trusting that they have checked with a lawyer. Make sure there's a record of the discussion.
eso simplemente cumpliría su obligación legal y política con el cliente; Creo que el OP (con razón) está más interesado en ayudar al cliente a cumplir con sus requisitos legales (aunque el cliente actualmente parece malinterpretar sus propios requisitos legales, lo que sugiere la solución incorrecta).¿Cómo se supone que debes obtener una captura de pantalla? Lo que tienes es el HTML y lo que sea que estés enviando al cliente, y la respuesta electrónica del cliente. Tampoco implica una captura de pantalla.
La captura de pantalla es de lo que representa el navegador, y diferirá un poco dependiendo del navegador en uso y la configuración y el equipo en el otro extremo. Personalmente, navego usando Firefox, Chrome, Opera, Mobile Safari, ocasionalmente Lynx, e incluso un pequeño IE a veces.
Puede renderizar la página en un navegador estándar en su extremo y capturarla, pero hacer su propio documento y grabarlo no impresionará a un juez. Puede pedirle al usuario que envíe una captura de pantalla, pero buena suerte para cumplirlo. No todos los dispositivos de navegación tienen una forma obvia de tomar y enviar una captura de pantalla (¿cómo se hace en un iPhone?). Si se trata de un cliente con discapacidad visual que utiliza un lector de pantalla, es posible que no haya ninguna representación visual en el extremo del cliente. (Vi a un par de amigos míos ciegos usar una computadora portátil, que no tenía pantalla alguna).
Por lo tanto, explique al cliente que no hay forma de obtener una captura de pantalla, y que puede que ni siquiera haya una pantalla para tomar una foto.
fuente
En realidad, es posible crear un control de acceso obligatorio junto con una marca de tiempo confiable más una firma digital para la base de datos para garantizar que se pueda confiar en el valor de la columna. Las capturas de pantalla no son la respuesta correcta, sin embargo, existen soluciones de informática confiable que logran exactamente lo que desea lograr. Si quieres más detalles puedes iniciar un chat conmigo.
fuente
Como ya se señaló, realmente no puede probar que la persona estuvo de acuerdo o no con tanta seguridad, la mejor solución es:
a) Haga que la persona confirme su acuerdo a través de un enlace enviado a su dirección de correo electrónico (esto asegura que no hayan ingresado [email protected])
b) Darles la opción de cancelar la suscripción de marketing / promoción
fuente
Un esquema que está más cerca de ser a prueba de manipulaciones sería generar un par de claves pública / privada cuando el usuario llene el formulario usando Javascript (del lado del cliente), luego envíe el contenido del formulario, la clave pública y la firma a el servidor, y presente la clave privada al usuario y pídale que tome nota y la guarde en un lugar seguro.
Con este esquema, podrá demostrar que es imposible alterar los datos del formulario, ya que no conocía la clave privada que se utiliza para generar la firma. La debilidad de este esquema es que debe poder demostrar que nunca tocó la clave privada y que el usuario no debe perder su clave privada.
Dado que debe poder demostrar que nunca tuvo acceso a la clave privada, puede ser necesario incluir el HTML y todo Javascript al generar la firma del formulario; esto prueba el formulario exacto que el usuario usa para enviar los datos (por lo tanto, prueba de que no ha modificado el formulario / javascript desde su envío, por lo tanto, prueba que no usó javascript para robar su clave privada).
Este esquema es complejo, y al igual que con cualquier sistema complejo, no puedo garantizar que no haya un agujero (en realidad, estoy bastante seguro de que sí existe, y alguien probablemente podría señalarlo).
fuente
Una captura de pantalla no sería una gran prueba, ya que no hay forma de verificar que una captura de pantalla sea real. Eso podría ser fácilmente falsificado. En cuanto a más soluciones técnicas, existe el motor de almacenamiento de archivospara MySQL que solo admite insertar y seleccionar. No se puede eliminar de la tabla en absoluto. Eso sí, es posible ALTERAR TABLA a un motor de almacenamiento diferente, eliminar el registro y luego ALTERAR TABLA para volver a cambiar el motor sin que nadie lo note, pero es de esperar que pueda limitarlo a root, y solo permitir que root inicie sesión localmente . Luego, podría rastrear los inicios de sesión en la máquina de base de datos local real para descubrir quién posiblemente lo cambió. También puede analizar los registros binarios, o habilitar el registro de consultas sin procesar para ver quién podría haber emitido consultas que resultaron en este tipo de actividad. No estoy seguro de qué tecnología de base de datos está utilizando, pero lo más probable es que pueda encontrar una solución que evite que los datos se cambien fácilmente.
fuente
Voy a recomendar que te sientes y leas la Ley ESIGN . Este estatuto cubre lo que es y no es necesario para registrar una firma electrónica para que sea legalmente vinculante. En un empleador anterior, descubrimos que el obstáculo legal más difícil era hacer que las firmas y documentos fueran legibles durante 10-15 años en el futuro.
Como otros han señalado, la captura de pantalla es algo que no se puede hacer. Se puede falsificar, ya que todos los espectáculos de "magia" son pura falsificación: ves a alguien ser aserrado por la mitad, pero en realidad no lo están aserrando por la mitad.
fuente
He tratado con mi parte de locos antes. Se me ocurren algunas soluciones técnicas, pero ¿por qué no volver al cliente y sugerirle que vuelva a redactar la pregunta "No desea recibir correos electrónicos de marketing"? (o una redacción similar) y permitir que la persona opte por no participar? Entonces no necesitas una captura de pantalla.
fuente
Como todos notaron, el mérito técnico y legal de la solicitud de características es inexistente. Dicho esto, existe la opción si permite que un usuario tome y cargue manualmente una captura de pantalla como un archivo adjunto de formulario.
fuente