Как работают ключи API и секретные ключи?



Я только начинаю думать о том, как работают ключи api и секретные ключи. Всего 2 дня назад я подписался на Amazon S3 и установил Плагин S3Fox. Они попросили у меня как ключ доступа, так и секретный ключ доступа, оба из которых требуют, чтобы я вошел в систему для доступа.



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



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



Спасибо за понимание.

935   2  

2 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.