Formularz zrzutu ekranu dla prawnego dowodu kliknięcia jednego z pól wyboru?

45

Otrzymaliśmy prośbę od jednego z naszych klientów, a ponieważ nigdy wcześniej nie spotkałem się z taką prośbą, nie wiem nawet, od czego zacząć.

Naszym klientem jest sieć szkół wyższych, a my budujemy dla nich witrynę. Na tej stronie będzie między innymi formularz, który potencjalni wnioskodawcy mogą wypełnić, aby uzyskać więcej informacji na temat studiów w jednej z uczelni. Po wypełnieniu przez użytkownika tego formularza - w tym podaniu adresu e-mail i / lub numeru telefonu - odpowiednia uczelnia kontaktuje się z nim z odpowiednimi informacjami.

Teraz, ze względów prawnych, klient prosi, aby ten formularz zawierał również pole wyboru, które potencjalny wnioskodawca sprawdza, aby wyrazić zgodę na otrzymywanie materiałów promocyjnych z tych uczelni. To oczywiście nie ma problemu. Ale nadchodzi dziwna część żądania:

Szczegóły każdego wypełnionego formularza należy zapisać w wiarygodny sposób. Najwyraźniej zapisanie wartości formularza w bazie danych - kolumnie wskazującej, czy użytkownik się zgodził, czy nie - nie wystarczy, ponieważ DB można zmienić po wysłaniu formularza przez użytkowników. Nasz klient twierdzi, że inne portale uczelni tworzą zrzut ekranu wypełnionego formularza i zapisują go gdzieś w dedykowanym folderze, w łatwo dostępny sposób, na przykład nadając plikowi nazwę zawierającą nazwę użytkownika i datę i czas.

Moje pytanie jest następujące: czy słyszałeś o użyciu zrzutów ekranu jako metody udowodnienia, że ​​użytkownik faktycznie wypełnił formularz? Czy istnieją inne metody uważane za wiarygodne?

Lea Cohen
źródło
96
Zrzuty ekranu można również modyfikować - zwłaszcza jeśli są gdzieś przechowywane na dysku.
ChrisF
41
Niech zgadnę: to pomysł profesora informatyki. Niektóre z tych osób są fantastyczne. Nie wiem, jak to robią, ale pomysły, które wpadają, są często tak surrealistyczne, jak gdyby były na kwasie.
Mike Nakis,
32
Poczekaj - zapisują adres e-mail i inne dane osobowe w bazie danych, ale „problemem bezpieczeństwa”, o który się martwią, jest to, czy ten użytkownik przypadkowo otrzyma promocyjne wiadomości e-mail?
Wonko the Sane
11
„w folderze, którego nie można łatwo znaleźć” - ach, bezpieczeństwo przez zaciemnienie! Jest to znacznie bezpieczniejsze niż baza danych przechowywana na bezpiecznym serwerze, wymagająca poświadczeń logowania itp., Aby dostać się do ...
Dave
19
Jeszcze lepiej niż zrzut ekranu, jeśli można uchwycić klip wideo z kamery internetowej użytkownika, który kiwa głową i daje duży znak „kciuki w górę”. Teraz będzie to dowód!
GrandmasterB,

Odpowiedzi:

74

Nigdy czegoś takiego nie słyszałem i byłoby to śmieszne, ponieważ fałszywy zrzut ekranu można stworzyć równie łatwo, jak fałszywą wartość w bazie danych.

EDYCJA Poza tym mam na myśli WTF? skoro nie można uzyskać zrzutu ekranu czyjegoś ekranu przez sieć, oczywiście trzeba będzie zrekonstruować stronę na serwerze i zrobić zrzut ekranu, a następnie, kto powie, że nie zrobiłeś tego doktorze?

Mike Nakis
źródło
1
+1 Dobra uwaga, nie sądziłem, że można technicznie uruchomić programową przeglądarkę, aby renderować HTML, a następnie ewentualnie wysłać stronę do dokumentu PDF, tworząc sterownik drukarki.
wałek klonowy
jak to się robi regularnie. Byłoby to dość łatwe, w zasadzie możesz po prostu wysłać te same dane do szablonów 2 xsl: fo, jeden tworzy HTML i drugi pdf (tak naprawdę robiłem to w przeszłości).
jwenting
1
@jwenting Bez względu na to, jak już zauważył MikeNakis, można to nadal modyfikować. Musisz użyć elektronicznie podpisanych plików PDF lub utworzyć skrót obrazu, aby użyć go do sprawdzenia, czy zrzut ekranu nie został zmieniony.
wałek klonowy
24
„równie łatwo”? Fałszywe zrzuty ekranu są znacznie łatwiejsze niż zhakowanie bazy danych!
Jesvin Jose
4
Robimy to w niektórych aplikacjach, które buduję. Technicznie nie jest to „zrzut ekranu”, ale do celów audytu musimy „zrekonstruować” sesję taką, jaka była wtedy. Osiągamy to poprzez zapisanie danych z przesłanego formularza, a następnie odtworzenie go później. Ale powiedziawszy to, jest to po prostu zapisane w bazie danych, a „zrzut ekranu” jest po prostu rekonstrukcją zapisanych przez nas danych. Wygląda ładnie dla ludzi, którzy tego chcą.
Deco
35

