Как обезопасить сервис от перехвата, чтобы узнать его ключ API - PullRequest
2 голосов
/ 21 июня 2011

Допустим, у нас есть веб-сервис WCF. и его ссылка следующая;

http://www.example.com/service/?api=62383581

62383581 - это ключ API здесь. Как мы можем защитить службу от зацикливания, чтобы узнать ее ключ API?

Ответы [ 4 ]

3 голосов
/ 21 июня 2011

Я думаю, что обсуждение должно состоять в том, «как сделать это трудным», а не предотвратить его, поскольку, если вы собираетесь предоставлять свой сервис для общего доступа, вы подвержены атакам.

Возможности, затрудняющие это,быть:

  • если вы предоставляете доступ к своему сервису близкому кругу клиентов, то вы можете применить ограничения IP к вашему Серверу, чтобы запретить вызовы из любой другой службы, опять же, это предотвратит любыевызовы из сценариев на стороне клиента (например, JavaScript) и будут открыты для IP-спуфинга

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

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

  • вы можете дать своему клиенту открытый ключ (различный для каждого клиента), попросить его добавить некоторый идентификатор с ключом, например, api & customerID, и зашифровать его своим ключом, поскольку на стороне сервера у вас есть закрытый ключ для этогоконкретный клиент и наоборот .. (это содержит издержки на расшифровку шифрования)

, и если у вас человек в середине , то это может поставить под угрозу все выше.Все это усложняет ситуацию и может потребовать переосмысления в зависимости от вашего подробного сценария.

2 голосов
/ 22 июня 2011

Используйте GUID вместо Int, чтобы сделать его более трудным для подбора.

0 голосов
/ 21 июня 2011

Любой ключ API, содержащийся в программе ненадежного клиента, может быть утечен по определению.

0 голосов
/ 21 июня 2011

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

Единственный способ, о котором я могу подумать, - это использовать либо сильно настраиваемый брандмауэр, который может обнаруживать такие атаки, либо систему предотвращения вторжений (IPS), такую ​​как Winsnort. Смотри также http://www.winsnort.com/index.php?module=News&func=display&sid=41

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...