Как программно настроить ssh-туннель на iPhone для доступа к удаленной службе?

#iphone #objective-c #sockets #ssh

#iPhone #objective-c #сокеты #ssh

Вопрос:

Я разрабатываю приложение для iPhone, которое обменивается данными с удаленной службой через соединение tcp socket (служба фактически прослушивает telnet и также принимает команды telnet). Соединение, конечно, небезопасно, и все запросы (с довольно большим количеством конфиденциальных данных, таких как пароли) и ответы передаются в виде обычного текста. Моей первой реакцией было рассмотреть веб-службу с ssl, но разработка веб-службы с нуля кажется слишком длительной.

Из-за этого я думал об использовании ssh-туннеля для защиты трафика. Возможно ли настроить ssh-туннель в приложении iPhone (например, с помощью libssh2), а затем использовать этот туннель для безопасного подключения к удаленной службе? Если да, то как я должен настроить туннель и, самое главное, как я должен подключаться к удаленной службе и отдавать команды / получать ответы? Наконец, что я должен иметь в виду относительно туннеля?

РЕДАКТИРОВАТЬ: Я забыл упомянуть, что сервер, на котором запущена служба, использует Windows. SSH достигается с помощью Cygwin.

Прошу прощения, если вопрос слишком простой, но это действительно мое первое реальное знакомство с ssh.

Ответ №1:

Я думаю, у вас может возникнуть больше проблем с безопасностью при использовании ssh-туннеля, потому что нет безопасного способа привязать информацию аутентификации в приложении, и что ж, если кто-то сможет получить эту информацию для входа, он, предположительно, может подключиться к вашему сеансу ssh и начать пытаться выдавать произвольные команды. Конечно, есть способы заблокировать сеанс ssh, но все же я бы с большой осторожностью отнесся к этому. По крайней мере, с веб-службой он действует как «посредник» между приложением iPhone и сеансом telnet, поэтому вы можете добавить дополнительный уровень защиты.

Комментарии:

1. Понятно. У меня были некоторые подозрения, что это может быть проблемой. Однако я забыл упомянуть, что сервер, на котором размещена удаленная служба, является Windows box (ssh достигается через Cygwin). Это что-нибудь меняет?