Технологии и пороки сети Интернет

Новосибирск, весна 2021

Описание

Цель курса — дать представление о современном устройстве веба, подсветить его проблемы и удачные решения, оглядываясь на историческое развитие с прицелом в мрачное будущее. Фокус курса смещён в сторону безопасности и приватности, так как это наиболее кричащий аспект развития сети в текущие годы.

Что нужно знать до начала

Предварительные требования: умение программировать, пользоваться браузером.

Рекомендовано: знание основ сетевых технологий и операционных систем (стек TCP/IP, DNS, HTTP, HTML, JS, что такое процесс, сокет, порт). Для задачи на Си++ — уверенное владение современным Си++.

О формате курса

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

Итоговый контроль: 2-3 больших практических задачи, итоговый тест.

Примерная программа

  • Вспоминаем HTML и JS: понятие DOM, фреймы, АПИ браузера.
  • Повторяем HTTP: имитация браузера через telnet, заголовки HTTP.
  • Same-origin policy: Что такое URL и его Origin? 1st-party и 3rd-party контексты
  • Архитектура браузера: многопроцессная модель. Рендерер/Сontent/Embedder. Профиль пользователя, модель безопасности.
  • Межсайтовый скриптинг, CSP, CORS
  • HTTPS - вспоминаем криптографию с публичным ключом. Замочек как важный элемент UI, Let's Encrypt, Certificate transparency.
  • Аутентификация: от кук и сессий до WebAuthn. Парольные менеджеры. Двухфакторная аутентификация.
  • Фингерпринтинг: для чего и как. Что рассказывает о себе браузер.
  • Трекинг и защита от него. Differential Privacy. Следящие сети. Архитектура рекламных сетей.
  • Устройство DarkNet, луковая маршрутизация.
  • Стандартизация и развитие web.
  • Webassembly - для чего, история, пример приложения.
  • web3: блокчейны, IPFS

Преподаватели