2012-04-05 3 views
0

Я реализую API для CMS.Есть ли причина не хранить ключи api в открытом тексте?

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

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

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

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

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

+0

Зачем использовать базу данных, а не поставщик магазина криптова? (Или поставщик хранилища криптографических данных для шифрования данных в базе данных.) –

+1

Возможно, вы злоупотребляете терминами «открытый ключ» и «закрытый ключ». См. Http://support.microsoft.com/kb/246071 – artbristol

+0

OP неправильно использует открытый и закрытый ключ. OP означает «ключ для чтения» и «ключ чтения/записи». В этом вопросе не задействован асимметричный криптоал. – jeffsix

ответ

1

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

Смежные вопросы