Безопасна ли аутентификация TCP-соединения по исходному IP-адресу? - PullRequest
0 голосов
/ 10 февраля 2011

Я разрабатываю приложение, которое принимает подключения от клиентов через Интернет.Все эти клиенты находятся на фиксированных IP-адресах и устанавливают незашифрованное TCP-соединение.

В настоящее время сервер должен проверять, с какого IP-адреса исходят подключения, и разрешать только клиентские подключения из списка известных IP-адресов.?

Насколько это безопасно от подмены IP-адресов?

Я считаю, что, поскольку это TCP-соединение, злоумышленник не может просто подделать IP-адрес своего отправителя (что легко), но можетЯ должен убедиться, что пакеты возвращаются к нему, и поэтому ему придется взломать все маршрутизаторы на пути, что кажется довольно сложным.

Я знаю, что могу использовать шифрование, например, SSH, но давайте придерживаться вопросанасколько безопасным было бы простое TCP-соединение.

Ответы [ 3 ]

2 голосов
/ 10 февраля 2011

Ограничение соединений по IP-адресу, как правило, является хорошей практикой, когда это практически осуществимо, поскольку оно значительно уменьшает поверхность атаки и значительно повышает сложность атаки. Как указывалось в других ответах, теперь вам придется делать что-то вроде подмены IP-адреса или атаковать саму сеть (ложные маршруты BGP и т. Д.).

При этом ограничение IP-адресов следует использовать как один из уровней подхода глубокой защиты. Не могли бы вы зашифровать поток TCP без особых переделок? Может SSL? Если вы не можете изменить программу, как насчет сети? Сайт ti site IPSEC VPN-туннели нетрудно установить, поскольку их поддерживает практически любой коммерческий брандмауэр. Даже некоторые маршрутизаторы soho можно модифицировать для поддержки IPSEC (например, с OpenWrt плюс OpenSwan).

Наконец, вы могли бы потребовать, чтобы клиент и сервер взаимно аутентифицировались?

1 голос
/ 10 февраля 2011

Не безопасно. Шлюзы BGP не защищены от атак, и с их помощью можно объявлять ложные маршруты и подделывать IP-адреса.

0 голосов
/ 10 февраля 2011

Прежде всего, используя IP, вы не идентифицируете клиента, а просто некоторые цифры. Даже , если IP правильный, на компьютере пользователя все еще может быть трояна, выполняющего аутентификацию вместо самого пользователя (поскольку я не знаю, какую услугу вы предоставляете, я предполагаю, что это может сделатьсмысл).

Теперь, если у кого-то есть доступ к одному из маршрутизаторов, через который проходят пакеты между клиентом и сервером, он может делать практически все - он может отправлять и получать пакеты от имени клиента или онможете изменить их (поскольку данные остаются незашифрованными).Более того, злоумышленнику не нужно взламывать все или один из маршрутизаторов - ему просто нужно иметь доступ (включая законный) к каналу, куда идут данные, будь то сам маршрутизатор или кабель (который можно обрезать ироутер можно вставить).

Подводя итог, можно сказать, что IP можно использовать как один из компонентов, который в некоторой степени усиливает спуфинг, но не может быть главной мерой безопасности.

...