Книга Компьютерные сети. 6-е изд. - Эндрю Таненбаум
Шрифт:
Интервал:
Закладка:
61. Алиса была постоянным пользователем анонимного ремейлера первого типа. Она могла публиковать сколько угодно сообщений в своей любимой конференции alt.fanclub.alice, и все знали, что их автор — Алиса, так как все письма подписывались одним псевдонимом. При правильной работе системы у Труди не было возможности писать от имени Алисы. После того как все анонимные ремейлеры первого типа были отключены, Алиса перешла на шифропанковские ремейлеры и создала новую тему в конференции. Предложите Алисе актуальный способ защиты от Труди, которая пытается писать от ее имени.
62. В 2018 году исследователи выявили у современных процессоров две уязвимости, Spectre и Meltdown. Узнайте, как работает атака Meltdown, и объясните, какие принципы безопасности при разработке процессоров соблюдались недостаточно (что и привело к появлению этой уязвимости). Обоснуйте свой ответ. Что могло побудить разработчиков отказаться от строгого соблюдения этих принципов?
63. Во время туристических поездок вы подключаетесь к Wi-Fi отеля, используя уникальный пароль. Объясните, как злоумышленники могут прослушивать ваш канал связи.
64. Найдите в интернете описание какого-нибудь интересного случая, касающегося приватности, и напишите о нем небольшой доклад на одну страницу.
65. Напишите программу, шифрующую входные данные путем суммирования по модулю 2 с ключевым потоком. Найдите или напишите сами хороший генератор случайных чисел для создания ключевого потока. Программа должна действовать как фильтр, принимая открытый текст со стандартного устройства ввода и выдавая шифр на стандартном устройстве вывода (и наоборот). У программы должен быть один параметр: ключ, запускающий генератор случайных чисел.
66. Напишите процедуру для вычисления хеша SHA-2 блока данных. У процедуры должно быть два параметра: указатель на входной буфер и указатель на 20-байтный выходной буфер. Чтобы найти спецификацию SHA-2, поищите в интернете FIPS 180-1, в этом документе содержится полное описание.
67. Напишите функцию, которая принимает поток ASCII-символов и шифрует его с помощью режима сцепления блоков. Размер блока должен быть 8 байт. Программа должна преобразовывать открытый текст со стандартного устройства ввода в зашифрованный текст на стандартном устройстве вывода. Для решения этой задачи вы можете воспользоваться любой подходящей системой, чтобы определить конец входного потока и/или понять, когда добавить заполнение, чтобы завершить блок. Вы можете выбрать формат вывода данных, главное, чтобы он был однозначным. Программа должна получать два параметра:
1. Указатель на вектор инициализации.
2. Номер k, представляющий смещение шифра подстановки, так чтобы значение ASCII было зашифровано k-м значением перед ним в алфавите.
Например, если х = 3, тогда «A» шифруется как «D», «B» — как «E» и т.д. Сделайте разумные допущения с учетом последнего значения в наборе ASCII. Четко зафиксируйте в своем коде все сделанные вами допущения, касающиеся входного потока и алгоритма шифрования.
68. Цель этой задачи — дать лучшее представление о механизме работы RSA. Напишите функцию, которая получает в качестве параметров простые числа p и q, рассчитывает открытый и секретный RSA-ключи с помощью этих параметров и выводит n, z, d и e в качестве выходных данных. Также функция должна принимать поток значений ASCII и шифровать его с помощью вычисленных ключей RSA. Программа должна получать открытый текст со стандартного устройства ввода и выдавать зашифрованный текст на стандартном устройстве вывода. Шифрование должно производиться посимвольно: каждый символ из входных данных шифруется независимо от остальных. Для решения этой задачи можно воспользоваться любой подходящей системой, чтобы определить конец входного потока. Вы можете выбрать формат вывода данных, главное, чтобы он был однозначным. Четко зафиксируйте в своем коде все допущения, касающиеся входного потока и алгоритма шифрования.
Глава 9. Рекомендации для чтения и библиография
Мы закончили изучение компьютерных сетей, но это только начало. Многие интересные темы не были рассмотрены во всей полноте, а некоторые — вообще пропущены за неимением места. Данная глава содержит список дополнительной литературы для читателей, желающих продолжить ознакомление с компьютерными сетями.
9.1. Литература для дальнейшего чтения
Существует большое количество книг, касающихся всех аспектов компьютерных сетей и распределенных систем. Среди журналов, часто публикующих статьи по этой теме, стоит выделить следующие два: IEEE/ACM Transactions on Networking и IEEE Journal on Selected Areas in Communications.
В периодических изданиях ACM Special Interest Groups on Data Communications (SIGCOMM) и Mobility of Systems, Users, Data, and Computing (SIGMOBILE) публикуется множество интересных статей, особенно на тему новых открытий и разработок. Это издания Computer Communication Review и Mobile Computing and Communications Review.
Кроме того, Институт инженеров электротехники и электроники (IEEE) выпускает еще три журнала: IEEE Internet Computing, IEEE Network Magazine и IEEE Communications Magazine — в них содержатся обзоры, учебные статьи и информация об исследованиях по компьютерным сетям. Первые два в основном посвящены архитектуре, стандартам и программному обеспечению, а третий — технологиям коммуникаций (оптоволоконной, спутниковой связи и т.д.).
Ежегодно или раз в два года проводятся несколько конференций, о которых рассказывается в многочисленных статьях, посвященных сетям. В частности, обратите внимание на конференции SIGCOMM, NSDI (Symposium on Networked Systems Design and Implementation), MobiSys (Conference on Mobile Systems, Applications, and Services), SOSP (Symposium on Operating Systems Principles) и OSDI (Symposium on Operating Systems Design and Implementation).
Ниже мы перечислим дополнительную литературу, сгруппированную по главам этой книги. Большая часть приведенных рекомендаций представляет собой ссылки на издания (или отдельные главы) с учебной или обзорной информацией. Полные ссылки приводятся в разделе 9.2.
9.1.1. Введение
Comer (Комер), «The Internet Book», 4-е издание
В эту книгу стоит заглянуть всем, кто ищет простое и понятное описание интернета. В ней доступным для новичков языком говорится об истории, развитии, технологиях, протоколах и службах интернета. Книга заинтересует и более подготовленных читателей благодаря большому количеству затронутых тем.
Computer Communication Review, 50th Anniversary Issue, Oct. 2019
В 2019 году состоялась 50-я конференция ACM SIGCOMM, и в специальном выпуске журнала рассказывается о том, как выглядели компьютерные сети и SIGCOMM47 на заре своего становления и как они изменились со временем. Несколько бывших руководителей SIGCOMM опубликовали статьи о том, как обстояли дела в прошлом и в каком направлении следует развиваться в будущем. Также обсуждается взаимосвязь между научными исследованиями в области компьютерных сетей и промышленным применением этих технологий. Говорится и об эволюции самого журнала.
Crocker, S.D. (Крокер), The Arpanet and Its Impact on the State of Networking
В честь 50-летнего юбилея сети ARPANET, предшественницы интернета, журнал IEEE Computer собрал за виртуальным круглым столом шестерых разработчиков этой сети, чтобы поговорить о ней и о том, какое огромное влияние она оказала на весь мир.