У меня есть клиентское серверное приложение C++, которое обменивается данными через сеть (с поддержкой asio), и я планирую распространить это клиентское приложение на своих клиентов. Моя проблема заключается в том, что я не знаю, как предотвратить запрос на соединение из других приложений, вот как я могу убедиться, что только мое клиентское приложение может подключиться к моему серверу. Я думаю, что нет никакого способа сделать это, не установив соединение, чем лучший способ проверить, что запрос поступает от моего клиента?аутентификация клиента asio
1
A
ответ
0
Да, вы должны принять это соединение, чтобы узнать, связано ли это с вашим приложением или нет. Вы можете использовать три рукопожатия на этапе подключения:
- клиент подключается к серверу Сервер отправляет специфичного значение (целые, строки или любой другой) для нового клиента.
- Клиент обрабатывает это значение, вычисляет новый с ним и отправляет новое значение для сервера.
- Сервер проверяет правильность возвращаемого значения.
Клиент будет иметь тот же метод вычисления, что и сервер. Другие приложения не смогут использовать вашу службу, если они вернут плохую ценность.
5
Вы можете использовать asio встроенный SSL способность. Таким образом, вы создаете сертификаты для каждого сервера и сертификаты клиентов. Таким образом, вы можете проверить сертификат клиента на сервере в момент установления связи SSL. В качестве бонуса ваш трафик будет зашифрован и защищен SSL. Клиенты могут проверить, что сервер не подделка; сервер может проверить, что клиенты авторизованы.
Смежные вопросы
- 1. Отправка данных от клиента asio asio
- 2. Аутентификация клиента клиента Apigee
- 3. Ошибка сборки asio ssl-клиента?
- 4. Asio: предотвратить удаление асинхронного клиента?
- 5. boost ASIO async_read_until не компилируется с примером клиента ASIO ssl
- 6. аутентификация клиента веб-сервиса
- 7. Основная аутентификация клиента JAXWS
- 8. Аутентификация сертификата клиента
- 9. Аутентификация клиента Magento SOAP?
- 10. SSL HandShake - аутентификация клиента
- 11. RESTful Аутентификация клиента Android
- 12. Аутентификация клиента с джерси
- 13. Простая аутентификация FTP-клиента?
- 14. Аутентификация клиента на сервер
- 15. Аутентификация клиента сервером
- 16. аутентификация клиента серверу gae
- 17. Аутентификация сертификата клиента WCF
- 18. Аутентификация собственного клиента Azure
- 19. Аутентификация клиента Sharepoint
- 20. Создание асинхронного клиента с boost :: asio
- 21. Boost Asio io_service, Чтение сообщений от клиента
- 22. Аутентификация клиента на сервере Tomcat
- 23. Аутентификация клиента - обработка клиентских сертификатов
- 24. Аутентификация сертификата WCF и клиента
- 25. php SSL аутентификация сертификата клиента
- 26. Аутентификация клиента на сервере JBoss
- 27. аутентификация клиента gdata без перекодирования
- 28. IIS 7.5 и аутентификация клиента
- 29. Аутентификация клиента на Apache DS
- 30. NSURLCredentialStorage и аутентификация сертификата клиента
У меня была та же проблема; моим решением было использование SSH-туннеля. Вы должны заранее открыть туннель, но вы напрямую полагаетесь на существующий механизм для решения этой проблемы. – piwi