Wiem, że zaczynam tę odpowiedź od pytania, ale mam rację:

Bez wywoływania pytania o rzekomą absurdalność żądania, jeśli jest to typowa aplikacja internetowa oparta na przeglądarce HTTP, jak można programowo przechwycić zrzut ekranu i wysłać go na serwer?

Mam nadzieję, że jest to niemożliwe, ponieważ stanowiłoby poważne zagrożenie dla bezpieczeństwa i prywatności przeglądarki.

Teraz wyobraź sobie, czy w momencie przechwytywania zrzutu ekranu na ekranie pojawił się także numer karty kredytowej. Teraz przypadkowo przechwytujesz informacje o karcie kredytowej, a Twój system powinien być zgodny z PCI. To zupełnie inna kwestia budząca obawy.

Jedynym sposobem, aby to zrobić, byłoby prawdopodobnie użycie wtyczki przeglądarki innej firmy, takiej jak Flash, Silverlight, aplety Java lub formant ActiveX z podwyższonymi uprawnieniami systemowymi. Komponent musiałby zostać podpisany, a użytkownik musiałby wyrazić zgodę na dostęp komponentu do uruchomienia kodu na swoim komputerze.

W tym planie jest zbyt wiele dziur i poważnie wątpię, że inne uczelnie wdrażają coś podobnego. Z pewnością nigdy o tym nie słyszałem w mojej karierze zawodowej, przynajmniej nie w przypadku aplikacji internetowej.

EDYTOWAĆ:

Właśnie pomyślałem o innej opcji, która prawdopodobnie w większym stopniu odzwierciedlałaby to, o czym myślę, że twój klient tak naprawdę prosi.

Miałem aplikację dla klienta, w której klient musiał się zgodzić i podpisać dokument NDA, aby uzyskać dostęp do aplikacji. Osiągnąłem to poprzez podpisany dokument PDF. Możesz mieć pole podpisu w dokumencie PDF, które albo używając komponentu USB typu pen + pad lub klikając go, aby potwierdzić, ze względów prawnych będzie tak samo dobre, jakbyś fizycznie podpisał dokument ręcznie.

Nazywa się to podpisem elektronicznym i są zawieszone w sądzie.

Dokument PDF po podpisaniu zostaje zaszyfrowany, a wraz z nim przechowywany jest skrót, który potwierdza, że ​​dokument NIE został zmodyfikowany po podpisaniu. Nowoczesne czytniki plików PDF, takie jak Adobe, mogą faktycznie przesłać podpisany dokument na serwer, gdzie można go przechowywać w systemie zarządzania dokumentami lub w bazie danych w celu bezpiecznego przechowywania.

W dowolnym momencie użytkownicy administratora mogą przywołać jeden z tych dokumentów i wydrukować je.

Może to być bardziej zgodne z tym, czego faktycznie potrzebuje twój klient, ale miał słaby czas na prawidłowe wyjaśnienie.

wałek klonowy
źródło
1
+1 za wspomnienie, że jest to technicznie możliwe, ale wymagałoby wtyczki
bunglestink
10
Co więc powstrzymuje cię przed zamianą pliku PDF na ten, który sam podpisałeś? O ile mi wiadomo, nie ma solidnej infrastruktury klucza publicznego do obsługi tożsamości osób.
Random832
1
@ Random832 Checkmate mój przyjacielu, masz mnie! Chyba nie ma w 100% bezpiecznej odpowiedzi. Każdy system może być zagrożony.
wałek klonowy
3
Z pewnością nie wymagałoby to wtyczki; zwróć uwagę, że najnowsze narzędzia opinii Google (w Google Plus i Youtube) faktycznie wykonują ten „zrzut ekranu”. Możesz z łatwością wysłać cały kod HTML na bieżącą stronę za pomocą JAvascript i użyć odpowiedniego arkusza stylów do zrekonstruowania wyglądu obrazu. Oczywiście jest to ^% i * ing absurdalne, ponieważ możesz po prostu wysłać wartość pola wyboru.
Ben Brocka,
Napisałem widżet, który przechwytuje ruchy myszy w elemencie CANVAS i serializuje przechwycony czas, współrzędne X, Y z powrotem do serwera. Nie jestem do końca pewien, jaki jest status prawny takiego „podpisu” (można go zmienić i dość łatwo go skopiować), ale jeśli jest to jedyna rzecz, którą „podpisują” w systemie, trudno wytłumaczyć, w jaki sposób masz te dane, jeśli nie wyrażą zgody. (Nie wiem, co się stanie, jeśli ich młodszy brat napisa „pizza”, ale plik PDF ma ten sam problem).
psr
27

Myślę, że prawdziwym pytaniem byłoby, czy osoba, której nazwisko widnieje w formularzu, naprawdę wypełnia formularz?

