Как стать автором
Обновить
0
0

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

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

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

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


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

Как выучить любой язык за 3 месяца?

Время на прочтение6 мин
Количество просмотров99K
Перевод статьи Тима Ферриса из его блога.

image

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

Изучение языка не должно быть сложным.

Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

Время прочтения: 15 минут
Всего голосов 207: ↑186 и ↓21+165
Комментарии134

Windows-компьютер без антивирусов

Время на прочтение6 мин
Количество просмотров63K
Предупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.

Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.

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

Теория


Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.

Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.

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

В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.

Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».

Модель безопасности


Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:

1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
Читать дальше →
Всего голосов 139: ↑109 и ↓30+79
Комментарии133

Исследование простого crackme

Время на прочтение3 мин
Количество просмотров23K
Здравствуйте Хабралюди. В этом топике я расскажу как я исследовал простой crackme. Этот крякмис предназначен, в первую очередь, для новичков, желающих попрактиковаться в реверсинге. Я планирую продолжать цикл статей этой тематики, двигаясь постепенно от простого к сложному.
Читать дальше →
Всего голосов 155: ↑130 и ↓25+105
Комментарии57

Кеширование блоков с помощью nginx

Время на прочтение6 мин
Количество просмотров15K
nginx + SSIМногим разработчикам знакома ситуация когда кешировать страницы сайта, скажем, на 5-10 минут нельзя всего из-за одного небольшого блочка, актуальность которого нужно поддерживать если не в реальном времени, то с временем «старения» не больше 5-10 секунд. При этом посещаемость сайта продолжает расти, растет время генерации страниц и c этим надо что-то делать…
  • Вариант решения 1: Подкрутить то, до чего не доходили руки последнее полгода. Все Вас поймут и передвинут сроки на другие задачи. Вы будете в роли «Супермена» один спасать сайт от непомерной нагрузки, решая проблему «бесплатно» (без доп. вливаний в оборудование). Вам может пригодиться статья «Тюнинг nginx».
     
  • Вариант решения 2: Улучшить техническую базу (докупить мозгов на сервер, улучшить дисковую систему, поставить под БД отдельный сервер). В принципе проблема не решена, а скорее отложена. Теперь у Вас есть время «окопаться» и подготовиться ко второй волне наплыва нагрузки, она будет больше и накроет сильнее.
     
  • Вариант решения 3: Ваш вариант, о котором я, вероятно, узнаю из комментариев.
     
Позвольте предложить и мне проверенное и относительно простое решение на базе одной из старейших технологий в Web-разработке.
Читать дальше →
Всего голосов 116: ↑107 и ↓9+98
Комментарии63

Как прокачивать мозг

Время на прочтение8 мин
Количество просмотров174K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

Не правда ли, картинка объемна?

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.

Но обо всем по порядку.

Понимание роли мозга


Нет невежества страшнее, чем невежество по отношению к самому себе.

Мозг управляет почти всем в нашем организме — от дыхания, работы органов чувств до сложных мыслительных процессов и воображения. Существует множество методик и советов по развитию, однако, как я убедился, мало какие делают упор на роль мозга в процессе.
Читать дальше →
Всего голосов 340: ↑281 и ↓59+222
Комментарии229

Причины, по которым 64-битные программы требуют больше стековой памяти

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

В форумах люди часто упоминают, что 64-битные версии программ поглощают больший объем памяти и стека. При этом обычно ссылаются на то, что размеры данных стали в 2 раза больше. Однако это необоснованное утверждение, так как размер большинства типов (char, short, int, float) в языке Си/Си++ остался прежним на 64-битных системах. Конечно, например, увеличился размер указателей, но ведь не все данные в программе состоят из указателей. Причины роста потребляемой памяти и стека более сложны. Я решил подробнее исследовать данный вопрос.

В данной заметке я поговорю о стеке, а в будущем планирую обсудить выделение памяти и размер двоичного кода. И еще хочу сразу заметить, что статья посвящена языку Си/Си++ и среде разработки Visual Studio.

Различия в использовании стека Win32 и Win64 приложениями
Всего голосов 85: ↑81 и ↓4+77
Комментарии31

Алгоритмы поиска старшего бита

Время на прочтение3 мин
Количество просмотров39K
Здесь я хочу рассказать и обсудить несколько алгоритмов для нахождения старшего единичного бита числа.

