Чем на PHP лучше сейчас в БД данные зашифровать? - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.7196
BTC/USD61972.9071
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 02.08.2011, 16:13   #1
KYO
blackseo
 
Аватар для KYO
 
Регистрация: 04.04.2007
Адрес: StandAlone
Сообщений: 1,053
Бабло: $196065
Отправить сообщение для KYO с помощью ICQ
По умолчанию Чем на PHP лучше сейчас в БД данные зашифровать?

Привет всем!

Вероятно кто-то уже сталкивался с проблемой - хранить пароли в БД.

Чаще всего сам пароль в БД не хранится, а хранится его хеш (слепок), и при логине сравниваются только хеши. Если утянут БД - самих паролей там не будет. (мне такой вариант не подходит - нужен обратимый процесс).

Чем лучше сейчас именно защифровать пароли, чтобы ключом (к примеру из скрипта) их можно было бы разшифровать в первоначальный вид?
__________________
Возьми домой раненую осу и ты узнаешь, чем платит доброта
KYO вне форума  
Старый 02.08.2011, 16:31   #2
Armen
я его не украл а нашёл(с)
 
Регистрация: 23.06.2011
Сообщений: 229
Бабло: $40235
По умолчанию

http://habrahabr.ru/blogs/php/61309/
Armen вне форума  
Старый 03.08.2011, 02:19   #4
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

хеширование паролей - это не шифрование, отсюда плюсы:
1) алгоритм хеширования обычно более быстрый и простой, возможно О(1)
2) необратимость хеша - из него нельзя вынуть пароль никак, только если найти по базе хешей и то, если знаешь конкретную хеш-функцию
поэтому использовать хеширование в скриптах относительно безопасно.
Если же применить симметричное шифрование пароля, то для функционирования скрипта, скрипт должен знать ключ, с помощью которого он шифрует данные. Тем самым безопасность хранения данных(паролей) падает до уровня безопасности всей системы, а именно защиты доступа к скрипту из вне.
Грубо говоря шифровать пользовательские пароли с помощью ключика - это плохая идея с точки зрения безопасности.

А симметричных методов полно, в том числе и встроенных в php.
Самый известный и быстрый наверно blowfish
http://www.php.net/manual/en/book.mcrypt.php
http://www.php.net/manual/en/mcrypt.ciphers.php
http://www.php.net/manual/en/refs.crypto.php

про шифрование мускулом линк дали выше

если есть возможность, то лучше оставить хеширование и использовать его для проверки паролей пользователей и добавить симметричное шифрование по ключу, но этот ключ НЕ хранить в скрипте и использовать его извне, например,чтобы админ его каждый раз вводил
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 03.08.2011, 03:27   #5
rushter
Senior Member
 
Регистрация: 28.11.2009
Сообщений: 1,800
Бабло: $299365
По умолчанию

Зачем тебе обратимое шифрование ? Смысл его ?
Чтобы потом самому пароли на досуге почитать ?
Храни в plaintext тогда.
rushter вне форума  
Старый 03.08.2011, 18:33   #6
tobari
Senior Member
 
Регистрация: 03.09.2010
Сообщений: 827
Бабло: $99806
По умолчанию

по поводу секурности такого шифрования. сам таким не извращался, чисто в теории...
можно написать маленькую прожку с функцией шифрования/расшифровки.
например, закинуть в /usr/bin, выставить права только на выполнение.
на функцию расшифровки поставить пароль, или разрешить ее юзать только некоторым юзерам системы.
если порутают сервак/получат права юзеров, которые могут юзать фукнцию расшифровки - прощай бд
tobari вне форума  
Старый 03.08.2011, 19:25   #7
imgreen
Senior Member
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 13,228
Бабло: $247845621
По умолчанию

Цитата:
Сообщение от chesser Посмотреть сообщение
хеширование паролей - это не шифрование, отсюда плюсы:
1) алгоритм хеширования обычно более быстрый и простой, возможно О(1)
2) необратимость хеша - из него нельзя вынуть пароль никак, только если найти по базе хешей и то, если знаешь конкретную хеш-функцию
поэтому использовать хеширование в скриптах относительно безопасно.
Если же применить симметричное шифрование пароля, то для функционирования скрипта, скрипт должен знать ключ, с помощью которого он шифрует данные. Тем самым безопасность хранения данных(паролей) падает до уровня безопасности всей системы, а именно защиты доступа к скрипту из вне.
Грубо говоря шифровать пользовательские пароли с помощью ключика - это плохая идея с точки зрения безопасности.

А симметричных методов полно, в том числе и встроенных в php.
Самый известный и быстрый наверно blowfish
http://www.php.net/manual/en/book.mcrypt.php
http://www.php.net/manual/en/mcrypt.ciphers.php
http://www.php.net/manual/en/refs.crypto.php

про шифрование мускулом линк дали выше

если есть возможность, то лучше оставить хеширование и использовать его для проверки паролей пользователей и добавить симметричное шифрование по ключу, но этот ключ НЕ хранить в скрипте и использовать его извне, например,чтобы админ его каждый раз вводил
Цитата:
Сообщение от rushter Посмотреть сообщение
Зачем тебе обратимое шифрование ? Смысл его ?
Чтобы потом самому пароли на досуге почитать ?
Храни в plaintext тогда.
он же по-русски написал, ему хеширование не подходит, нужен обратимый процесс

Цитата:
Храни в plaintext тогда.
с шифрованием таки более безопасно будет их хранить
imgreen вне форума  
Старый 03.08.2011, 19:56   #8
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 687
Бабло: $152005
По умолчанию

На главном сервере получаешь логин и пароль(при регистрации например), отсылаешь на другой сервер, там на основе логина пароля и случайной строки которая генерируется и храниться на втором сервере. Генерируется шифрованный пароль, который отсылается в основную бд.

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

При логине первый сервер запрашивает информация со второго.
aoki вне форума