Innymi słowy, jeśli ktoś wejdzie na stronę i wpisze nazwę „Bill Gates” i kliknie pole „W porządku, aby wysłać mi e-mail”, w jaki sposób zrzut ekranu mógłby udowodnić, że to był prawdziwy Bill Gates?

Czy zastanawiali się nad zrobieniem tego, co robi wiele witryn, czyli wysyłaniem weryfikacyjnego e-maila z unikalnym linkiem, który ktoś musi kliknąć, aby potwierdzić? W ten sposób masz przynajmniej zapis, że masz potwierdzenie od osoby mającej dostęp do tego konta e-mail.

JonnyBoats
źródło
4
Dokładnie. E-mail weryfikacyjny, aby upewnić się, że osoba żądająca wiadomości e-mail ma kontrolę nad danym adresem e-mail. Dodam również, że zamiast legalnej dokumentacji osób, które poprosiły o materiały promocyjne, po prostu przestrzegasz Ustawy CAN SPAM i bardzo łatwo możesz zrezygnować z subskrypcji swoich materiałów promocyjnych. (Każdy e-mail, który wysyła materiały promocyjne, nawet jeśli są one przez stronę trzecią, zawiera link do wypisania się z wszystkich list, na których je umieszczasz.)
dr jimbob
20

Nie ma czegoś takiego

Ta dyskusja musi rozpocząć się od zrozumienia, że ​​nie ma sposobu, aby absolutnie udowodnić, że dana osoba wyraziła zgodę. Dotyczy to nawet świata fizycznego. Nawet jeśli filmujesz osobę fizycznie podpisującą formularz i umieszczającą na nim kroplę krwi, może powiedzieć, że film został sfałszowany, krew została pobrana od nich bez ich wiedzy, a podpis został sfałszowany. Ale absolutny dowód nie jest potrzebny; tylko rozsądna ilość dowodów.

W świecie cyfrowym można fałszować dowolne dane - tekst, obraz, dane w bazie danych lub wiadomości e-mail. Najbliższą rzeczą, jaką możemy udowodnić, jest to, aby użytkownik zaszyfrował coś za pomocą klucza prywatnego i pokazał, że jego klucz publiczny go odszyfruje. Jednak obecnie jest to poza możliwościami większości użytkowników i nadal mogą powiedzieć, że ich klucz prywatny został skradziony.

Najlepsze, co możemy zrobić, to:

  • Zdobądź coś, co byłoby trudne (choć nie niemożliwe) do sfałszowania
  • Zgadzam się, że z prawnego punktu widzenia dowody są wystarczające
  • Ułatw użytkownikowi anulowanie subskrypcji

Zapisanie obrazu zamiast tekstu nie dodaje niczego pod względem dowodu; wszystko to sprawia, że ​​proces jest wolniejszy i droższy.

Podpisy elektroniczne

W mojej pracy mamy aplikację, w której użytkownicy podpisują oświadczenie. Zgodnie z prawem jurysdykcje, w których działamy, przeszły przepisy prawne, zgodnie z którymi użytkownik wpisujący swój adres e-mail w formularzu może być traktowany jako podpis elektroniczny. Sprawdziliśmy już, że mają dostęp do adresu, wysyłając link, który muszą kliknąć. To nie jest absolutny dowód, ale został uznany za wystarczający do naszych celów.

Niezależnie od tego, jakie informacje przechwytujesz, sugeruję także przechwycenie znacznika czasu , abyś mógł powiedzieć „zgodziłeś się dokładnie na tę datę i godzinę”. Nie jestem pewien, czy ma to jakiekolwiek znaczenie prawne, ale wydaje mi się to bardziej przekonujące, ponieważ daje użytkownikowi więcej możliwości udowodnienia, że ​​jest inaczej (na przykład „Mam dowód, że nie byłem przy komputerze” ).

Szaleję z tym

Niektóre rzeczy, które mógłby zrobić które mogłyby być uznane za dowód:

  • Przechwytuj znacznik czasu, adres IP, przeglądarkę itp., Aby móc potwierdzić okoliczności podpisu
  • Wymagaj weryfikacji adresu e-mail
  • Wymagaj od użytkownika podania hasła w momencie podpisu
  • Ustal, że będzie uruchomiona usługa internetowa innej firmy do zapisu, która otrzyma, w momencie podpisania przez użytkownika, HTTPS POST z Twojej aplikacji z informacjami o podpisie. Jeśli strona trzecia może potwierdzić, że jej usługa jest tylko do zapisu, że w tym momencie otrzymała rekord, a twoja kopia jest identyczna, możesz argumentować, że od tego czasu nie zmodyfikowałeś danych.
  • W tym momencie wyślij do użytkownika wiadomość e-mail z informacją „dzięki za rejestrację, oto jak anulować subskrypcję”. Ich dostawca poczty e-mail lub Twój może być w stanie pokazać, że wiadomość e-mail została wysłana zaraz po podpisaniu przez użytkownika.

IANAL

Nie traktuj tego jako porady prawnej.

