2012-07-03 2 views
1

Я начинаю новый проект в ближайшие недели, но у меня есть некоторые вопросы, связанные с «дизайном» приложения.TLS - сервер Node.js для Android-приложения

Приложение будет сервером + база данных, которая разговаривает с Android-приложением, которое также имеет собственную базу данных (для использования в автономном режиме).

Соединение будет использоваться для обмена строками, которые зашифрованы с помощью специального «протокола» (протокол сетевой игры, инкапсулированный в TLS). Это означает, что приложение будет иметь два слоя защиты:

  1. TLS -> против MiTM атак
  2. Пользовательского протокола -> против «в игре хаки», как игра пакет фальсификации

Моего вопросы следующие:

  • Возможно ли использовать TLS между node.js и Android? Есть ли хорошие ссылки на эту тему?

(я прочитал там были некоторые проблемы с форматом, который был сертификаты отличается в Java и Node.js. Это было связано с OpenSSL и функция EVP_BytesToKey)

->Encrypt with Node.js Crypto module and decrypt with Java (in Android app)

->http://olabini.com/blog/tag/evp_bytestokey/

  • есть ли способ запутывания исходного кода Android приложения, так что «протокол» пользовательский может быть расшифрована на стороне клиента безопасно? Или должно ли все волшебство иметь серверную сторону?

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

  • Любые советы или ссылки на повышение безопасности моего узла .js в целом?

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

Спасибо много заранее!

ответ

1

(In) Security though obscurity не решает реальных проблем с безопасностью, с которыми вы сталкиваетесь. То, что вы описываете, - , а не, как игры защищают себя от атаки. SSL/TLS предотвращает атаки MITM, однако ваш злоумышленник - это не просто MITM, он является пользователем вашего программного обеспечения. Если приложение может подключиться к SSL/TLS, злоумышленник также может установить это соединение и должен предположить, что злоумышленник всегда будет получить полный доступ к предоставленному вами API.

Криптография не может решить CWE-602: client side enforcement of server side security. Слияние базы данных между автономной базой данных клиента и сервером доверяет данные клиента, а также для нарушения CWE-602. В этой атаке злоумышленнику не нужен доступ к API, он может просто модифицировать базу данных sqlite локально.

Смежные вопросы