У меня есть идея, с которой я хотел бы обратиться к умным людям из serverFault, чтобы они нашли в ней дыры.
Я ищу способ заблокировать стороннее приложение в IIS. Это веб-сервис, поэтому здесь нет страницы входа или чего-то еще, он предназначен для использования в среде VPN. Я пытаюсь подключить его к сети без VPN и думаю о способах повышения безопасности. Мне нужно ограничить его определенными сетями, это бизнес-продукт, поэтому я, вероятно, могу сказать, что вам нужно быть в частной сети (то есть не в общедоступном Wi-Fi), чтобы использовать его. Моя идея состоит в том, чтобы использовать ограничение IP-адресов в IIS и написать приложение, которое пользователи устанавливают и обновлять сервер с их текущим IP-адресом каждые несколько минут, затем сервер блокирует все, кроме недавно обновленных.
Насколько это будет безопасно? Есть ли в этой идее серьезный недостаток? Или, возможно, есть лучший способ сделать это в IIS?
Мы использовали клиентские сертификаты. Они требуются на уровне IIS, а не в приложении, поэтому никаких модов там нет. Тогда любой, кто хочет, должен иметь сертификат клиента, выпущенный нами, поэтому не имеет значения, откуда они его запускают. Конечно, это не ограничивает его определенной сетью, а только определенными машинами, у которых есть сертификат.
Я вижу в этом один серьезный недостаток - все, что нужно сделать злоумышленнику, - это перехватить одно соединение, и тогда приложение будет разговаривать только с его компьютером. На самом деле, было бы несложно наблюдать за трафиком, чтобы увидеть, что потребуется.
Конечно, вы можете использовать шифрование с использованием пары открытый / закрытый ключ, чтобы избежать этой проблемы, тогда вы выполняете аутентификацию - что кажется гораздо лучшей идеей.