Как работают ключи API и секретные ключи?
Я только начинаю думать о том, как работают ключи api и секретные ключи. Всего 2 дня назад я подписался на Amazon S3 и установил Плагин S3Fox. Они попросили у меня как ключ доступа, так и секретный ключ доступа, оба из которых требуют, чтобы я вошел в систему для доступа.
поэтому мне интересно, если они спрашивают меня о моем секретном ключе, они должны хранить его где-то правильно? Разве это не то же самое, что спросить у меня номера моей кредитной карты или пароль и хранить что в их собственной базе данных?
Как должны работать секретные ключи и ключи api? Насколько же они должны быть? Являются ли эти приложения, которые используют секретные ключи, хранящие его каким-то образом?
Спасибо за понимание.
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