Целостность и Подлинность
Извините, что продолжаю задавать так много вопросов, но вы, ребята, всегда кажетесь такими милыми и полезными...
Мне нужно сделать какое-то приложение, которое импортирует данные из файла. Например, пользователь выбирает один файл, а приложение импортирует некоторые данные в базу данных.
Но я думал, и такого рода приложение приводит к проблеме целостности и подлинности файлов. Если пользователь изменяет файл, приложение не может использовать эту информацию. И если один файл не из хорошо известного источника, приложение не может использовать этот файл.
Как мне делать такие вещи?
PS: я использую C#.NET
3 ответа
Аутентификация и целостность обеспечиваются цифровыми подписями.
Следуйте советам driis, если вы контролируете формат файла.
В качестве альтернативы, если файл представляет собой XML, используйте подпись XML.
Использование C#/.NET:
Если вы можете контролировать формат исходного файла, вы можете встроить цифровую подпись. Если вы основываете подпись на хэше содержимого файла, то вы можете быть уверены, что файл получен из надежного источника, и это не было подделано.
Это зависит от того, насколько сильно вы хотите эту защиту.
Например, у вас может быть xml-файл (для удобства чтения), в котором где-то есть хеш-узел, содержащий хеш-код исходного файла (+salt). Это может быть обновлено программой, но пользователю может быть сложнее понять, что означает этот ключ. Когда программа открывает файл, она вычисляет хеш и проверяет, совпадает ли он с записанным в файле.
Вы даже можете сделать еще один шаг и использовать цифровые подписи, но это намного сложнее.