Schermata del modulo per la prova legale del clic su una delle caselle di controllo?


45

Abbiamo ricevuto una richiesta da uno dei nostri clienti e, dal momento che non avevo mai incontrato una richiesta simile prima, non so nemmeno da dove iniziare a cercare.

Il nostro cliente è una rete di college e stiamo costruendo loro un sito. Su quel sito, tra le altre cose, ci sarà un modulo che i potenziali candidati potranno compilare al fine di ottenere maggiori informazioni sugli studi in uno dei college. Dopo che un utente ha compilato questo modulo, incluso fornire il proprio indirizzo e-mail e / o numero di telefono, il college pertinente li contatta con le informazioni pertinenti.

Ora, per motivi legali, il cliente chiede che questo modulo abbia anche una casella di spunta che il potenziale richiedente controlla per indicare che accetta di ottenere materiale promozionale da queste università. Ovviamente non è un problema. Ma ecco che arriva la parte strana della richiesta:

I dettagli di ciascun modulo compilato devono essere salvati in un metodo affidabile. Apparentemente, salvare i valori del modulo in un database - una colonna che indica se l'utente ha accettato o meno - non è sufficiente, perché un DB potrebbe essere modificato dopo che gli utenti hanno inviato il modulo. Il nostro cliente afferma che altri portali universitari creano uno screenshot del modulo compilato e lo salvano da qualche parte in una cartella dedicata, in un modo facilmente reperibile, come dare al file un nome che includa il nome dell'utente e la data E tempo.

La mia domanda è la seguente: hai sentito parlare dell'utilizzo di schermate come metodo per dimostrare che un utente ha effettivamente compilato un modulo? Esistono altri metodi considerati affidabili?


96
Anche le schermate possono essere modificate, specialmente se archiviate su disco da qualche parte.
ChrisF

41
Fammi indovinare: è un professore di informatica che ha avuto questa idea. Alcune di queste persone sono fantastiche. Non so come lo fanno, ma le idee che escono sono spesso surreali come se fossero acide.
Mike Nakis,

32
Aspetta: stanno salvando l'indirizzo e-mail e altre informazioni personali nel database, ma il "problema di sicurezza" di cui sono preoccupati è se quell'utente riceve erroneamente e-mail promozionali?
Wonko the Sane,

11
"in una cartella che non si trova facilmente" - aah, sicurezza attraverso l'oscurità! È molto più sicuro di un database tenuto su un server sicuro, che richiede credenziali di accesso, ecc. Per arrivare a ...
Dave,

19
Ancora meglio di una schermata sarebbe se si potesse catturare un video dalla loro webcam dell'utente annuendo e dando un grande segno "pollice in alto". Ora che sarebbe la prova!
GrandmasterB,

Risposte:


74

Non ho mai sentito parlare di qualcosa del genere, e sarebbe ridicolo, perché uno screenshot falso può essere prodotto con la stessa facilità di un valore falso in un database.

EDIT Inoltre, voglio dire, WTF? dal momento che non è possibile ottenere uno screenshot dello schermo di qualcuno sul Web, sarà ovviamente necessario ricostruire la pagina sul server e fare uno screenshot di quello, e poi chi può dire che non lo ha aggiustato?


1
+1 Bene, non ho considerato che si potrebbe tecnicamente eseguire un browser programmatico per eseguire il rendering dell'HTML e quindi eventualmente inviare la pagina a un documento PDF creando un driver di stampa.
maple_shaft

come effettivamente viene fatto regolarmente. Sarebbe abbastanza facile da fare, in linea di principio potresti semplicemente inviare gli stessi dati a 2 xsl: fo template, uno creando html e l'altro pdf (l'ho già fatto in passato).
jwenting

1
@jwenting Indipendentemente dal fatto che MikeNakis ha già sottolineato, questo può ancora essere manomesso. Dovresti utilizzare PDF con firma elettronica o creare un hash dall'immagine in modo da utilizzarlo per convalidare lo screenshot non è stato manomesso.
maple_shaft

24
"altrettanto facilmente"? Gli screenshot falsi sono molto più facili dell'hacking di un database!
Jesvin Jose,

