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

StackOverflow https://stackoverflow.com/questions/2674445

Вопрос

Я только начинаю думать о том, как работают ключи API и секретные клавиши. Только 2 дня назад я подписался на Amazon S3 и установил S3FOX плагин. Отказ Они попросили меня обоим ключевому ключу доступа, так и секретный ключ доступа, которые требуют, чтобы я должен был войти в доступ.

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

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

Это было полезно?

Решение

В основном разрабатывая о том, что изложено здесь.

Вот как это работает: скажем, у нас есть функция, которая принимает номер с нуля через девять, добавляет три и, если результат превышает десять, вычитает десять. Таким образом, f (2) = 5, f (8) = 1 и т. Д. Теперь мы можем сделать другую функцию, вызвать ее F ', которая возвращается назад, добавив семь вместо трех. f '(5) = 2, f' (1) = 8 и т. Д.

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

Принимая ввод и применение односторонней функции, называется «хешированием» входным, а какие магазины Amazon на их системе являются «хэш» вашего секретного ключа. SHA1 является примером этого типа «односторонний» функций, она также закалена от атак.

То Функция HMAC Создание установленных хеш-функций для использования известного ключа для аутентификации строки текста. Это работает так:

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

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

Разве это не в основном то же самое, что просит меня за номера кредитных карт или пароль и хранение того, что в собственной базе данных?

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

Насколько секрет они должны быть? Это приложения, которые используют секретные клавиши, хранящие его как-то?

В какой-то момент вам придется загрузить секретный ключ, и с большинством систем на основе Unix, если злоумышленник может получить root-доступ, они могут получить ключ. Если вы зашифруете ключ, вы должны иметь код для расшифровки его, и в какой-то момент код дешифрования должен быть простой текст, поэтому его можно выполнить. Это та же проблема DRM имеет, за исключением того, что вы владеете компьютером.

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

Другие советы

Ключевое криптография используется для защиты от очень специфических атак, некоторые из которых являются общими. Короче говоря, это сложная математика, которая позволяет проверить, что у человека есть как публичная, так и частная пара, одновременно знающие открытый ключ. Это очень отличается от кредитной карты или статического пароля. В качестве примера, если вы аутентифицируете с сервером OpenSSH, то сервер не нужен закрытый ключ.

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

В открытом ключ аутентификация статистически невосприимчивая к грубой силе. Пароли часто являются словарными словами, которые можно быстро ломать относительность. Однако закрытый ключ является массовым числом, которое не легко догадаться. Если нападающий имел открытый ключ, то они могли бы выполнить много догадок «в автономном режиме» на суперкоммуникационном компьютере, но даже тогда это займет много времени и денег, чтобы сломать ключ.

AWS разработал свой собственный алгоритм пользовательских аутентификации. V4 был выпущен в 2014 году. Здесь описаны детали: Аутентификационные запросы (AWS Signature Version 4) . Отказ Основной точкой является то, что запрос не подписан с самим секретом, но с ключом подписания, который генерируется с использованием секрета. Он также использует HMAC-SHA256 для подписания.

Signature Generation

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top