Относительно словесной стратегии «вызов / ответ». Мы использовали этот подход для лицензирования нишевого приложения на пяти тысячах рабочих станций по всему миру в течение более десяти лет. Наша служба поддержки назвала его «Кодами запуска ракет» из-за его сходства с классическим процессом аутентификации запуска ракет, который можно увидеть в старых фильмах.
Это чрезвычайно трудоемкий способ защиты вашей программы. Это потратило огромное количество времени наших сотрудников и клиентов на чтение кодов и от пользователей. Они все это ненавидели.
Ваша ситуация / контекст могут отличаться. Возможно, вы не будете использовать его так часто, как мы. Но вот несколько советов:
Тщательно продумайте длину и содержание кода: большинство пользователей (и вспомогательный персонал) не любят печатать много символов. Многие пользователи плохие машинистки. Подумайте, не обременяет ли их длинная строка, включая знаки препинания и чувствительность к регистру, по сравнению с добавленной защитой.
После многих лет использования словесного запроса / ответа мы оставили его на месте (как запасной вариант), но добавили простую автоматизированную систему. Мы решили использовать FTP, а не более сложный веб-подход, чтобы у нас не было программного обеспечения, работающего на нашем внутреннем сервере (или работающего с нашими ИТ-специалистами!)
По сути, мы используем FTP-файлы для обмена, который ранее выполнялся на телефоне. Сервер помещает на FTP-сервер файл, содержащий фразу вызова. Имя файла - это имя клиента. У нашей службы поддержки есть программа, которая автоматически создает этот файл на нашем ftp-сайте.
Наши сотрудники заказали клиенту нажать горячую клавишу, которая считывает файл FTP, аутентифицирует его и помещает файл ответов обратно на сервер.
Программное обеспечение наших сотрудников службы поддержки опрашивает программное обеспечение клиента для создания файла ответов. Когда он видит файл, он загружает его, подтверждает его содержимое и удаляет его с сервера.
Конечно, вы можете проводить этот обмен столько раз и в любом направлении, сколько вам нужно на данном сеансе для достижения ваших целей.
Данные в файлах могут иметь те же ключи MD5, которые вы использовали бы в устной форме, чтобы они были настолько безопасными, насколько вы хотите.
Недостатком этой системы является то, что у пользователя должен быть доступ по FTP. Мы обнаружили, что большинство наших пользователей (все компании) имеют доступ к FTP. (Конечно, ваша клиентская база не может ...) Если наше приложение на местах не может получить доступ к нашему FTP-сайту, оно четко сообщает о проблеме, чтобы наш клиент мог обратиться к своему ИТ-персоналу с просьбой открыть доступ. Между тем мы просто возвращаемся к словесным кодам.
Мы без проблем использовали простые ванильные инструменты Indy FTP.
Без сомнения, в этом подходе есть некоторые недостатки (возможно, в том числе и те, о которых мы не подумали). Но для наших нужд это было фантастически. Наш персонал поддержки и клиенты любят это.
Извините, если ничего из этого не имеет к вам отношения. Надеюсь, это поможет вам.