4
Lo facciamo in alcune delle applicazioni che costruisco. Tecnicamente non si tratta di uno "screenshot", ma a fini di audit dobbiamo "ricostruire" la sessione com'era allora. Raggiungiamo questo obiettivo salvando i dati dal modulo inviato e poi ricostruendoli in un secondo momento. Detto questo, è appena stato salvato in un database e lo "screenshot" è solo una ricostruzione dei dati che abbiamo salvato. Sembra carino alle persone che lo vogliono.
Deco,

35

So che sto cominciando questa risposta con una domanda, ma ho un punto:

Senza chiamare per mettere in dubbio la presunta assurdità della richiesta, se si tratta di una tipica applicazione Web basata su browser HTTP, come si potrebbe catturare programmaticamente uno screenshot e inviarlo al server?

Spero che ciò sia impossibile in quanto rappresenterebbe un serio problema di sicurezza e privacy del browser.

Ora immagina se anche il numero della carta di credito di qualcuno fosse sullo schermo al momento della cattura dello screenshot. Ora stai acquisendo inavvertitamente le informazioni sulla carta di credito e il tuo sistema dovrebbe ora essere conforme a PCI. Questa è un'altra via di preoccupazione.

L'unico modo per farlo sarebbe probabilmente usare un plugin per browser di terze parti come Flash, Silverlight, Applet Java o un controllo ActiveX con privilegi di sistema elevati. Il componente dovrebbe essere firmato e l'utente dovrebbe accettare il componente che ha accesso per eseguire il codice sul proprio computer.

Ci sono troppi buchi con questo piano e dubito seriamente che altri college implementino qualcosa di simile. Di certo non ne ho mai sentito parlare durante la mia carriera professionale, almeno non con un'applicazione web.

MODIFICARE:

Ho appena pensato a un'altra opzione che probabilmente rispecchierebbe maggiormente ciò che penso che il tuo cliente stia davvero chiedendo.

Avevo una domanda che avevo fatto per un cliente in cui il cliente doveva accettare e firmare un documento NDA per ottenere l'accesso all'applicazione. L'ho raggiunto attraverso un documento PDF firmabile. Potresti avere un campo firma in un documento PDF che, utilizzando un componente USB pen + pad o semplicemente facendo clic su di esso per riconoscere, per motivi legali sarà altrettanto buono come se avessi firmato fisicamente il documento a mano.

Si chiama firma elettronica e resistono in tribunale.

Il documento PDF dopo la firma viene crittografato e un hash viene archiviato insieme ad esso per verificare che il documento NON sia stato manomesso dopo la firma. I moderni lettori PDF come Adobe possono effettivamente trasmettere un documento firmato a un server dove è possibile memorizzarlo in un sistema di gestione dei documenti o in un database per conservarlo in sicurezza.

In qualsiasi momento gli utenti amministratori possono richiamare uno di questi documenti e stamparli.

Questo potrebbe essere più in linea con ciò di cui il tuo cliente ha effettivamente bisogno, ma ha avuto un brutto momento di spiegarlo correttamente.


1
+1 per menzionare che ciò è tecnicamente possibile, ma richiederebbe un plug-in
bunglestink

10
Quindi cosa ti impedisce di sostituire il PDF con uno che hai firmato tu stesso? Per quanto ne so, non esiste una solida infrastruttura a chiave pubblica per gestire le identità degli individui.
Casuale 832

1
@ Random832 Scacco matto amico mio, mi hai preso! Immagino che non ci sia una risposta sicura al 100%. Qualsiasi sistema può essere compromesso.
maple_shaft

3
Ciò non richiederebbe certamente un plug-in; si noti che gli ultimi strumenti di feedback di Google (su Google Plus e Youtube) eseguono effettivamente questo "screenshot". Puoi facilmente inviare tutto l'HTML su una pagina corrente tramite JAvascript e utilizzare il foglio di stile appropriato per ricostruire l'aspetto di un'immagine. Naturalmente questo è ^% & * ing assurdo perché puoi semplicemente inviare il valore della casella di controllo.
Ben Brocka,

Ho scritto un widget che cattura i movimenti del mouse in un elemento CANVAS e serializza le coordinate X, Y del tempo acquisito sul server. Non sono del tutto sicuro di quale sia lo stato giuridico di tale "firma" (potrebbe essere modificato ed è abbastanza facile da copiare) ma se questa è l'unica cosa che "firmano" sul sistema sarebbe difficile spiegare come hai quei dati se non hanno acconsentito. (Non so cosa succede se il loro fratellino firma "pizza", ma il PDF presenta lo stesso problema).
psr