Nathan Long
źródło
Świetna odpowiedź ... ale adresy e-mail jako podpisy elektroniczne również są prawnie kwestionowane. Masz rację, nie ma absolutnie sprawdzonego sposobu. Po prostu różne odcienie trudniejszych. System prawny działa w oparciu o uzasadnione wątpliwości. Większość ludzi zgodzi się, że praca nad sfałszowaniem filmu, kradzież krwi i sfałszowanie podpisu nie jest rozsądną możliwością. Czy to może się zdarzyć? Tak, oczywiście, ale z pewnością jest mało prawdopodobne, aby ktokolwiek zadał sobie trud.
wałek klonowy
1
„... i nadal mogli powiedzieć, że ich klucz publiczny został skradziony”. nie powinno to brzmieć „… i nadal mogliby powiedzieć, że ich klucz prywatny został skradziony”. Skradziony klucz publiczny nie stwarza żadnych problemów związanych z bezpieczeństwem w dobrze zaprojektowanej PKI.
Lie Ryan,
capturing a timestampjest po prostu bezużyteczne. W dzisiejszych czasach zwykły użytkownik może łatwo stworzyć przeglądarkę lub automatyzację pulpitu, aby zaplanować wypełnianie formularzy w przyszłości.
Lie Ryan,
10

Inną opcją byłoby zalogowanie surowego postu HTTP z klienta. Miałoby to ich adres IP, skąd pochodzi, jaką przeglądarkę itp., Bez konieczności zrzutu ekranu. Następnie możesz zalogować to do surowej tabeli tylko do wstawiania lub do prostego płaskiego pliku dziennika ...

Po prostu próbuję wymyślić kilka innych opcji, ponieważ często spotykam się z takimi niedorzecznymi żądaniami o wiele częściej niż chciałbym ...

bunglestink
źródło
Hmm tak, ale ten dziennik znajduje się w tej samej bazie danych, w której martwią się o manipulację. Zobacz zmianę w mojej odpowiedzi, dokumenty PDF podpisane elektronicznie to jedyny sposób, aby upewnić się, że dokument nie został zmieniony.
wałek klonowy
1
@maple_shaft: Podstawową ideą dodania dodatkowych zabezpieczeń bazy danych byłyby uprawnienia „wstaw tylko” dla wszystkich użytkowników oprócz jednego administratora. Ten dziennik byłby dodatkiem do zwykłych działań w bazie danych i byłby wykorzystywany do weryfikacji tylko w razie potrzeby.
bunglestink
1
@JonnyBoats: Technicznie masz rację co do HTTPS, chociaż po otrzymaniu na poziomie aplikacji będzie rejestrowany ten sam nieprzetworzony tekst.
bunglestink
1
„dokumenty PDF podpisane elektronicznie” lub cokolwiek podpisanego elektronicznie ”to jedyny sposób na zapewnienie, że dokument nie zostanie zmieniony”, z wyjątkiem osoby posiadającej klucz, za pomocą którego mają zostać podpisane.
Random832
1
@ Random832: jest to wykonalne, jeśli użytkownik dostarczy klucz prywatny do dokumentu, IMO to nadmierna zaleta dla pola wyboru wskazującego zgodę na otrzymywanie materiałów promocyjnych.
Lie Ryan,
8

Zrzut ekranu jest łatwy do wykonania, jeśli masz na to ochotę. Jak każdy rodzaj mieszania, znaczników czasu itp. Bez podstawy kryptograficznej. Zakłada się, że istnieje ścisły wymóg regulacyjny, aby kolegium było w stanie udowodnić, że uzyskało pozytywną zgodę przed wysłaniem materiałów marketingowych do ludzi lub przekazaniem ich stronom trzecim.

Jedynym niezawodnym sposobem na to jest żądanie podpisu kryptograficznego od użytkownika. Na przykład zobacz, w jaki sposób witryna http://launchpad.net prosi o kryptograficzne podpisanie Kodeksu postępowania Ubuntu.

Ma to moc prawną tylko w jurysdykcjach, w których podpis dokumentu kryptograficznego może być użyty w dokumencie prawnym, ale podpisując określony fragment tekstu, użytkownik może przedstawić dowód jego zgody, który można później zweryfikować. Prawie niemożliwe byłoby, aby uczelnia sfałszowała prawidłowy podpis z tego samego klucza publicznego.

Zauważ, że kolegium wciąż aktualizuje swoją bazę danych, a tym samym odwraca pole zgody, a także zamienia klucz publiczny na inny, dla którego zna klucz prywatny, i generuje prawidłowy podpis dla tego klucza.

Dlatego bez kluczy podpisujących osoby trzecie, aby potwierdzić, że należą one do konkretnej osoby, wszystko to osiąga to, że użytkownik może sprawdzić, czy uczelnia sfałszowała swoje ustawienia prywatności - bez podpisu osoby trzeciej, to ich słowo przeciwko uczelni.

