Зашифровывать 4-значный пароль / пин-код - легко взломать? - PullRequest
4 голосов
/ 12 июня 2011

В настоящее время я работаю над службой, которая требует, чтобы пользователи выбирали 4-значный пароль / пин-код, потому что это мобильная услуга.Я шифрую эти пароли либо 256, либо 2048-битным шифрованием, и оно будет хешировано.Учетная запись блокируется после 4 неправильных записей и может быть введена только с мобильного телефона.Было бы трудно взломать эти PIN-коды?Я спрашиваю об этом, потому что конфиденциальная информация хранится.База данных подключена к веб-приложению, приложение загружается в телефон с помощью twilio.Больше всего меня пугает то, что база данных взламывается через Интернет.Что может быть хорошим способом защиты конфиденциальных данных?

Ответы [ 5 ]

6 голосов
/ 12 июня 2011

Если кто-то завладеет базой данных, вы будете в значительной степени облажаны:

Если вы просто зашифруете 4-значные пароли, злоумышленник может просто создать таблицу из 10000 возможных зашифрованных строк и тривиально расшифровать PIN-коды.

Если вы используете солт-строки (и шифруете не ПИН, а ПИН + соль и храните зашифрованный (ПИН + соль) вместе с солью), люди должны приложить усилия для каждого пароля, но для каждого из них остается только 10000 возможностей. пароль (который не очень).

Что означает, да, во что бы то ни стало, вы должны держать базу данных вне сети. (Если доступ к веб-приложению возможен только через twilio, вы можете отклонить соединения из любого другого диапазона IP-адресов).

2 голосов
/ 14 июля 2011

Если вы используете PKCS # 1 1.5 или 2.0 RSA-шифрование ( см. Стандарты ), вы также зашифруете случайное заполнение.Это означает, что при передаче PIN-коды нельзя сравнивать, поскольку заполнение держится в секрете и является действительно случайным (это не соль, которую следует обнародовать).

Что касается базы данных, она будетбудет хорошей идеей вывести его из обычных операций как можно больше.Создайте простой сервис, который просто проверяет ПИН-код после расшифровки, убедитесь, что у вас нет переполнений буфера и т. Д., И, если возможно, используйте другой компьютер и права доступа, отличные от рабочего сервера.На самом деле хорошо протестируйте эту часть, так как интерфейс небольшой, это не должно быть сложно.

Если вы и телефоны готовы, вы можете попробовать ECC, но это не для кротких.При шифровании RSA обычно используется небольшая общедоступная экспонента (настоятельно рекомендуется 0x010001), поэтому он быстрее, чем ECC для телефона.На сервере (и при создании ключа) ECC намного быстрее.Я бы не рекомендовал для этого симметричную криптографию (AES / 3DES).

Да, и включал бы открытый ключ шифрования в приложение (для неявного доверия), не отправляйте его с сервера.Храните секретный ключ в секрете и недоступном для чего-либо, кроме уже упомянутой службы.

2 голосов
/ 12 июня 2011

Поскольку вы используете twilio, просто убедитесь, что twilo общается только с вашим веб-сервисом по безопасному протоколу, и отклоняйте любые запросы, которые, как вы не уверены, поступают из надежного источника (то есть twilo). Нет никакой необходимости в булавке.

Это огромная веб-страница о том, как настроить ssl между вашим веб-сервером и twilo. У него даже есть пример php. http://www.twilio.com/docs/security

1 голос
/ 12 июня 2011

Интерфейс, который вы описываете, звучит для меня безопасным. Это достаточно безопасно для банкоматов!

Легко ли взломать зашифрованные PIN-коды? Да, есть только 10000 возможных комбинаций и радужная таблица может быть сгенерирована из всех возможных зашифрованных значений, если вы не salt . Однако для этого потребуется доступ к зашифрованным PIN-кодам, что означает, что у злоумышленника уже есть копия вашей базы данных.

Так что на самом деле вам нужно убедиться, что ваш сервер базы данных защищен. Есть много переменных, которые могут сделать его небезопасным, поэтому это большой вопрос. Вместо этого вы можете положиться на сторонние решения, такие как Amazon S3 или , другие и сосредоточиться на кодировании, а не на безопасности. Пусть они делают тяжелую работу!

0 голосов
/ 12 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...