Обзор курса

Видеолекцию "Обзор курса" профессора Дэна Боне (Стэнфордский Университет) в рамках курса по криптографии можно найти здесь:
https://class.coursera.org/crypto/lecture/1

Ниже приведен перевод титров к этой лекции.


1. Криптографические примитивы - зарекомендовавшие, низкоуровневые криптографические алгоритмы, часто используемые для построения систем компьютерной безопасности.
2. SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером. SSL изначально разработан компанией Netscape Communications. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.



Здравствуйте, меня зовут Дэн Боне, и я хотел бы поприветствовать Вас на моем курсе по криптографии, который я буду преподавать в Стэнфордском университете в этом квартале (весна 2012). В этом квартале, я экспериментировал с записью лекций и студенты могли смотреть их в режиме онлайн. На самом деле, любой желающий может наблюдать за лекциями и присоединиться к курсу. Да, это эксперимент, поэтому мы посмотрим, как оно пойдет дальше. Моя цель на этом курсе в основном научить вас тому, как работают криптографические примитивы. Но что еще более важно, я хотел бы научить вас тому, как использовать криптографические примитивы и правильно рассуждать о безопасности ваших конструкций. Мы увидим, различные абстракции криптографических примитивов, и сделаем некоторые security proofs. Моя цель состоит в том, чтобы к концу курса вы смогли бы рассуждать по поводу безопасности криптографических конструкций и смогли бы отказаться от некоторых из них, которые не являются безопасными.

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

Ну а теперь, я уверен, что каждый сидящий в классе знает, что криптография используется повсеместно на компьютерах. Это очень распространенный инструмент, который используется для защиты данных. Например, интернет трафик защищен с помощью протокола, который именуется HTTPS. Беспроводной трафик. Например, Wi-Fi трафик защищен с помощью WPA2 протокола, который является частью стандарта 802.11i. Трафик сотовых телефонов защищен с помощью шифровального механизма GSM. Bluetooth трафик также защищен с помощью криптографии, и т.д. Мы собираемся посмотреть, как эти различные системы работают. На самом деле, мы собираемся описать SSL, и даже 802.11i WPA2 коснемся. И вы увидите, как эти системы работают на практике. Криптография также используется для защиты файлов, хранящиеся на диске, путем их шифрования. Даже, если диск будет украден, файлы не получится скомпрометировать. Криптография также используется для защиты контента. Например, когда вы покупаете DVD или Blu-Ray диски, фильмы на этих дисках записаны в зашифрованном виде, в частности, DVD использует систему под названием CSS (Contents Scrambling System). А Blu-Ray диски использует систему, называемую AACS, мы поговорим о том, как работает и CSS, и AACS. Оказывается, CSS является довольно простой системой, чтобы взломать ее. И мы будем говорить об этом, мы осуществим некоторые способы криптоанализа и на самом деле покажим, как взломать шифр, используемый в CSS. Шифрование также используется для аутентификации пользователей и это так на самом деле. Поверьте мне, есть и другие приложения, о которых поговорим в следующем сегменте.

Теперь я хочу вернуться к обеспечению связи, и поговорить о случае когда, прямо здесь, у нас есть ноутбук, который пытается связаться с веб-сервером. Самое время, чтобы познакомиться с нашими друзьями, Алисой и Бобом, которые будут с нами на протяжении курса лекций. К сути дела - попытаемся безопасно пообщаться с Бобом. Здесь ноутбук Алисы, а Боб находится на сервере. Протокол связи, который используется, называется HTTPS, но на самом деле, реальный протокол называется протоколом SSL. Иногда называемый TLS. И цель этих протоколов в основном состоит в том, чтобы убедиться, что эти данные передаются по сети, а злоумышленник, прежде всего, не сможет их подслушать. Во-вторых, злоумышленник не сможет изменить их, пока он находится в сети. Так что, не подслушать и не подделать. Теперь, как я сказал, протокол, который используется для защиты веб-трафика, называемый TLS, на самом деле, состоит из двух частей. Первая часть называется протоколом рукопожатия (согласования), при завершении которого Алиса и Боб при разговоре друг с другом в основном случае должны выработать общий секретный ключ (shared secret key). Общий для них обоих. Итак, Алиса и Боб знают этот секретный ключ, но злоумышленник, следя за разговором, не знает, что это за ключ К. После того, как вы установили свой секретный ключ, вы совершаете рукопожатие, используя асимметричный алгоритм шифрования с открытым ключом, о котором мы собираемся говорить во второй части курса. И как только Алиса и Боб имеют общий ключ, вы можете использовать этот ключ для безопасного общения, должным образом шифруя данные между ними (это вторая часть - протокол записи). Фактически в первой части курса мы будем заниматься тем, как Алиса и Боб, уже имея на руках общий секретный ключ, будут использовать этот ключ для шифрования и защиты данных, которые ходят между ними?

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