Jeśli dodatkowo zażądasz, aby cała własność klucza została zweryfikowana, a klucz podpisany przez jedną lub więcej zaufanych stron trzecich, szkoła wyższa nie będzie w stanie sfałszować pozornie ważnych podpisów bez znacznie większego ujawnienia (musieliby oszukać lub dokupić zaufana strona trzecia w celu podpisania fałszywych kluczy). Trudność tego ataku zwiększyłaby się wraz z liczbą wymaganych podpisów osób trzecich, ale jak zauważa inny plakat, nie jest niemożliwe.

Podsumowując:

  • Użytkownik musi posiadać lub wygenerować parę kluczy prywatny / publiczny
  • Użytkownik musi następnie uzyskać podpis dla swojego klucza publicznego od co najmniej jednej zaufanej strony trzeciej
  • Użytkownik musi przesłać swój klucz publiczny, przynajmniej do kolegium, a najlepiej do repozytorium kluczy strony trzeciej
  • Użytkownik musi podpisać znany zwykły tekst i dostarczyć podpis jako dowód, że wyraził zgodę na udostępnienie swoich prywatnych danych

Problemy praktyczne:

  • Niewiele osób rozumie podpisy kryptograficzne
  • Koszt certyfikacji strony trzeciej może być kosztowny
  • Wydaje się, że to bardzo dużo pracy, aby zabezpieczyć pole wyboru śmieci na stronie pobierania prospektu uczelni
Adrian
źródło
8

Zacznę od przeczytania podpisów elektronicznych dla kraju / stanu klienta z naciskiem na to, jakie metody i wymagania są prawnie wiążące. Jestem przekonany, że żaden kraj ani państwo przy zdrowych zmysłach nie wymagałoby zrzutu ekranu jako jedynej metody potwierdzenia wiążącego podpisu elektronicznego.

Na przykład w Stanach Zjednoczonych 47 stanów zaakceptowało Ustawę o jednolitych transakcjach elektronicznych , która ma zastosowanie między innymi do „spraw rządowych”, a zatem prawdopodobnie miałaby zastosowanie do wymagań kolegium. Zawiera następujące części, które mogą pomóc:

..

  • Podpis elektroniczny - oznacza elektroniczny dźwięk, symbol lub proces dołączony do zapisu lub logicznie z nim związany i wykonany lub przyjęty przez osobę z zamiarem podpisania zapisu.

..

  • Sekcja 7 przyznaje prawne podpisy elektroniczne, zapisy i umowy
    • (a) Rekordowi lub podpisowi nie można odmówić skutku prawnego lub wykonalności wyłącznie dlatego, że ma on formę elektroniczną.
    • (b) Umowie nie można odmówić skutku prawnego lub wykonalności wyłącznie dlatego, że do jej utworzenia wykorzystano zapis elektroniczny.
    • (c) Jeżeli prawo wymaga, aby zapis był sporządzony na piśmie, zapis elektroniczny jest zgodny z prawem.
    • (d) Jeżeli prawo wymaga podpisu, podpis elektroniczny jest zgodny z prawem.

..

Po zapoznaniu się z przepisami oszacowałbym koszt najlepszej metody podpisu elektronicznego w porównaniu do kosztu metody zrzutu ekranu.

Na koniec omówię z nimi moje ustalenia. Najpierw wyjaśnię im najlepszą opcję w porównaniu z proponowaną opcją. Następnie wyjaśnię im, ile czasu to wydłuży do projektu. Na koniec, gdybym był na miejscu, powiedziałbym im, że ta „funkcja” dodałaby x dolarów do końcowego rachunku. Byłbym bardzo pewny, że zastosuję dla mnie dodatkowy koszt jako uzasadnienie dla nich dodatkowego kosztu.

Gdyby nadal nie drgnęli, zobaczyłbym, czy mają przełożonego z rozsądkiem, z którym mógłbym spotkać to samo.

* Nie jestem prawnikiem, więc jeśli nie masz pewności, poproś o poradę prawną.

Briguy37
źródło
6

Ponieważ jest to pytanie prawne, rzeczywista odpowiedź będzie oczywiście zależeć od krajowych, a nawet lokalnych przepisów i konkretnych okoliczności. Tak więc oczywiście prawdziwa odpowiedź może pochodzić tylko od prawnika.

Jednak, o ile moja (ograniczona) wiedza prawna nie stanowi powodu, aby zakładać, że zrzut ekranu byłby uważany za dowód na wszystko, ponieważ jest on bardzo łatwy do sfałszowania.

Najlepszym rozwiązaniem jest prawdopodobnie wyjaśnienie klientowi, że jest to zasadniczo problem prawny i że wymagana jest pomoc prawnika. Następnie porozmawiaj z nimi, czy chcą, abyś porozmawiał z prawnikiem, czy też chcą to zrobić sami.

Aby uzyskać realne rozwiązanie, możesz sam porozmawiać (jeśli klient wyrazi zgodę). Jeśli nie chcesz tego kłopotu (lub obawiasz się, że mogą nie chcieć ci za to zapłacić), pozwól im to zrobić.

