Стандартный протокол обмена файлами FTP — не шифрует свои данные при передаче, как по управляющему порту, так и по порту, по которому потом идут бинарные данные. Поэтому этот трафик элементарно отследить сниффером и получить логин и пароль пользователя. Они передаются в открытом виде командами “USER” и “PASS“, соответственно.В MyChat есть встроенный FTP сервер, на нём каждому пользователю автоматически заводится учётная запись. Это удобно, мы сделали такой вход на корпоративный файловый сервер прямо из MyChat Client:
Сразу открывается Проводник или другая, привычная, программа, а там пользователь уже дальше работает со своими документами и файлами.
Ключевой момент — не надо судорожно вспоминать свой логин и пароль, а потом вводить в адресной строке что-то типа ftp://30:865ВZdFgdv@myserver:10000
Минус в том, что, если работает прозрачная доменная авторизация, то реального пароля пользователя у нас нет, только домен, доменный логин и ещё UIN (внутренний идентификатор пользователя MyChat).
Как зайти на FTP под доменным пользователем?
На файловый сервер MyChat можно зайти доменным пользователем, если указать его домен, логин и доменный пароль, вот так, например (настройка в FAR):
Автоматический вход на FTP по одноразовому токену
Для доменного пользователя нужен автоматический вход. Он уже ввел свой пароль, авторизовавшись в Windows. Спрашивать у человека пароль снова и снова, как минимум, негуманно 🙂
Поэтому мы пользуемся специальным механизмом токенов. Схема такая:
- Мы уже авторизованы на сервере мессенджера MyChat. Просим выдать нам одноразовый токен для входа на внутренний FTP сервер.
- Сервер проверяет, есть ли у нас на это право, и, если всё Ок — выдаёт такой токен. Токен привязан к IP, для безопасности.
- Мы получаем токен и можем авторизоваться на файловом сервере без домена и пароля, только по токену и UIN: ftp://30:m0C40BpZzc1f8hHqt5XAr@myserver:30000
- Токен действует только один раз, после авторизации он сразу же удаляется и больше не действует. Даже если авторизация по какой-то причине была неудачной, токен всё равно удаляется. Если MyChat Server перезапустить – все активные токены удаляются.
Всё это работает в автоматическом режиме, никаких настроек не нужно. «Пощупать» можно в MyChat 6.0 и старше.