Использовать SSL с клиентским сертификатом. У вас есть закрытый ключ в клиенте и выдается сертификат для него, и ваш веб-сервер может требовать наличия этого сертификата клиента для продолжения сеансов.
Я не могу дать подробности кода для Rails, но с точки зрения архитектуры это наиболее безопасный способ сделать, хотя это может быть немного излишним. SSL с сертификатами является стандартным отраслевым решением, и библиотеки существуют как для iPhone / клиента, так и для сервера, поэтому вам не нужно ничего придумывать или реализовывать, просто заставьте их работать вместе.
Вы могли бы также рассмотреть HMAC, как HMAC-SHA1, который в основном является стандартизацией хеш-содержимого, о котором говорят другие люди. Если вы добавите в него одноразовые номера, вы также будете защищены от повторной атаки. Чтобы получить представление о том, как реализовать HMAC-SHA1 с одноразовыми номерами, вы можете взглянуть на протокол OAuth (не весь поток, а только то, как они связывают одноразовые и другие параметры вместе в аутентифицированный запрос).