27

Penserei che la vera domanda sarebbe se la persona il cui nome appare sul modulo ha davvero compilato il modulo?

In altre parole, se qualcuno accede al sito Web e inserisce il nome "Bill Gates" e fa clic sulla casella "va bene inviarmi e-mail", come farebbe uno screenshot a dimostrare che era il vero Bill Gates?

Hanno preso in considerazione l'idea di fare ciò che fanno molti siti, ovvero inviare un'e-mail di verifica con un collegamento univoco su cui qualcuno deve fare clic per confermare? In questo modo almeno hai un record di conferma da parte di qualcuno che ha accesso a quell'account e-mail.


4
Esattamente. Email di verifica per garantire che la persona che richiede le e-mail abbia il controllo dell'indirizzo e-mail in questione. Aggiungo anche che, invece di avere una documentazione legale delle persone che hanno richiesto materiale promozionale, sei solo conforme al CAN SPAM Act e semplifichi l'annullamento dell'iscrizione al tuo materiale promozionale. (Ogni e-mail che invia materiale promozionale anche se
proveniente

20

Niente del genere

Questa discussione deve iniziare con la comprensione che non esiste alcun modo per dimostrare assolutamente che la persona è d'accordo. Questo è vero anche nel mondo fisico. Anche se video la persona che firma fisicamente un modulo e mette una goccia del suo sangue sul modulo, può dire che il video è stato simulato, il sangue è stato prelevato da loro a loro insaputa e la firma è stata falsificata. Ma non è necessaria la prova assoluta; solo una ragionevole quantità di prove.

Nel mondo digitale, qualsiasi dato - testo, immagine, dati in un database o e-mail - può essere contraffatto. La cosa più vicina alla prova che possiamo avere è che l'utente crittografa qualcosa usando una chiave privata e mostri che la sua chiave pubblica la decifrerà. Tuttavia, questo è attualmente al di là delle capacità della maggior parte degli utenti e potrebbero ancora dire che la loro chiave privata è stata rubata.

Il meglio che possiamo fare è:

  • Ottieni qualcosa che sarebbe difficile (anche se non impossibile) falsificare
  • Concordo sul fatto che, legalmente, tale prova è sufficiente
  • Semplifica la cancellazione da parte dell'utente

Salvare un'immagine anziché il testo non aggiunge nulla in termini di prova; tutto ciò che fa è rendere il processo più lento e più costoso.

Firme elettroniche

Nel mio lavoro, abbiamo un'applicazione in cui gli utenti firmano una dichiarazione. Legalmente, le giurisdizioni in cui operiamo hanno approvato leggi secondo le quali un utente che digita il proprio indirizzo e-mail in un modulo può essere considerato una firma elettronica. Abbiamo già verificato che hanno accesso all'indirizzo inviando un link su cui devono fare clic. Questa non è una prova assoluta, ma è stata considerata abbastanza buona per i nostri scopi.

Qualunque informazione catturi, suggerirei anche di acquisire un timestamp , in modo da poter dire "hai concordato a questa data e ora esatte". Non sono sicuro che abbia rilevanza legale, ma mi sembra più convincente, perché offre più possibilità all'utente di dimostrare il contrario ("Ho la prova che non ero al computer in quel momento", ad esempio ).

Impazzendo con esso

Alcune cose che potresti fare che potrebbero essere considerate prove:

  • Cattura data e ora, IP, browser, ecc. In modo da poter affermare le circostanze della firma
  • Richiedi verifica dell'indirizzo email
  • Richiedi all'utente di inserire la password al momento della firma
  • Assicurati che ci sia un servizio web di terze parti di sola scrittura in esecuzione che riceverà, al momento l'utente firma, un POST HTTPS dalla tua app con le informazioni sulla firma. Se la terza parte può testimoniare che il loro servizio è di sola scrittura, che hanno ricevuto il record in quel momento e che la tua copia è identica, potresti obiettare che non hai modificato i dati da allora.
  • Invia all'utente un'e-mail in quel momento dicendo "grazie per esserti registrato, ecco come annullare l'iscrizione". Il loro provider di posta elettronica o il tuo potrebbero essere in grado di mostrare che l'e-mail è stata inviata subito dopo la firma dell'utente.

IANAL

Si prega di non prendere nulla di tutto ciò come consulenza legale.


