Captura de tela do formulário para prova legal de clicar em uma das caixas de seleção?

45

Recebemos uma solicitação de um dos nossos clientes e, como eu nunca encontrei esse pedido antes, nem sei por onde começar a procurar.

Nosso cliente é uma rede de faculdades e estamos criando um site para elas. Nesse site, entre outras coisas, será uma forma que os potenciais candidatos podem preencher, a fim de obter mais informações sobre os estudos em uma das faculdades. Depois que um usuário preenche este formulário - incluindo o endereço de e-mail e / ou número de telefone -, o colégio relevante entra em contato com as informações relevantes.

Agora, por motivos legais, o cliente solicita que este formulário também tenha uma caixa de seleção que o candidato em potencial verifique para indicar que concorda em obter material promocional dessas faculdades. Isso é claro que não há problema. Mas aqui vem a parte estranha do pedido:

Os detalhes de cada formulário preenchido devem ser salvos em um método confiável. Aparentemente, salvar os valores de formulário em um banco de dados - uma coluna indicando se o usuário concordou ou não concordou - não é suficiente, porque um banco de dados pode ser alterado depois que os usuários enviarem o formulário. Nosso cliente alega que outros portais universitários criam uma captura de tela do formulário preenchido e a salva em algum lugar em uma pasta dedicada, de uma maneira que seja facilmente encontrada, como dar ao arquivo um nome que inclua o nome do usuário e a data. e tempo.

A minha pergunta é a seguinte: você já ouviu falar de usar capturas de tela como um método de provar que um usuário realmente preencheu um formulário? Existem outros métodos que são considerados confiáveis?

    
por Lea Cohen 22.12.2011 / 12:39
fonte

19 respostas

74

Eu nunca ouvi falar de algo assim, e seria ridículo, porque uma imagem falsa pode ser produzida tão facilmente quanto um valor falso em um banco de dados.

EDIT Além disso, quero dizer, WTF? já que você não pode obter uma captura de tela da tela de alguém pela web, obviamente terá que reconstruir a página no servidor e tirar uma captura de tela disso, e então quem pode dizer que você não a diagnosticou?

    
por 22.12.2011 / 13:02
fonte
35

Eu sei que estou começando esta resposta com uma pergunta, mas tenho um ponto:

Sem ligar para questionar o suposto absurdo do pedido, se este for um típico aplicativo da web baseado em navegador HTTP, como um programaticamente poderia capturar uma captura de tela e enviá-la ao servidor?

Espero que isso seja impossível, já que representaria uma séria preocupação de segurança e privacidade do navegador.

Agora imagine se o número do cartão de crédito de alguém também estivesse na tela no momento da captura da captura de tela. Agora você inadvertidamente captura informações de cartão de crédito e seu sistema deve estar em conformidade com PCI. Este é outro caminho de preocupação.

A única maneira de fazer isso provavelmente seria usar um plug-in de navegador de terceiros como Flash, Silverlight, Java Applets ou um controle ActiveX com privilégios de sistema elevados. O componente precisaria ser assinado e o usuário precisaria concordar com o componente com acesso para executar o código em sua máquina.

Existem muitos buracos nesse plano e duvido seriamente que outros institutos implementem algo semelhante. Eu certamente nunca ouvi falar disso na minha carreira profissional, pelo menos não com um aplicativo da web.

EDITAR:

Acabei de pensar em outra opção que provavelmente refletiria muito mais o que eu acho que seu cliente realmente está pedindo.

Eu tinha um aplicativo que fiz para um cliente em que o cliente tinha que concordar e assinar um documento do NDA para obter acesso ao aplicativo. Eu consegui isso através de um documento PDF assinável. Você poderia ter um campo de assinatura em um documento PDF que usando um componente USB de pen + pad ou apenas clicando nele para confirmar a validade da fonte para fins legais seria tão bom quanto se você tivesse assinado fisicamente o documento manualmente.

Ele é chamado de assinatura eletrônica e eles resistem em tribunal.

O documento PDF após ser assinado é criptografado e um hash é armazenado junto com ele, o que verifica se o documento NÃO foi adulterado após a assinatura. Leitores modernos de PDF, como a Adobe, podem realmente transmitir um documento assinado para um servidor, onde você pode armazená-lo em um sistema de gerenciamento de documentos ou banco de dados para salvaguarda.

