Мы получили запрос от одного из наших клиентов, и, поскольку я никогда не сталкивался с таким запросом, я даже не знаю, с чего начать.
Наш клиент - это сеть колледжей, и мы создаем им сайт. На этом сайте, среди прочего, будет форма, которую потенциальные абитуриенты могут заполнить, чтобы получить больше информации об учебе в одном из колледжей. После того, как пользователь заполняет эту форму, включая указание своего адреса электронной почты и / или телефона, соответствующий колледж связывается с ним с соответствующей информацией.
Теперь, по юридическим причинам, клиент просит, чтобы эта форма также имела флажок, который потенциальный кандидат проверяет, чтобы указать, что он согласен получать рекламные материалы из этих колледжей. Это конечно не проблема. Но тут возникает странная часть запроса:
Детали каждой заполненной формы должны быть сохранены надежным способом. Очевидно, что сохранения значений формы в базе данных - столбце, указывающем, согласился или не согласился пользователь, - недостаточно, поскольку БД можно было изменить после того, как пользователи отправили форму. Наш клиент утверждает, что другие порталы колледжа создают скриншот заполненной формы и сохраняют его где-то в отдельной папке, таким образом, чтобы его можно было легко найти, например, присвоив файлу имя, которое включает имя пользователя и дату и время.
У меня такой вопрос: слышали ли вы об использовании снимков экрана как метода доказательства того, что пользователь действительно заполнил форму? Есть ли другие методы, которые считаются надежными?
Ответы:
Я никогда не слышал о чем-то подобном, и это было бы смешно, потому что фальшивый скриншот можно создать так же легко, как фальшивое значение в базе данных.
РЕДАКТИРОВАТЬ Кроме того, я имею в виду, WTF? поскольку вы не можете получить снимок экрана чьего-либо экрана через Интернет, вам, очевидно, придется реконструировать страницу на сервере и сделать снимок этого экрана, а затем кто скажет, что вы его не лечили?
источник
Я знаю, что начинаю этот ответ с вопроса, но у меня есть точка зрения:
Не вызывая сомнений в предполагаемой абсурдности запроса, если это типичное веб-приложение на основе браузера HTTP, как можно программно сделать снимок экрана и отправить его на сервер?
Я надеюсь, что это невозможно, так как это будет представлять серьезную проблему безопасности и конфиденциальности браузера.
Теперь представьте, был ли номер кредитной карты кого-то еще на экране во время захвата скриншота. Теперь вы случайно собираете информацию о кредитной карте, и ваша система должна быть совместимой с PCI. Это еще один путь беспокойства.
Единственный способ сделать это, вероятно, будет использовать сторонний плагин браузера, такой как Flash, Silverlight, Java Applets или элемент управления ActiveX с повышенными системными привилегиями. Компонент должен быть подписан, и пользователь должен будет согласиться с тем, что компонент имеет доступ для запуска кода на своей машине.
В этом плане слишком много дыр, и я серьезно сомневаюсь, что другие колледжи реализуют нечто подобное. Я, конечно, никогда не слышал об этом в своей профессиональной карьере, по крайней мере, с веб-приложением.
РЕДАКТИРОВАТЬ:
Я просто подумал о другом варианте, который, вероятно, будет в большей степени отражать то, что я думаю, что ваш клиент действительно просит.
У меня было заявление, которое я сделал для клиента, где клиент должен был согласиться и подписать документ NDA, чтобы получить доступ к приложению. Я достиг этого через подписываемый документ PDF. У вас может быть поле для подписи в документе PDF, которое либо с помощью USB-компонента «ручка + блокнот», либо просто нажав на него, чтобы подтвердить, что для юридических целей будет так же хорошо, как если бы вы подписывали документ вручную.
Это называется электронная подпись, и они остаются в суде.
Документ PDF после подписания становится зашифрованным и вместе с ним сохраняется хеш, который проверяет, что документ НЕ был подделан после подписания. Современные программы для чтения PDF, такие как Adobe, могут фактически передавать подписанный документ на сервер, где вы можете сохранить его в системе управления документами или базе данных для безопасного хранения.
В любое время пользователи-администраторы могут вспомнить один из этих документов и распечатать их.
Это может быть больше похоже на то, что на самом деле нужно вашему клиенту, но у него было мало времени для правильного объяснения.
источник
Я думаю, что реальный вопрос будет в том, действительно ли человек, чье имя появляется в форме, действительно заполняет форму?
Другими словами, если кто-то заходит на веб-сайт и вводит имя «Билл Гейтс» и щелкает по полю «все в порядке, отправьте мне электронное письмо», как будет снимок экрана доказать, что это был настоящий Билл Гейтс?
Рассматривали ли они делать то, что делают многие сайты, то есть отправлять подтверждающее электронное письмо с уникальной ссылкой, на которую кто-то должен нажать, чтобы подтвердить? Таким образом, по крайней мере, у вас есть запись о том, что вы получили подтверждение от кого-то, имеющего доступ к этой учетной записи электронной почты.
источник
Нет такой вещи
Это обсуждение должно начинаться с пониманием того, что не существует никакого способа абсолютно доказать , что человек согласился. Это верно даже в физическом мире. Даже если вы снимаете видео с человека, который физически подписывает форму и помещает в нее каплю крови, они могут сказать, что видео было сфальсифицировано, кровь была взята у него без его ведома, а подпись была подделана. Но абсолютное доказательство не нужно; просто разумное количество доказательств.
В цифровом мире любые данные - текст, изображение, данные в базе данных или электронная почта - могут быть подделаны. Самое близкое к доказательству, которое мы можем иметь, - это чтобы пользователь зашифровал что-то с помощью закрытого ключа и показал, что его открытый ключ расшифрует это. Тем не менее, в настоящее время это недоступно большинству пользователей, и они все еще могут сказать, что их закрытый ключ был украден.
Лучшее, что мы можем сделать, это:
Сохранение изображения, а не текста ничего не добавляет в плане доказательства; все, что он делает, это делает процесс медленнее и дороже.
Электронные подписи
В моей работе есть приложение, в котором пользователи подписывают заявление. Юридически юрисдикции, в которых мы работаем, приняли законы, согласно которым пользователь, вводящий свой адрес электронной почты в форму, может считаться электронной подписью. Мы уже убедились, что у них есть доступ к адресу, отправив ссылку, по которой они должны щелкнуть. Это не абсолютное доказательство, но оно считается достаточно хорошим для наших целей.
Какую бы информацию вы ни собирали, я бы посоветовал также фиксировать временную метку , чтобы вы могли сказать «вы согласились с этой точной датой и временем». Я не уверен, имеет ли это какое-либо юридическое значение, но мне это кажется более убедительным, потому что это дает пользователю больше возможностей доказать обратное (например, «у меня есть доказательства того, что я не был за компьютером») ).
Схожу с ума от этого
Некоторые вещи, которые вы могли бы сделать, которые можно считать доказательством:
IANAL
Пожалуйста, не принимайте это как юридическую консультацию.
источник
capturing a timestamp
просто бесполезно. В настоящее время обычному пользователю достаточно просто создать браузер или автоматизацию рабочего стола, чтобы запланировать заполнение форм в будущем.Другим вариантом может быть запись необработанного HTTP-сообщения от клиента. Это будет иметь их IP, откуда они пришли, какой браузер и т. Д., Без скриншота. Затем вы можете войти в таблицу только для вставки в необработанном виде или в простой плоский файл журнала ...
Просто пытаюсь придумать какие-то другие варианты, потому что я, как правило, сталкиваюсь с такими нелепыми запросами гораздо чаще, чем хотелось бы ...
источник
Скриншот легко изготовить, если вы так склонны. Как и любой вид хеширования, меток времени и т. Д. Без криптографической основы. Предполагается, что существует некое строгое нормативное требование, чтобы колледж мог доказать, что он получил положительное согласие, прежде чем отправлять маркетинговые материалы людям или передавать их информацию третьим лицам.
Единственный надежный способ сделать это - потребовать от пользователя криптографическую подпись. Например, посмотрите, как сайт http://launchpad.net просит вас криптографически подписать Кодекс поведения Ubuntu.
Это имеет силу закона только в тех юрисдикциях, где криптографическая подпись может использоваться на юридическом документе, но, подписав определенный фрагмент текста, пользователь может предоставить подтверждение своего согласия, которое впоследствии будет проверено. Для колледжа было бы практически невозможно подделать правильную подпись из того же открытого ключа.
Обратите внимание, что для колледжа все еще тривиально обновить свою базу данных и, таким образом, перевернуть поле согласия, а также заменить открытый ключ другим, для которого он знает закрытый ключ, и сгенерировать действительную подпись для этого ключа.
Следовательно, без сторонних ключей подписи, удостоверяющих, что они принадлежат конкретному лицу, все это достигается тем, что пользователь может проверить, подделали ли колледж свои настройки конфиденциальности - без подписи третьей стороны это их слово против колледжа.
Если вы также потребуете, чтобы все владение ключами было подтверждено, а ключ подписан одной или несколькими доверенными третьими сторонами, то колледж не сможет подделать явно действительные подписи, не подвергаясь гораздо большему разоблачению (им придется обмануть или кооптировать доверенное третье лицо для подписания поддельных ключей). Сложность этой атаки будет возрастать с увеличением количества необходимых сторонних подписей, но, как отмечает другой автор, это не невозможно.
Итак, подведем итог:
Практические проблемы:
источник
Я бы начал с чтения электронных подписей для страны / государства клиента с целью выяснить, какие методы и требования являются юридически обязательными. Я уверен, что ни одна страна или штат, находящиеся в здравом уме, не потребуют снимок экрана в качестве единственного метода доказательства обязательной электронной подписи.
Например, в США 47 штатов приняли Единый закон об электронных операциях , который, помимо прочего, применяется к «государственным вопросам» и, следовательно, может применяться к требованиям колледжа. Он имеет следующие части, которые могут помочь:
..
..
..
Зная законы, я бы оценил стоимость лучшего метода электронной подписи и стоимость метода скриншота.
Наконец, я бы обсудил с ними свои выводы. Во-первых, я бы объяснил им лучший вариант против предложенного. Затем я объясню им, сколько времени это добавит к проекту. Наконец, если бы я был в таком месте, я бы сказал им, что эта «функция» добавит х долларов к окончательному счету. Я был бы очень уверен использовать дополнительные расходы для меня в качестве оправдания дополнительных расходов для них.
Если бы они все еще не сдвинулись с места, я бы посмотрел, есть ли у них начальник с каким-то здравомыслием, с которым я мог бы встретиться в тот же день.
* Я не юрист, поэтому, пожалуйста, обратитесь за юридической консультацией, если вы ни в чем не уверены.
источник
Поскольку это юридический вопрос, реальный ответ, конечно, будет зависеть от национальных и, возможно, даже местных законов и конкретных обстоятельств. Очевидно, что настоящий ответ может дать только адвокат.
Однако что касается моих (ограниченных) юридических знаний, я не вижу оснований предполагать, что скриншот будет рассматриваться как свидетельство чего-либо, поскольку его, очевидно, очень легко подделать.
Ваш лучший способ действий, вероятно, состоит в том, чтобы объяснить своему клиенту, что это, по сути, юридическая проблема, и что требуется помощь адвоката. Затем обсудите с ними, хотят ли они, чтобы вы обсудили это с юристом, или они хотят сделать это сами.
Чтобы получить реальное решение, вы можете обсудить это самостоятельно (если клиент согласен). Если вы не хотите этих хлопот (или боитесь, что они не захотят вам за это платить), дайте им это сделать.
источник
Если вы хотите проверить, что документ остается неизменным (запись в базе данных, что угодно), «наилучшая практика» выглядит следующим образом:
Это использовалось, чтобы гарантировать, что страховые записи не были подделаны; однако «доверенная третья сторона», которой мы заплатили определенную сумму денег, обнародовала хэши, поскольку они были подписаны обратно нам и нескольким другим клиентам, поэтому было несколько хранителей записей, которые потенциально могли быть вызваны в суд для получения доказательств.
Это явно нелепое бремя для чего-то вроде проверки логического поля. Но если вы покажете клиенту расходы, они, вероятно, перестанут быть глупыми.
источник
Хотя сам запрос является абсурдным, и у вас не может быть разумного юридического доказательства того, что человек А установил флажок при заполнении формы, внутри вашего вопроса есть вопрос, на который можно ответить:
Это, на самом деле, может быть проще сделать технически.
1. Держите доказательство того, что данные не были изменены
Отправка электронной почты себе (в выделенный почтовый ящик) со значениями, фактически отправленными пользователем, очень проста (ну, в зависимости от конфигурации вашего сервера это может быть порог, шансы на фильтрацию как спам, количество сообщений электронной почты, отправляемых в секунду и т. д.), и этого достаточно, чтобы показать, что данные не были изменены после их отправки . Например, если у меня нет неограниченного доступа к серверам Google , я почти уверен, что все будут убеждены, что я не могу изменить содержание писем, которые я отправил на мой собственный адрес GMail.
2. Держите доказательство того, что данные верны
Скорее всего, клиент не будет удовлетворен, потому что даже если у вас есть доказательство того, что данные не были изменены впоследствии, как мы можем быть уверены, что данные не были изменены между отправкой формы и отправкой информации по электронной почте (и зафиксировать в базе данных)? В этом случае следующим шагом является:
спам-рекламные материалы от компании ваших клиентов,рассылки спама.Их электронные письма могут затем обрабатываться автоматически и храниться в качестве доказательства.
3. Держите доказательство того, что данные являются подлинными
Теперь, когда у вас есть доказательство того, что человек, использующий данный адрес электронной почты, действительно хочет получать спам, клиент все еще может быть недоволен (что обычно происходит с клиентами, имеющими такие сумасшедшие запросы). Что если кто-то взломает чужой почтовый ящик, чтобы зарегистрировать хакера для получения вашего спама?
На этом уровне сумасшествия вы все равно можете технически реагировать на требования. Теперь вместо отправки электронного письма пользователю сайта необходимо:
Отправьте письмо с копией удостоверения личности / паспорта и письмо с подписью о том, что этот человек действительно хочет получить спам.
Подтвердите адрес электронной почты с помощью секретного кода, который будет отправлен обратно.
Но прежде чем сделать это, убедите клиента реализовать то, что я описал в части 2, и протестируйте его. Заказчик увидит, что через месяц или два никто никогда не отправит подписку по электронной почте и с радостью забудет о юридических доказательствах и измененных данных в базе данных.
источник
Юридический статус того, что вы делаете, не зависит от технических достоинств решения.
Например :
В течение многих лет британские парламентарии игнорировали электронные петиции, потому что закон требовал, чтобы петиции имели подпись для каждого человека. Затем кто-то замечает, что хэш адреса электронной почты, даты, времени и комментария - даже если он не содержит секретного ключа - представляет собой «цифровую подпись» в глазах британского законодательства.
Поэтому попросите адвоката сказать вам, что делать, и сделайте это. Не волнуйся, звук ли это.
Или сделайте то, что просит ваш клиент, полагая, что он проверил с адвокатом. Убедитесь, что есть запись обсуждения.
источник
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.
это просто выполнит ваши юридические и политические обязательства перед клиентом; Я думаю, что OP (справедливо) больше заинтересован в том, чтобы помочь клиенту выполнить его юридические требования (хотя в настоящее время клиент, похоже, неправильно понимает свои собственные юридические требования, предлагая, таким образом, неправильное решение).Как блин ты должен получить скриншот? У вас есть HTML-код и все, что вы отправляете клиенту, и электронный ответ от клиента. Ни один не включает в себя скриншот.
Снимок экрана показывает, что отображает браузер, и будет несколько отличаться в зависимости от используемого браузера и настроек и оборудования на другом конце. Лично я использую Firefox, Chrome, Opera, Mobile Safari, иногда Lynx и даже немного IE.
Вы можете отобразить страницу в стандартном браузере и сделать снимок экрана, но создание собственного документа и его запись не произведут на судью впечатление. Вы можете попросить пользователя отправить скриншот, но удачи в этом. Не у всех браузерных устройств есть очевидный способ сделать и отправить скриншот (как вы делаете это на iPhone?). Если вы имеете дело с клиентом с нарушениями зрения, использующим программу чтения с экрана, на стороне клиента может вообще не быть визуального представления. (Я видел пару моих слепых друзей, которые использовали портативный компьютер, у которого вообще не было дисплея.)
Так что объясните клиенту, что нет способа получить скриншот, и может даже не быть экрана, чтобы сделать снимок.
источник
Фактически возможно создать Обязательный контроль доступа в сочетании с доверенной меткой времени плюс цифровая подпись для базы данных, чтобы обеспечить доверие к значению столбца. Снимки экрана не являются правильным ответом, но есть решения Trusted Computing, которые достигают именно того, чего вы хотите достичь. Если вы хотите больше деталей, вы можете начать общаться со мной.
источник
Как уже указывалось, вы не можете доказать, что человек согласен или нет, так что лучшим решением будет:
а) Получите, чтобы человек подтвердил свое согласие по ссылке, отправленной на его адрес электронной почты (это гарантирует, что он не просто ввел billgates@microsoft.com)
б) Дайте им возможность отказаться от подписки на маркетинг / продвижение
источник
Схема, которая наиболее близка к защите от несанкционированного доступа, будет состоять в том, чтобы сгенерировать пару открытого / закрытого ключа, когда пользователь заполнил форму с использованием (на стороне клиента) Javascript, а затем отправить содержимое формы, открытый ключ и подпись сервер, и представить личный ключ пользователю и попросить его принять к сведению и хранить его в безопасном месте.
С помощью этой схемы вы сможете доказать, что невозможно подделать данные формы, поскольку вы не знали секретного ключа, который используется для генерации подписи. Слабость этой схемы в том, что вы должны быть в состоянии доказать, что вы никогда не касались закрытого ключа, и что пользователь не должен терять свой закрытый ключ.
Поскольку вы должны быть в состоянии доказать, что у вас никогда не было доступа к закрытому ключу, может потребоваться включить HTML и весь Javascript при создании подписи формы; это подтверждает точную форму, которую пользователь использует для отправки данных (следовательно, доказательство того, что вы не изменяли форму / javascript с момента их отправки, что доказывает, что вы не использовали javascript для кражи их личного ключа).
Эта схема сложна, и, как и в случае любой сложной системы, я не могу гарантировать, что дыры нет (на самом деле, я вполне уверен, что она есть, и кто-то, вероятно, сможет указать на это).
источник
Снимок экрана не будет большим доказательством, так как нет никакого способа проверить, является ли снимок экрана реальным. Это так легко подделать. Что касается более технических решений, есть механизм хранения архивадля MySQL, который поддерживает только вставку и выбор. Вы не можете удалить из таблицы вообще. Имейте в виду, что возможно изменить ALTER TABLE на другой механизм хранения, удалить запись, а затем ALTER TABLE, чтобы вернуть механизм обратно, чтобы никто не заметил, но, надеюсь, вы можете ограничить это для пользователя root и разрешить root только для локального входа в систему. , Затем вы можете просто отслеживать входы в систему на локальной машине базы данных, чтобы выяснить, кто ее изменил. Вы также можете проанализировать двоичные журналы или включить необработанный журнал запросов, чтобы увидеть, кто мог выдавать запросы, которые привели к такого рода действиям. Я не уверен, какую технологию баз данных вы используете, но, скорее всего, вы сможете найти решение, которое не позволит легко изменять данные.
источник
Я рекомендую вам сесть и прочитать Акт ESIGN . Этот статут охватывает то, что является и не является необходимым для записи электронной подписи, чтобы она имела юридическую силу. У предыдущего работодателя мы обнаружили, что самым трудным законодательным препятствием была возможность сделать подписи и документы удобочитаемыми в течение 10-15 лет в будущем.
Как уже отмечали другие, скриншот - это то, что невозможно сделать. Это может быть подделка, поскольку все «волшебные» шоу - просто подделка: вы видите, как кого-то распиливают пополам, но на самом деле его распиливают не пополам.
источник
Я имел дело с моей долей сумасшествия раньше. Я могу подумать о некоторых технических решениях, но почему бы не вернуться к клиенту и предложить переписать вопрос «Вы не хотите получать маркетинговые электронные письма?». (или аналогичная формулировка) и разрешить человеку отказаться? Тогда вам не нужен снимок экрана.
источник
Как все отметили, техническая и юридическая значимость запроса функции отсутствует. Тем не менее, есть возможность, если пользователь может вручную сделать снимок экрана и загрузить его в виде вложения в форму.
источник