Как стать автором
Обновить
0
@Shadistread⁠-⁠only

Пользователь

Отправить сообщение

Slur — децентрализованная сеть продажи секретной информации за биткоины

Время на прочтение3 мин
Количество просмотров11K
Перевод вводной страницы проекта, который показался мне неожиданным, интересным, и где-то даже пугающим. Группа разработчиков, называющие себя u99, предлагают общественности поддержать их проект пожертвованиями или же собственным временем разработчика.

Slur – проект системы с открытым исходным кодом для децентрализованной анонимной продажи секретной информации за биткоины. Slur написан на C и работает поверх сети Tor. Транзакции биткоинов осуществляются при помощи libbitcoin. Покупатели и продавцы полностью анонимны, и не накладывается никаких ограничений на выставляемые на продажу данные. За исключением случаев, когда начинается диспут и за его разрешение платится определённая сумма, процент со сделок не взимается.
OMG
Всего голосов 23: ↑21 и ↓2+19
Комментарии14

6 секретов Bitbucket

Время на прочтение4 мин
Количество просмотров90K
Один из принципов дизайна в Atlassian — лаконичность. В ходе эволюции UX некоторые непопулярные действия, расчитанные на опытных пользователей, были спрятаны в выпадающих списках или за горячими клавишами. Там они ждут предприимчивого пользователя, который случайно наткнётся на них благодаря случайному нажатию клавиш или клику мышки (ну, или заглянет в руководство). Вот шесть моих любимых трюков Bitbucket Cloud, о которых вы, возможно, никогда не слышали:

Омнибар


Омнибар в Bitbucket — это строка быстрого доступа к действиям, похожая на ⇧⇧ в средах разработки JetBrains или ⌘+P в Sublime Text. Запустить омнибар можно на любой странице, нажав клавишу точки.

По умолчанию, он покажет набор действий, соответствующих текущему контексту:
Omnibar
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии19

Криптостойкость 1000-кратного хеширования пароля

Время на прочтение5 мин
Количество просмотров26K


Поднявшаяся в этом топике дискуссия о криптостойкости многократного применения хеша над паролем (проскальзывавшая, кстати, и в других форумах), подтолкнула меня к этому немного математическому топику. Суть проблемы возникает из идеи многократной (1.000 и более раз) обработки пароля перед хранением каким-либо криптостойким алгоритмом (чаще всего хеш-функцией) с целью получить медленный алгоритм проверки, тем самым эффективно противостоящий brute force-у в случае перехвата или кражи злоумышленником этого значения. Как совершенно верно отметили хабрапользователи Scratch (автор первой статьи), mrThe и IlyaPodkopaev, идея не нова и ею пользуются разработчики оборудования Cisco, архиватора RAR и многие другие. Но, поскольку хеширование – операция сжимающая множество значений, возникает вполне закономерный вопрос – а не навредим ли мы стойкости системы? Попытка дать ответ на этот вопрос –
далее ...
Всего голосов 332: ↑328 и ↓4+324
Комментарии103

Замедление хеширования паролей. Зачем?

Время на прочтение7 мин
Количество просмотров15K
Доброго времени суток, хабрапараноик! Сегодня мы поговорим о немного необычном способе повышения безопасности, а именно замедлении хеширования паролей. Казалось бы, когда всё вокруг стараются оптимизировать, зачем что то замедлять?
Хотя бы затем, что даже в самой супер-пупер защищенной системе самым слабым звеном остается человек. А именно, его пароль.

Вы пытались когда нибудь взломать зашифрованный rar архив? И сколько паролей в секунду оно перебирало? 50-100-200? Даже на хорошем GPU, при использовании небезызвестного cRARk, скорость перебора всего около 2400 вариантов/сек. И это-то по сравнению с десятками (сотнями) миллионов паролей/сек для zip/md5/SHA1.

Под катом моя вольная интерпретация этого процесса.
Читать дальше →
Всего голосов 91: ↑79 и ↓12+67
Комментарии107

Немного о хэшах и безопасном хранении паролей

Время на прочтение4 мин
Количество просмотров70K
Upd. Если вы знаете, что такое BCrypt, можете дальше не читать. Если вы используете PHP 5.5+ то можете прочитать эту статью. Ниже же я изобрел свой велосипед, рабочий, но с двумя рулями, задний запасной. Молод был, горяч.

Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:

  • Хранить пароли в БД в открытом виде.
  • Использовать обычные хэши crc32, md5, sha1
  • Использовать функцию crypt()
  • Использовать статическую «соль», конструкции вида md5(md5($pass))
  • Использовать уникальную «соль» для каждого пользователя.

Читать дальше →
Всего голосов 71: ↑57 и ↓14+43
Комментарии100

SQL или NoSQL — вот в чём вопрос

Время на прочтение8 мин
Количество просмотров227K
Все мы знаем, что в мире технологий баз данных существует два основных направления: SQL и NoSQL, реляционные и нереляционные базы данных. Различия между ними заключаются в том, как они спроектированы, какие типы данных поддерживают, как хранят информацию.

Реляционные БД хранят структурированные данные, которые обычно представляют объекты реального мира. Скажем, это могут быть сведения о человеке, или о содержимом корзины для товаров в магазине, сгруппированные в таблицах, формат которых задан на этапе проектирования хранилища.