A qualquer momento, os usuários administradores podem recuperar um desses documentos e imprimi-los.

Isso pode estar mais de acordo com o que seu cliente realmente precisa, mas teve um mau momento para explicar corretamente.

    
por 22.12.2011 / 13:32
fonte
27

Eu acho que a verdadeira pergunta seria se a pessoa cujo nome aparece no formulário realmente preenche o formulário?

Em outras palavras, se alguém acessa o site e digita o nome "Bill Gates" e clica na caixa "não há problema em me enviar um e-mail", como uma captura de tela prova que foi o verdadeiro Bill Gates?

Eles consideraram fazer o que muitos sites fazem e enviar um e-mail de verificação com um link exclusivo no qual alguém precisa clicar para confirmar? Dessa forma, pelo menos você tem um registro de que você tem a confirmação de alguém com acesso a essa conta de e-mail.

    
por 22.12.2011 / 13:01
fonte
20

Nenhuma dessas coisas

Essa discussão precisa começar com o entendimento de que não há como absolutamente provar que a pessoa concordou. Isso é verdade até no mundo físico. Mesmo se você filmar a pessoa fisicamente assinando um formulário e colocando uma gota de sangue no formulário, eles podem dizer que o vídeo foi falsificado, o sangue foi retirado deles sem o conhecimento deles, e a assinatura foi forjada. Mas a prova absoluta não é necessária; apenas uma quantidade razoável de provas.

No mundo digital, quaisquer dados - texto, imagem, dados em um banco de dados ou e-mail - podem ser forjados. O mais próximo que podemos provar é que o usuário pode criptografar algo usando uma chave privada e mostrar que sua chave pública irá descriptografá-lo. No entanto, isso está além da capacidade da maioria dos usuários, e eles ainda podem dizer que sua chave privada foi roubada.

O melhor que podemos fazer é:

  • Obtenha algo que seria difícil (embora não impossível) falsificar
  • Concorda que, legalmente, essa evidência é suficiente
  • Facilite o cancelamento de inscrição do usuário

Salvar uma imagem em vez de um texto não adiciona nada em termos de prova; tudo o que faz é tornar o processo mais lento e mais caro.

Assinaturas eletrônicas

No meu trabalho, temos um aplicativo onde os usuários assinam uma declaração. Legalmente, as jurisdições em que operamos aprovaram leis dizendo que um usuário digitando seu endereço de e-mail em um formulário pode contar como uma assinatura eletrônica. Já verificamos que eles têm acesso ao endereço enviando um link no qual devem clicar. Isso não é prova absoluta, mas foi considerado bom o suficiente para nossos propósitos.

Quaisquer informações que você capturar, sugiro também capturar um registro de data e hora , para que você possa dizer "você concordou nesta data e hora exatas". Não tenho certeza se isso tem alguma relevância legal, mas parece mais convincente para mim, porque dá mais oportunidade para o usuário provar o contrário ("Eu tenho a prova de que eu não estava em um computador naquela época", por exemplo ).

Enlouquecendo com isso

Algumas coisas que você pode fazer podem ser consideradas evidências:

  • Captura de timestamp, IP, navegador, etc, para que você possa afirmar as circunstâncias da assinatura
  • Solicitar verificação de endereço de e-mail
  • Exigir que o usuário insira sua senha no momento da assinatura
  • Providencie a existência de um serviço da web de terceiros somente para gravação que receberá, no momento em que o usuário assina, um HTTPS POST do seu aplicativo com as informações de assinatura. Se o terceiro puder atestar que seu serviço é somente de gravação, que recebeu o registro naquele momento e sua cópia for idêntica, você pode argumentar que não modificou os dados desde então.
  • Envie um e-mail para o usuário no momento dizendo "obrigado por se inscrever, aqui está como cancelar a inscrição". Seu provedor de e-mail ou o seu pode mostrar que o e-mail foi enviado logo após a assinatura do usuário.

IANAL

Por favor, não tome isso como um conselho legal.

    
por 23.12.2011 / 17:58
fonte
10

Outra opção seria registrar a postagem HTTP bruta do cliente. Isso teria seu IP, de onde eles vieram, qual navegador, etc., sem exigir uma captura de tela. Você poderia, então, fazer o login em uma única tabela inserida em formato bruto ou em um arquivo de log simples e simples ...

Estou apenas a pensar em algumas outras opções, porque tenho tendência a responder a pedidos ridículos como este com muito mais frequência do que gostaria ...

    
por 22.12.2011 / 13:21
fonte
8

Uma captura de tela é facilmente fabricada, se você quiser. Como é qualquer tipo de hash, timestamping, etc, sem uma base criptográfica. Presume-se que exista alguma exigência regulamentar rigorosa para que a faculdade possa provar que obteve consentimento positivo antes de enviar material de marketing para pessoas ou comercializar suas informações para terceiros.

A única maneira confiável de fazer isso é exigindo uma assinatura criptográfica do usuário. Por exemplo, veja como o site link pede que você assine criptograficamente o Código de Conduta do Ubuntu.

Isso só tem força de lei em jurisdições onde uma assinatura criptográfica pode ser usada em um documento legal, mas ao assinar uma parte específica do texto, o usuário pode fornecer uma prova de seu consentimento que é mais tarde verificável. Seria virtualmente impossível para a faculdade forjar uma assinatura correta da mesma chave pública.

Note que ainda é trivial para a faculdade atualizar seu banco de dados, e assim inverter o campo consentimento, e também substituir a chave pública por outra para a qual eles conhecem a chave privada e gerar uma assinatura válida para essa chave .

Portanto, sem um terceiro assinando chaves para atestar que pertencem a um indivíduo em particular, tudo o que isso permite é que o usuário possa verificar se o colégio falsificou suas configurações de privacidade - sem a assinatura de terceiros, é a palavra deles contra o faculdade.

Se você exigir ainda que toda a propriedade da chave seja verificada e a chave assinada por um ou mais terceiros confiáveis, a faculdade não conseguirá falsificar assinaturas aparentemente válidas sem muito mais exposição (elas teriam que enganar ou co ... -opt o terceiro confiável, a fim de obter as suas chaves falsas assinadas). A dificuldade desse ataque aumentaria com o número de assinaturas de terceiros exigidas, mas, como outro pôster indica, não é impossível.

Então, para resumir:

  • O usuário deve possuir ou gerar um par de chaves privada / pública
  • O usuário deve então obter uma assinatura para sua chave pública de um ou mais terceiros confiáveis
  • O usuário deve fazer o upload de sua chave pública, pelo menos para o colégio e, de preferência, para um repositório de chaves de terceiros
  • O usuário deve assinar um texto simples conhecido e fornecer a assinatura como prova de que concordou em compartilhar seus dados privados

Problemas práticos:

  • Poucas pessoas entendem assinaturas criptográficas
  • O custo da certificação de terceiros pode ser caro
  • Isso parece ser muito trabalhoso para proteger uma caixa de seleção de lixo eletrônico em uma página de download do prospecto da faculdade
por 22.12.2011 / 16:30
fonte
8

Eu começaria lendo em Assinaturas eletrônicas para o país / estado do cliente com o foco de descobrir o que métodos e requisitos são juridicamente vinculativos. Tenho certeza de que nenhum país ou estado em sã consciência exigiria uma captura de tela como o único método de prova para uma assinatura eletrônica obrigatória.

Por exemplo, nos EUA, 47 estados aceitaram a Lei Uniforme de Transações Eletrônicas , que se aplica a "assuntos governamentais" entre outras coisas e, portanto, provavelmente se aplicaria aos requisitos da faculdade. Tem as seguintes partes que podem ajudar:

..

  • Assinatura electrónica - significa um som, símbolo ou processo electrónico ligado ou logicamente associado a um registo e executado ou adoptado por uma pessoa com a intenção de assinar o registo.

..

  • A Seção 7 dá reconhecimento legal a assinaturas, registros e contratos eletrônicos
    • (a) Um registro ou assinatura não pode ser negado efeito legal ou executoriedade apenas porque está em formato eletrônico.
    • (b) Um contrato não pode ser negado efeito legal ou executoriedade apenas porque um registro eletrônico foi usado em sua formação.
    • (c) Se uma lei exige que um registro seja por escrito, um registro eletrônico satisfaz a lei.
    • (d) Se uma lei exige uma assinatura, uma assinatura eletrônica satisfaz a lei.

..