Ottima risposta ... ma gli indirizzi e-mail come firme elettroniche sono stati contestati anche legalmente. Hai ragione però, non esiste un modo assolutamente provato. Solo diverse tonalità di più difficile. Il sistema legale funziona con ragionevole dubbio. La maggior parte delle persone concorderebbe sul fatto che il lavoro per falsificare un video, rubare sangue e falsificare una firma non sia una possibilità ragionevole. Potrebbe succedere? Sì, certo, ma è altamente improbabile che qualcuno possa affrontare questo problema.
maple_shaft

1
"... e potrebbero ancora dire che la loro chiave pubblica è stata rubata." non dovrebbe leggere "... e potrebbero ancora dire che la loro chiave privata è stata rubata". La chiave pubblica rubata non pone problemi di sicurezza, in una PKI ben progettata.
Lie Ryan,

capturing a timestampè solo inutile. Al giorno d'oggi, è abbastanza facile per l'utente normale creare un browser o automazione desktop per pianificare la compilazione dei moduli in futuro.
Lie Ryan,

10

Un'altra opzione sarebbe quella di registrare il Post HTTP grezzo dal client. Questo avrebbe il loro IP, da dove provenivano, quale browser, ecc., Senza richiedere uno screenshot. È quindi possibile accedere a questo in una tabella di solo inserimento in formato non elaborato o in un semplice file di registro piatto ...

Sto solo cercando di pensare ad altre opzioni perché tendo a imbattermi in richieste ridicole come questa molto più spesso di quanto vorrei ...


Sì, ma quel registro si trova nello stesso database di cui sono preoccupati per essere manomessi. Vedi la modifica nella mia risposta, i documenti PDF con firma elettronica sono l'unico modo per garantire che il documento non sia stato manomesso.
maple_shaft

1
@maple_shaft: l'idea di base per aggiungere ulteriore sicurezza del database sarebbe l'autorizzazione "Inserisci solo" per tutti gli utenti tranne un amministratore. Questo registro andrebbe ad aggiungersi alle normali attività del database e verrebbe utilizzato solo per la verifica quando necessario.
bunglestink,

1
@JonnyBoats: tecnicamente hai ragione su HTTPS, anche se una volta ricevuto a livello di applicazione, avrai lo stesso testo grezzo registrato.
bunglestink,

1
"Documenti PDF con firma elettronica" o qualsiasi cosa con firma elettronica "sono l'unico modo per garantire che il documento non sia stato manomesso" se non da qualcuno che possiede la chiave con cui deve essere firmato.
Casuale 832

1
@ Random832: è fattibile se la chiave privata per il documento è fornita dall'utente, IMO è eccessivo per una casella di controllo che indica l'accordo per ricevere materiale promozionale.
Lie Ryan

8

Uno screenshot può essere facilmente fabbricato, se si è così inclini. Come ogni altro tipo di hash, timestamp, ecc., Senza una base crittografica. Si presume che ci sia un severo requisito normativo per il college di essere in grado di dimostrare di aver ottenuto il consenso positivo prima di inviare materiale di marketing a persone o scambiare le loro informazioni a terzi.

L'unico modo affidabile per farlo è richiedere all'utente una firma crittografica. Per un esempio, vedere il modo in cui il http://launchpad.net sito vi chiede di firmare cryptograpically del codice di condotta di Ubuntu.

Questo ha forza di legge solo nelle giurisdizioni in cui una firma crittografica può essere utilizzata su un documento legale, ma firmando un testo specifico, l'utente può fornire prova del proprio consenso che sarà successivamente verificabile. Sarebbe praticamente impossibile per il college falsificare una firma corretta dalla stessa chiave pubblica.

Si noti che è ancora banale per il college aggiornare il proprio database, quindi invertire il campo di consenso e anche sostituire la chiave pubblica con un'altra per la quale conoscono la chiave privata e generare una firma valida per quella chiave.

Pertanto, senza che una terza parte firmi le chiavi per attestare che appartengono a un particolare individuo, tutto ciò che raggiunge è che l'utente può verificare se il college ha forgiato o meno le proprie impostazioni sulla privacy - senza la firma di terze parti, è la sua parola contro il college.

