Есть ли причина не хранить ключи API в открытом виде?

Я реализую API для CMS.

Клиенты получают доступ к API через открытый ключ или закрытый ключ (для более конфиденциальных данных). Они могут читать И писать в базу данных с закрытым ключом.

Я сохраняю ключи (просто случайные строки) в виде открытого текста в базе данных.

Я научился не хранить пароли в открытом виде. Основная причина в том, что потенциальный злоумышленник может использовать пароли в других системах (например, в Facebook), где пользователь использует тот же пароль.

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

Сказав это: я делаю что-то неправильно, если храню API-ключи в виде открытого текста?


person shredding    schedule 05.04.2012    source источник
comment
Зачем использовать базу данных, а не провайдера криптомагазина? (Или поставщик криптохранилища для шифрования данных в базе данных.)   -  person    schedule 05.04.2012
comment
Возможно, вы неправильно используете термины «открытый ключ» и «закрытый ключ». См. support.microsoft.com/kb/246071.   -  person artbristol    schedule 05.04.2012
comment
OP неправильно использует открытый и закрытый ключ. OP означает ключ только для чтения и ключ для чтения/записи. В этом вопросе не участвует асимметричная криптография.   -  person    schedule 05.04.2012


Ответы (1)


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

person rgullhaug    schedule 06.04.2012