Member 9129971 Ответов: 1

Как генерировать случайные уникальные и маркеров безопасности в веб-API без использования долг, личности или библиотека вышлю?


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

Что я уже пробовал:

reserached различные методы

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Вы можете использовать это, Класс RNGCryptoServiceProvider (System.Безопасность.Криптография)[^] и это обеспечивает безопасную случайность — не засеянное случайное число. В большинстве безопасных случаев это генератор случайных чисел, который следует использовать вместо простого старого случайного класса .net Framework. Вы можете прочитать больше об этом объекте на самой странице MSDN.

Обновление:

Если вы используете токен только для аутентификации, например OAuth и т. д. Затем я бы рекомендовал использовать объект Guid, чтобы создать новую уникальную строку для каждого устройства. Он имеет размер 128 бит (2128 + 1) - это огромная сумма. Вы можете создать это довольно легко, а также,

var token = Guid.NewGuid().ToString();

Затем это можно хранить и использовать везде, где это необходимо. Я использовал этот метод в своем собственном приложении. Безопасный и зашифрованный способ генерации токена был бы полезен в тех случаях, когда все должно быть частным — управление денежными средствами является одним из примеров здесь, шифрование/дешифрование или генерация защищенных ключей или солей для хэширования паролей.

Подробнее об этом читайте здесь: Структура Guid (Система)[^]


Member 9129971

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

Afzaal Ahmad Zeeshan

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

Если токены просто будут служить для аутентификации, то рассмотрите возможность использования Guid, они в какой-то степени уникальны. Я лично использовал Guid в своем веб-приложении, которое я разработал некоторое время назад. :-)

Member 9129971

кроме того, мы всегда находим миллиарды статей по любому вопросу в интернете, но для обеспечения безопасности webapi нашел только одну статью по всему интернету, которая, кажется, используется всем миром. а вот и этот http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/. Но это включает в себя тяжелую конфигурацию и многие вещи за сценой, а также обнаруженные трудности в реализации в соответствии с моим требованием.

Afzaal Ahmad Zeeshan

Безопасность-это жесткая концепция, брат! :-)

Member 9129971

без сомнения :), кстати, спасибо за ваш ответ и быстрый ответ.И с наилучшими пожеланиями.

Member 9129971

Приложение очень чувствительно и включает в себя платежи и транзакции, поэтому не может использовать guid, так как я думаю, что это предсказуемо.Люди предлагают использовать owin,identity или jwt для этой цели, но я не работал с ними ранее , и они делают генерацию токенов за сценой, которую я не понял, и у меня очень ограниченное время, чтобы полностью изучить и понять их.Вот почему я ищу что-то, не используя слишком много конфигурации.

Afzaal Ahmad Zeeshan

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

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

И удачи тебе тоже.

Member 9129971

что вы думаете об этой статье http://www.primaryobjects.com/2015/05/08/token-based-authentication-for-web-service-apis-in-c-mvc-net/.
Он использует алгоритм.

Afzaal Ahmad Zeeshan

Это действительно очень хорошая статья, однако есть несколько областей, где я могу не согласиться с автором. Но в целом это была хорошая статья с четкими разделами.

Member 9129971

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

Afzaal Ahmad Zeeshan

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

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

В остальном парень проделал отличную работу.