Нереляционные БД устроены иначе. Например, документо-ориентированные базы хранят информацию в виде иерархических структур данных. Речь может идти об объектах с произвольным набором атрибутов. То, что в реляционной БД будет разбито на несколько взаимосвязанных таблиц, в нереляционной может храниться в виде целостной сущности.

Внутреннее устройство различных систем управления базами данных влияет на особенности работы с ними. Например, нереляционные базы лучше поддаются масштабированию.



Какую технологию выбрать? Ответ на этот вопрос зависит от особенностей проекта, о котором идёт речь.
Читать дальше →
Всего голосов 34: ↑21 и ↓13+8
Комментарии23

Балансировка 70 тысяч запросов в секунду на HighLoad++

Время на прочтение5 мин
Количество просмотров39K

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии11

Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность

Время на прочтение15 мин
Количество просмотров34K
image

Дмитрий Калугин-Балашов (Mail.RU)


Доклад у меня по базам данных In-Memory NoSQL. Кто знает, что такое In-Memory NoSQL база данных? Поднимите руки, пожалуйста… Как вам не стыдно? Зал по базам данных, и только половина знает, что это такое.

Если вы выбираете базу данных, ориентируясь на ее популярность, то так делать не надо. Как, вообще, выбираем базы данных?


Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии27

Как работает поиск в Kad Network

Время на прочтение3 мин
Количество просмотров11K
Довольно часто встречаются жалобы на то, что в Mainline DHT битторрента нет поиска по ключевым словам. Обычно просьбы о добавлении такого поиска на форумах BitTorrent Inc. игнорируются или получают традиционный ответ о том, что DHT не позволяет искать по ключевым словам, а только по индивидуальным ключам. Это в принципе верно, но существует такой выход из этой прискорбной ситуации как создание инвертированного индекса ключевых слов у каждой ноды.

Собственно так и работает поиск в Kad Network, реализации распределённой хэш-таблицы, основанной на довольно широко используемом протоколе Kademlia. Kad Network используется такими программами как eMule, iMule, aMule и MLDonkey для поиска хэшей файлов по ключевым словам и источников файлов по их хэшам.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

Пишем свой мессенджер P2P

Время на прочтение7 мин
Количество просмотров81K

На фоне обсуждения будущего интернет мессенджеров и прочтения статьи «Почему ваш любимый мессенджер должен умереть», решил поделиться своим опытом создания P2P приложения для общения независимо от сторонних серверов. Точнее — это просто заготовка, передающая одно сообщение от клиента серверу, дальнейшее расширение функционала зависит только от Вашей фантазии.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии46

Что будет в Rancher 2.0 и почему он переходит на Kubernetes?

Время на прочтение6 мин
Количество просмотров20K


Неделю назад разработчики Rancher представили предварительный релиз своей будущей крупной версии — 2.0, — попутно объявив о переходе на Kubernetes в качестве единой основы для оркестровки контейнеров. Что побудило разработчиков пойти таким путём?
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

GDPR — новые правила обработки персональных данных в Европе для международного IT-рынка

Время на прочтение9 мин
Количество просмотров343K
image

В мае 2018 года Европа переключится на обновлённые правила обработки персональных данных, установленные Общим регламентом по защите данных (Регламент ЕС 2016/679 от 27 апреля 2016 г. или GDPR — General Data Protection Regulation). Данный регламент, имеющий прямое действие во всех 28 странах ЕС, заменит рамочную Директиву о защите персональных данных 95/46/ЕС от 24 октября 1995 года. Важным нюансом GDPR является экстерриториальный принцип действия новых европейских правил обработки персональных данных, поэтому российским компаниям следует внимательно отнестись к ним, если услуги ориентированы на европейский или международный рынок.


Новый регламент предоставляет резидентам ЕС инструменты для полного контроля над своими персональными данными. С мая 2018 года ужесточается ответственность за нарушение правил обработки персональных данных: по GDPR штрафы достигают 20 миллионов евро (около 1,5 млрд руб.) или 4% годового глобального дохода компании. В настоящей статье мы проанализировали новые правила обработки персональных данных в ЕС и сформулировали рекомендации для российских компаний по методам реагирования на GDPR.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии76

OAuth: описание протокола простым и понятным языком

Время на прочтение16 мин
Количество просмотров190K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами
Всего голосов 134: ↑124 и ↓10+114
Комментарии34

Архитектура сетевого ядра в iOS-приложении на Swift 3. Часть 1

Время на прочтение10 мин
Количество просмотров16K

Сетевое ядро как часть приложения


Для начала немного поясню, о чем пойдет речь в данной статье. Сейчас большинство мобильных приложений, на мой взгляд, являются клиент-серверными. Это означает, что они содержат в составе кода сетевое ядро, отвечающее за пересылку запросов и получение ответов от сервера. Причем речь вовсе не о сетевых библиотеках, которые берут на себя ответственность по «низкоуровневому» управлению запросами вроде пересылки REST-запросов, построения multipart-тела, работы с сокетами, веб-сокетами, и так далее. Речь идет о дополнительной обвязке, которая позволяет управлять запросами, ответами и данными состояния, характерными конкретно для вашего сервера. Именно в вариантах реализации этой обвязки и заключены основные проблемы сетевого уровня во многих мобильных проектах, с которыми мне приходилось работать.

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

Подробности под катом.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии32

Безопасность данных в разработке мобильных приложений

Время на прочтение13 мин
Количество просмотров36K

Вступление


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

Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии31

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность