Комментарии 105
Просто нет слов с таких программеров. Сам пишу программы для встраиваемых систем в промышленности (PLC), где приходится обеспечивать взаимосвязь нескольких устройств, зачастую от разных производителей. Эта элементарная ошибка, самые базовые основы. Опрос слова состояния можно же сделать, ничего в этом сложного нет. У меня цензурных слов нет, а нецензурные тут нельзя.
Вот, а был бы код на гитхабе, такие специалисты как вы быстро бы нашли все просчеты
Я так понимаю, им поставили жёсткие сроки, чтобы обогнать Индию, и вообще всячески подгоняли, вот и результат. Классический случай rushed development
проект стартовал в 1997 году - 26 лет в разработке, на год больше, чем даже в названии заложено (хотя 25 - это просто следующий номер за луной 24, запущеной 1976 году, но так совпало) - хоть у одной команды разработчиков бывали такие жесткие сроки?
Очень спешили. Не было времени на адекватную калибровку, и результаты проверочных испытаний подогнали под требования заказчика.
У нас как-то принято сначала ввести в эксплуатацию, закрыв глаза, а потом допиливать. Но тут допиливать сложновато...
Видимо, свеху было указание обогнать Индию. Сделали - к Луне прилетели всё же пораньше...
Чисто с технической точки зрения: аппарат на Луне? Да. Миссия выполнена))
Ну блин! Как вообще ситуацию "двигатель работает, данных об ускорении нет" программа могла считать нормальной?
Кажется нереально забыть о таком, но по сути это должно было где-то фигурировать в тех задании, а об этом и не написали явно. У меня был как-то пример разработки - чел делал программу и в ТЗ не написали явно, что нужен диалог ввода параметров, только расчёт и вывод. Он приносит программу. Ну и возник скандал с заказчиком. Заказчик думал, что это «очевидно» сделать диалог ввода. А программист решил иначе - не написано явно, не делаю. Какой вывод? Сошлись два чудака. По хорошему взаимодействующие люди должны были бы по ходу работы задавать вопросы, но, раз не задали, значит всё-таки чудаки. А уж где будет пропущено это «очевидно» - просто вопрос времени. И чем позже это выясниться, тем хуже будут последствия.
Программа - легко, а вот программист... на этапе "давайте запустим, помигаем светодиодами" - норм, а вот кода подключаешь реальную железяку - стоит смотреть, там уже и оторвать чего может (железяки - они разные), в том числе сама себе (а за это могут и по попке настучать). Понятно что в их случае ты или выкатываешь вно, или выкатываешься сам, но кто ж злобный буратин.
Да, это же классическая байка:
У студентов лабораторка, надо написать несложную программку управления манипулятором. Набили из методички, запустили - манипулятор отработал программу и пошел рандомно махать во все стороны круша до чего дотянется. Все под столами сидят, в недоумении - что пошло не так?
Ну не было в методичке упоминания, что программа должна завершаться кодом завершения - манипулятор выполнил забитые инструкции, и пошел дальше выполнять мусор из памяти.
Все пули ушли, ошибка на стороне мишени. (С)
Она вроде как и не считала это нормальным, двигатель же, как я понял, в итоге выключился по таймауту, но было поздно.
Пользователи Хабра предположили, что исходный код аппаратуры управления может быть написан на С, и С++, ассемблере или даже Python
зачем гадать, если в вестнике НПОЛ есть описание языка программирования
Чем-то Brainfuck напоминает...
(когда писал интерпретатор подобного для использования наработок в современной истории...) совсем не космос и был микс с латиницей, но через некоторое время оно становится понятно и даже представляешь алгоритм на таком чуде инженерной мысли. Подозреваю, что время зарождение и этого языка было в сопоставимые годы.
Техническими терминами - если что поправьте.
Это фактически разрыв петли обратной связи? И это ближе к автоматизированным системам управления, чем к программированию?
Интересно посмотреть для опытУ, как эта архитектура сигналы, их обработка описываются в ТЗ, в документации, чертежах и т.д.. Там достаточно много ограничений, подводных камней. Если это какая-то инфографика (ну уж точно не все текстом) - наверное блок-схему можно вешать на стенку как произведение искусства и рассматривать для успокоения технической души....
При этом формализовано должно быть даже присвоение названий переменных.
ТЗ — Сделать, чтобы аппарат тормозил двигателем по команде.
Моя версия: ответов на исполнение команд от БИУС-Л вообще не было предусмотрено.
Выполняя измерение - он выставлял на выходе измеренное значение и держал его до следующей команды. Ну а когда он выключен - на выходе естественно 0.
Был буфер FIFO ( обычный, без приоритетов ) для передачи команд БИУС-Л. Который при переполнении теряет команду. Решили - что раз команда на включение всегда первая - уж она-то потеряться точно не может ( буфер будет пуст ). Но что-то пошло не так...
Имхо - именно об этом загадочное замечание об не учете приоритета команд и случайном их распределении.
когда он выключен - на выходе естественно 0
Ну вот такие "программисты" и...
Это почему отсутствие значения === 0? Отсутствие значения -- это отсутствие значения, никак не значение 0.
Это азы, это элементарно, но вот Вы -- уверенно утверждаете, что отсутствие значения это значение, равное нулю. Что уроните Вы?
На космическом аппарате ускорения не большие. Так что скорее всего значения датчика целочисленные ( такого большого диапазона как у чисел с плавающей точкой не нужно ) и реализация плавучки в датчике излишнее усложнение.
Специальная арифметика целочисленных с особыми целочисленными NaN или NULL в расчетах вряд-ли реализована, скорее всего для целочисленных, обычная целочисленная. Какое же целое число взять в качестве "нет значения"?
Я бы взял 0. Что естественно для аппарата 99% времени летящего без ускорения ( в свободном падении ). Ради минимального шанса - что если программист считает данные с не включенного датчика и использует их в расчетах ничего страшного не произойдет - нулевое значение не исказит расчеты. Как падали в свободном полете так и продолжаем падать...
При любом другом значении NaN или NULL ( например FF..FF ) если это значение "просочится" в расчеты без проверки - они точно выдадут такое, что катастрофа неизбежна. Этого призрачного шанса что ошибка не скажется - не будет...
А с какой реализацией NaN или NULL во встроенных железках с целочисленной арифметикой сталкивались Вы?
Невключение блока акселерометров в приборе БИУС-Л комиссия каким способом определило? Что там в телеметрии было на самом деле.
В сухом остатке: на БИУС была подана команда запуска. БИУС не запустился/не ответил.
Вопросы о необходимости проверки прохождения команды и обработки ошибки (как, чем, есть запасный БИУС? что даст знание о том, что БИУС не работает? ) в системе реального времени с управлением на космических скоростях считаю риторическим и отношения к причине не имеющим.
Выглядит как не отловленная во время наземного тестирования проблема.
Подобные аппараты работают по т.н. "циклограммам", в которые заложены основные управляющие воздействия, а также всевозможные опросы датчиков и прочего - всё с привязкой ко времени внутри циклограммы. И на Земле, во время многочисленных испытаний (как фрагментов борта по отдельности, так и всего в сборе) аппарат должен много раз "пролететь" по всем циклограммам - с подкидыванием имитационных данных от навигационных систем и разных датчиков. При этом проверяется корректность работы его вычислительных алгоритмов и выдаваемых управляющих воздействий.
Эти "пролёты" делаются не только по идеальному сценарию, когда всё идёт как надо и вовремя, но и с отработкой НШС - нештатных ситуаций. Под ними подразумеваются различные отказы, как вычислительных систем, так и разных датчиков. Все вычислительные и управляющие системы на борту имеют двойное и более резервирование, но практически всегда переключение на резерв производится по явной команде от центрального компьютера. Соответственно, при проверке поведения в НШС нужно убедиться, что это всё работает как надо, что сбои обнаруживаются и обрабатываются. И все эти проверки должны проводиться в различных комбинациях отказов и времени их возникновения.
И, судя по описанию проблемы со стороны ведомства, подобная проверка была проведена некачественно или неполностью.
Кстати, бортовой компьютер, изображённый на фото в статье, вообще имеет тройное резервирование - в нём 4 (практически) одинаковых вычислительных модуля, один из которых обычно находится в холодном резерве, а остальные параллельно крутят программы управления бортом, периодически "чекпойнтясь" друг с другом. Наличие 3 модулей позволяет, при возникновении сбоя в одном из них, голосованием однозначно определить сбойный и восстановить его состояние или вывести его из рабочей конфигурации. Такая избыточность заложена из-за его ключевой роли в управлении всем бортом в целом.
source: участвовал в разработке тестового ПО и сценариев тестирования борта для российских спутников.
бортовой компьютер вдруг послал на БИУС-Л несколько команд одновременно, и у БИУСа произошёл «сбой системы»
А что говорит ТЗ по данному вопросу?
Если в ТЗ указано что может прийти несколько команд одновременно, то виноват БИУС-Л. Если нет, то либо бортовой компьютер, либо тот, кто писал ТЗ.
Скорее всего говорит что буфера на 4 ( или 8 или 16 ) передаваемых команд хватит всегда с запасом...
Рассмотреть все пути по которым можно пройти и вычислить максимально возможное число команд в буфере - очень сложно. Просто взяли с запасом. Что-б наверняка! Но...
Я тут даже не о технической стороне вопроса. Я о том, кто именно ошибся. Потому что в статье и там и тут штатно всё работало . И все вроде молодцы, но аппарат упал.
Вспомнилась история на заре космонавтики, когда на ракету одну и ту же радиокоманду отправили 2 разных центра управления и они, наложившись, дали команду на самоуничтожение. Как говорится, история учит нас тому, что она нас ничему не учит.
Ariane V же, самый известный случай «ой, ну там ребята накосячили немного, сейчас поправят».
Там как раз БИУС, но т.е. инерционную навигационную платформу, позаимствовали от Ariane IV, ну и после 40 секунд параметры вышли за возможные у «четвёрки» (у «пятёрки» другая динамика полёта), переполнение, эксепшен... как РН отрабатывает эксепшен, можно в видео выше посмотреть.
Программисты эту команду подали (это было видно по циклограмме), то есть, по сути, тоже все сделали правильно, за исключением одного. Их программное обеспечение не проанализировало ответную реакцию «БИУС-Л», по сути, просто не убедилось, что блок измерения угловых скоростей запущен в работу.
На мой взгляд имеет место перевод стрелок с железячников на программистов...
Вопрос больше политический чем технический: какие минусы будут от того, что код будет выкладываться в открытую для рецензирования открытым сообществом? На этапе разработки. Плюсы очевидны.
"Спереть" это невозможно - все настолько привязано к конкретной аппаратуре и миссии, что практической ценности (кроме повышения квалификации) не представляет. А ноу-хау там нет, все в космосе летает по известным законам и скрывать их бессмысленно.
Естественно, от сообщества будут приниматься лишь замечания по существующему коду (а не конкретные правки). Но таким образом можно избежать ситуации, когда действительно упускается какой-либо нештатный случай. Вероятность заметить такое повышается.
Ответ кристально очевиден любому человеку, когда-либо сталкивавшемуся с узкоспециализированными opensource-проектами.
От сообщества просто не поступит ровным счётом никаких замечаний. Ни одного. Никто не будет ковыряться в ненужном ему коде на экзотическом языке программирования под микропроцессор 30-летней свежести.
Соответственно, это будет пустая трата денег на зарплату человека, в обязанности которого внесут поддержание этого «сообщества» (ну или если говорить реалистичнее — один раз он это сделает, а потом все забьют в силу указанной выше причины).
Никто не будет ковыряться
Вы явно недооцениваете «упоротость» людей
Нет, я просто имею опыт работы со специализированным опенсорс-проектами, в том числе общественно значимыми (более значимыми, чем прошивка КА).
Никому неохота копаться. Даже целенаправленно найти единичных экспертов — сложно.
более значимыми, чем прошивка КА
ну так вы напишите какими.
участие в разработке прошивки для космоса отлично тешит тщеславие, например, вполне вероятно, что ваши проекты уступают
более значимыми, чем прошивка КА
Это не очень сложно найти в яндексе, но ок, сошлюсь сам на себя — https://t.me/sforsecurity/1072. Ну или могу на Ведомости, Ленту, Известия, Коммерсант...
Дистанционное электронное голосование. 24 региона (на президентских в марте будет ~30), больше миллиона избирателей, полная поддержка со стороны Общественной палаты РФ по имплементации любых возможных технических средств наблюдения. Приходи и делай.
И да, просто к тому, чтобы собрать полдесятка человек, реально готовых что-то делать пять дней в году в сентябре, а потом ещё по итогам немного, мы шли три года. С ручным поиском, завлечением и отбором людей, а не «эге-гей, мы тут выложили исходники, налетай!». Много-много человекочасов работы. И даже подготовка простенького круглого стола — на котором уровень претензий к тем самым исходникам был «у вас там всё сложно и на C#, я этого даже собрать не смог», по первой ссылке на телегу есть ссылка на запись, но это уже хотя бы что-то, от чего можно в работе отталкиваться дальше — это примерно от двух (и более) часов личной и очной работы с каждым из присутствующих. Ну то есть на 1,5 часа круглого стола — 10-15 часов личных бесед только в контексте этого круглого стола.
участие в разработке прошивки для космоса отлично тешит тщеславие
Никак не тешит. Вы потратите пару месяцев своего времени на ковыряние в адском коде на адском языке с адскими требованиями (без серьёзного опыта разработки в embedded с требованием соответствия какому-нибудь MISRA C, вероятно, лучше даже не соваться), мучительно родите какое-то замечание, отправите его — и «рукописи не рецензируются и не возвращаются», потому что на то, чтобы объяснить вам, почему тут сделано именно так, требуется ещё несколько человекочасов, которых ни у кого на вас нет.
Но скорее всего вы потратите полчаса на рандомное листание исходников и забьёте.
Дистанционное электронное голосование
Это в РФ то? И это Вы называете "более значимым"?
Вы сейчас прекрасно проиллюстрировали логику «да вот ещё я буду Роскомиксу помогать ошибки править, там всё равно один распил, снова в океане утопят» абсолютно аналогичным тезисом.
я правильно понял - вы хотите внедрить ДЭГ на блокчейне ?
или на блокчейне только наблюдение за ДЭГ(а само ДЭГ - как там оно внутри сделано) ?
В смысле — «хочу внедрить»? Федеральная система ДЭГ уже четвёртый год как на выборах используется, я третий год как в составе соответствующего избиркома.
Я хочу построить систему наблюдения за ней.
система работает честно != система выглядит как честно работающая
Ваши желания с какой стороны неравенства? Можно не отвечать.
С левой, разумеется.
Но ведь вам же мой ответ и не интересен?
Ситемы построенные для решения проблем людей строятся с учетом пожеланий этих людей.
Самые простые примеры из жизни - мастер ключ в офисе (гостинице), админский пароль в системе, отладочный разъем под пломбой в приборе...
Наверное в об этом тут говорится.
Криптографические алгоритмы федеральной ДЭГ опубликованы, желающие поискать мастер-ключ или админский пароль могут это сделать, найти и предъявить.
Так а в итоге то, все голоса сводятся в одну БД просто? То, что маршрут от отправки голоса до пункта назначения безопасен как бы и не особо интересно.
Обратите внимание: вы, не потратив ни минуты на ознакомление с архитектурой обсуждаемой системы, пришли сюда с категоричным утверждением.
Ну то есть Пастернака не читали, но решительно осуждаете.
P.S. Нет, криптографическая верификация — сквозная, от выдачи бюллетеня до подведения итогов. Зазоров в ней нет.
осталось только убедиться, что данные, которые поступают в криптографическую часть - не появляются\пропадают и что криптографическая часть которая реально работает - это именно та криптография, которая опубликована ;)
Ну так убедитесь, в этом нет никакой нерешаемой проблемы. Скоро будет новая тренировка, ЦИК сегодня постановление принял, можно прямо на ней.
я из другой страны, а то бы с удовольствием попробовал принять участие в этом всём.
расскажете потом результаты, хорошо?
За четыре года использования системы на реальных выборах никто уязвимостей не предъявил.
Значимые криптографические алгоритмы, если что, выполняются по большей части на устройстве пользователя, проверить их соответствие заявленному на случайной выборке избирателей прямо в ходе голосования проблемы нет.
С Луной хотя бы интрига есть, долетит или нет. И надежда, что там сидят специалисты, которым есть дело до реального результата, а не распила и картинки.
А какая будет реакция на выявленные вашими "средствами наблюдения" электоральные аномалии типа пилы Чурова - мы видели на практике: из раза в раз никакой. И результат выборов президента известен заранее.
Вот это характерный и распространённый среди айтишников пример религиозного сознания — «верую, поэтому даже проверять не буду».
Я проверял. И саратовскую аномалию проверял, про которую Памфилова сказала, что результаты "вырваны из контекста". И пилу Чурова на референдуме проверял.
Можете и вы проверить. Но дальше-то что с результатами проверки делать будете, когда у вас очередная электоральная аномалия вылезет? А она вылезет. На каждых выборах вылезает - почитайте Шпилькина или Киреева. В суд пойдете?
Чуров уже сколько не председатель ЦИК — шесть лет, больше?..
Но вообще если интересно, как эта штука (конкретно федеральная ДЭГ) устроена, чем она радикально лучше бумажного голосования, как за ней наблюдать, как там обеспечивается сквозная верифицируемость — пожалуйста, мне всегда интересно про это общаться.
Ну или можно вот интервью со мной Петра Лосева посмотреть: https://www.youtube.com/watch?v=YaL5Zu-ILro, у него очень схожий с вашим взгляд на выборы.
Но если вы для себя всё решили, потому что Чуров десять лет назад, то конечно кто я такой, чтобы с вами спорить.
Интересно, почему вы считаете ДЭГ радикально лучше бумажного голосования.
Потому что мне кажется наоборот. Бумажное голосование позволяет любому желающему без специальных навыков прийти на участок наблюдателем и убедиться: вот за день пришло столько-то человек, вот они в протоколе. Вот урна с их голосами, вот комиссия считает крестики, вот оно количество крестиков за каждого кандидата, вот они в протоколе. Да, я не увижу результатов по всей стране, но я уверен в своём участке.
Наблюдение за электронным голосованием упирается в то, что мне предлагают поверить, что вот эти цифры на экране - реальные голоса. Что код, который исполняется на сервере, соответствует тому, что проверили эксперты. Что нигде в середине не сидит ещё один сервер, который присылает дополнительные голоса за мертвых душ. Что показанный Васе голос за кандидата Иванова действительно учитывается как голос за Иванов в общем количестве. Я инженер, я умею считать и умею понимать суть систем, но я не разбираюсь в сетях и программном коде. Где можно обмануть наблюдателя - я не вижу, при этом система полностью прозрачна. ДЭГ для меня непрозрачен и без специального образования таковым не станет никогда.
Ну и возвращаемся к вопросу "что дальше". Вот допустим в ДЭГ вылез очередной Саратов-62,2% или пила Чурова. Статистически такой результат невозможен. Что дальше предлагается делать?
предлагается как обычно: "верить в честность ЦИК" ;)
но, вы знаете, я наверно даже поддержу @olartamamonov - в том что систему мониторинга нужно делать. Если они построят свою систему мониторинга, в этом все равно будет польза - по крайней мере будет больше информации про статистику :D
Потому что есть классика вбросов на бумажном голосовании — с подменой бюллетеней, побрасыванием бюллетеней, порчей бюллетеней, подменой книги избирателей и т.п.
И в своём участке вы можете быть уверены в том и только в том случае, если вы там с 7 утра до 9 вечера все три дня плюс подсчёт голосов стоите и неотрывно наблюдаете за комиссией. Если вы вышли покурить на пять минут, ну или там пообедать, 14 часов без обеда работать трудно — по возвращении вы не можете определить, случилось ли что-то в ваше отсутствие или нет.
Где можно обмануть наблюдателя - я не вижу,
Везде, где он на пять минут отвернулся. Вы способны 3 дня по 14 часов не отворачиваться даже на пять минут?
Ну, можете ещё известную запись из Королёва послушать.
В отличие от этого, наблюдение за ДЭГ вообще никак не зависит от работы наблюдателя в реальном времени. Каждый бюллетень криптографически подписан, его невозможно исказить или подменить, не разрушив эту подпись, до окончания голосования принципиально невозможно понять, за кого он отдан, при этом сам факт опускания бюллетеня в урну может фиксировать автоматический скрипт в реальном времени, так что вбросить или удалить что-то постфактум невозможно, процедура подведения итогов имеет криптографическую гарантию, что итоги подведены именно на этих бюллетенях, etc.
В схеме ДЭГ просто нет действий, которые не оставляли бы обнаружимых наблюдателями артефактов.
В бумажном голосовании таких действий полно.
Что дальше предлагается делать?
Да всё что хотите. КПРФ вон явно с удовольствием в суд пойдёт. Но ваш вопрос — он уровня вопроса к инженеру «я спроектированному вам не верю, потому что я его не понимаю, а вдруг оно взорвётся, что тогда делать?».
Давайте перевернём: а если вы не сможете в федеральной ДЭГ выявить проблем, вы что дальше будете делать? Будете готовы признать выборы честными?
с подменой бюллетеней, побрасыванием бюллетеней, порчей бюллетеней, подменой книги избирателей и т.п.
> КПРФ вон явно с удовольствием в суд пойдёт
Я выше пример скинул. Человек пересчитал по видеозаписи проголосовавших, сравнил с протоколом, увидел расхождение, пошел в суд. Решение суда - ваше доказательство не доказательство. Точка.
Завтра вы точно так же идёте со своим скриптом. Ваш скрипт не доказательство. Точка.
Каждый бюллетень криптографически подписан, его невозможно исказить или подменить, не разрушив эту подпись
Вот только беда: я никак не могу удостовериться, что этот "подписанный бюллетень" подписан лично Васей, а не скриптом на стороне Госуслуг, через которые люди ходят голосовать (или через что они там ходят, не суть). Я никак не могу удостовериться, что когда Вася выбрал строку с Ивановым - голос в бэке реально ушел за Иванова, а строчки на фронте не перепутаны. Потому что у меня нет гарантии, что показанная Васе страница - это та же страница, код которой я проверил.
Давайте перевернём: а если вы не сможете в федеральной ДЭГ выявить проблем, вы что дальше будете делать
В ДЭГе есть фундаментальная, нерешаемая проблема: я никак не могу проверить, есть ли там проблема. Потому что для этого надо перелопатить миллионы строчек кода, а потом убедиться, что на серверах исполняется именно этот код. Это нереально.
Вы пытаетесь решить организационную проблему техническими средствами. Но так не бывает. Никакие технические средства не работают по назначению, если эксплуатирующие их люди не хотят, чтобы они работали. А по электоральным аномалиям мы видим, что они не хотят.
Я это опять же как инженер знаю: чем сложнее система, тем проще при желании обмануть наблюдателя. Если у вас жёсткость пружины (я измерял не пружину, но не суть) измеряется динамометром системы Токаря, то наблюдатель (представитель заказчика) чётко видит: вот она паспортная жёсткость динамометра, вот перемещение, вот показания динамометра, делим одно на другое, получаем результат. Если же вы используете силовую машину под управлением ПК, то там можно поиграться и с калибровкой датчиков, и с отображением результатов, и с пользовательскими формулами, и с чем только не. И наблюдатель должен не хуже испытателя уметь пользоваться этой машиной, чтобы выявить обман. Аналогично и с расчётами: если у меня отчёт по прочностному расчёту состоит из справочных параметров и формул, то для проверки достаточно базовых знаний сопромата. Если же там расчёт в программном комплексе и красивые картинки с распределениями напряжений, то нужно лезть в модель и проверять свойства материала, контакты, сетку, приложенные силы, граничные условия, вывод результатов... По сути, провести расчёт заново. Поэтому здесь вопрос - доверяет мне заказчик или нет. Проверить он меня не может.
я никак не могу удостовериться, что этот "подписанный бюллетень" подписан лично Васей
Вы и в бумажном голосовании не можете удостовериться, что то, что считает комиссия, было Васей заполнено. Бюллетени анонимны, их подмена или порча постфактум не определяется никак вообще.
Зато в ДЭГ Вася лично может убедиться, что это именно его бюллетень и что он не был никем изменён.
А в бумажном — не может.
Я никак не могу удостовериться, что когда Вася выбрал строку с Ивановым - голос в бэке реально ушел за Иванова
Ну, начинается детсадовский уровень «я программистам не верю, потому что у них вон там одни буковки в программе, а как она на самом деле работает, никто не знает».
Что такое «голос в бэке», откуда вы это придумали, зачем? Голос — в бюллетене. Бюллетень заполняется, шифруется и подписывается на стороне пользователя. Никакой «бэк» с ним ничего сделать, не оставляя артефактов, не может.
А вот что комиссия при подсчёте ловким движением руки бумажные бюллетени за не того кандидата не превратила в недействительные — вы и правда удостовериться никак не можете.
Я это опять же как инженер знаю: чем сложнее система, тем проще при желании обмануть наблюдателя
Ну так возьмите, ознакомьтесь с системой и покажите конкретные пути этого обмана.
А то у вас сплошное «я вообще компуктерам не верю» — это уровень не инженера, а бабки у подъезда.
Вы и в бумажном голосовании не можете удостовериться, что то, что считает комиссия, было Васей заполнено.
В бумажном голосовании я вижу, как пятьсот Вась с одним бюллетенем каждый вышли из кабинки и бросили их в прозрачную урну. А если отошел покурить на пять минут, то меня подменит коллега. Или можно ящик сфотографировать, а потом сравнить.
В бумажном голосовании я вижу, как бюллетени вывалили из урны и комиссия их начала раскладывать по кучкам без пишущих приборов в руках.
Ну, начинается детсадовский уровень «я программистам не верю, потому что у них вон там одни буковки в программе, а как она на самом деле работает, никто не знает».
Да, я программистам не верю. Если бы я им верил - мне бы не было смысла проверять их работу, я бы им и так верил.
Ну так возьмите, ознакомьтесь с системой и покажите конкретные пути этого обмана.
Да вот прям с начала.
Как я могу быть уверен, что протокол номер такой-то, подписанный подписью Васи Иванова, подписал Вася Иванов на своём ПК, а не был прислан со стороннего сервера?
Как я могу быть уверен, что у Васи при подписании протокола галочка за партию икс была корректно отображена на фронте напротив строки с партией икс, а не игрек?
Никакой «бэк» с ним ничего сделать, не оставляя артефактов, не может.
Допустим, я вижу артефакты. А эксперт ДЭГа не видит. Я считаю, что выборы фальсифицированы, и иду в суд. В качестве эксперта вызывается эксперт от того же ДЭГа, и решение суда - фальсификации нет, всё честно. Дальше что?
Что произойдет, если фальсификация или аномалия таки найдется? Это главный вопрос, а не технические особенности реализации системы обмена клиент-сервер. И ответ на него, увы, известен. Пила Чурова, версия электронная. Пока голоса считают те же люди, что не видят проблем в пиле Чурова - искать ошибки в буковках кода бессмысленно.
В бумажном голосовании я вижу, как пятьсот Вась с одним бюллетенем каждый вышли из кабинки и бросили их в прозрачную урну. А если отошел покурить на пять минут, то меня подменит коллега. Или можно ящик сфотографировать, а потом сравнить.
Вы никогда в жизни не работали наблюдателем на выборах.
Это даже не вопрос, это констатация. Вы тупо глубочайше, запредельно некомпетентны и в силу этого сложную работу, на подготовку людей к которой все партии тратят огромное количество сил, сводите к «да я там просто глазами посмотрю».
Вообще меня давно, конечно, занимает этот парадокс айтишников (и советских инженеров, у них он даже ярче выражен): они почему-то уверены, что они в политике разбираются лучше, чем, скажем, депутаты Госдумы в программировании.
А на практике — совершенно одинаковый по абсолютной величине показатель.
Как я могу быть уверен, что у Васи при подписании протокола галочка за партию икс была корректно отображена на фронте напротив строки с партией икс, а не игрек?
Ну так ознакомьтесь с исходными кодами и алгоритмами системы и покажите нам способ такой фальсификации.
Или вы рассчитываете, что я в ответ на ваше «я инженер, мне не надо ни в чём разбираться!» начну вам трёхчасовую лекцию читать?
Это главный вопрос, а не технические особенности реализации системы обмена клиент-сервер
От ответа на вопрос «а если не найдётся, то вы готовы признать выборы честными?» вы, как нетрудно заметить, ушли.
Так что в рамках категорического императива (инженерам он знаком?), очевидно, мне нет никакого смысла продолжать отвечать на ваш вопрос.
Ну так ознакомьтесь с исходными кодами и алгоритмами системы и покажите нам способ такой фальсификации.
Так в том и проблема, что я не могу этого сделать. Я не могу приехать в ЦИК, сесть перед сервером, выгрузить с него код и проверить. Даже безотносительно моей квалификации. Мне предлагается поверить, что предлагаемый для проверки код соответствует тому, что будет исполняться.
От ответа на вопрос «а если не найдётся, то вы готовы признать выборы честными?» вы, как нетрудно заметить, ушли.
Я ответил. Просто вы этот ответ принять не можете.
Ещё раз: главная проблема в том, что система принципиально непроверяема. ЦИК выкладывает алгоритм и предлагает его проверить, никак (кроме своего слова) не гарантируя, что это тот самый алгоритм.
Так в том и проблема, что я не могу этого сделать
Вы не «не можете». Вы не хотите. Вам не «предлагается поверить» — вам предлагается полностью, от начала и до конца объективно верифицируемая система.
Но так как ознакомление с ней может обрушить ваши религиозные догматы, вы будете, плотно закрыв глаза, твердить «я не хочу могу».
Ещё раз: главная проблема в том, что система принципиально непроверяема.
Вы же с ней тупо незнакомы. Ну то есть вот на таком примитивном, бытовом уровне — вы о ней не знаете ничего. Вы не знакомились с её архитектурой, не читали её описание, вообще ничего не делали.
Вы выдаёте высокопарные утверждения про систему, о которой ничего не знаете и знать не желаете.
вам предлагается полностью, от начала и до конца объективно верифицируемая система.
Как я могу убедиться, что предложенное мне реально исполняется на серверах ЦИКа?
Это фундаментальная проблема любых приложений с открытым кодом. Только тут, в отличие от условного Телеграма, я не могу собрать свой ЦИК из предложенных исходников.
Как я могу убедиться, что предложенное мне реально исполняется на серверах ЦИКа?
«Сквозная криптографическая верификация».
Если эти слова ни о чём не говорят — то надо либо браться за учебник самостоятельно, либо учиться вежливо задавать вопросы тем, кому они говорят, вместо кидания в них догматами.
Google:
Нет результатов для "Сквозная криптографическая верификация".
То есть никак. Спасибо.
скажите, если я Иванов Иван Иванович 1901 года рождения (ит.д),
1) какой мой алгоритм действий? что мне нужно делать в каком порядке, чтобы
1.а) удостовериться, что мой проголосованный в ДЭГ голос - это именно тот голос, который посчитан в ИТОГО за №13 (или №31)
1.б) удостовериться, что на моем участке %666 проголосовало не больше человек, чем я посчитал зашедших в кабинку (или севших на пенек для голосования)
?
2) если я обнаружу, что почему-то мой голос отдан за №33 (а не за №13 как я нажимал кнопочку), или что на моем участке №666 проголосовало 1500 жителей, при наличии только 500 избирателей, куда жаловаться?
1а) После отправки бюллетеня вам выдаётся квиточек с ID транзакции, вашей подписью и прочими данными зашифрованного бюллетеня. По транзакции можно найти его в блокчейне и проверить действительность подписи, т.е. что он был сохранён и не был изменён.
Наблюдатели же после подведения итогов проверяют, что итоги подведены именно на этом множестве бюллетеней, т.е. — что и ваш тоже учтён. При желании можно попросить у кого-нибудь из наблюдателей архив всех транзакций блокчейна и прогнать утилиту проверки подписей подведения итогов на нём самостоятельно.
1б) Число подавших заявки и число проголосовавших есть в открытой статистике портала наблюдения. У наблюдателей в ТИК ДЭГ есть право работать со списками избирателей, при желании они могут сверять его с наблюдателями, работающими непосредственно на участке (туда перед началом голосования приходят списки записавшихся на ДЭГ, чтобы их убрали из списков на участке). Сейчас обсуждаем, можно ли как-то исхитриться и сделать списки в том или ином виде доступными ещё и для наблюдателей, работающих удалённо.
2) В избирательную комиссию, вышестоящую избирательную комиссию, в конечном итоге — хоть в суд (п. 1.3 ст. 77 67-ФЗ). Там есть куча всяких условий, сроков, порядков — но это надо 67-ФЗ (и 19-ФЗ, если мы о грядущих ближайших выборах) штудировать по конкретному случаю.
Вбросов бумажных бюллетеней, прямо стопками, полным полно видео на ютубе и неизвестно сколько за кадром.
А когда наблюдатели начинают возмущаться этому факту, в лучшем случае урну от него стыдливо прикрывают.
У нас пока нет комьюнити под космос. Так что нужно начинать с его создания, но это не просто, в том числе из-за барьеров секретности и косности.
По крайней мере понятное описание ошибки ( с блок схемами и кодом ) должно быть доступно общественности. По крайней мере что-бы другие специалисты в других проектах её не повторяли. Подходы то в аэрокосмической отрасли похожие, инженеры в одних вузах учились...
И вообще - такие ошибки ПО ( на сотню миллионов долларов ) обычно вызывают широкую дискуссию в компьютерном сообществе. Меняют подходы к написанию и тестированию ПО, синтаксисы языков программирования и моду на них...
Не нужно самой прошивки. Выложите хоть расшифровку загадочной фразы:
«Установлено, что наиболее вероятной причиной аварии стало нештатное функционирование бортового комплекса управления, связанное с невключением блока акселерометров в приборе БИУС-Л (блок измерения угловых скоростей) из-за возможного попадания в один массив данных команд с различными приоритетами их исполнения прибором. При этом распределение команд в массивах данных имеет случайный (вероятностный) характер»
массив данных команд - это FIFO без приоритетов? А нужна была очередь с приоритетами? Или это вообще что-то другое?
случайный (вероятностный) характер - это "гонка" в многопоточной среде?
Фрагментация какой-то области данных и поиск "дырок"? Следствие обработки прерываний? Двоичный поиск по не уникальному ключу? Хэш коллизия?
Как работавший и работающий с бортовым ПО (БЦВК и массовых ЗУ комплексов научной аппаратуры) уже больше десятка миссий могу ответить, что а) разобраться в нём не имея опыта и понимания КА как системы крайне затруднительно б) для верификации путём инспекции кода необходим доступ к десяткам документов, для неспециалистов в одельных подсистемах КА бесполезных с) там не только всегда есть "ноу-хау", но и есть почти всегда закрытая информация. Поэтому, например ПО европейских сугубо гражданских и научных КА имеет часто (не всегда) гриф, соответствующий российскому "секретно". В Штатах ещё жёстче по этой части.
Осознавая зачем нужна сторонняя рецензия и пользу от нее, полезнее и безопаснее выкладывать на "код ревью" алгоритмы. Либо блок-схемы, либо прототипы на абстрактном языке. Достигается сразу несколько целей: изоляция от общественности секретных частей, доступность для понимания (частичная отвязка от аппаратного слоя). В такой интерпретации логики работы даже не сильно погруженному в тему человеку будут бросаться в глаза места, которые замылились у разработчиков. Скажу большее - при подготовке алгоритма к такому виду сами разработчики начнут находить упущенные ошибки. Скажу по себе - когда я пишу документацию к своему коду (как использовать, настраивать, как работает), тоже нахожу ошибки. И это меня учит сначала писать документацию, а потом программировать. даже в условиях нечеткого ТЗ - еще до написания кода ТЗ уточняется почти до финального вида..
То, что вы пишете, относится к SDD/DDD (ПЗ ЭП и ПЗ ТП в "советских" и всё ещё используемых российских терминах). Они тоже как минимум относятся к служебной тайне и имеют гриф "ДСП". Если вы полагаете, что это можно как-то изменить, то вынужден Вас огорчить - с годами в России эта отрасль "закрывается" всё сильнее и сильнее. И изменить даже этот тренд без сноса всей системы невозможно.
Серьезый вопрос: невключение блока акселерометров в приборе БИУС-Л комиссия каким способом определило?
По показаниям 0 м/с ускорения при включённом двигателе в телеметрии.
Ноль могло быть и потому что телеметрия некорректно передаётся.
У меня такое кучу раз в играх было, когда неверно в коде указал порт вывода.
Но до этого при предыдущих манёврах нуля не было же. Т.е. тут всё в порядке. Тем более в телеметрии есть ещё и лог команд и ответов.
То что в предыдущих манёврах этого не было, ничего не значит. Если он не постоянно работает, а подключается лишь во время манёвров, могли точно так же не туда данные вывести в цикле. Но если по логам видно что забыли включить, то это конечно другое.
А если по логам видно, что команда на включение была выдана?.
Ну а ответ на команду включения - не виден. Т.е. команда на прибор пришла, но он не подтвердил её выполнение. И нули показывает. Наверное что-то с прибором не так.
По чьим логам? Логам системы на Земле или логам системы на аппарате?
В первом случае сбой/косяк в прошивке самого аппарата.
Во втором сбой в прошивке прибора, если он управляется чисто программно.
Если в процессе полёта, изменяются настройки прибора, для разных режимов/точности, то туда так же могла попасть команда на смену/обнуление порта вывода.
Или это мог быть сбой из за радиации или сбой в реле включения основного питания(как программный, так и аппаратный).
Журналистка обзвонила нескольких человек со знанием этого вопроса, попросила человеческим языком, но не нарушая корректность, объяснить ей, что там было. Потом скомпилировала, показала текст тем же ещё раз на предмет «я ничего не наврала?», отдала редактору.
Обычная практика работы прессы (и например я конкретно с МК, да и не только с ним, в таком качестве довольно регулярно общаюсь).
Вообще, давно пора создавать комьюнити под свободную разработку космических систем и миссий. Free Space Community, какое-нибудь. Нужно начинать сейчас, чтобы лет через 10-20 уже что-то было.
Поскольку это все-таки коммерческое направление, то big bounty программа простимулирует вовлечение. Ее сопровождение всяко дешевле выплат по страховкам сорвавшихся (аварийных, отложенных, отмененных) миссий.
Плюс в отрасль будут привлекаться не из массы "родственники, знакомые по участвующим махровым НИИ и КБ", а реально таланты и энтузиасты со всей страны. Сейчас же в стране объявляется стимулирование развития IT-сферы. Вот отличное направление применить эту энергию.
Bug bounty с точки зрения участника — это лотерея. Время (очень, очень много времени) ты потратишь гарантированно, а приз получишь с некоторой очень невысокой вероятностью.
А bug bounty в эмбеддеде под космос — это крайне высокорисковая лотерея даже по меркам лотерей.
В целом, в «Столото» играть эффективнее.
Нет смысла искать виноватых, проблема системная, она глобальней Роскосмоса. Не должен программист в Лавке получать меньше, чем торговец мебелью через Ленинградку, а инженер меньше чем сотрудник соседнего Бургеркинга.
Не успели как следует проверить программу в связке с БИУСом.
Выше уже высказались, добавлю и я от себя:
Вот она, цена погони за сроками сдачи проекта.
Важно, чтобы ребята продолжали работать дальше, ведь они теперь знают гораздо больше о системе посадки на Луну, чем раньше.
А вот это правильно, потому что:
"Недавно меня спросили: собираюсь ли я уволить человека, который сделал ошибку, что стоила нам $600 000. Я ответил – нет, потому что я только что потратил на его обучение $600 000" Томас Ватсон, основатель IBM.
Этого человека (команду) стоит проверить на предмет усвоения данного урока. Обучение проходила целая компания. Если один человек из компании обучение не прошел, его стоит как минимум переместить внутри компании туда, где риск от возникновения его ошибок будет дешевле.
Эксперты пояснили СМИ подробности возникновения причин нештатной ситуации на станции «Луна-25», приведших к аварии