2012-05-30 2 views
3

У меня есть требование хранить номер кредитной карты в приложении для iPhone. Как хранить данные в безопасном режиме. Я посмотрел на брелок. Помимо этого, есть ли что-нибудь, что я могу использовать.Как хранить информацию о кредитной карте на iphone?

+5

Что не так с брелок? – SLaks

+0

Вы можете использовать шифрование plist, см. Этот http://stackoverflow.com/questions/1465271/securing-xml-plists-in-cocoa-objective-c –

+0

f вы собираетесь участвовать в принятии платежей, необходимых для того, чтобы стать знакомы с требованиями [PCI] (https://www.pcicomplianceguide.org/pci-faqs-1/) (индустрия платежных карт). Требования не являются тривиальными. – zaph

ответ

3

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

Было сказано, что я должен был зашифровать конфиденциальную информацию раньше, и решил зайти за борт с использованием AES-256. Поскольку имена пользователей, пароли и личные данные отправлялись по сети, это было необходимо. Я использовал FBEncrypt для этого - это отличная оболочка вокруг CCCrypt.

https://github.com/dev5tec/FBEncryptor

Это позволит сделать базовый 64 кодирование и кодирование AES-256, среди прочего, и это очень удобно. Проверьте это, если вам это действительно нужно!

1

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

Как только вы знаете соответствующий уровень защиты, вы можете приступить к оценке решений. Брелок хорош, но есть много вариантов шифрования.

Вопросы, которые вы можете получить ответы на, кроме как хранить число входят:

  • Что аутентификация будет необходимо выставить число?
  • Каков ожидаемый жизненный цикл выставленного номера?
    • Как долго может находиться данное число?
    • Как будет очищаться номер от памяти?
  • Как можно использовать выставленный номер?
    • Можете ли вы когда-нибудь показывать это число пользователю?
    • Разрешите ли вы копировать номер в буфер обмена?

Если вы хотите, чтобы серьезно относиться к защите информации (любая информация), вам нужно сделать некоторые серьезные конструкторские работы.

0

Вам необходимо сделать очень серьезные исследования в этом и не обязательно принять то, что люди на этом сайте говорят без тщательных исследований и подтверждения с вашей стороны.

Хранение информации, такой как информация о кредитной карте, не является чем-то, что вы должны реализовать только на основе ответов на этом сайте IMO.

Если вы серьезны, вам необходимо прочитать, понять и применить материал в книге «Взлом и безопасность приложений iOS», чтобы понять, что такое опасности и как вы можете смягчить их, и как методы, которые говорят люди, безопасны действительно не так безопасны, как вы думаете, они могут быть.

0

Шифрование и использование SSL/HTTPS кажется достаточным для этого случая.Если вы новичок в subj, здесь содержатся общие общие рекомендации: Mobile App Development Tips: How to Ensure Data Security

Существует много реализаций, например. Вы можете использовать AES256 алгоритм упомянутый выше:

  1. Когда приложение сохраняет номер кредитной карты в первый раз, случайное MasterKey и вектор инициализации (IV) генерируются. Используйте их для шифрования.
  2. MasterSalt создается и сохраняется локально.
  3. Используя plainPassword и masterSalt, вычисляется хэш (PBKDF2).
  4. Используя алгоритм AES256, рассчитанный хеш используется для шифрования как MasterKey, так и IV.
  5. Зашифрованный MasterKey и IV сохраняются локально.
  6. Расшифруйте MasterKey и IV, используя plainPassword и masterSalt хэш (PBKDF2).
  7. Теперь зашифруйте данные с помощью MasterKey и IV, используя алгоритм AES256.
Смежные вопросы