Śleske
źródło
6
Gdyby PO poszedł tą drogą, zasugerowałbym podejście pośrednie, wyjaśniłem klientowi, że powinni omówić to z prawnikiem, ale OP chciałby być zaangażowany w te dyskusje, jeśli to w ogóle możliwe. W ten sposób koszt ponosi bezpośrednio klient i istnieje mniejsze ryzyko, że klient źle zrozumie coś, co prawnik mówi, przekazując tę ​​informację do PO.
Kevin D,
5

Jeśli chcesz sprawdzić, czy dokument pozostaje niezmieniony (rekord bazy danych, cokolwiek), „najlepsza praktyka” wygląda następująco:

  • Serializuj dane w odtwarzalny sposób, w tym wszelkie pola, które mogą być sporne (np. Adres e-mail, czy pole jest zaznaczone).
  • Weź skrót tego rekordu (np. Sha1)
  • Użyj klucza publicznego dla zaufanej strony trzeciej (tj. Bezinteresownej strony trzeciej), aby zaszyfrować ten skrót
  • Opublikuj dane w sposób publiczny, aby ustalić datę ich istnienia, np. Grupa dyskusyjna.
  • Aby sprawdzić poprawność, strona trzecia może odszyfrować skrót i porównać go z bieżącą wartością skrótu.

Wykorzystano to w celu zagwarantowania, że ​​dokumentacja ubezpieczeniowa nie została naruszona; jednak „zaufana strona trzecia”, na którą zapłaciliśmy pewną kwotę, ogłosiła skróty, ponieważ zostały one podpisane z powrotem do nas samych i kilku innych klientów, więc było kilku opiekunów akt, którzy mogliby zostać wezwani w celu uzyskania dowodu.

Jest to oczywiście niedorzeczne obciążenie dla czegoś takiego jak walidacja pola logicznego. Ale jeśli pokażesz klientowi związane z tym koszty, prawdopodobnie przestaną być głupi.

BRPocock
źródło
4

Chociaż samo żądanie jest absurdalne i nie można mieć uzasadnionego dowodu prawnego, że osoba A zaznaczyła pole wyboru podczas wypełniania formularza, wewnątrz pytania znajduje się pytanie, na które można faktycznie odpowiedzieć:

[Jak upewnić się, że dane nie zostaną później zmienione, podczas gdy] DB można zmienić po wysłaniu formularza przez użytkowników?

W rzeczywistości może to być łatwiejsze do zrobienia pod względem technicznym.

1. Zachowaj dowód, że dane nie zostały zmienione

Wysłanie wiadomości e-mail do siebie (na dedykowaną skrzynkę pocztową) z wartościami faktycznie wysłanymi przez użytkownika jest łatwe (no cóż, w zależności od konfiguracji serwera może być to próg, szanse na filtrowanie jako spam, liczba wiadomości e-mail wysłanych na sekundę itp.) i wystarczy, aby pokazać, że dane nie zostały zmienione po ich przesłaniu . Na przykład, chyba że mam nieograniczony dostęp do serwerów Google , jestem prawie pewien, że każdy będzie przekonany, że nie jestem w stanie zmienić treści wiadomości e-mail wysłanych na mój własny adres Gmail.

2. Zachowaj dowód, że dane są poprawne

Możliwe, że klient nie będzie usatysfakcjonowany, ponieważ nawet jeśli masz dowód, że dane nie zostały później zmienione, w jaki sposób możemy się upewnić, że dane nie zostały zmodyfikowane między przesłaniem formularza a wysłaniem informacji e-mailem (i zatwierdzić do bazy danych)? W takim przypadku następnym krokiem jest:

  1. Usuń pole wyboru,
  2. Oznacz wszystkich, którzy wypełnili formularz, jako niechętnych do otrzymywania spamowych materiałów promocyjnych od firmy klienta,
  3. Wskaż odwiedzającym, że muszą wysłać wiadomość e-mail (z określonym tytułem i pustą treścią) na dedykowaną skrzynkę pocztową, aby otrzymywać oferty handlowe ze spamem .

Ich e-maile mogą być następnie przetwarzane automatycznie i przechowywane jako dowód.

3. Zachowaj dowód, że dane są autentyczne

Teraz, gdy masz dowód, że osoba korzystająca z podanego adresu e-mail faktycznie chce otrzymywać spam, klient może nadal być niezadowolony (co zwykle zdarza się, gdy klienci mają takie szalone żądania). Co się stanie, jeśli ktoś zhakuje skrzynkę pocztową innej osoby tylko po to, aby zarejestrować hakera, aby otrzymać spam?

Na tym poziomie szaleństwa nadal możesz technicznie reagować na wymagania. Teraz, zamiast wysyłać e-mail z wyrażeniem zgody, użytkownik witryny musi:

  1. Wyślij wiadomość e-mail z kopią dowodu osobistego / paszportu oraz listem z podpisem, że ta osoba naprawdę chce otrzymać spam.

  2. Sprawdź poprawność adresu e-mail za pomocą tajnego kodu, który zostanie odesłany.