Se richiedi inoltre che sia verificata tutta la proprietà della chiave e che la chiave sia firmata da una o più terze parti fidate, il college non sarà in grado di falsificare firme apparentemente valide senza molta più esposizione (dovrebbero ingannare o cooptare il di terze parti fidate per ottenere la firma delle loro chiavi fasulle). La difficoltà di questo attacco aumenterebbe con il numero di firme di terze parti richieste, ma come nota un altro poster, non è impossibile.

Quindi per riassumere:

  • L'utente deve possedere o generare una coppia di chiavi privata / pubblica
  • L'utente deve quindi ottenere una firma per la propria chiave pubblica da una o più terze parti attendibili
  • L'utente deve caricare la propria chiave pubblica, almeno nel college e preferibilmente in un repository di chiavi di terze parti
  • L'utente deve firmare un testo in chiaro noto e fornire la firma come prova che ha accettato di condividere i propri dati privati

Problemi pratici:

  • Poche persone capiscono le firme crittografiche
  • Il costo della certificazione di terze parti può essere costoso
  • Sembra un lavoro tremendo per salvaguardare la casella di controllo di Junkmail in una pagina di download del prospetto del college

8

Comincerei leggendo le firme elettroniche per il paese / lo stato del cliente con l'obiettivo di scoprire quali metodi e requisiti sono legalmente vincolanti. Sono sicuro che nessun paese o stato nella loro mente corretta richiederebbe uno screenshot come unico metodo di prova per una firma elettronica vincolante.

Ad esempio, negli Stati Uniti 47 Stati hanno accettato l' Uniform Electronic Transactions Act , che si applica tra l'altro alle "questioni governative" e che quindi si applicherebbe probabilmente ai requisiti del college. Ha le seguenti parti che possono aiutare:

..

  • Firma elettronica : indica un suono, un simbolo o un processo elettronico associato o logicamente associato a un record ed eseguito o adottato da una persona con l'intenzione di firmare il record.

..

  • La Sezione 7 riconosce legalmente firme, registri e contratti elettronici
    • (a) Un record o una firma non possono essere negati per effetto legale o esecutività solo perché sono in forma elettronica.
    • (b) Un contratto non può essere negato per effetto legale o esecutività solo perché nella sua formazione è stato utilizzato un record elettronico.
    • (c) Se una legge richiede che un record sia scritto, un record elettronico soddisfa la legge.
    • (d) Se una legge richiede una firma, una firma elettronica soddisfa la legge.

..

Una volta che ho conosciuto le leggi, stimerei il costo del miglior metodo di firma elettronica rispetto al costo del metodo dello screenshot.

Infine, discuterei con loro le mie scoperte. Innanzitutto, spiegherei loro l'opzione migliore rispetto all'opzione proposta. Successivamente, spiegherei loro la quantità di tempo che ciò aggiungerebbe al progetto. Infine, se fossi in un posto per farlo, direi che questa "funzione" aggiungerebbe x dollari alla fattura finale. Sarei molto sicuro di utilizzare il costo aggiuntivo per me come giustificazione per il costo aggiuntivo per loro.

Se ancora non si mossero, vedrei se hanno un supervisore con un po 'di sanità mentale con cui potrei avere lo stesso incontro.

* Non sono un avvocato, quindi per favore chiedi consiglio legale se non sei sicuro di nulla.


6

Trattandosi di una domanda legale, una vera risposta dipenderà ovviamente dalle leggi nazionali e forse anche locali e dalle circostanze esatte. Quindi, ovviamente, una vera risposta può venire solo da un avvocato.

Tuttavia, per quanto riguarda le mie conoscenze legali (limitate), non vedo alcun motivo per ritenere che uno screenshot possa essere considerato una prova per qualsiasi cosa, poiché è ovviamente molto facile falsificare.

Il miglior modo di agire è probabilmente quello di spiegare al cliente che si tratta essenzialmente di un problema legale e che è necessario l'aiuto di un avvocato. Quindi discuti con loro se vogliono che tu ne parli con un avvocato o se vogliono farlo da soli.

