Мое намерение состоит в том, чтобы обнаружить подделку содержимого этого файла
blockquote>Если вам нужно обнаружить преднамеренное подделывание файла, вам нужна какая-то криптографическая подпись [ 114] - не просто хеш.
Если вы можете защитить ключ внутри устройства, может быть достаточно использовать HMAC в качестве алгоритма подписи. Однако, если секрет будет извлечен из устройства, пользователи смогут использовать его для подделки подписей.
Если вы не можете защитить ключ в устройстве, вам нужно будет использовать алгоритм асимметричной подписи. API-интерфейсы Libsodium
crypto_sign
предоставляют хороший API для этого. В качестве альтернативы, если вы хотите использовать базовые алгоритмы напрямую, EdDSA - достойный выбор.Любой из этих вариантов потребует относительно большой объем пространства (от 32 до 64 байт), который будет выделен для подписи, и проверка этой подписи займет значительно больше времени, чем некриптографическая подпись. Это в значительной степени неизбежно, если вам нужно эффективно предотвратить вмешательство.
Существуют службы, которые предоставят вам местоположение на основе IP-адреса. Они не будут такими точными, как данные GPS, но без приложения, установленного на телефоне, они могут быть настолько близки, насколько вы собираетесь.
Вам не повезет в данный момент, но это то, что должно быть возможно в течение нескольких года. W3C опубликовал Geolocation API Draft , и он был внедрен в приложение для джейлбрейка iPhone под названием Locatable , но поддержки будет так мало, и далеко не стоит реализации время!
Для доступа к соответствующему API GPS вам необходимо получить разрешение безопасности. Пока вы знаете API, вы сможете получать соответствующие данные, но это будет зависеть от ОС. Я знаю, что он доступен через Python как PyS60 для телефонов Nokia.