Depois de conhecer as leis, eu estimaria o custo do melhor método de assinatura eletrônica versus o custo do método de captura de tela.

Por último, eu discutiria com eles minhas descobertas. Primeiro, eu explicaria a melhor opção contra a opção proposta. Em seguida, eu explicaria a quantidade de tempo que isso acrescentaria ao projeto. Por último, se eu estivesse em um lugar para fazer isso, eu diria a eles que esse "recurso" adicionaria x dólares à conta final. Eu tenho certeza de usar o custo adicional para mim como justificativa para o custo adicional para eles.

Se eles ainda não mudassem, veria se eles têm um supervisor com alguma sanidade que eu poderia ter o mesmo encontro.

* Eu não sou advogada, então, por favor, busque aconselhamento legal se você não tiver certeza sobre nada.

    
por 22.12.2011 / 16:33
fonte
6

Sendo esta uma questão legal, uma resposta real dependerá, obviamente, das leis nacionais e possivelmente até locais e das circunstâncias exatas. Então, obviamente, uma resposta real só pode vir de um advogado.

No entanto, no que diz respeito ao meu conhecimento jurídico (limitado), não vejo razão para supor que uma captura de tela seria considerada evidência para qualquer coisa, já que obviamente é muito fácil fingir.

Seu melhor curso de ação é provavelmente explicar ao seu cliente que isso é essencialmente um problema legal, e que a ajuda de um advogado é necessária. Depois, converse com eles se eles querem que você discuta com um advogado, ou se eles querem fazer isso sozinhos.

Para obter uma solução viável, convém discutir sozinho (se o cliente concordar). Se você não quer que o incômodo (ou medo de que eles não estejam dispostos a pagar por isso), deixe-os fazê-lo.

    
por 22.12.2011 / 12:51
fonte
5

Se você quiser validar que um documento permanece inalterado (registro do banco de dados, qualquer que seja), a "melhor prática" é assim:

  • Serialize os dados de forma reproduzível, incluindo quaisquer campos que possam ser controversos (por exemplo, endereço de e-mail, se uma caixa estiver marcada.)
  • Pegue o hash desse registro (por exemplo, sha1)
  • Use a chave pública para um terceiro confiável (ou seja, um terceiro desinteressado) para criptografar esse hash
  • Poste os dados de maneira pública para estabelecer a data em que existiram, por exemplo, um grupo de notícias.
  • Para validar, o terceiro pode descriptografar o hash e compará-lo ao valor hash atual.

Isso foi usado para garantir que os registros de seguro não fossem adulterados; no entanto, o "terceiro confiável" para o qual pagamos uma certa quantia de dinheiro promulgou os hashes, uma vez que eles eram assinados de volta para nós mesmos e vários outros clientes, portanto havia vários custodiantes de registros que poderiam ser intimados a obter provas.

Isso é claramente um fardo ridículo para algo como validar um campo booleano. Mas, se você mostrar ao cliente a despesa envolvida, ele provavelmente deixará de ser burro.

    
por 22.12.2011 / 17:35
fonte
4

Embora a solicitação em si seja absurda e você não possa ter uma prova legal razoável de que uma pessoa A verificou a caixa de seleção ao preencher um formulário, há uma pergunta dentro da sua pergunta que pode ser respondida:

[How to ensure that the data was not altered later, while] a DB could be changed after the users has sent the form?

Isso, na verdade, pode ser mais fácil de fazer tecnicamente.

1. Guarde uma prova de que os dados não foram alterados

Enviar um e-mail para si mesmo (para uma caixa de correio dedicada) com os valores realmente enviados pelo usuário é fácil (bem, pode ser, dependendo da configuração do seu servidor, o limite , as chances de ser filtrado como spam, o número de e-mails enviados por segundo, etc.), e é suficiente para mostrar que os dados não foram alterados após serem enviados . Por exemplo, a menos que eu tenha um acesso irrestrito aos servidores do Google , tenho certeza de que todos estarão convencidos de que não posso alterar o conteúdo dos e-mails que enviei para meu próprio endereço do GMail .

2. Mantenha uma prova de que os dados estão corretos