Ale zanim to zrobisz, przekonaj klienta do wdrożenia tego, co opisałem w części 2 i przetestuj to. Klient zobaczy, że po miesiącu lub dwóch nikt nigdy nie wyśle ​​e-maila z wyrażeniem zgody i chętnie zapomni o dowodach prawnych i zmienionych danych w bazie danych.

Arseni Mourzenko
źródło
Twój krok 2 niczego nie dowodzi. Aby oznaczyć ludzi jako niechętnych do otrzymywania spamu, przechowujesz ten „znak” w tej samej bazie danych, w której klient martwi się o manipulację. Przechowywanie skrótu zestawu danych zapewnia jednak, że jeśli ktoś sfałszuje dane lub sam skrót, aby porównać dane z skrótem, spowoduje to, że nie powiedzie się to względem skrótu i ​​dowód, że dane zostały uszkodzone lub zmienione.
wałek klonowy
@maple_shaft, to, co jest zasadniczo istotne w części 2, to nie to, co jest przechowywane w bazie danych, a jedynie odbiór e-maili opt-in od użytkownika strony. Dane w bazie danych nie mają znaczenia.
Arseni Mourzenko
2
Krok 1 jest dobry. Łatwy, prosty, skuteczny.
Offirmo
@MainMa: I myślisz, że e-maili nie można podrobić ani sfałszować?
Ben Voigt,
3

Status prawny tego, co robisz, jest niezależny od technicznej wartości rozwiązania.

Na przykład :

Przez lata brytyjscy parlamentarzyści ignorowali elektroniczne petycje, ponieważ prawo wymagało, aby petycje opatrzone były podpisem dla każdej osoby. Potem ktoś zauważa, że ​​skrót adresu e-mail, daty, godziny i komentarza - mimo że nie zawierał tajnego klucza - stanowił „cyfrowy podpis” w oczach prawa brytyjskiego.

Dlatego poproś prawnika, aby powiedział ci, co masz robić, i zrób to. Nie martw się, czy to dźwięk.

Lub rób to, o co prosi klient, ufając, że sprawdził to u prawnika. Upewnij się, że jest zapis dyskusji.

szczupły
źródło
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.spełniłoby to jedynie prawne i polityczne zobowiązania wobec klienta; Myślę, że OP (słusznie) jest bardziej zainteresowany pomocą klientowi w spełnieniu jego wymagań prawnych (chociaż klient wydaje się obecnie źle rozumieć własne wymagania prawne, sugerując w ten sposób niewłaściwe rozwiązanie).
Lie Ryan,
3

Jak możesz usłyszeć zrzut ekranu? To, co masz, to HTML i cokolwiek, co wysyłasz do klienta, oraz elektroniczna odpowiedź od klienta. Żaden nie obejmuje zrzutu ekranu.

Zrzut ekranu jest tym, co renderuje przeglądarka, i może się nieco różnić w zależności od używanej przeglądarki oraz ustawień i wyposażenia na drugim końcu. Osobiście przeglądam w przeglądarce Firefox, Chrome, Opera, Mobile Safari, czasami Lynx, a czasem nawet trochę IE.

Możesz wyrenderować stronę w standardowej przeglądarce na swoim końcu i zrobić zrzut ekranu, ale zrobienie własnego dokumentu i nagranie go nie zrobi wrażenia na sądzie. Możesz poprosić użytkownika o przesłanie zrzutu ekranu, ale powodzenia w egzekwowaniu tego. Nie wszystkie urządzenia do przeglądania mają oczywisty sposób na zrobienie i wysłanie zrzutu ekranu (jak to zrobić na iPhonie?). Jeśli masz do czynienia z klientem z upośledzeniem wzroku za pomocą czytnika ekranu, po stronie klienta może nie być żadnej reprezentacji wizualnej. (Widziałem kilku moich niewidomych przyjaciół korzystających z komputera przenośnego, który nie miał żadnego wyświetlacza).

Wyjaśnij klientowi, że nie ma możliwości zrobienia zrzutu ekranu, a może nawet nie być ekranu do zrobienia zdjęcia.

David Thornley
źródło
1
iPhone: przytrzymaj przycisk LOCK przez kilka sekund. Android: zrootuj telefon i módl się. (Rozumiem, o czym mówiłeś,
mówiąc
3

W rzeczywistości możliwe jest utworzenie obowiązkowej kontroli dostępu w połączeniu z zaufanym znacznikiem czasu oraz podpisem cyfrowym dla bazy danych, aby zapewnić zaufanie do wartości kolumny. Zrzuty ekranu nie są poprawną odpowiedzią, istnieją jednak rozwiązania Trusted Computing, które osiągają dokładnie to, co chcesz osiągnąć. Jeśli chcesz uzyskać więcej informacji, możesz rozpocząć ze mną czat.

Ahmed Masud
źródło
2

Jak już wspomniano, nie można tak naprawdę udowodnić, że dana osoba się zgodziła, czy nie, więc najlepszym rozwiązaniem jest:

a) Poproś osobę, aby potwierdziła zgodę za pomocą linku wysłanego na jej adres e-mail (gwarantuje to, że nie wprowadziła właśnie adresu [email protected])

