Люди,
У нас сложная техническая задача. Как написать защищенный файл аудита, который отслеживает использование программного обеспечения, чтобы лицензионные платежи могли быть основаны на использовании, что делает его более доступным для тех, кто его использует меньше.
В частности, TickZoom продает торговую платформу альфа-поколения для хедж-фондов, которая в настоящее время обходится в 2000 долларов США в месяц за лицензию, включая поддержку (скоро увеличится более чем вдвое). Это хорошо для учреждений, но слишком дорого для частных лиц. Люди часто просят более низкую цену в обмен на процент от прибыли, полученной с использованием программного обеспечения, до тех пор, пока они не смогут позволить себе платить фиксированные сборы.
Нам нравится это предложение. Но нам нужен надежный способ аудита прибыли, фактически полученной на платформе, и способ запретить пользователям «разыгрывать» ее, удаляя или перезаписывая файл аудита, тем самым сообщая о более низкой прибыли, чем фактическая.
Это приложение написано на C #, и эта часть системы запутана, по крайней мере, затрудняя расшифровку кода.
Другим требованием является запись в файл для каждой сделки, чтобы обеспечить более глубокий аудит в случае, если пользователь чувствует, что есть некоторая разница в общей комиссии. Таким образом, индивидуальную торговую прибыль можно сравнить с отчетами брокера.
Конечно, предполагается, что файл будет зашифрован.
Но есть ли идеи, как сделать его "защищенным от взлома"? Особенно против простой попытки удаления?
Мое первое предположение - заставить программное обеспечение всегда требовать существующий файл аудита, иначе оно откажется работать.
Затем, когда мы поставляем программное обеспечение, оно упаковывается с «пустым» файлом аудита, который, на самом деле, имеет своего рода проверочную проверку.
Следующий очевидный способ, которым пользователи могут попытаться «подделать» файл, - это просто сделать резервную копию этого оригинального «пустого» файла, а затем использовать его для последующей перезаписи файла аудита, тем самым обманывая систему, думая, что это новый старт.
Возможно, это можно решить, добавив какую-то "метку времени последнего обновления" и время истечения.
Также приветствуются абсолютно разные идеи решений. В этом случае мы можем быть вынуждены добавить возможность «телефон домой», чтобы сделки регистрировались на нашем центральном сервере. Но это кажется невыгодным и потенциально добавляет еще одну точку отказа в критически важных приложениях. Как правило, им очень не нравятся функции «телефона домой» с очевидными вескими причинами.
С уважением,
Waynek