Каков наилучший способ обеспечить доступ к API RESTful на iPhone? - PullRequest
3 голосов
/ 10 января 2010

Я ищу несколько предложений о том, как обеспечить безопасный доступ к API RESTful, который изначально будет использоваться приложением iPhone, но в будущем у него появятся другие клиенты. Данные, предоставляемые этим API, должны храниться в безопасности, поскольку они могут содержать информацию о здоровье. Весь доступ будет осуществляться через HTTPS.

Я подумал, что хотел бы потребовать предварительной регистрации iphones при настройке, а затем также некоторый тип PIN / пароля для каждого запроса. Таким образом, простое знание пароля без предварительной регистрации телефона / клиента не обеспечит доступ. Я думал о том, чтобы как-то привязать его к идентификатору iPhone, если это возможно, но не уверен, что это обеспечит дополнительную безопасность. Идентификатор iPhone - это просто еще одна часть информации, и она может даже не быть секретом.

Итак, некоторые требования будут:

  • Используйте на iPhone какое-либо решение на основе выводов, но вам нужно больше безопасности, чем может предоставить простой вывод из 4-6 цифр.
  • Пароли не могут быть отправлены в открытом виде.
  • не подлежит ответным атакам
  • Необходима предварительная передача некоторых данных между клиентом и сервером при настройке клиента.

Ответы [ 2 ]

1 голос
/ 10 января 2010

Я бы подумал, что если приложение содержит медицинские записи, вы бы хотели, чтобы пользователь проходил аутентификацию каждый раз, когда они используют приложение, или, по крайней мере, имел бы какой-то способ нажать на сообщение об отключении, которое делает приложение бесполезным в случай, когда он потерян или украден. Пароль из 4-6 символов (пин-код) также будет касаться меня в отношении HIPAA, если он применяется.

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

0 голосов
/ 11 января 2010

Вы можете использовать SSL с аутентификацией клиента. Если устройство потеряно, вы можете удалить сертификат на сервере. Однако есть некоторые препятствия:

  • Не совсем понятно, если / как вы можете использовать SSL-аутентификацию клиента на iPhone. К сожалению, документации об этом немного. Взгляните на Справочник по сертификатам, ключам и трастовым службам
  • Вы должны создать личный ключ для каждого устройства
  • Вам также необходимо найти безопасный способ передачи закрытого ключа на устройство
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...