October 24, 2024

Метаданные или как лишний раз не обосраться

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

Немного теории

Что есть метаданные и нужно ли вообще им есть?

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

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

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

Психотерапевт от мира данных

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

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

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

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

С вас 5тыщ за сеанс

С чем едят этот ваш экзифтул

Надеюсь со скачиванием архива с указанного сайта ни у кого не возникнет проблем, поэтому перейдем сразу к сути - использованию экзифа через консоль (ибо об использовании вне консоли написано в файлике ЧИТАЙМЕНЯ.тхт).

В общем и целом экзиф вызывается обычной консольной командой. Находясь в директории с файлом exiftool.exe (если у вас винда) прописываем следующую команду для просмотра метаданных:

exiftool -j -G [путь к проверяемому файлу]

Немного пояснений по поводу флагов: -j отвечает за отображение данных в json формате, а -G - отображение группы тега:

Слева - без флага G, справа - с ним

Или для автоматизации процесса можно вызывать экзиф через питон:

cmd = ['exiftool', '-j', '-G', path] result: bytes = subprocess.check_output(cmd) result: str = result.decode('utf-8').replace('\r\n', '') result: dict = eval(result)[0]

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

Если же вы хотите почистить свои метаданные, чтобы не развестись с женой не палить их в интернетах, вызываем следующую команду:

exiftool -all= [путь к проверяемому файлу]

Или для питона:

cmd = ['exiftool', '-all=', path] result2: bytes = subprocess.check_output(cmd) result2: str = result2.decode('utf-8').replace('\r\n', '')

Итог

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