Per ottenere una soluzione fattibile, potresti voler discutere tu stesso (se il cliente è d'accordo). Se non vuoi quella seccatura (o temi che potrebbero non essere disposti a pagarti per questo), lascia che lo facciano.


6
Se l'OP dovesse seguire questa strada, suggerirei un approccio di medio livello, spiegare al cliente che dovrebbe discuterne con un avvocato, ma che l'OP vorrebbe essere coinvolto in tali discussioni, se possibile. In questo modo la spesa è direttamente sul cliente e vi è un rischio minore che il cliente fraintenda qualcosa che l'avvocato dice quando passa tali informazioni all'OP.
Kevin D,

5

Se si desidera convalidare che un documento rimane inalterato (record del database, qualunque cosa), la "best practice" va così:

  • Serializzare i dati in modo riproducibile, inclusi tutti i campi che potrebbero essere controversi (ad es. Indirizzo e-mail, se una casella è selezionata).
  • Prendi l'hash di quel record (es. Sha1)
  • Utilizzare la chiave pubblica per una terza parte attendibile (ovvero una terza parte disinteressata) per crittografare questo hash
  • Pubblica i dati in modo pubblico per stabilire la data in cui esistevano, ad esempio un newsgroup.
  • Per convalidare, la terza parte può decrittografare l'hash e confrontarlo con il valore hash attualmente corrente.

Questo è stato usato per garantire che i registri assicurativi non fossero manomessi; tuttavia, la "terza parte fidata" a cui abbiamo pagato una certa somma di denaro, ha divulgato gli hash quando sono stati firmati di nuovo a noi stessi e molti altri clienti, quindi c'erano diversi custodi di documenti che potevano essere potenzialmente citati: editi per ottenere prove.

Questo è chiaramente un peso ridicolo per qualcosa come la convalida di un campo booleano. Ma, se mostri al cliente le spese in questione, probabilmente smetteranno di essere stupide.


4

Mentre la richiesta stessa è assurda e non puoi avere una prova legale ragionevolmente dimostrata che una persona A ha spuntato la casella di controllo durante la compilazione di un modulo, c'è una domanda all'interno della tua domanda a cui si può effettivamente rispondere:

[Come garantire che i dati non siano stati modificati in seguito, mentre] un DB potrebbe essere modificato dopo che gli utenti hanno inviato il modulo?

Questo, in realtà, potrebbe essere più semplice da fare tecnicamente.

1. Conservare una prova che i dati non sono stati modificati

Inviare una e-mail a te stesso (a una casella di posta dedicata) con i valori effettivamente inviati dall'utente è facile (beh, potrebbe essere, a seconda della configurazione del tuo server, della soglia, delle possibilità di essere filtrato come spam, il numero di e-mail inviate al secondo, ecc.) ed è sufficiente per mostrare che i dati non sono stati modificati dopo che sono stati inviati . Ad esempio, a meno che non abbia un accesso illimitato ai server di Google , sono abbastanza sicuro che tutti saranno convinti di non essere in grado di modificare il contenuto delle e-mail che ho inviato al mio indirizzo GMail.

2. Conservare una prova che i dati sono corretti

È probabile che il cliente non sarà soddisfatto, perché anche se si ha la prova che i dati non sono stati successivamente modificati, come possiamo essere sicuri che i dati non siano stati modificati tra l'invio del modulo e l'invio di informazioni via e-mail (e impegnarsi nel database)? In questo caso, il passo successivo è:

  1. Rimuovi la casella di controllo,
  2. Contrassegna chiunque abbia compilato il modulo come non disposto a ricevere materiale promozionale spam dalla società dei tuoi clienti,
  3. Indicare ai visitatori che devono inviare un'e-mail (con un titolo predefinito e un corpo vuoto) alla casella di posta dedicata per ricevere le offerte commerciali di spam .

Le loro e-mail possono quindi essere elaborate automaticamente e conservate come prova.

3. Conservare una prova che i dati sono autentici

Ora che hai la prova che la persona che utilizza l'indirizzo e-mail specificato desidera effettivamente ricevere lo spam, il cliente potrebbe essere ancora insoddisfatto (cosa che di solito accade con i clienti che hanno richieste così folli). E se qualcuno ha violato la cassetta postale di qualcun altro solo per registrare l'hackee per ricevere il tuo spam?

A questo livello di follia, puoi ancora rispondere tecnicamente ai requisiti. Ora, invece di inviare un'e-mail di opt-in, l'utente del sito Web deve:

  1. Invia una mail con una copia del documento d'identità / passaporto e una lettera, con una firma, dicendo che questa persona vuole davvero ricevere lo spam.

  2. Convalida l'indirizzo e-mail tramite un codice segreto che verrà rispedito.

Ma prima di farlo, convincere il cliente ad attuare ciò che ho descritto nella parte 2 e testarlo. Il cliente vedrà che dopo un mese o due nessuno invierà mai alcuna e-mail di opt-in e dimenticherà felicemente prove legali e dati alterati nel database.


Il tuo passaggio 2 non dimostra nulla. Per contrassegnare le persone come non disposte a ricevere spam, si sta memorizzando quel "segno" nello stesso database di cui il cliente è preoccupato di essere manomesso. Mantenere un hash di un set di dati garantisce tuttavia che se qualcuno manomette i dati o l'hash stesso per confrontare i dati rispetto all'hash, si tradurrebbe in un errore nei confronti dell'hash e la prova che i dati sono stati danneggiati o manomessi.
maple_shaft

@maple_shaft, ciò che è essenziale nella parte 2 in generale non è ciò che è archiviato nel database, ma solo la ricezione dell'e-mail di opt-in da parte dell'utente del sito web. I dati nel database non contano.
Arseni Mourzenko,

2
Il passaggio 1 è buono. Facile, semplice, efficace.
Offirmo,

@MainMa: E pensi che le e-mail non possano essere falsificate o falsificate?
Ben Voigt,

3

Lo stato legale di qualsiasi cosa tu faccia è indipendente dal merito tecnico della soluzione.

Per esempio :

Per anni i membri del parlamento britannico avrebbero ignorato le petizioni elettroniche perché la legge richiedeva che le petizioni recassero una firma per ogni persona. Quindi qualcuno nota che un hash di un indirizzo e-mail, data, ora e commento - anche se non conteneva una chiave segreta - costituiva una "firma digitale" agli occhi della legge britannica.

Pertanto, chiedi a un avvocato di dirti cosa fare e fallo. Non preoccuparti se è sano.

Oppure, fai quello che il tuo cliente chiede, fidandoti di aver verificato con un avvocato. Assicurati che ci sia un resoconto della discussione.


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.ciò non farebbe altro che adempiere al tuo obbligo legale e politico nei confronti del cliente; Penso che l'OP (giustamente) sia più interessato ad aiutare il cliente a soddisfare i propri requisiti legali (anche se al momento il cliente sembra fraintendere i propri requisiti legali, suggerendo così la soluzione sbagliata).
Lie Ryan,

3

Come diavolo dovresti ottenere uno screenshot? Quello che hai è l'HTML e tutto ciò che stai inviando al client e la risposta elettronica dal client. Né comporta uno screenshot.

Lo screenshot mostra ciò che viene visualizzato dal browser e differirà in qualche modo a seconda del browser in uso, delle impostazioni e dell'attrezzatura all'altra estremità. Personalmente, navigo usando Firefox, Chrome, Opera, Mobile Safari, occasionalmente Lynx e persino un po 'IE a volte.

Potresti renderizzare la pagina in un browser standard dalla tua parte e fare uno screenshot, ma creare il tuo documento e registrarlo non impressionerà un giudice. Potresti chiedere all'utente di inviare uno screenshot, ma buona fortuna per farlo. Non tutti i dispositivi di navigazione hanno un modo ovvio per acquisire e inviare uno screenshot (come si fa su un iPhone?). Se hai a che fare con un cliente ipovedente utilizzando uno screen reader, potrebbe non esserci alcuna rappresentazione visiva a livello del cliente. (Ho visto un paio di miei amici ciechi usare un computer portatile, che non aveva alcun display.)

Spiega quindi al cliente che non è possibile ottenere uno screenshot e potrebbe non esserci nemmeno uno schermo per scattare una foto.


1
iPhone: tieni premuto il tasto LOCK per alcuni secondi. Android: rootkit al telefono e prega. (Capisco il punto che stavi facendo, solo dicendo ...)
BRPocock,

3

È effettivamente possibile creare un controllo di accesso obbligatorio insieme a un timestamp affidabile più una firma digitale per il database per garantire che il valore della colonna possa essere attendibile. Le schermate non sono la risposta corretta, esistono tuttavia soluzioni di Trusted Computing che realizzano esattamente ciò che desideri ottenere. Se vuoi maggiori dettagli puoi iniziare una chat con me.


2

Come già sottolineato, non puoi davvero dimostrare che la persona sia d'accordo o meno, la soluzione migliore è:

a) Chiedere alla persona di confermare il proprio accordo tramite un collegamento inviato al proprio indirizzo e-mail (questo assicura che non abbiano appena inserito billgates@microsoft.com)