На всякий случай, поясню: старшим битом называется единичный бит числа, отвечающий за самую большую степень двойки. Иными словами, это самая большая степень двойки, не превосходящая числа. Чтобы избежать многих случаев, будем здесь считать, что мы имеем дело с натуральным числом в пределах от 1 до 2^31 — 1 включительно. Кроме того, чтобы не слишком углубляться в теорию вероятности, будем считать, что число, в котором требуется определить старший бит, с одинаковой вероятностью будет любым из возможных чисел.

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

int bit1(int x) {
   int t = 1 << 30;
   while (x < t) t >>= 1;
   return t;
}


Читать дальше →
Всего голосов 73: ↑55 и ↓18+37
Комментарии101

Правильное приготовление и работа с ZFS под FreeBSD

Время на прочтение15 мин
Количество просмотров46K
Некоторое время назад возникла задача построения достаточно вместительного массива для хранения оперативных инкрементальных бекапов. Причём тратить деньги особо не хотелось, а место было нужно. Решение было простым и достаточно удобным. Далее много текста.

Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии45

Фонарик из 500 светодиодов

Время на прочтение1 мин
Количество просмотров502

Собираетесь отдохнуть вечерком на природе? Вот такой hand-made фонарик попался мне на просторах сети. Полная мощность такого фонарика составляет 50 Ватт, интересно что же там за аккумуляторы стоят.
Не знаю как вы — я бы от такой игрушки не отказался, правда пока не очень для себя нашел ей применение, разве что к велосипеду прикрутить, и вечером выехать на загородную прогулку, чтобы попугать автолюбителей своим мощным дальним светом.
Всего голосов 71: ↑58 и ↓13+45
Комментарии96

Бэкдор в active directory своими руками

Время на прочтение3 мин
Количество просмотров18K
Итак, мы все знаем про подлых пользователей c UID=0 в unix, которых может быть больше одного.

Посмотрим, как такое же (а на самом деле, даже более страшное) организовывается в инфраструктуре Windows. Разумеется, мы говорить будем не про локальные виндовые учётные записи, а про Active Directory, т.е. говорить будем об администраторе домена. Или, даже, хуже, об enterprise administrator.

Итак, истина номер один: у объектов в active directory есть атрибуты и права доступа.
Истина номер два: эти атрибуты можно менять.

Как легко понять, мы МОЖЕМ сделать учётную запись с фантастическими правами, к которой не будет доступа НИ У КОГО. Однако, он сможет логиниться, блокировать, разблокировать, менять свои атрибуты и атрибуты чужих людей.

В самом страшном случае, это будет пользователь с волшебным SID-*500, которого не позволяет удалить уже сама винда. (Для этого нужно переименовать, а на его место положить другого пользователя с ником Administrator и с полными правами).
Читать дальше →
Всего голосов 118: ↑100 и ↓18+82
Комментарии69

Обзор сервисов хранения GPS треков

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

Решил я найти для себя сервис, позволяющий хранить GPS треки путешествий и прогулок, просто рисовать на карте маршруты будущих поездок и делиться ими с друзьями. Из требований — привязка фото к маршруту, различная статистика по поездке, возможность рисовать маршруты в браузере. Обязательно — загрузка треков в формате GPX или NMEA, приятным бонусом было бы наличие приложения для iPhone.
Перебрав достаточно много подобных сервисов — решил выделить три (хорошее число, да) наиболее интересных и многофункциональных, обзор этих сервисов я и хочу представить вашему вниманию.

Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии69

Хакинг и модинг ASUS WL500G Premium

Время на прочтение3 мин
Количество просмотров65K
Вот появилось время, и сделал давно задуманное. Надо ли говорить, что данный роутер просто легендарный и в интернетах сложились большие сообщества любителей этой железки. В данной доработке мне очень помогла Паяльная станция Lukey702.

image
Читать дальше →
Всего голосов 170: ↑166 и ↓4+162
Комментарии177

Ремонт блоков питания от роутеров и другой техники Asus и D-Link за 10 минут

