Я работаю над приложением для Android, которому необходимо вызывать API, требующий привилегий оператора. Я купил несколько пустых SIM-карт и попытался записать на них хэш сертификата моего приложения.
Основываясь на исходном коде Android, Android использует APDU с байтом CLA 0x80 для проверки правил на карте. Однако все карты, которые у меня есть, поддерживают только байт CLA 0xA0. Есть ли способ найти SIM-карту с нужным мне байтом CLA?
Спасибо!
То, что вы ищете, — это спецификация GlobalPlatform «Управление доступом к безопасным элементам», которая доступна здесь.
Технически вам нужна SIM-карта с апплетом ARA-M. Доступна реализация JavaCard с лицензией MIT здесь, которую вы можете загрузить на свою карту (используя, например, GlobalPlatformPro) — если ваша SIM-карта является JavaCard и у вас есть соответствующие ключи.
Затем вам нужно сохранить правила доступа, которые описаны в вышеупомянутой спецификации. К счастью, GlobalPlatformPro кажется поддержка загрузки правил, поэтому вам, вероятно, не нужно будет изучать все детали.
Если ваши SIM-карты не являются JavaCards, вам нужно будет узнать у своего поставщика, поддерживается ли ARA-M (вы можете попробовать выбрать ARA-M AID, который A00000015141434C00).
Отказ от ответственности: прошло некоторое время, когда я (незначительно) имел дело с этим, поэтому, пожалуйста, подтвердите мои мысли.
Удачи!