Защита клиента javascript с помощью hmac

Я изучаю способы защиты приложения javascript, над которым я работаю. Приложение представляет собой чат-клиент, который использует APE (Ajax Push Engine) в качестве бэкэнда.

В настоящее время любой может получить доступ к странице и сделать запрос GET / POST к серверу APE. Я хочу обслуживать чат-клиент только зарегистрированных пользователей, и я хочу быть уверен, что будут приняты только их запросы. Я могу использовать аутентификацию по имени пользователя / паролю с PHP для обслуживания страницы пользователя. Но как только они получат страницу, что помешает им изменить javascript или позволить ему попасть в чужие руки?

Этот метод защиты клиент-серверного приложения выглядит многообещающим: http://abhinavsingh.com/ blog / 2009/12 / how-to-add-content-verify-using-hmac-in-php /

У меня есть другой источник, который говорит, что это идеально подходит для клиента javascript, поскольку он не зависит от отправки частного ключ. Но как это может быть? Согласно приведенному выше руководству, клиент должен предоставить закрытый ключ. Это не кажется очень безопасным, поскольку любой, у кого есть javascript, теперь имеет закрытый ключ этого пользователя. Насколько я понимаю, это будет работать примерно так:

  1. Пользователь входит в систему с именем пользователя и паролем
  2. PHP проверяет имя пользователя и пароль, ищет закрытый ключ пользователя и вставляет его в javascript
  3. Javascript предоставляет подпись (используя закрытый ключ), а общедоступный ключ со всеми запросами APE
  4. APE сравнивает вычисленную подпись с полученной подписью и решает, обрабатывать ли запросы.

Насколько это безопасно, если приложение javascript должно знать о закрытом ключе?

Спасибо за помощь!

9
задан Walderman 23 November 2010 в 02:29
поделиться