Технологии и пороки сети Интернет
Новосибирск, весна 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
Преподаватели
Список лекций
Для уверенного понимания того, что будет происходить на лекции рекомендую ознакомится с первыми пятью уроками чтобы понимать общую идею: https://blog.ttulka.com/learning-webassembly-series
Курс на edx от linux foundation: https://training.linuxfoundation.org/training/introduction-to-webassembly-lfd133/
WebAssembly FAQ: https://webassembly.org/docs/faq/
Для тех, кто любит комиксы и видео по технологиям: https://www.youtube.com/watch?v=HktWin_LPf4
Главный источник правды, который еще и легко читать: https://webassembly.github.io/spec/core/