Демифологизация процессов безопасного и проверенного копирования

19 октября 2023 Обзоры
Демифологизация процессов безопасного и проверенного копирования

Наш технический директор Стиан Цейлко Врба имеет степень доктора философии в области информатики и в свободное время занимается математическими проблемами. Его отношение к истине неумолимо и двоично.

Утверждения либо верны, либо нет.
И это отношение еще более усиливается в его отношении к технологиям

Первые три года существования Quine он успешно убеждал нас, соучредителей, что мы не можем работать над продуктом для конечных пользователей, пока не создадим принципиальное и надежное инфраструктурное решение проблемы.

Это было немного дико: Кто будет финансировать компанию с продуктом без пользовательского интерфейса?

На самом деле, никто — но первоначальная боль, которую мы испытали, окупилась сторицей. По сей день мы не потеряли ни одного файла ни в одной транзакции, будь то локальные транзакции или транзакции, проходящие через Интернет или локальные сети в нашем коммерческом продукте QuineCore, в нашем продукте Proof of Concept: GAMP или в недавно выпущенном QuineCopy.

Ошибки копирования случаются. Нечасто, но кабель, коммутатор, память компьютера, картридер или диск могут быть неисправны, и тогда безопасное, проверенное копирование, являющееся частью нашей запатентованной технологии CopySafe™, будет предупреждать вас об этом. Она лежит в основе всего, что мы делаем.

Как и большинству людей, ездящих на мотоцикле, надеемся, что он вам никогда не понадобится, но если вы попадете в аварию, он может стать разницей между жизнью и смертью.
Не шутите со шлемом!

Безопасное верифицированное копирование — это не волшебство. На самом деле, за пределами медиаиндустрии оно является инфраструктурной технологией, которая работает в фоновом режиме для большинства транзакций с файлами или метаданными, обеспечивая согласованность во всех пунктах назначения в распределенной реальности. Ваши телефоны, веб-сайты, даже подключенная бытовая техника зависят от безопасного, проверенного копирования, чтобы функционировать должным образом.

Каким-то образом медиаиндустрия является исключением из этого правила, особенно на нижнем уровне.

Демифологизация процессов безопасного и проверенного копирования

В нашей отрасли мы используем эмоциональные описания, даже в отношении техники.
Мы говорим что-то вроде “с помощью этой камеры я могу восстановить 3 стопа бликов на снимке”, что звучит как волшебство, но в действительности сводится к перестановке битов и байтов таким образом, чтобы данные, которые уже есть в файле, стали видимыми.

Можете себе представить реакцию Стианса, имеющего многолетний опыт точного перемещения и сохранения согласованности данных в огромных критически важных массивах данных в промышленных приложениях, когда ему впервые сказали:
А мы проверяем контрольные суммы наших файлов?
Этим глупым, ничего не знающим человеком оказался я…

Ему пришлось сдержать легкую ярость и отчаяние при виде моего непонимания, хотя он и потратил время на то, чтобы научить меня.

Безопасное копирование — это процедура, включающая проверку подлинности.
Контрольное суммирование — это инструмент для проверки этой процедуры, если она выполняется неукоснительно.
Если же процедура не соблюдается, то файлы не будут надежно скопированы или проверены, сколько бы хэшей вы ни записали в MHL-файл или чек. Без надлежащей процедуры контрольные суммы в лучшем случае вводят в заблуждение, в худшем – создают ложное представление о безопасности.

Как мало я, как директор и руководитель рабочего процесса, знал в то время о технологиях, которыми мы все пользовались каждый день…

Самое интересное в процедурах то, что они требуют времени. Если вы срезаете углы, чтобы сэкономить время, вы не следуете процедуре, что в данной ситуации привело бы к ненадежному копированию и проверке данных.

У вас либо есть проверенный файл, либо его нет.
Никогда не бывает несколько проверенных файлов.

Краткое определение понятия «заверенная копия» в правовом пространстве:

Заверенная копия – это дубликат оригинала документа, который был заверен как точное воспроизведение лицом, ответственным за оригинал.

Ключевым моментом, который актуален и для нас, является то, что все сделанные копии должны быть сравнены с оригиналом, прежде чем утверждать, что копия хорошая.

Демифологизация процессов безопасного и проверенного копирования

Перенесемся на 6 с лишним лет вперед. В январе этого года на выставке IBC2023 мы решили представить QuineCopy.

Что такое “защищенная и проверенная копия” на самом деле, в медиасфере остается таким же неопределенным, как и 10 лет назад.

‍Люди любят обсуждать md5 и XXHASH64, но лишь немногие знают, почему они важны и как на самом деле используются для защиты файлов.
Пользователи открывают свои MHL-файлы, видят кучу UID-букв и цифр, прикрепленных к их получению, и чувствуют себя довольными, потому что:
“Файлы ведь хэшированы, верно?”.
Технически это, вероятно, так, но это не обязательно означает, что у вас есть защищенная и проверенная копия.

‍Есть несколько способов выявить тех, кто срезает углы, но для этого сначала нужно понять процедуру:

Шаг 1‍

Вы считываете файл из источника. Прочитанные данные хэшируются и одновременно записываются в одно или несколько мест назначения.

На этом этапе можно также считать то, что записано в места назначения, сгенерировать хэш и сравнить его с хэшем, полученным из исходных данных. Если вы это сделаете, то будете уверены, что записали точную копию того, что прочитали.

Многие думают, что это означает, что файл идентичен на источнике и в пункте назначения, но на самом деле вы этого еще не знаете. 
Все, что вы знаете сейчас, — это то, что написанное вами равно прочитанному. 

Учитывая, что именно на этапе чтения возникает большинство неисправностей — все мы, даже за пределами профессионального медиаменеджмента, на каком-то этапе своей жизни сталкивались с неисправной оперативной памятью, неработающим USB-кабелем, перегревшимся картридером, плохим сетевым кабелем и т.д.

В итоге вы рискуете просто убедиться в том, что вы послушно воспроизвели неисправный файл.

А это неоптимально.

Таким образом,
Шаг 2

Необходимо перечитать и перехешировать файл из источника. Если хэши первого и второго чтения исходного файла совпадают, то можно считать, что первоначальное чтение не было ошибочным.
Но даже в этом случае не всегда можно со стопроцентной вероятностью утверждать, что ошибок нет. Просто очень маловероятно, что это ошибки в транзакции. Повреждение одних и тех же битов дважды из-за общего аппаратного сбоя крайне маловероятно. Если хэш конечного файла совпадает с хэшем исходного, то можно быть уверенным, что записанные данные идентичны исходным.

‍Как можно заключить из приведенной выше процедуры, существуют некоторые физические ограничения на скорость выполнения всех этих операций, независимо от того, какой метод хеширования используется.

Само хеширование не обязательно добавляет много времени к процессу. Шаг 1 без считывания и хэширования на месте назначения должен быть примерно таким же, как при копировании с помощью Finder или Explorer. Но если предпочитаемое вами решение для копирования файлов сообщает вам, что на этом этапе все готово, вас обманывают. Вы еще не знаете, было ли ваше первоначальное чтение ошибочным. Необходимо полное повторное прочтение исходного материала.

На самом деле есть несколько способов определить, так ли это.

Первый: процесс идет так же быстро, как и ваша копия в Finder/explorer. Физически не существует способа, который бы привел к созданию действительно проверенной копии.

2-й: если вы посмотрите в монитор активности (Mac) или диспетчер задач (Windows) и увидите, что ваша утилита создает много дисковой активности после сообщения о том, что файл проверен, то, вероятно, приложение просто путает, что оно еще не закончило ничего, кроме первого шага процесса.

Это индикаторы того, что ваша защищенная копия, вероятно, вообще не была защищена.

