[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шифрование принятых данных
Страницы: 1, 2, 3, 4
vagrand
Я вам уже привел как минимум 2-е серьезные причины шифрования.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
twin
Я имел ввиду не социальную инженерию, а социальную составляющую. Ведь к серверу имеет доступ достаточно большой круг лиц. И где гарантия, что база не будет тупо украдена одним из сотрудников. Я же не зря привел пример со Сноуденом.

Так что как не защищай сервер, а открытые данные - потенциальная уязвимость.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
AlmazDelDiablo
Разрешите вставить свои пять копеек?

Если уж говорить о том, что сайт крутится на каком-нибудь хостинге, то нельзя забывать, что админы этого хостинга имеют root-доступ к твоему сайту. Соответственно, если у тебя все пароли хранятся в открытом виде, то, во-первых, даже просто попросить помочь с администрированием уже стрёмно, во-вторых, они могут слить пароли твоих клиентов. Конечно, можно сейчас просто заявить: «не, ну это же не вина программиста — это в хостинге работают какие-то уроды». Но, простите, в то же время, задача любого программиста, снизить уровень рисков для компании, при разработке продукта. А оставления открытых паролей (кстати, статическая соль и самопридуманные алгоритмы шифромания защитой не являются) — это создание рисков.

Так что, не пытайтесь опровергнуть то, что проверено уже многими годами. Необратимо шифруйте пароли в БД с использованием динамической соли.

_____________
Блог | VK | GitHub | Twitch
McLotos
Цитата (AlmazDelDiablo @ 7.09.2014 - 14:16)
Необратимо шифруйте пароли в БД с использованием динамической соли.

Да, я как раз сейчас прорабатываю алгоритм создания уникальной соли для каждого посетителя

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
killer8080
Цитата (McLotos @ 7.09.2014 - 12:55)
Да, я как раз сейчас прорабатываю алгоритм создания уникальной соли для каждого посетителя

чем стандартный crypt() не устраивает?
McLotos
Один из параметров безопасности это криптостойкость алгоритма. Идея в том что имея любое количество зашифрованных и расшифрованных строк невозможно просчитать алгоритм. Функция crypt так же как и функция md5() использую хэширование. Так как хэширование это не шифрование, то вопрос немного в другом =)
Хэширование подразумевает получение хэша строки.
Из хэша невозможно получить первоначальную строку, но можно сгенерировать другую строку с таким же хэшем.
Вообще первоначально топик создавался для того чтобы понять есть ли какой-то безопасный способ передачи информации от сервера к клиенту так чтобы в случае перехвата информацию нельзя было просчитать. Т..е. это должен быть именно шифр, а не хэш. =)

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
Допустим что вся информация в базе зашифрована стандартным алгоритмом, предположим это какой-то ассиметричный метод шифрования, допустим RSA, при вытягивании информации из базы сервер должен её расшифровать используя пару ключей. При передачи информации клиенту сервер должен тоже зашифровать эту информацию ассиметричным способом но уже с использованием новой пары ключей. информация о новых парах передается клиенту в виде алгоритма на основе которого клиент тоже создаёт себе новую пару ключей. Я не зря приводил ссылку на виде про алгоритм Хэллмана. Есть идея шифровать передачу данных похожим способом. Каждому клиенту генерируется его персональный ключ, специально для него сервер создаёт ответный ключ и все шифрования/расшифровки проходят с использованием только что сгенерированной пары ключей.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
killer8080
Цитата (McLotos @ 8.09.2014 - 12:34)
Хэширование подразумевает получение хэша строки.

для хранения паролей это наилучший вариант, шифрование там нафиг не нужно
Цитата (McLotos @ 8.09.2014 - 12:34)
Из хэша невозможно получить первоначальную строку, но можно сгенерировать другую строку с таким же хэшем.

брутфорс требует очень много времени, и ресурсов. В случае слива базы,это достаточно надежно защищает от массового взлома акков.
Цитата (McLotos @ 8.09.2014 - 12:34)
Вообще первоначально топик создавался для того чтобы понять есть ли какой-то безопасный способ передачи информации от сервера к клиенту так чтобы в случае перехвата информацию нельзя было просчитать. Т..е. это должен быть именно шифр, а не хэш. =)

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



Спустя 2 минуты, 23 секунды killer8080 написал(а):
Цитата (McLotos @ 8.09.2014 - 12:47)
информация о новых парах передается клиенту в виде алгоритма на основе которого клиент тоже создаёт себе новую пару ключей.

которая так же может быть перехвачена
McLotos
Цитата (killer8080 @ 8.09.2014 - 14:49)
это наилучший вариант

если его можно взломать то это не лучший вариант. Хотя... нет защиты которую нельзя обойти.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
Цитата (killer8080 @ 8.09.2014 - 14:49)
которая так же может быть перехвачена

как можно перехватить то что сгенерировано JS и используется только этим пользователем для расшифровки сообщений сервера?
JS генерирует себе ключ и при получении информации от сервера использует именно этот ключ, сам ключа серверу не передаётся.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
killer8080
Цитата (McLotos @ 8.09.2014 - 12:55)
если его можно взломать то это не лучший вариант. Хотя... нет защиты которую нельзя обойти.

если украдена база на несколько тысяч юзеров, взломать всех физически невозможно (пока), при отсутсвии доступа к суперкомпьютеру, или гигантскому ботнету на взлом одного криптостойкого пароля могут уйти годы. Такой взлом должен быть оправдан чем то весомым. Ты же предлагаешь выложить все на блюдечке с голубой каемочкой.
killer8080
Цитата (McLotos @ 8.09.2014 - 12:59)
как можно перехватить то что сгенерировано JS и используется только этим пользователем для расшифровки сообщений сервера?

ну раз речь идет о шифровании канала, значит подразумевается что такая возможность есть, иначе зачем все это? wink.gif
Цитата (McLotos @ 8.09.2014 - 12:59)
JS генерирует себе ключ и при получении информации от сервера использует именно этот ключ, сам ключа серверу не передаётся.

а хранить он его где будет?
McLotos
Цитата (killer8080 @ 8.09.2014 - 15:03)
если украдена база на несколько тысяч юзеров, взломать всех физически невозможно

Если конечно у тебя уже нет заранее сгенерированных паролей, в таком случае тебе останется только сверить свой список со списком паролей в базе, хоть 1 но подойдёт.
А где подошёл 1 там и...
Т.е. вся идея md5+salt в том что никто не знает содержимое salt.
Потому-что узнав эту строку можно создать множество паролей которые в комбинации с salt дадут нужный хэн.
Я об этом и говорю, почему бы не сделать salt динамической. Это же возможно.
И JS ключ не будет нигде храниться, он же сеансовый, он действителен только пока пользователь онлайн, потому-что когда пользователь откроет страницу ещё раз ему будет выдан новый ключ и он в ответ сгенерирует себе новый ответный ключ

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
killer8080
Цитата (McLotos @ 8.09.2014 - 13:08)
Я об этом и говорю, почему бы не сделать salt динамической. Это же возможно.

ну так crypt() этим и занимается, загляни в мануал
http://ua2.php.net/manual/ru/function.crypt.php
McLotos
Я читал это =)

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.