b) Offri loro la possibilità di annullare l'iscrizione al marketing / promozione


2

Uno schema che si avvicina di più alla manomissione sarebbe quello di generare una coppia di chiavi pubblica / privata quando l'utente ha compilato il modulo utilizzando Javascript (lato client), quindi inviare il contenuto del modulo, la chiave pubblica e la firma a il server e presentare la chiave privata all'utente e chiedere loro di prendere nota e conservarla in un luogo sicuro.

Con questo schema, si sarebbe in grado di dimostrare che è impossibile manomettere i dati del modulo poiché non si conosceva la chiave privata utilizzata per generare la firma. Il punto debole di questo schema è che devi essere in grado di dimostrare di non aver mai toccato la chiave privata e che l'utente non deve perdere la propria chiave privata.

Dal momento che devi essere in grado di dimostrare che non hai mai avuto accesso alla chiave privata, potrebbe essere necessario includere l'HTML e tutto il Javascript durante la generazione della firma del modulo; questo dimostra l'esatto modulo che l'utente utilizza per inviare i dati (dimostrando quindi che non hai modificato il modulo / javascript dalla sua presentazione, dimostrando quindi che non hai usato javascript per rubare la sua chiave privata).

Questo schema è complesso e, come con qualsiasi sistema complesso, non posso garantire che non ci sia un buco (in realtà, sono abbastanza fiducioso che esista, e probabilmente qualcuno sarebbe in grado di segnalarlo).


