Возможно ли текстового файла, например в формате XML, были отредактированы или изменены с течением времени?
Контекст на мой вопрос следующее:
Я ученый в отрасли, используя технологию под названием 'масс-спектрометрия (МС)'. MS-это используемые аналитические методики, например, в криминалистическом анализе, чтобы определить, является ли конкретное соединение присутствует в образце (например, наркотика в крови или моче).
Масс-спектрометр. файлы данных обычно хранятся в плоских файлах формата документа поставщика'частная бинарных спецификация s - их программа может обработать его, но ничего не могут. Однако, открытые стандарты МС существуют данные, и большинство поставщиков поддерживают экспорт, по крайней мере, одна открытая спецификация. Эти открытые стандарты на основе XML в основном в эти дни (например, mzML) и позволяют обрабатывать с открытым исходным кодом приложения, а также создать условия для долговременного хранения (и GT; 10 лет) данных в формате, который не'т требуют, чтобы мы сохранили архивный компьютера и операционной системы (или ВМ) и программное обеспечение для обработки в течение длительного времени.
Двоичный формат поставщика дает хоть какую-то защиту от подделки данных, однако в форматы XML не. Отсюда и вопрос - открытые форматы являются очень полезными для обеспечения доступа к данным по архивным датам, а безопасность-это проблема.
Решение по умолчанию может быть использование криптографических подписей. У каждого специалиста, сформировать ПГП ключей, публикуя открытый ключ, и храня закрытый ключ хранится в секрете.
Когда специалист сделал анализ, они подписать файл с помощью своего личного ключа. Теперь любой, кто захочет проверить файл может проверить подпись с помощью открытого ключа техник. При внесении изменений в файл, подпись выиграл'т быть правильным.
Безопасности: Если закрытый ключ специалиста, вам известны еще кому-то, что человек может менять файлы, а также менять подпись, которая будет действительна. Эта проблема может быть смягчена при наличии нескольких лиц, подписать каждый файл. Злоумышленник требовал бы все ключи для замены все подписи действительными из них.
Альтернативная нетехнологичное решение: распечатайте каждый файл результате имеем знак специалиста, это старый способ (с ручкой) и помещает файл в физически защищенном архиве.
Кстати: не думайте, что конкретного поставщика двоичном формате дает больше защиты от подделки, чем XML делает. Просто потому, что вы можете'т читать и редактировать его, когда вы открываете его с помощью текстового редактора Не'Т означает, что никто другой не сможет воспроизвести формат и создать для него редактор.
Любая форма цифровой подписью. Вот несколько советов:
Для XML-данных, существует стандарт цифровой подписи (XMLSign). К сожалению, этот стандарт является довольно бедным и играет важную лазейку безопасности (документах, должна быть нормализована через XML-преобразования, прежде чем они могут быть подписаны. Это крайне трудно сделать надежно, поскольку само преобразование становится важной частью сигнатуры).
Вы также можете использовать ПГП или S/МИМ подписывать документы, они будут выпускать новые, на основе текста и в основном для чтения, но все же поддельные документы.
Наконец, вы можете использовать отделенную подпись. В основном, это'с другой файл, содержащий цифровую подпись, связана с другим документом и может быть использован для проверки исходных данных (не важно какой исходный формат).
Позвольте мне добавить несколько доп. информация здесь:
Я обозначу три основных варианта и плюсы/минусы каждого из них.
Хранить резервные копии файлов в безопасном месте
Довольно очевидны. В "безопасное место" могут быть только для чтения (например, CD-диски), или сетевой диск, чтобы каждый мог прочитать, но только руководитель может написать, или онлайн-сервис для хранения (например, Dropbox), что делает его достаточно трудно подделать файл нужные изменения.
Плюсы
Минусы
&ампер;усилитель; nbsp;
Хранить хэши в безопасном месте
Хэш-это "отпечаток пальца" файла, который выглядит примерно так <суп>8f2e3f53aa90b27bda31dea3c6fc72f6</суп>; если два файлы немного разные у них будет другой хэш. Взять хеш оригинального файла и хранить его надежно, затем убедитесь, что файл не был изменен, взять хэш и сравнить его с сохраненным хэшем.
Плюсы
Минусы
&ампер;усилитель; nbsp;
Криптографической подписи
В этом случае, один или несколько человек могут "и знак" в файл и если все изменения сделаны эти подписи будут признаны недействительными. Конечно, если все, кто должен подписать файл готов (или обманом) подписать измененный файл, то вы можете уйти с подменен файл.
Плюсы
Минусы
Взять XML-файл, и ваш любимый праздник фото. Объединить файлы и вычислить хэш-значения результирующего файла.
Праздник рисунка гарантирует, что крайне трудно производить столкновения, даже если выходной файл фото общественности. Также, если вы используете несколько алгоритмов хеширования, маловероятно, что все они будут разделены по 10 лет.
Обращаясь файл-формат поставщика безопасности, расширяя о том, что @Филипп говорит в комментариях.
Я'вэ было покопаться формат файла поставщика (не масс-спектрометрии, но достаточно близко для этих целей). Это было сделано намного проще, имея установленное программное обеспечение, но я'м не эксперт в этих вещах. Я мог бы легко изменить метаданные (метаданные была моя цель в первую очередь) реальных данных было бы сложнее, но ни в коем случае нельзя изменять. В качестве метаданных включает в себя такие вещи, как код и дату проверить, что'ы достаточно большая уязвимость для таких вещей, как "и чей образец был чистым и когда?&мне кажется, что отношение к вам, или ", который впервые обнаружил этот препарат?&и" в других областях.
Некоторые программное обеспечение некоторые противовзломные характеристики (например, внутреннего использования-не обязательно крипто-класс-хэшей; полномочия пользователя для редактирования использование программного обеспечения). Обратный инжиниринг это будут чуть более чем тривиально для кого-то с приличным навыка в большинстве случаев. С помощью программного обеспечения, установленного даже в обход встроенных функций может быть также просто, как написание фронт-энда для вызова поставщика'ы библиотеки DLL, так как эти противовзломные характеристики, как правило, дополнительных надстроек (во многих областях они'повторно не требуется или не рекомендуется).
(Это может быть последовательность комментариев, но так как моей целью было заставить поставщика-файл вопрос яснее, казалось, лучше, чтобы правильно писать его).
Один из самых простых способов является создание хэш-файл и сохранить его в другом месте, чтобы вы знали, Если он будет изменен. Программы обнаружения вторжений использовать эту технику все время, чтобы проверить целостность (или по крайней мере указать если какой злоумышленник был возиться с системными файлами).
Посмотрите на программы, такие как помощник, вы могли запустить это на каталог, содержащий файлы (и, возможно, запустить его по требованию, когда добавил файл), чтобы обновить свою базу данных хэшей. Ночью, запустить его, чтобы проверить и отправить вам отчет, показывающий все изменения в файле.
Если вам нужно знать оригинал, то версионную файловую систему может быть хорошей идеей. Все изменения, внесенные в файл записывается и старые версии могут быть извлечены. Кроме того, система резервного копирования, которая обнаруживает новые файлы и копирует их в безопасное место, могут быть использованы (и хранит все старые версии - или злоумышленник может просто изменить несколько раз до тех пор, пока оригинал удален).
Как насчет техников пар уникальных идентификаторов файла и их hashs в Twitter, используя собственные учетные записи?
Это докажет, что:
Этот способ обеспечивает, по крайней мере, сопоставимы безопасности для многих цифровой подписи на основе ответов и преимущества, как:
Я рекомендую использовать по крайней мере SHA256 в качестве хэш-алгоритма.
открытые форматы являются очень полезными для обеспечения доступа к данным по архивным датам, а безопасность-это проблема
Большой вопрос: как архивы доступны?
Проблема с хешированием обычный текстовый файл хэш-символ-точный. Изменить один символ и хэш будет совершенно другой. Работает очень хорошо для двоичных файлов, таких как исполняемые программы (где один байт из место обычно катастрофическими), но не на файлы разметки - нормализации (или сжатие) пробел изменится хэш, но не влияют на данные.
Если вы не передавая файлы по электронной почте или для чтения и записи сетевого ресурса вы будете иметь безопасное хранение хэш, или любой человек с половиной мозга может изменить файл, а затем обновить хеш. Если у вас есть охраняемое помещение для хранения хэш, почему бы не хранить данные в одном месте и забыть про хэш?
Это может показаться странным на первый, но посмотри на загрузку файла и описание к локальной установки что-то вроде WordPress или медиавики. Доступ может быть открытым и безопасным, как вы хотите, и платформы пользовательские элементы управления загрузить файл. После того, как его ведомство поставило его правильно, то доступ на запись к файлам может быть заперт так крепко, как надо.