Теперь я хочу посмотреть на все это немного с философской точки зрения: на самом деле, хранение зашифрованных файлов на диске очень похоже на защиту связи между Алисой и Бобом. В частности. При сохранении файлов на диске, Алиса предполагает, что будет их читать в дальнейшем, например, завтра. Получается будто Алиса сегодняшняя посылает сообщение, в виде файла, Алисе завтрашней. Не похоже ли на передачу сообщений между Алисой и Бобом. С философской точки зрения два варианта обеспечения связи и защищенные файлы являются тем же самым.

Кирпичиком в процессе безопасного трафика является то, что называется симметричной системой шифрования. И в первой половине курса мы будем много говорить о симметрической системе шифрования. Итак, симметричная система шифрования, по сути, имеет два партнера, Алиса и Боб, общий секретный ключ К, о котором злоумышленник не знает. Только они знают, что секретный ключ K. Сейчас они собираются использовать шифр, состоящий из двух алгоритмов, Е и D. E обозначает алгоритм шифрования, а D - алгоритм расшифрования. Алгоритм шифрования принимает сообщение и ключ в качестве входных данных. И на выходе создает соответствующий шифротекст. А алгоритм расшифрования делает обратное превращение. Надо взять шифротекст, а также ключ, и на выходе получим соответствующее сообщение.

Сейчас очень важный момент, который я хотел бы подчеркнуть. Я скажу это только один раз, и повторять не буду, но это очень важный момент. И это. То, что алгоритмы E и D - по факту алгоритмы шифрования, которые лежат в открытом доступе. Противник точно знает, как они работают. Единственное, что держится в секрете - это секретный ключ, самое вкусное. Все остальное доступно обществу, и действительно важно понять то, что вы должны использовать только те алгоритмы, которые являются публичными, поскольку эти алгоритмы уже есть. Отрецензированные алгоритмы большим сообществом из сотен людей в течении многих, многих, многих лет смело можно применять, ибо сообщество показало, что их существенно трудно взломать. Действительно, если кто-то придет к вам и скажет: эй, у меня есть собственный (проприетарный) шифр, который вы можете использовать, ответ должен быть обычно такой - вы знаете, вы будете придерживаться стандартов, стандартных алгоритмов, а не использовать проприетарный шифр. В самом деле, есть много примеров того, как проприетарные шифры, будучи только что впервые созданные, легко ломались при простом анализе.

В простых случаях симметричного шифрования, которое мы собираемся обсуждать в первой половине курса, есть, на самом деле, два момента. Озвучим их по очереди. Первый - когда каждый ключ используется только для шифрования одного сообщения, мы называем их одноразовыми ключами. Хорошо. Так, например, при шифровании сообщений электронной почты, что очень распространено, каждое сообщение шифруется с помощью различных симметричных ключей. Ага. Различных симметричных ключей шифрования. Потому что один ключ используется для шифрования только одного сообщения. На самом деле существует достаточно много эффективных и простых способов шифрования сообщений с помощью одноразовых ключей, и мы будем обсуждать их далее. Второй момент - есть много случаев, когда ключ должен использоваться для шифрования нескольких сообщений. Такие ключи называют многоразовыми. Например, при шифровании файлов один и тот же ключ используется для шифрования множества различных файлов. И получается, если ключ будет использоваться для шифрования нескольких сообщений, то нам нужно немножко больше оборудования, чтобы убедиться, что система шифрования является безопасной. Фактически мы после поговорим об этом. Еще одна вещь [неразборчиво] будет двигаться и поговорим о режимах шифрования, которые специально разработаны для многих [неразборчиво] ключей. И мы увидим, что есть еще несколько шагов, которые необходимо предпринять для обеспечения безопасности в этих случаях.

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

И еще один очень важный момент - шифрование по существу бесполезно, если оно осуществляется неправильно. Так, например, существует целый ряд систем, которые работают прекрасно. И мы увидим примеры таких систем, которые, по сути, позволяют Алисе и Бобу общаться. Т.е. сообщения, которые Алиса послала Бобу, Боб может их получать и расшифровывать. Однако, шифрование осуществляется неправильно. Эти системы полностью небезопасны. На самом деле я скажу, что я хотел бы упомянуть старый стандарт шифрования WEP, используемый для шифрования Wi-Fi трафика. В WEP содержится много ошибок, и когда я хочу показать вам, как не надо делать некоторые вещи в криптографии, я буду ссылаться на то, как это было сделано в WEP, в качестве примера. Так что мне очень повезло, что есть такой пример протокола, где я могу указать на то, как не надо делать.

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


Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License