2

Uno screenshot non sarebbe molto prova, in quanto non è possibile verificare che uno screenshot sia reale. Potrebbe essere facilmente simulato. Per quanto riguarda più soluzioni tecniche, c'è il motore di archiviazione degli archiviper MySQL che supporta solo insert e select. Non è possibile eliminare dalla tabella. Intendiamoci, potrebbe essere possibile ALTER TABLE su un motore di archiviazione diverso, eliminare il record e quindi ALTER TABLE per ripristinare il motore senza che nessuno se ne accorga, ma si spera che si possa limitare quello a root e consentire a root di accedere localmente . Quindi è possibile tenere traccia degli accessi al computer del database locale effettivo per capire chi potrebbe averlo modificato. È inoltre possibile analizzare i registri binari o abilitare il registro delle query non elaborato per vedere chi potrebbe aver inviato query che hanno portato a questo tipo di attività. Non sono sicuro di quale tecnologia di database stai utilizzando, ma molto probabilmente dovresti essere in grado di trovare una soluzione che impedisca la modifica dei dati.


2

Ti consiglierò di sederti e leggere la Legge ESIGN . Questo statuto copre ciò che è e non è necessario per registrare una firma elettronica per essere legalmente vincolante. In un precedente datore di lavoro, abbiamo scoperto che l'ostacolo statutario più difficile era riuscire a rendere le firme e i documenti leggibili per 10-15 anni nel futuro.

I dettagli di ciascun modulo compilato devono essere salvati in un metodo affidabile. Apparentemente, salvare i valori del modulo in un database - una colonna che indica se l'utente ha accettato o meno - non è sufficiente, perché un DB potrebbe essere modificato dopo che gli utenti hanno inviato il modulo. Il nostro cliente afferma che altri portali universitari creano uno screenshot del modulo compilato e lo salvano da qualche parte in una cartella dedicata, in un modo facilmente reperibile, come dare al file un nome che includa il nome dell'utente e la data E tempo.

Come altri hanno sottolineato, lo screenshot è qualcosa che non può essere fatto. Può essere simulato, poiché tutti gli spettacoli "magici" sono pura finzione: vedi qualcuno che viene segato a metà, ma in realtà non viene segato a metà.


1

Ho già affrontato la mia parte di folle. Posso pensare ad alcune soluzioni tecniche, ma perché non tornare al cliente e suggerire di riformulare la domanda a "Non vuoi ricevere e-mail di marketing?" (o una formulazione simile) e consentire alla persona di rinunciare? Quindi non hai bisogno di una schermata.


1

Come tutti hanno notato, il merito tecnico e legale della richiesta di funzionalità è inesistente. Detto questo, c'è la possibilità se si consente a un utente di acquisire e caricare manualmente uno screenshot come allegato al modulo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.