Мой работодатель попросил меня реализовать функцию, которая потребовала бы хранения паролей в виде открытого текста в базе данных (или использования неясной функции шифрования / дешифрования, хранящейся в двоичном файле, что немного лучше, но также небезопасно).
Я ответил, что готов реализовать такую функцию, при условии, что клиенты будут знать о последствиях безопасности при ее использовании.
Обсуждая эту проблему с коллегами, кто-то сказал мне, что, как инженер-программист, мы несем личную ответственность (в юридическом смысле) за проблемы безопасности, которые мы вводим в наши продукты. Я заглянул в свой контракт, но не нашел ничего связанного с подобным случаем.
С юридической точки зрения, должен ли я отказаться от реализации такой функции? Правда ли, что мой работодатель может привлечь меня к суду, если клиенту будет нанесен ущерб из-за этой функции, даже если он также знал о проблемах безопасности?
РЕДАКТИРОВАТЬ: Я понимаю, что на этот вопрос можно только надежно ответить от адвоката. То же самое относится и к вопросам лицензирования: люди здесь дают свое понимание и свой опыт, иногда после консультации с юристом, без каких-либо гарантий, что это применимо в другой юрисдикции. Но лицензирование здесь явно принимается в качестве темы, см. Какие вопросы я могу задать здесь? , Я полагаю, что другие программисты могут иметь такую же проблему, и другие, возможно, сталкивались с этой ситуацией раньше, и, возможно, проконсультировались с юристом для этого.
Ответы:
Ваш коллега введен в заблуждение, тем более что в вашем контракте вы не найдете ничего об ответственности за безопасность. Даже если это произойдет, вы только что получили противоречивый приказ от руководства.
Я думаю, что единственный раз, когда вы подвергаете себя потенциальному судебному разбирательству, это если вы сознательно повредите продукт, создадите собственную бомбу замедленного действия, пасхальное яйцо и т. Д.
В большинстве случаев компания владеет программным обеспечением, поэтому они могут получать прибыль, но это также означает, что они тоже рискуют, а не отдельный разработчик.
Лично я бы позаботился о том, чтобы руководство знало о проблемах с этой функцией безопасности, чтобы она была задокументирована заранее, и просто продолжал выполнять свою работу.
При этом, проконсультируйтесь с адвокатом, Яда-Яда-Яда.
источник
Что бы ни случилось: никогда не пишите такой код, не имея по электронной почте или других доказательств того, что вы просто следовали инструкциям вашего работодателя.
источник
С юридической точки зрения проконсультируйтесь с юристом. Я не один, и мы не имеем ни малейшего понятия, под какой юрисдикцией или законами вы живете, и которые могут помочь объяснить некоторые вещи. Но в любом случае проконсультируйтесь с юристом, доверяете ли вы интернет-сайту вопросов и ответов своему личному, профессиональному и финансовому будущему.
Общий деловой совет заключается в том, чтобы убедиться в том, что вы забронировали свои резервы в письменном виде, и прямое распоряжение вашего работодателя продолжить, учитывая проблемы безопасности в письменной форме. Если что-то пойдет на юг и поразит вентилятор, у вас будет на что вернуться.
Другим способом решения этой проблемы является более глубокий анализ требований - вы поделились планом, а не проблемой, которую решаете. Существует более одного способа скинуть кошку или справиться с требованиями поиска пароля.
источник
Я не стал бы беспокоиться об этом - это не значит, что вы злонамеренно решаете сами включить небезопасную функцию и позже сами ее использовать, или просто включаете ее, потому что вы по небрежности. Компания хочет этого, кто-то решил, что компромисс между временем разработки и ожиданиями пользователей является приемлемым (как обычно), и поэтому вы должны продолжать это. Если вы действительно беспокоитесь о каких-либо ответах, отправьте своему боссу электронное письмо и оставьте ответ. Как только вы это сделаете, как сотрудник, вы застрахованы.
Иногда есть причины, по которым это приемлемо - например, я знаю некоторые очень важные решения, которые хранят пароли в виде простого текста, но остальная часть системы защищена, чтобы это не стало проблемой. Эта система находится в отдельной сети, например. Если вы не знаете остальную часть истории (обычная ситуация в большинстве компаний), вы можете разумно ожидать, что кто-то еще рассмотрел это. Точно так же, если у вас есть это письмо от вашего босса, вы можете ожидать, что он знает, что делает.
Кстати ... это продукт, который я (как потребитель) мог бы использовать? Если так .. что это, так что я могу избежать этого? :)
источник
Мы понимаем, что многочисленные ошибки добавляются разработчиками, которые наносят вред клиентам во время оперативных операций к столь же значительному активу. Мы не думаем, что они являются преднамеренными, но это все-таки результат некоторых наших конкретных работ, и все же не на должном уровне Таким образом, приведенный вами пример не является единичным случаем, когда решения разработчика (или более высоких должностных лиц) влияют на клиента.
Вот что я предлагаю:
Во-первых, во что бы то ни стало - это компания, которая поставляет программное обеспечение другой компании. Человеку не дают прямой кредит (за аплодисменты в команде и зарплату не более) и право собственности на работу. Так что, хотя это не очень хорошая вещь для нашей доставки, но вы здесь не преступник, если решение не ваше.
Как профессиональный программист, вы четко указали бы ограничения кода и опасности, связанные с тем, как поддерживать вещи как часть файла README или документации. Если есть документ с требованиями - в предложенном протоколе испытаний и т. Д. Должны быть четко указаны ограничения.
Чтобы заставить ответственного за принятие решения нести ответственность, я бы попросил вышестоящего сотрудника подтвердить свое мнение по электронной почте о любых таких документах.
Взвесьте риск правильно. Программное обеспечение моей карты данных хранит пароль в тексте плана, но это не важно. Но то же самое недопустимо, если я храню пароль банка или если это доступ к базе данных или серверу. Таким образом, исходя из реального риска, вы должны поднять проблему как можно выше.
источник
Если вы не выполняете свою работу преднамеренно пагубным образом, юридические недостатки выполнения заданных вами задач незначительны. У вас будет трудовой договор, в котором будут указаны ваши обязательства, вы можете проконсультироваться с юристом по техническим вопросам. Получите письменное одобрение решения о разработке паролей в виде открытого текста, если вы действительно чувствуете себя разоблаченным.
Немного больше беспокойства вызывает ваша цитата об «информировании клиентов». Если вы повредите репутации вашей компании, репутации и т. Д. (Пункт о том, что будет в вашем контракте), то ваша компания может подать на вас в суд - и защита «осведомителя» может не помочь вам, когда вам нужна рекомендация или другая работа.
Если вы недовольны последствиями дыр в безопасности, обновите свое резюме и продолжайте, но если это было не ваше решение и не ваша компания, я не могу понять, почему это будет «обвинено» (юридически) на вас ,
источник
Ваша компания должна была оформить профессиональную страховку при найме на работу. Это должно обеспечить адекватную правовую защиту для всех его сотрудников на случай, если что-то пойдет не так с программным обеспечением, или неправильное использование программного обеспечения или обнаруженные в программном обеспечении недостатки (например, незашифрованные пароли).
Как сотрудник, вы должны делать то, что они просят, и они должны делать то, что хочет клиент, если ни одна из сторон не нарушает закон, это не проблема, но если вы делаете то, что хочет компания, а затем оказывается, что это не то, что клиент хотел / требовал, тогда это между ними, и страховка профессионального возмещения должна покрывать вас от любой личной вины / ответственности.
IANAL, но я бы обсудил это с юридической командой компаний, в дополнение к проверке с вашими юристами.
PS, если вы серьезно напуганы этим, сохраните все соответствующие электронные письма в электронном и бумажном виде где-нибудь за пределами сайта, если это возможно.
источник
Время новой работы. Забудьте об этом. Время двигаться. Если они захотят быть такими кавалерскими и обманчивыми с этим, они не будут бояться бросить вас под автобус.
Кроме того, не бойтесь, как только вы уйдете, чтобы анонимно связаться с одной из многих групп, которые указывают на дыры в безопасности программного обеспечения людей. Это катастрофа, ожидающая случиться. Нет абсолютно никаких веских причин хранить их. Ваш босс дал вам причину? Они хотят войти как пользователи? Они хотят облегчить получение паролей? Если вы не получите ответ на один из этих вопросов, который вы можете адресовать более безопасно, то пришло время двигаться дальше. Когда ты уйдешь, лучше не говорить им почему.
источник
что вы можете сделать, чтобы следовать указаниям по сохранению паролей в восстанавливаемом формате, но при этом все равно невозможно их получить, если у вас есть полный доступ к программе, использующей асимметричное шифрование
Вы шифруете (как всегда, соленый) ключ открытым ключом, хранящимся в двоичном
и когда пароли необходимы в виде простого текста, человеку необходимо предоставить закрытый ключ, который в противном случае защищен от сервера
источник
Лично я никогда не слышал о том, чтобы инженер-программист, без оговорки в контракте или другом формальном соглашении, не был привлечен к юридической ответственности за проблемы безопасности в продуктах, над которыми он работает. Из того, что я читал о законах и этике в разработке программного обеспечения, требования безопасности для системы определяются спецификацией требований, которая также относится к любым юридическим, отраслевым или корпоративным требованиям. При построении системы несоблюдение требований безопасности рассматривается как невыполнение условий контракта, поскольку система не была собрана в соответствии с указаниями. То, как разворачиваются конкретные события, зависит от договоров между инженером и работодателем, работодателем и заказчиком.
Законы также не говорят вам, что вы должны делать, но что вы можете / не можете делать. Вы не упоминаете, в какой отрасли вы находитесь, но у некоторых есть законы, правила и правила относительно того, как обрабатывать определенные типы данных - что должно быть зашифровано, минимальные уровни шифрования, требования к управлению / контролю доступа, и так далее. Если в вашем регионе (стране, штате) нет правил безопасности, в вашей отрасли нет правил безопасности, а требования к программному обеспечению не вызывают требований или стандартов безопасности, это может быть скорее этической проблемой, чем юридический вопрос.
Когда дело доходит до этических вопросов в разработке программного обеспечения, я подписываюсь на Кодекс этики и профессиональной практики разработки программного обеспечения . В конце концов, это ваш звонок. Тем не менее, я чувствую, что хранение паролей в открытом тексте или в формате, который может быть расшифрован, неэтично.
источник
Просто следуйте процессу разработки вашего проекта: если эта функция записана в документе с требованиями, вы должны реализовать ее.
источник