b) Daj im możliwość rezygnacji z subskrypcji marketingu / promocji

Matt Wilko
źródło
2

Schemat najbliższy zabezpieczeniu przed manipulacją polegałby na wygenerowaniu pary kluczy publiczny / prywatny, gdy użytkownik wypełnił formularz za pomocą Javascript (po stronie klienta), a następnie wysłał treść formularza, klucz publiczny i podpis do serwer i przedstaw użytkownikowi klucz prywatny i poproś go o zanotowanie go i przechowywanie go w bezpiecznym miejscu.

Za pomocą tego schematu można udowodnić, że nie można manipulować danymi formularza, ponieważ nie znasz klucza prywatnego używanego do generowania podpisu. Słabością tego schematu jest to, że musisz być w stanie udowodnić, że nigdy nie dotknąłeś klucza prywatnego i że użytkownik nie może stracić swojego klucza prywatnego.

Ponieważ musisz być w stanie udowodnić, że nigdy nie miałeś dostępu do klucza prywatnego, może być konieczne dołączenie kodu HTML i całego Javascript podczas generowania podpisu formularza; świadczy to o dokładnej formie, której używa użytkownik do przesłania danych (co dowodzi, że nie zmodyfikowałeś formularza / javascript od czasu ich przesłania, co oznacza, że ​​nie użyłeś javascript do kradzieży ich klucza prywatnego).

Ten schemat jest złożony i jak w przypadku każdego złożonego systemu, nie mogę zagwarantować, że nie ma dziury (w rzeczywistości jestem dość pewien, że tak jest i ktoś prawdopodobnie byłby w stanie to zauważyć).

Lie Ryan
źródło
2

Zrzut ekranu nie byłby dowodem, ponieważ nie ma możliwości sprawdzenia, czy zrzut ekranu jest prawdziwy. Można to łatwo sfałszować. Jeśli chodzi o więcej rozwiązań technicznych, istnieje silnik pamięci archiwalnejdla MySQL, który obsługuje tylko wstawianie i wybieranie. W ogóle nie można usunąć ze stołu. Pamiętaj, że możesz ZMIENIĆ TABELĘ na inny silnik pamięci masowej, usunąć rekord, a następnie ZMIEŃ TABELĘ, aby przywrócić silnik z powrotem bez uprzedzenia, ale mam nadzieję, że możesz ograniczyć to do rootowania i pozwolić rootowi na zalogowanie się lokalnie . Następnie możesz po prostu śledzić logowania do rzeczywistej lokalnej maszyny bazy danych, aby dowiedzieć się, kto prawdopodobnie ją zmienił. Możesz również przeanalizować dzienniki binarne lub włączyć dziennik zapytań surowych, aby zobaczyć, kto mógł wysyłać zapytania, które spowodowały tego rodzaju działanie. Nie jestem pewien, jakiej technologii baz danych używasz, ale najprawdopodobniej powinieneś być w stanie znaleźć rozwiązanie, które uniemożliwi łatwą zmianę danych.

Kibbee
źródło
2

Polecam usiąść i przeczytać Akt ESIGN . Niniejszy statut obejmuje to, co jest i nie jest konieczne do zarejestrowania podpisu elektronicznego, aby był on prawnie wiążący. U poprzedniego pracodawcy stwierdziliśmy, że najtrudniejszą przeszkodą ustawową było zapewnienie czytelności podpisów i dokumentów przez 10-15 lat w przyszłości.

Szczegóły każdego wypełnionego formularza należy zapisać w wiarygodny sposób. Najwyraźniej zapisanie wartości formularza w bazie danych - kolumnie wskazującej, czy użytkownik się zgodził, czy nie - nie wystarczy, ponieważ DB można zmienić po wysłaniu formularza przez użytkowników. Nasz klient twierdzi, że inne portale uczelni tworzą zrzut ekranu wypełnionego formularza i zapisują go gdzieś w dedykowanym folderze, w łatwo dostępny sposób, na przykład nadając plikowi nazwę zawierającą nazwę użytkownika i datę i czas.

Jak zauważyli inni, zrzut ekranu jest czymś, czego nie można zrobić. Można go sfałszować, ponieważ wszystkie pokazy „magiczne” są czystym fałszem: widzisz kogoś, kto zostaje przecięty na pół, ale tak naprawdę nie zostaje przecięty na pół.

Tangurena
źródło
1

Wcześniej miałem do czynienia z moją częścią szaleństwa. Mogę wymyślić jakieś rozwiązania techniczne, ale dlaczego nie wrócić do klienta i zaproponować przeredagowanie pytania na „Czy nie chcesz otrzymywać e-maili marketingowych?” (lub podobne sformułowanie) i pozwolić tej osobie zrezygnować? Więc nie potrzebujesz zrzutu ekranu.

jqa
źródło
1

Jak wszyscy zauważyli, techniczne i prawne zalety żądania funkcji nie istnieją. To powiedziawszy, istnieje opcja, jeśli użytkownik może ręcznie pobrać i przesłać zrzut ekranu jako załącznik formularza.

Mosze
źródło