2015-04-16 6 views
2

Я строю устройство с GSM-модемом и SIM-картой. Я хотел бы защитить SIM-карту штырьком, чтобы предотвратить его неправильное использование, когда устройства установлены на поле.Какие данные/метаданные можно считывать с SIM-карты, защищенной PIN-кодом, без ввода PIN-кода?

Хранение штыря для соответствующей SIM-карты в каждом устройстве было бы громоздким. Кроме того, если SIM-карта заменена, я хочу, чтобы устройство автоматически узнало PIN-код для новой SIM-карты. Поэтому я думал использовать одностороннюю хеш-функцию для генерации вывода из одного или нескольких свойств SIM-карты, таких как IMSI, ICCID, идентификатор группы SIM-карты, имя поставщика услуг и т. Д.

Когда SIM-карта вставлена, устройство может динамически вычислять правильный ПИН на основе этих свойств.

(я знаю, что безопасность на основе секретного алгоритма нарушает основные принципы компьютерной безопасности, но в данном случае мне не нужно, чтобы это было глупое доказательство. - Мне просто нужно что-то лучше, чем оставить его незащищенным)

Проблема заключается в том, что ни один из этих свойств не может быть прочитан перед вводом PIN-кода. Есть ли другое свойство, которое можно прочитать без ввода PIN-кода? Или у вас есть какие-то работы, которые не требуют предварительного хранения PIN-кода на устройстве?

ответ

3

Да, возможно создание PIN-кода с использованием самих свойств SIM-карты (при условии, что у вас есть отношение к поставщику карты и оператору).

PIN = some_function(sim_properties) 

В отношении каждого из свойств, которые вы упомянули:

  1. ICCID - да, это уникальный на карте. Нет ограничений чтения и не может быть обновлено. Первый выбор для использования.
  2. IMSI - уникальная карточка, но не может быть использована. Вам необходимо указать PIN-код, чтобы прочитать этот файл.
  3. SPN - да, также может быть использован, но не является уникальным для каждой карты. Если вы хотите использовать этот файл, убедитесь, что он не будет обновлен оператором через OTA (Over The Air) RFM (Remote File Management).
  4. GID - этот файл является необязательным, лучше его не использовать.

Для самой функции я предлагаю использовать криптографический хэш вместо хэша, чтобы обеспечить большую безопасность.

Кроме того, вы также можете попросить продавца карты добавить дополнительный файл (EF), в который вы можете поместить дополнительные данные (дополнительные ключи, битмаски, индекс ключа используемых мастер-ключей и т. Д.).

На последнем этапе не забудьте преобразовать криптографический хэш-результат в числовой формат 4-8 цифр.

+0

Все в порядке. Но эти поля недоступны, если SIM-карта защищена штырем. Если я помещу SIM-карту с защитой от штыря в устройство, устройство должно иметь возможность рассчитать свой PIN-код на основе некоторых параметров SIM-карты. Для этого эти параметры должны быть доступны для чтения без ввода PIN-кода. – Dojo

+1

ICCID не защищен штырьком. Обратитесь к разделу спецификации 3GPP 11.11. Для ICCID см. Раздел 10.1.1 – David

+0

Не так ли? Если это так, проблема решена. Будет проверять и возвращаться. Благодарю. – Dojo