Время на прочтение2 мин
Количество просмотров171K
Написать этот пост я решил, после прочтения многочисленных комментариев о том, что многим пришлось поменять роутер, так как он стал мигать всеми лампочками подряд, перестал загружаться и прошиваться! Упорно используя «Поиск», описания этой проблемы, к моему великому удивлению, я не нашел на Хабре. Хотя проблема известна давно и описана в Рунете. Бывает такое, по закону подлости, на следующий день как закончится гарантия. А обычно через 1.5-2.5 года эксплуатации. Всему виной, в 90% случаев, лишь блок питания (далее по тексту — БП). В сервисных центрах в ремонте отказывают, т.к. гарантия закончилась или впаривают новый БП по цене от 700 до 1200 рублей. Данная проблема случается в 3 роутерах из 10, оборудованных этими источниками питания. Обычно БП производят сторонние фирмы, а все «восторженные» отзывы пользователей о надежности оборудования, достаются именно D-Link и Asus! Стоимость деталей для ремонта — 10 рублей!
Итак, начнем!

image
Читать дальше →
Всего голосов 132: ↑126 и ↓6+120
Комментарии137

Time-memory trade off и нерадужные таблицы

Время на прочтение5 мин
Количество просмотров20K
Нет, я не буду рассказывать с какими параметрами нужно генерировать радужные таблицы, или как придумывать «стойкие» пароли. Сама по себе тематика немного устарела и едва ли поможет в отвлеченных вопросах. Но, как оказалось, в основу «радужных таблиц» положен замечательный способ (я бы не стал называть его методом или алгоритмом) размена времени на память, то бишь «time-memory trade off». Это не первый (и, наверное, не последний) топик про предвычисления, но, надеюсь, он Вам понравится.
Приступим...
Всего голосов 41: ↑37 и ↓4+33
Комментарии33

Структуры данных: бинарные деревья. Часть 1

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

Интро



Этой статьей я начинаю цикл статей об известных и не очень структурах данных а так же их применении на практике.

В своих статьях я буду приводить примеры кода сразу на двух языках: на Java и на Haskell. Благодаря этому можно будет сравнить императивный и функциональный стили программирования и увидить плюсы и минусы того и другого.

Начать я решил с бинарных деревьев поиска, так как это достаточно базовая, но в то же время интересная штука, у которой к тому же существует большое количество модификаций и вариаций, а так же применений на практике.
Читать дальше →
Всего голосов 110: ↑101 и ↓9+92
Комментарии53

Структуры данных: бинарные деревья. Часть 2: обзор сбалансированных деревьев

Время на прочтение6 мин
Количество просмотров244K
Первая статья цикла

Интро


Во второй статье я приведу обзор характеристик различных сбалансированных деревьев. Под характеристикой я подразумеваю основной принцип работы (без описания реализации операций), скорость работы и дополнительный расход памяти по сравнению с несбаланчированным деревом, различные интересные факты, а так же ссылки на дополнительные материалы.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии28

Vuurmuur — боевые коты на страже вашей сети

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

Vuurmuur — за таким «кошачьим» именем скрывается довольно мощная GUI надстройка для iptables. Основным отличием от других iptables-надстроек является наличие консольного интерфейса написанного на Ncurses. Поэтому администрирование всё также легко возможно посредством SSH или консоли. Vuurmuur умеет работать с шейпингом, поддерживает функции мониторинга трафика, ведёт отдельные логи, прекрасно работает как на 2.4 так и на 2.6 ядрах и даже «говорит» на русском.

Буквы, картинки, мультики...
Всего голосов 120: ↑107 и ↓13+94
Комментарии73

Test Infected

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

Все, все будут писать тесты


Уже 3 года прошло, с тех пор как я увидел свою первую красную полоску. Что меня дернуло начать писать тесты, уже не важно. Я начал собирать информацию, перечитал весь wiki.agiledev.ru и торжественно запустил свой первый тест на SimpleTest. Конечно, эти тесты были ужасны, да и архитектура тоже (в моем сегодняшнем понимании). Тогда я, наверное, словил большинство ошибок, но зато замечательно провел время :)

Потом перешел на PHPUnit — просто было интересно, чем он отличается от SimpleTest и что в нем такого «навороченного».
А lime — гадость. Чего ребята из Symfony в него так вцепились? Понимаю ветка 1.*, наследие и все такое. Но 2.0 можно было бы и на PHPUnit начинать.
Да, мне это было интересно. Я активно писал тесты, даже честно пытался делать это перед тем, как писать код. Что-то не получалось, читал разные статьи на тему, как надо и не надо писать тесты, перечитывал wiki.agiledev.ru. Но внутри явно чего-то не хватало.
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Комментарии40

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность