• «Криптосистемы-протоколы»: Диффи—Хеллмана, Эль-Гамаля, MTI/A(0), STS

      Предисловие
      Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам. Предыдущие разделы главы «Криптографически протоколы»: 1, 2, 3

      Как и создатели трёхпроходных протоколов из предыдущего раздела, авторы следующих алгоритмов считали их не просто математическими конструкциями, обеспечивающие некоторую элементарную операцию (например, шифрование с открытым ключом), но пытались вокруг одной-двух формул построить законченную систему распространения ключей. Некоторые из этих конструкций, преобразовавшись, используются до настоящего времени (например, протокол Диффи-Хеллмана), некоторые — остались только в истории криптографии и защиты информации.

      Позже в 1990-х годах будут разделены математические асимметричные примитивы (шифрование и электронная подпись) и протоколы, эти примитивы использующие, что будет продемонстрировано в разделе про асимметричные протоколы.
      Читать дальше →
      • +18
      • 6,1k
      • 1
    • Просто деление, или как создать математическую теорию и заработать на этом 400К$

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

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

      image
      Читать дальше →
    • Люди на Луне. Источники



        50 лет назад впервые человек шагнул в лунный реголит. Это стало результатом фантастического прогресса науки и техники, космической гонки, политического противостояния двух стран: США и СССР. Полет человека на Луну стал настолько невероятным событием, что сегодня немало людей отрицает сам факт такого полета. К счастью, благодаря интернету мы имеем доступ к огромному объему материалов и научных данных, которые открывают возможность самостоятельно выяснить подробности этой сложнейшей программы.
        Читать дальше →
      • Подборка академических и науч-поп источников

          Академическое знание давно уже обитает в интернете, и как и любая информация, индексируется поисковыми машинами и базами данных. Я говорю о более широкой категории знаний, чем STEM (Science Technology Engineering and Mathematics), основным критерием академических источников является их рецензирование (например, скопусовский журнал Modern Theology является рецензируемым источником, хотя не все согласятся назвать его научным, а вот академическим, пожалуйста). Однако, насколько обычный пользователь интернета представляет себе этот сектор Сети, знает где, что, и как искать, умеет различать надежность различных академических источников, имеет доступ к этим источникам, а также понимает всю сложность и объем академического знания? Мне не встречалось каких-либо обзоров на русском языке, в котором была бы представлена информация, рамочно характеризующая условный «Scholarnet», дающая общее представление, справку, прочтя которую, можно было эффективно академическим знанием пользоваться. Я решил составить обзор источников академической информации, и источников, вторичных к ним (пресс-релизы научных новостей и науч-поп). Сразу оговорюсь, обзор произволен, и не выведен из какой-то точной методологии, но это лучше чем его отсутствие. Описав при этом разные потоки данных, с которыми может взаимодействовать самые разные люди: от самих исследователей до, как принято говорить в аннотациях книг, «широкого круга читателей» (в т.ч. википедистов, журналистов, участников интернет-споров, и т.д.). Также прошу заранее извинить за огрехи оформления, по мере возможности постараюсь исправить то, на что укажет читатель (желательно в ЛС).
          Читать дальше →
        • Обход дерева в несколько потоков

          Всем привет, хочу поделиться с общественностью некоторым объемом информации, который как мне показалось трудно найти в интернете.

          Что такое дерево, смотрим Википедию.


          Рис.1 Пример дерева.
          Читать дальше →
        • BGP hijacking с помощью добавления AS жертвы в AS-SET атакующего

            Статья поделена на три части части. В первой содержится общая информация о том что такое BGP hijacking и его традиционный вариант. Для тех кто знаком с этим явлением, рекомендуется перейти сразу ко второй части. Во второй части будет описан метод анонсирования чужих префиксов с помощью добавления чужой AS в свой AS-SET. В третьей части, будет сделана оценка сложности использования метода, описанного во второй части, для захвата IP-адреса ресурса torproject.org и выписки сертификата для него. Предполагается, что читатель знаком с принципами работы BGPv4.

            Простой BGP hijacking


            Если в двух словах, то BGP hijacking это захват чужих IP-адресов (случайный или преднамеренный).

            Обычно, BGP hijacking выглядит таким образом: AS, которой не принадлежит какой-то префикс начинает его (чужой префикс) анонсировать, аплинки/пиры его принимают, и он начинает распространяться по Интернет. Принимают они его по той причине, что нет фильтрации префиксов на стыке (либо это ошибка конфигурации, либо так задумано (т.к. построить префикс-фильтр на стыке с очень крупными операторами очень сложно ввиду различных причин, для этой статьи это не важно)). Один из самых громких примеров недавнего времени, когда Ростелеком (AS12389) начал анонсировать префиксы Mastercard (AS26380), Visa и некоторых других финансовых организаций (по официальной версии, в результате сбоя ПО). Как выглядели эти анонсы, можно посмотреть в истории bgplay (просмотр через web, json (архив)), вот один из них на одном из коллекторов RIPE (префикс 216.119.216.0/24 принадлежит Mastercard (AS26380)):

                            "source_id": "05-193.203.0.185", 
                            "path": [
                                6939, 
                                12389
                            ], 
                            "community": [], 
                            "target_prefix": 216.119.216.0/24
            Читать дальше →
          • TCP Congestion Control или Почему скорость прыгает

              Всем привет!

              Бывало ли у вас такое, что ставите файл на закачку, и скорость медленно, но верно возрастает, затем, в какой-то момент, резко снижается, затем опять возрастает? Закачка файла в один поток не обеспечивает полную скорость канала? Запускаете торрент-клиент, и пинг в игре сильно прыгает? Используете 3G-модем (или другую линию с относительно большой потерей пакетов) и не можете это терпеть?
              Наверняка вы винили во всем ваш роутер, либо обвиняли своего провайдера в кривой настройке шейпера? Это влияет, но виноваты не они.
              Итак, встречайте:

              TCP Congestion Control, или TCP Congestion Avoidance Algorithm.

              Читать дальше →
            • Netstat, где мои дейтаграммы?

                Вероятно, что трудно найти другую, настолько же полезную и плохо документированную программу, как Netstat, имеется в виду, опция показа статистики сетевого потока данных. Когда мы проводим инспекцию состояния сети на отдельно взятом Linux узле, всегда можно быть уверенным, что это утилита имеется в наличии. И вот мы хотим понять — справляется ли сетевой стэк с нагрузкой, или проблема на верхних этажах OSI, собственно там, где сосредоточенно крутятся колесики бизнес-логики нашего приложения.




                (5:562)$ netstat -s |wc -l
                124

                Ура, у нас куча полезной информации, сейчас мы быстренько сообразим, что к чему. Вот только бы понять, что же это за зверь такой timeout in transit, явно что-то нехорошее.

                Читать дальше →
                • +28
                • 17,8k
                • 9
              • Парадокс времени ожидания, или почему мой автобус всегда опаздывает?

                • Перевод

                Источник: Wikipedia License CC-BY-SA 3.0

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

                Вы приходите на остановку. Написано, что автобус ходит каждые 10 минут. Засекаете время… Наконец, через 11 минут приходит автобус и мысль: почему мне всегда не везёт?

                По идее, если автобусы приходят каждые 10 минут, а вы придёте в случайное время, то среднее ожидание должно составлять около 5 минут. Но в действительности автобусы не прибывают точно по расписанию, поэтому вы можете ждать дольше. Оказывается, при некоторых разумных предположениях можно прийти к поразительному выводу:

                При ожидании автобуса, который приходит в среднем каждые 10 минут, ваше среднее время ожидания будет 10 минут.

                Это то, что иногда называют парадоксом времени ожидания.
                Читать дальше →
              • Рекурсивная маршрутизация в MikroTik через шлюзы назначемые DHCP

                  Наиболее часто задаваемый мне вопрос по использованию рекурсивной маршрутизации звучит так: «Что делать, если основной провайдер назначает нам ip-адрес через dhcp, при этом часто изменяется шлюз по-умолчанию?».

                  image
                  Читать дальше →
                • Венгерский алгоритм, или о том, как математика помогает в распределении назначений

                  • Tutorial
                  Привет, друзья! В этой статье хотел бы рассказать про интересный алгоритм из дисциплины «Исследование операций» а именно про Венгерский метод и как с его помощью решать задачи о назначениях. Немного затрону теории про то, в каких случаях и для каких задач применим данный алгоритм, поэтапно разберу его на мною выдуманном примере, и поделюсь своим скромным наброском кода его реализации на языке R. Приступим!

                  image
                  Читать дальше →
                • Зачем вам нужен Splunk? Мониторинг работы IT инфраструктуры



                    • Как повлияло отключение одного сервера на здоровье инфраструктуры в целом?
                    • Можно ли предсказать ухудшение работоспособности инфраструктуры?
                    • Какое влияние оказывают на систему критически важные службы?

                    В этой статье мы расскажем о том, как Splunk может помочь в поиске ответов на эти вопросы.
                    Читать дальше →
                  • Концепция MAST в Биткоине

                      В рамках данной статьи мы поговорим о концепции MAST и ее применении в протоколе Биткоин. Мы рассмотрим свойства, которых позволяет добиться MAST, а также пользу от его применения. Статья будет интересна читателям, которые увлекаются протоколом Биткоина и другими инновационными платежными системами. Этой теме также посвящена отдельная лекция в рамках онлайн-курса по Blockchain “MAST в Биткоине”.

                      Концепция MAST подразумевает использование деревьев Меркла и абстрактных синтаксических деревьев, чтобы задавать условия траты монет на выходах транзакций. Рассмотрим по порядку, как это устроено.
                      Читать дальше →
                      • +14
                      • 3,4k
                      • 1
                    • Ричард Хэмминг: Глава 12. Коды с коррекцией ошибок

                      • Перевод
                      «Цель этого курса — подготовить вас к вашему техническому будущему.»

                      imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 394k прочтений)?

                      Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.

                      Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

                      Мы уже перевели 26 (из 30) глав. И ведем работу над изданием «в бумаге».

                      Глава 12. Коды с коррекцией ошибок


                      (За перевод спасибо Mikhail Sheblaev, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

                      В этой главе затронуты две темы: первая, очевидно, коды с коррекцией ошибок, а вторая — то, как иногда происходит процесс открытия. Как Вы все знаете, я официальный первооткрыватель кодов Хэмминга с коррекцией ошибок. Таким образом я, по-видимому, имею возможность описать, как они были найдены. Но вам необходимо остерегаться любых рассказов подобного типа. По правде говоря, в то время я уже очень интересовался процессом открытия, полагая во многих случаях, что метод открытия более важен, чем то, что открыто. Я знал достаточно, чтобы не думать о процессе во время исследований, так же, как спортсмены не думают о технике, когда выступают на соревнованиях, но отрабатывают её до автоматизма. Я также выработал привычку возвращаться назад после больших или малых открытий и пытаться отследить шаги, которые к ним привели. Но не обманывайтесь; в лучшем случае я могу описать сознательную часть и малую верхушку подсознательной части, но мы просто не знаем магии работы подсознания.
                      Читать дальше →
                    • LLTR Часть 0: Автоматическое определение топологии сети и неуправляемые коммутаторы. Миссия невыполнима?

                      КДПВ: LLTR Часть 0 - пневмотранспорт из Футурамы


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


                      Начну с причины возникновения LLTR (Link Layer Topology Reveal).


                      У меня был один “велосипед” - синхронизатор больших файлов “на полной скорости сети”, способный за 3 часа целиком залить 120 GiB файл по Fast Ethernet (100 Мбит/с; 100BASE‑TX; дуплекс) на 1, 10, 30, или > 200 ПК. Это был очень полезный “велосипед”, т.к. скорость синхронизации файла почти не зависела от количества ПК, на которые нужно залить файл. Все бы хорошо, но он требует знания топологии сети для своей работы.


                      Подробнее в статье про него:

                      Ладно, а зачем понадобилось “гонять” 120 GiB файл по сети на такое количество ПК?

                      Этим файлом был VHD с операционной системой, программами, и т.п. Файл создавался на мастер‑системе, а затем распространялся на все остальные ПК. VHD был не только способом доставки системы на конечные ПК, но и давал возможность восстановления исходного состояния системы при перезагрузке ПК. Подробнее в статье: “Заморозка системы: история перехода с EWF на dVHD”.



                      Можно продолжить цепочку дальше, но на этом я прервусь.


                      Существующие протоколы обнаружения топологии канального уровня (LLDP, LLTD, CDP, …) для своей работы требуют соответствующей поддержки их со стороны всех промежуточных узлов сети. То есть они требуют как минимум управляемых свитчей, которые бы поддерживали соответствующий протокол. На Хабре уже была статья, как используя эти протоколы, “определить топологию сети на уровнях 2/3 модели OSI”.


                      Но что же делать, если промежуточные узлы – простые неуправляемые свитчи?


                      Если интересно как это можно сделать, то добро пожаловать под кат. Обещаю наличие множества иллюстраций и примеров.


                      { объем изображений: 924 KiB; текста: 69 KiB; смайликов: 9 шт. }

                      Читать дальше →
                    • Виртуальный роутер DD-WRT x86 на VirtualBox

                      image

                      Введение:


                      По работе мне часто приходится работать с перепрошитыми роутерами на DD-WRT или OpenWRT. Все время как-то получалось обходиться без роутера дома, но те возможности, которые дают эти прошивки, реально классные. Вот и задумался о приобретении роутера, такого чтоб тянул все сервисы, которые мне могут понадобиться.  Остановился на выборе Asus RT-N16, но, правда, дороговата эта игрушка оказалась для меня. Это при том, что реальной необходимости в роутере не было, т.к. отлично спасала сетевая Wi-Fi карточка TP-LINK WN851ND.

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


                      Читать дальше →
                    • select / poll / epoll: практическая разница

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

                      В этой статье мы рассмотрим:

                      • select()
                      • poll()
                      • epoll()
                      • libevent
                      Читать дальше →
                    • Ричард Хэмминг: Глава 6. Искусственный интеллект — 1

                      • Перевод
                      «Цель этого курса — подготовить вас к вашему техническому будущему.»

                      imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2394 в закладки, 380k прочтений)?

                      Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.

                      Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

                      Мы уже перевели 19 (из 30) глав. И ведем работу над изданием «в бумаге».

                      Глава 6. Искусственный интеллект — 1


                      (За перевод спасибо Иванникову Алексею, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом, версткой и изданием книги — пишите в личку или на почту magisterludi2016@yandex.ru

                      Рассматривая историю компьютерных приложений, мы обращаем внимание на возможности пределов машин не столько в плане вычислительной сложности, сколько в плане классов задач, которые компьютер сможет или возможно не сможет решать в будущем. Перед дальнейшим рассуждениями необходимо напомнить, что компьютеры оперируют символами, а не информацией; мы не можем просто сказать, не говоря о том, чтобы написать, программу в терминах “информации”. Все мы считаем, что знаем значения слов, но хорошие размышления с вашей стороны убедят в том, что, в лучшем случае, информация — это нечёткая концепция и ей нельзя дать определение, которое можно сконвертировать программе.
                      Читать дальше →
                    • Расчёт сопел современных ракетных двигателей



                        Введение


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



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



                        В ракетном двигателе сопло Лаваля впервые было использовано генералом М. М. Поморцевым в 1915 году. В ноябре 1915 года в Аэродинамический институт обратился генерал М. М. Поморцев с проектом боевой пневматической ракеты.

                        Ракета Поморцева приводилась в движение сжатым воздухом, что существенно ограничивало ее дальность, но зато делало ее бесшумной. Ракета предназначалась для стрельбы из окопов по вражеским позициям. Боеголовка оснащалась тротилом.

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



                        Однако проблемы остались старые, но уже в современном исполнении: ограниченная дальность до 3 км., наведение и удержание цели в условиях хорошей видимости, что для настоящего боя не реально, не защищённость от электромагнитных заградительных помех и, наконец, но не в последнюю очередь, высокая стоимость.
                        Читать дальше →
                      • О том, как я заставлял Ubuntu работать 10 часов от батареи

                          imageЯ являюсь рядовым линукс-пользователем и поэтому не стоит от этой статьи ожидать очень умных ходов или нестандартных программистских решений. Все по мануалам. Но раз результат достигнут, значит кому-то кроме меня это может оказаться полезным.

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

                          Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.
                          Читать дальше →