Provavelmente, o cliente não ficará satisfeito, porque mesmo que você tenha uma prova de que os dados não foram alterados posteriormente, como podemos ter certeza de que os dados não foram modificados entre o envio do formulário e o envio de informações por e-mail (e se compromete com o banco de dados)? Neste caso, o próximo passo é:

  1. Remova a caixa de seleção
  2. Marque qualquer pessoa que tenha preenchido o formulário sem vontade de receber material promocional de spam da sua empresa de clientes,
  3. Indique aos visitantes que eles têm que enviar um email (com um título predefinido e um corpo vazio) para a caixa de correio dedicada para receber as ofertas comerciais de spam .

Seus e-mails podem ser processados automaticamente e mantidos como prova.

3. Mantenha uma prova de que os dados são autênticos

Agora que você tem uma prova de que a pessoa que usa o endereço de e-mail realmente deseja receber o spam, o cliente ainda pode estar insatisfeito (o que geralmente acontece com clientes que têm solicitações tão malucas). E se alguém invadisse a caixa de correio de outra pessoa apenas para registrar o hackee para receber seu spam?

Neste nível de loucura, você ainda pode responder tecnicamente aos requisitos. Agora, em vez de enviar um e-mail opt-in, o usuário do site deve:

  1. Envie um e-mail com uma cópia do ID / passaporte e uma carta com uma assinatura dizendo que essa pessoa realmente deseja receber o spam.

  2. Valide o endereço de e-mail por meio de um código secreto que será enviado de volta.

Mas antes de fazer isso, convença o cliente a implementar o que descrevi na parte 2 e testá-lo. O cliente verá que, depois de um ou dois meses, ninguém nunca enviará um e-mail opt-in e esquecerá com satisfação as provas legais e os dados alterados no banco de dados.

    
por 22.12.2011 / 14:06
fonte
3

O status legal de tudo o que você faz é independente do mérito técnico da solução.

Por exemplo :

Durante anos, parlamentares britânicos ignoraram as petições eletrônicas porque a lei exigia que as petições contivessem uma assinatura para cada pessoa. Então, alguém notou que um hash de um endereço de e-mail, data, hora e comentário - mesmo que não contivesse nenhuma chave secreta - constituía uma "assinatura digital" aos olhos da lei do Reino Unido.

Portanto, peça a um advogado para lhe dizer o que fazer e fazê-lo. Não se preocupe se é som.

Ou, faça o que seu cliente pedir, confiando que ele tenha verificado com um advogado. Certifique-se de que haja um registro da discussão.

    
por 22.12.2011 / 16:11
fonte
3

Como o bleep é para você ter uma captura de tela? O que você tem é o HTML e o que quer que esteja enviando para o cliente, e a resposta eletrônica do cliente. Nenhuma delas envolve uma captura de tela.

A captura de tela é do que o navegador processa e será diferente dependendo do navegador em uso e das configurações e equipamentos do outro lado. Pessoalmente, eu navego usando Firefox, Chrome, Opera, Mobile Safari, ocasionalmente Lynx, e até mesmo um pouco de IE, às vezes.

Você poderia renderizar a página em um navegador padrão e fazer o screenshot, mas criar seu próprio documento e gravá-lo não vai impressionar um juiz. Você poderia pedir ao usuário para enviar uma captura de tela, mas boa sorte para impor isso. Nem todos os dispositivos de navegação têm uma maneira óbvia de tirar e enviar uma captura de tela (como você faz isso em um iPhone?). Se você está lidando com um cliente com deficiência visual usando um leitor de tela, pode não haver nenhuma representação visual no final do cliente. (Eu vi um par de amigos cegos meus usando um computador portátil, que não tinha nenhum display.)

Portanto, explique ao cliente que não há como obter uma captura de tela e que talvez nem haja uma tela para tirar uma foto.

    
por 22.12.2011 / 16:57
fonte
3

Na verdade, é possível criar um controle de acesso obrigatório em conjunto com um carimbo de data / hora confiável e uma assinatura digital para o banco de dados, a fim de garantir que o valor da coluna seja confiável. As capturas de tela não são a resposta correta, existem, no entanto, soluções de computação confiável que atingem exatamente o que você deseja alcançar. Se você quiser mais detalhes, você pode começar uma conversa comigo.

    
por 22.12.2011 / 19:03
fonte
2

Como já foi dito, você não pode realmente provar que a pessoa concordou ou não, então a melhor solução é:

a) Faça com que a pessoa confirme o contrato por meio de um link enviado para o endereço de e-mail dela (isso garante que ele não tenha entrado no endereço [email protected])

b) Dê-lhes a opção de cancelar a assinatura do marketing / promoção

    
por 22.12.2011 / 17:37
fonte
2

Um esquema que está mais próximo de ser à prova de falsificação seria gerar um par de chaves pública / privada quando o usuário preenchesse o formulário usando o Javascript (do lado do cliente), em seguida, enviasse o conteúdo do formulário, a chave pública e a assinatura para o servidor, e apresente a chave privada ao usuário e peça que ele anote e armazene em algum lugar seguro.

Com este esquema, você seria capaz de provar que é impossível adulterar os dados do formulário, já que você não conhecia a chave privada usada para gerar a assinatura. A fraqueza desse esquema é que você precisa provar que nunca tocou na chave privada e que o usuário não deve perder sua chave privada.

Como você deve provar que nunca teve acesso à chave privada, pode ser necessário incluir o HTML e todo o Javascript ao gerar a assinatura do formulário; isso comprova a forma exata que o usuário usa para enviar os dados (portanto, provar que você não modificou o formulário / javascript desde o envio deles, portanto, provou que você não usou o javascript para roubar sua chave privada).

Esse esquema é complexo e, como em qualquer sistema complexo, não posso garantir que não haja um furo (na verdade, estou bastante confiante de que existe, e alguém provavelmente seria capaz de indicá-lo).

    
por 22.12.2011 / 17:41
fonte
2

Uma captura de tela não seria uma boa prova, já que não há como verificar se uma captura de tela é real. Isso poderia ser facilmente falsificado. No que diz respeito a soluções mais técnicas, existe o mecanismo de armazenamento de arquivos para o MySQL que suporta apenas inserir e selecionar. Você não pode excluir da tabela. Lembre-se, pode ser possível ALTER TABLE para um mecanismo de armazenamento diferente, excluir o registro e ALTER TABLE para alterar o mecanismo de volta sem que ninguém perceba, mas esperamos que você possa limitar isso ao root e permitir que o root faça login localmente . Então você poderia apenas rastrear logins para a máquina de banco de dados local real para descobrir quem possivelmente mudou isso. Você também pode analisar os logs binários ou ativar o log de consultas brutas para ver quem poderia ter emitido consultas que resultaram nesse tipo de atividade. Não tenho certeza de qual tecnologia de banco de dados você está usando, mas provavelmente você deve ser capaz de criar uma solução que impeça a alteração dos dados.

    
por 22.12.2011 / 20:14
fonte
2

Recomendamos que você se sente e leia a Lei de ESIGN . Este estatuto abrange o que é e o que não é necessário para registrar uma assinatura eletrônica para que seja juridicamente vinculativa. Em um empregador anterior, descobrimos que o obstáculo estatutário mais difícil era poder tornar as assinaturas e os documentos legíveis por 10 a 15 anos no futuro.

The details of each filled out form have to be be saved in a reliable method. Apparently, saving the form values in a database - a column indicating if the user agreed or didn't agree - isn't enough, because a DB could be changed after the users has sent the form. Our client claims that other college portals create a screenshot of the filled-out form, and save it somewhere in a dedicated folder, in a manner that is easily found, such as giving the file a name that includes the user's name, and the date and time.

Como outros apontaram, a captura de tela é algo que não pode ser feito. Ele pode ser falsificado, já que todos os shows "mágicos" são pura falsidade: você vê alguém sendo serrado ao meio, mas na verdade não está sendo cortado ao meio.

    
por 22.12.2011 / 20:22
fonte
1

Eu já lidei com a minha parte do louco. Eu posso pensar em algumas soluções técnicas, mas por que não voltar para o cliente e sugerir a reformulação da pergunta "Você não quer receber e-mails de marketing?" (ou redação semelhante) e permitir que a pessoa seja excluída? Então você não precisa de uma captura de tela.

    
por 22.12.2011 / 17:54
fonte
1

Como todos notaram, o mérito técnico e legal da solicitação de recurso é inexistente. Dito isso, há a opção de permitir que um usuário tire e carregue manualmente uma captura de tela como um anexo de formulário.

    
por 25.12.2011 / 16:17
fonte

Tags