‍Некоторые платные программы вообще даже не пытаются подтвердить копии активов на сетевых дисках (NAS). Это… нехорошо. Сетевые транзакции имеют гораздо большую вероятность потери пакетов (то есть нехорошей транзакции), чем локальные копии по своей природе.

‍В основном можно посмотреть через диспетчер задач (Windows) или монитор активности (Mac) и, просто сравнив время, за которое программа предупреждает вас о том, что ваша копия безопасна, с тем, что успевает сделать ваш компьютер через системную копию, получить очень сильную догадку о том, действительно ли ваша программа безопасна. К сожалению, “одобрено” каким-либо внешним органом недостаточно.
Мы рекомендуем проводить тестирование с файлами, размер которых превышает объем оперативной памяти вашего компьютера, например:
Если ваш компьютер имеет 32 ГБ оперативной памяти, то файлы, с которыми вы тестируете, должны быть больше 32 ГБ.

В Quine разработчики — ученые, а не представители киноиндустрии. Они привыкли экспериментировать, чтобы получить наилучшие результаты, а также выяснять, что происходит, если что-то слишком хорошо, чтобы быть правдой.

Поэтому, когда цифры не сходятся, мы стремимся проверить, в чем дело.

В наших лабораториях мы можем проводить простые эксперименты по проверке поведения не только нашего, но и других программ, например, изменять содержимое скопированного файла, чтобы проверить, будет ли замечена ошибка.

Для не разработчиков это не тривиально. Для нас же эти тесты – воздух, которым мы дышим, и то, на что мы ставим свою репутацию.

Демифологизация процессов безопасного и проверенного копирования

Мораль из всего этого такова:
Существует популярное программное обеспечение, которому не следует доверять.

Пользователи должны сами определять, чувствовать себя в безопасности или нет, а MHL-файл, к сожалению, не является причиной для того, чтобы чувствовать себя в безопасности.

Пожалуйста, проведите аналогичные тесты для QuineCopy и QuineIngest, и если вы увидите неадекватное поведение или сумеете сделать плохую копию без нашего сообщения, сообщите об этом.

Самое главное:

Если что-то слишком хорошо, чтобы быть правдой, то это, скорее всего, так и есть.

Безопасное копирование — это процедура, а не волшебство, и если эта процедура не соблюдается, ваши файлы не будут в безопасности.

Нет ли способов оптимизировать процесс?

На самом деле их много — большинство из них связано с тем, как работать с несколькими файлами, несколькими пунктами назначения и очередностью задач. Если у вас есть скорость, то XXHASH64 значительно быстрее md5, но и менее безопасен.

Если только программирование не является небрежным, сам процесс не должен создавать слишком много накладных расходов на файл, и одно приложение должно быть довольно похожим на другое.

Вместо того чтобы жаловаться на индустрию, в которой существует множество “мнений” по поводу технических истин, мы решили выпустить QuineCopy, чтобы сделать безопасное копирование товаром и в медиаиндустрии.

Типичная компания по разработке программного обеспечения в нашей области создается кем-то вроде меня – художником, который видит проблему, обучается базовым навыкам программирования, пытается ее решить и затем продает.

Quine — это немного другой зверь.

Сначала мы прошли через 2 года исследований Horizon 2020 с такими партнерами, как вещательные компании, университеты и Technicolor, и создали POC-продукт перед созданием компании, а когда приняли решение о создании компании, мы присоединились еще к 2 годам исследований по управлению файлами и метаданными в реальном времени на съемочной площадке с теми же партнерами, в то время как молча исследовали и разрабатывали основные технологии и модели данных для автоматизированных операций с файлами и метаданными на съемочной площадке, удаленно и локально.

Нам потребовалось почти 3 года, чтобы довести модели данных и решения до уровня пользовательского интерфейса, но с тех пор система работает безотказно.

Как и Стиан:
Мы ненавидим врать.

Всем счастливого безопасного копирования.


Для размещения комментариев необходимо

© Все права защищены, 2024