Содержание

Создание паролей: как придумать надежный пароль

Современному пользователю приходится работать как минимум с десятком сервисов требующих регистрацию и использование пароля для получения доступа к аккаунту.

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

Содержание

Создание паролей

Регистрируясь на очередном сайте, мы часто останавливаемся и задумываемся при виде поля для ввода пароля. Почти идеальным способом для создания надежного пароля будет генерация случайного пароля с помощью специальной программы, например такой как keepass. Но такие пароли сложно запомнить, а значит, их необходимо где-то записывать и хранить. Такой вариант не подходит для части обычных пользователей. Даже если вы будете использовать программный способ создания и хранения паролей, часть паролей все равно придётся запоминать.

Создавая пароль вручную необходимо соблюдать несколько правил:

  • Нельзя использовать простые комбинации символов и чисел. Например, пароли 123, 321, 123456, qwerty, asdfg и другие подобные не подходят.
  • Нельзя использовать личную информацию при создании пароля (имена родственников, домашних животных, даты рождения, номера телефонов, адреса, почтовые индексы и т.д.). Например, пароли Masha, Sasha21, Vasya02071988 и другие подобные не подходят.
  • Не используйте пароли, которые можно подобрать по словарю популярных паролей. Например, пароли love, cat, alfa, samsung, mercedes, ястерва и другие подобные, а также их варианты и комбинации не подходят.
  • Не используйте пароли, длина которых меньше 10 символов.
  • Пароль должен состоять из больших и маленьких букв, чисел и специальных символов.
  • Придумывая пароли, используйте свою фантазию и не думайте шаблонно. Компьютер, подбирающий ваш пароль, хорошо считает, но он не может мыслить и быть креативным.

Есть много способов придумать простой и относительно надежный пароль. Мы рассмотрим один из таких способов.

Как придумать пароль

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

Дальше необходимо «зашифровать» фразу ключ, чтобы она стала более надежным паролем. Несколько способов такого «шифрования»:

  • Запись русской фразы в английской раскладке.
  • Запись фразы наоборот.
  • Замена букв на их визуальные аналоги («a» — «@», «i» — «!», «o» — «()» и т. д.).
  • Использование первых нескольких символов из каждого слова.
  • Удаление парных/непарных символов.
  • Удаление гласных/согласных букв из фразы.
  • Добавление спецсимволов и чисел.

Можно использовать несколько таких способов, чтобы превратить фразу ключ в практически бессмысленный набор символов. Но, идеальным вариантом будет создание собственного уникального метода «шифрования» фразы ключа.

Например, используя несколько шаблонных способов «шифрования» можно получить такой пароль:

космические тараканы – используем первые 4 символа с каждого слова – космтара – записываем в английской раскладке – rjcvnfhf – записываем с большой буквы и добавляем спецсимволы и случайное число – [email protected]

В результате у нас получился длинный и достаточно сложный пароль, который нельзя вычислить по личной информации его владельца, но его можно легко восстановить по памяти. Проверив надежность пароля с помощью сервиса passwordmeter.com мы получаем результат «очень надежный».

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

Как придумать надежный пароль

Поделиться.

Какими должны быть пароли и как их запоминать

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

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

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

Что такое устойчивый пароль

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

Как повысить устойчивость пароля

Есть несколько стандартных рекомендаций по повышению устойчивости пароля.

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

2. Очень важную роль играет длина пароля. Она должна быть не менее 8 символов, а намного лучше, если их будет 12.

3. Пароли всегда регистрозависимые (оговорюсь, кроме «Сбербанка» с его идиотами-разработчиками), и вы значительно повысите надежность пароля, если, например, пару букв в нем напишете в верхнем регистре.

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

5. Ну и добавление к паролю нескольких цифр также сильно влияет на повышение устойчивости.

Что нам может в этом помочь

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

Суть менеджера паролей очень проста. Вам нужно придумать и запомнить только один устойчивый пароль — для этого менеджера. А дальше менеджер будет сам генерировать и запоминать надежный пароль для каждого из сервисов, где вы регистрируетесь, ведь одно из важных требований безопасности — не использовать одинаковые пароли для разных сервисов.

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

LastPass — очень известный менеджер паролей, который стал очень популярным прежде всего из-за того, что его бесплатная версия не содержит никаких ограничений на количество сохраненных паролей.

RoboForm — продвинутый менеджер паролей со многими возможностями, включая безопасное хранение конфиденциальной информации для заполнения форм (например, данных банковских карт, адресов и так далее). Сейчас в его бесплатной версии тоже нет ограничений на количество запомненных логинов (раньше такие ограничения были).

Dashlane — по мнению многих экспертов, это сейчас один из лучших менеджеров паролей, но его бесплатная версия ограничена только 50 логинами и одним устройством.

Как придумать устойчивый пароль и запомнить его

Конечно, наиболее устойчивым будет пароль, составленный из случайного набора букв в различном регистре, цифр и спецсимволов, — например, вот такой: UB^hRh%GDrSTUso8. Генераторы паролей, обязательно входящие в состав любого менеджера паролей, всегда предоставляют возможность пользователю регулировать параметры создаваемого пароля.

Однако что делать, если вы не используете менеджер паролей? Как придумать, а главное — как запомнить устойчивый пароль? Потому что совершенно бессмысленный пароль, типа как указанный выше, запомнить невозможно.

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

Мы говорили о том, что крайне нежелательно использовать обычные слова. Однако если буквы обычных слов вы напишете в разном регистре и будете перемежать эти буквы спецсимволами по определенному алгоритму, то пароль сразу станет вполне устойчивым.

Как зовут вашу первую учительницу в школе, имя которой вы никогда не забудете? Вера Ивановна Фролова?

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

Теперь сделаем очень простую вещь — имя и фамилию напишем с заглавных букв и проверим.

Уже веселее, но до устойчивости еще далеко. Давайте теперь просто заменим все буквы «о» символом «@». (Тут важно использовать спецсимвол, а не, например, цифру ноль, потому что с нулями пароль останется неустойчивым, а с этим спецсимволом — уже другое дело.)

Давайте еще усложним. Снова берем VeraFrolova и после каждой буквы ставим спецсимвол с клавиш с цифрами, двигаясь, например, от цифры 1 (можно и наоборот — вниз от «0», тут главное — чтобы вы для себя придумали и запомнили алгоритм). Не нужно брать все словосочетание, достаточно поставить спецсимволы только в имени (после каждой из первых четырех букв, например):

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

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

Как видите, ничего сложного. Вам просто нужно будет придумать и запомнить ваш собственный алгоритм. Например, после каждой из пяти первых букв символами над цифрами от 4 до 8. И в конце дописываем несколько цифр (например, ваш код от чемодана — там обычно 3-4 цифры).

Более того, напоминалку о таком коде можно записать в открытом виде — например, «УчиЛка 4-8 чемодан», и враг ни за что не догадается.

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

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

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

Например, «Союз нерушимый республик свободных сплотила навеки великая Русь» — берем первые буквы: «снрсснвр», конвертируем в «snrssnvr», делаем первую и последнюю буквы заглавными, вбиваем четыре спецсимвола, добавляем код чемодана:

Пишем подсказку: «ГимН 1-4 чемодан».

И, кстати, текст какой-нибудь известной песни может стать вам своеобразным генератором паролей. Для одного пароля используете первые буквы первой строчки, для второго — второй строчки и так далее.

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

Всякие полезности

1. Если вы используете менеджер паролей, то для него в качестве мастер-пароля должен быть придуман уникальный устойчивый пароль, который вы больше нигде не используете. При этом если менеджер пароля умеет разблокироваться по отпечатку пальца (Roboform такое умеет), то возьмите за правило хотя бы раз в день разблокировать менеджер паролем, а не отпечатком (чтобы вы себе об этом пароле постоянно напоминали).

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

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

Не могу придумать надежный пароль

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

  • Социальных сетей;
  • Электронной почты;
  • Интернет-банкинга и мобильных банковских приложений.

Существуют пароли обычной и повышенной степени важности. Пароль обычной степени важности применяется для:

  1. Социальных сетей;
  2. Менеджеров;
  3. Электронной почты;
  4. Различных сайтов.

Пароли высокой степени важности должны применяться для:

  • Расшифровки жёсткого диска;
  • Криптоконтейнера;
  • Менеджеров паролей.

Основные признаки надёжного пароля

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

  1. Пароль должен включать в себя не менее восьми символов, а еще лучше до тридцати двух.
  2. В используемых паролях не должны присутствовать персональные данные.
  3. Не стоит использовать пароли, которые вы уже использовали ранее.
  4. Не рекомендуется использовать простые короткие пароли, так как их достаточно легко взломать.

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

  • В действующем пароле используются только буквы.
  • Пароль включает в себя менее восьми символов.
  • В пароле присутствует название сервиса, на котором зарегистрирован пользователь.
  • Пароль использует предельно простой набор символов (12345, 7777777,password, abcde).
  • В действующем пароле используется личная информация (имя, фамилия, дата рождения, никнейм, адрес электронной почты). Помните, что квалифицированный хакер сможет достаточно быстро подобрать практически любые подобные комбинации.

Чтобы придумать надёжный пароль, нужно выбрать слово, которого нет в толковом словаре или поисковой системе. Зеркальную раскладку букв лучше не использовать.   Остановите свой выбор на латинских буквах. Не рекомендуется использовать заглавную букву первой, последней, или через одну. Надёжный пароль — это произвольное сочетание, состоящее, как минимум, из восьми символов, среди которых присутствуют специальные символы, латинские буквы и цифры. Создавая надёжный пароль нужно учитывать и то реально ли запомнить этот пароль.

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

А может использовать генератор паролей? Какой?

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

На сегодняшний день успешно существуют и функционируют примерно двадцать наиболее популярных генераторов паролей. Среди них:

  • Vultr.
  • 2IP.
  • LastPass.
  • Zoho Vault.
  • Dinopass.
  • Passwordgenerator.
  • Cloudwards.
  • Randomizeonline.
  • Strong Password Generator.

Генератор паролей есть встроенный в браузере Google Chrome. Он позволяет сгенерировать пароль длиной до 128 символов с использованием спецсимволов и цифр. Этот генератор паролей будет работать только в том случае если пользователь зайдет в свой Google-аккаунт.

В свою очередь браузер Opera позволяет сгенерировать пароль нужной длины с использованием спецсимволов. Дополнительных возможностей здесь нет.

Может сгенерировать один пароль в пределах 100 символов.

Если используемый пароль соответствует всем современным требованиям в области безопасности, тогда проблем с ним не возникнет независимо от того какой генератор будет использоваться. Количество генерируемых паролей настолько велико, что сопоставить его с конкретным пользователем практически невозможно. Генераторы паролей не были замечены в утечках информации.

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

Чтобы не подвергать свои данные риску утечки, в идеале необходимо соблюдать сразу несколько правил:

  1. Регулярно (раз в три-шесть месяцев, а по возможности чаще) менять используемый пароль.
  2. Использовать двухфакторную аутентификацию(пока самое надежная безопасность).
  3. Не использовать одинаковые пароли на разных сайтах.
  4. Регулярно создавать резервные копии всех наиболее важных материалов и персональных данных.
  5. Установить на устройстве VPN и не использовать общедоступные Wi-Fi сети.

Необходимо в обязательном порядке использовать сложные пароли и следить за безопасностью всех своих устройств.
Соблюдая изложенные в этой статье правила можно надежно защититься от действий злоумышленников.

Как придумать «непробиваемый» пароль и легко его запомнить

Всем известно, что лучший пароль выглядит примерно так: vAeJZ!Q3p$Kdkz/CRHzj0v7. Однако запомнить его для обычного человека практически невозможно. 42.TUT.BY выбрал несколько советов, которые помогут выбрать надежный пароль и не сойти с ума.

Лучший пароль получится, если по клавиатуре случайно пройдется ваш кот. Изображение: flickr.com

Базовые правила


В пароле должно быть не меньше восьми символов (а лучше — от 12 до 20).


В пароле должны быть все сразу: и буквы, и цифры, и спецсимволы.


Нельзя использовать один пароль во всех сервисах.


Не записывайте пароли на листках.


Если сложно все держать в голове — воспользуйтесь менеджером паролей (но пароль от него вам придется запомнить).

Понятный пароль — лучше, чем абракадабра

Главное правило при выборе пароля: не использовать слова целиком. При подборе ключей хакеры первым делом перебирают содержимое словарей с помощью специальных программ. Поэтому пароль «I love football» продержится пару секунд, следующей падет ваша дата рождения, k0роvA тоже не вызовет сложностей.

Любопытный способ выбора комбинации символов предложил специалист по безопасности Брюс Шенье: придумайте длинное предложение и «сожмите» его до аббревиатуры.

«Если вы хотите, чтобы ваш пароль было трудно отгадать, выберите то, перед чем взломщики сдадутся, — пишет он. — Мой совет: придумайте предложение и превратите его в пароль. Что-то вроде „This little piggy went to market — tlpWENT2m“. Этих девяти символов не будет ни в одном словаре. Конечно, не следует использовать этот пароль, о нем я уже написал».

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

Long time ago in a galaxy not far away at all — [email protected]~faaa!


Until this very moment, these passwords were still secure — uTVM, TPw55: utvm, tpwstillsecure


Когда мне было семь лет, моя сестра принесла кролика — Kmb7letmsestrapk…


Ой, этот диван что, воняет? — Oi,etdich,vo?

Пароль из «игральных костей»

Один из самых надежных способов получить хороший пароль — техника Diceware («игральная кость»). Для этого вам понадобится специальный список слов (на русском или английском) и игральные кости (подойдут и виртуальные).

Список слов Diceware содержит 7776 слов и выглядит примерно так:

51515 плебс


51516 плева


51521 плед


51522 племя


51523 плен


51524 плеск


51525 плеть

Чтобы получить пароль, вам понадобится 25 или 30 бросков игральной кости, все результаты нужно записать группами по пять чисел. К примеру, так: 61253, 54611, 32513, 21341, 64325. Каждая группа чисел — номер одного из слов в списке.

В результате вы получите комбинацию вроде «анатом усач тюфяк кираса плов» — это и будет ваш новый пароль. Согласитесь, запомнить ее будет намного проще, чем vAeJZ! Q3p$Kdkz/CRHzj0v7.

Степень защиты такого пароля значительно выше, чем у короткой комбинации символов. Компьютер, который взламывает 8-символьный пароль за 6 часов, будет трудиться над паролем из 5 слов Diceware на английском около 7300 часов, или 10 месяцев.

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

Изображение: habrahabr.ru / xkcd.com

Если все это для вас слишком сложно, подойдет и старый добрый способ: взять фразу на русском и как следует ее исковеркать. К примеру, вот какой способ предлагают эксперты «Тинькофф-банка»

  1. Возьмите простую фразу, которую вы точно запомните. Например, «картошка с грибами». Напишите ее: kartoshka s gribami
  2. Представьте, что произносите эту фразу с акцентом. Как бы вы ее тогда написали? Например, с итальянским акцентом: kartOshka s gribammi
  3. Замените пробелы на какой-нибудь знак: тире, точку, запятую или похуже что-нибудь: kartOshka.s.gribammi
  4. Замените какие-нибудь буквы на цифры — но так, чтобы запомнить, что вы меняли. Например, a на @, i на 1: [email protected]

Пароли нельзя менять «для галочки»

Один из популярных мифов о паролях — их нужно обязательно менять раз в 1−2 месяца. Правда, недавно выяснилось, что это не делает защиту надежнее: пользователи ленятся придумывать сложные пароли.

«Исследователи UNC показали, что если люди должны менять свои пароли каждые 90 дней, они, как правило, используют шаблон для преобразования, — считает Лорри Кранор (Lorrie Cranor), глава технического подразделения Федеральной комиссии по торговле США. — Они берут свой старый пароль, изменяют в нем пару символов — и „новый пароль“ готов».

К примеру пароль tarheels#1 ленивый пользователь превратит в taRheels#1, затем в tarheels#11, а после в tarheels#111. Такие пароли крайне уязвимы для взломщиков: алгоритму перебора ключей понадобится всего пара дополнительных шагов, чтобы перейти от tarheels#1 к tarheels#111.

Это вовсе не значит, что одни и те же пароли следует использовать по пять лет. Однако если меняете ключи доступа — делайте это добросовестно.

Фото: wired.co.uk

Смело врите в подсказках

А вот секретные вопросы вроде «девичья фамилия матери» для восстановления пароля лучше не использовать вовсе. Усердный злоумышленник может отыскать эти данные в аккаунтах соцсетей или выведать у ваших знакомых.

Правда, никто не мешает вам указать в ответе фамилию чужой матери.

«Рекомендуем указывать выдуманные ответы (которые, как и пароли, не знает никто, кроме вас), — советуют эксперты проекта Electronic Frontier Foundation. — Например, сайт интересуется именем вашего питомца. Возможно, вы уже публиковали где-то снимок с подписью «Мой кот-красавец Барсик».

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

Бонус: худшие пароли в истории

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

Уже много лет в топ попадают пароли 123456, password и qwerty. И да, 123abc, 111111 и qwertyuiop там тоже есть.

Среднее время, которое пользователи компьютеров тратят на то, чтобы придумать пароль, значительно меньше того, которое требуется для его подбора, рассказала аналитическая компания Deloitte Canada в 2013 году. По их подсчетам, более 90% паролей можно взломать за считаные секунды.

Проверить свой пароль на надежность можно с помощью одного из сервисов: Password Random, Rumkin или Parole Manager.

Читайте также:


Немецких журналистов удивил пароль «1941−1945» к Wi-Fi на российском стадионе

Правильный пароль НЕ принят / вход в систему…

Примерно та же проблема, но с одним MacBook Pro 15 «Retina. После обновления 10.9.2 он запрашивал пароль при перезапуске во время процесса обновления. Он не был настроен на запрос пароль ранее. И он не принимал то, что я знал как пароль (мой системный пароль не менялся в течение 20 лет). Я смог сбросить пароль с помощью процесса восстановления пароля Apple ID (и установить его на тот же пароль). Основываясь на приведенном выше обсуждении, я попробовал первую помощь Связки ключей, но не нашел ничего неправильного.

Сначала папка «Системные настройки» открывалась как пустое окно. После очередной перезагрузки нормально открылось, но зависло. Еще через пару перезапусков заработало.

В настоящее время я могу войти в систему и получить свой рабочий стол. Однако большинство приложений либо не запускаются, либо перестают отвечать довольно быстро. Как только я вхожу в систему, я получаю шесть сообщений об ошибках с просьбой ввести пароль. «Формулировка для каждого: xxxxx хочет использовать связку ключей« Локальные элементы ». Введите пароль связки ключей.»Слова для заполнения: talagent, identyservicesd, CalendarAgent, com.apple.internetaccounts, AddressBookSourceSync и com.apple.iCloudHelper. Я никогда не устанавливал пароль для Keychains. Мой системный пароль не работает для этих сообщений. Либо нажмите» Отменить » или трижды ОК переводит меня к следующему сообщению об ошибке. После 18 щелчков я возвращаюсь к первому сообщению, чтобы начать все сначала ».

Посмотрел поле iCloud в Системных настройках, это оксюморон. Слева это нормально, например, имя моей учетной записи, кнопка для получения сведений и кнопка для выхода.Но над списком приложений сказано: «Введите пароль, чтобы продолжить использование iCloud. Проверьте пароль Apple ID для [email protected]». и следует поле Введите пароль. При вводе пароля вы видите, что темно-серая шестеренка вращается вечно, и в конце концов вы нажимаете «Отмена».

Есть идеи по исправлению этой ситуации? Я думаю, это как-то связано с тем, что взаимодействует с iCloud. Зачем? Потому что ничего связанного не сработает. Pages не знает о своих облачных документах Mail.app prefs> accounts хочет, чтобы я создал учетную запись, в то время как можно ясно видеть электронную почту dot mac, собранную до обновления.

Безопасное хеширование пароля с добавлением соли — как это сделать правильно

Поиск хэша (яблоко) в пользовательском списке хэшей …: Соответствует [alice3, 0bob0, charles8]
Поиск хэша (черника) в списке хэшей пользователей …: Соответствует [usr10101, timmy, john91]
Поиск hash (letmein) в списке хэшей пользователей …: Соответствует [wilson10, dragonslayerX, joe1984]
Поиск хэша (s3cr3t) в списке хэшей пользователей…: Соответствует [bruce19, knuth2337, john87]
Поиск хэша (z @ 29hjja) в списке хэшей пользователей …: Ни один пользователь не использовал этот пароль

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

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

  • Радужные столы

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

  • Далее мы рассмотрим технику, называемую солением, которая делает невозможным использование
    таблицы поиска и радужные таблицы для взлома хэша.

    Добавление соли

    хэш ( «Привет») = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
    хэш ( «Привет» + «QxLUF1bgIAdeQX») = 9e209040c863f84a31e719795b2577523954739fe5ed3b58a75cff2127075ed1
    хэш ( «Привет» + «bv5PehSMfV11Cd») = d1d3ec2e6f20fd420d50e2642992841d8338a314b8ea157c9e18477aaef226ab
    хэш ( «Привет» + «YYLmfY6IehjZMQ») = a49670c3c18b9e079b9cfaf51634f563dc8ae3070db2c4a8544305df1b60f007

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

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

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

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

    НЕПРАВИЛЬНЫЙ способ: короткое повторное использование соли и соли

    Наиболее распространенные ошибки реализации соли — повторное использование одной и той же соли в нескольких
    хеши или использование слишком короткой соли.

    Повторное использование соли

    Распространенная ошибка — использовать одну и ту же соль в каждом хэше. Либо соль
    жестко запрограммированы в программе или генерируются случайным образом один раз. Это неэффективно
    потому что, если у двух пользователей один и тот же пароль, у них все равно будет один и тот же хэш.
    Злоумышленник может использовать атаку по таблице обратного просмотра для запуска словаря.
    атака на каждый хэш одновременно. Им просто нужно нанести соль на каждый
    угадайте пароль, прежде чем они его хэшируют. Если соль жестко закодирована в популярном
    продукта, таблицы поиска и радужные таблицы могут быть построены для этой соли, чтобы сделать ее
    легче взламывать хеши, сгенерированные продуктом.

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

    Соль короткая

    Если соль слишком короткая, злоумышленник может построить таблицу поиска для каждого
    возможна соль. Например, если соль состоит только из трех символов ASCII, там
    всего 95x95x95 = 857 375 возможных солей. Может показаться, что это много, но если
    каждая таблица поиска содержит только 1 МБ наиболее распространенных паролей вместе
    они будут всего 837 ГБ, что немного, учитывая, что жесткие диски на 1000 ГБ могут
    можно купить менее чем за 100 долларов сегодня.

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

    Чтобы злоумышленник не мог создать таблицу поиска для каждого
    возможна соль, соль должна быть длинной. Хорошее практическое правило — использовать соль,
    того же размера, что и результат хэш-функции.Например, вывод
    SHA256 составляет 256 бит (32 байта), поэтому соль должна быть не менее 32 случайных байтов.

    НЕПРАВИЛЬНЫЙ способ: двойное хеширование и дурацкие хеш-функции

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

    Вот несколько примеров плохих дурацких хеш-функций, которые я видел на форумах в Интернете.

    • md5 (sha1 (пароль))
    • md5 (md5 (соль) + md5 (пароль))
    • sha1 (sha1 (пароль))
    • sha1 (str_rot13 (пароль + соль))
    • md5 (sha1 (md5 (md5 (пароль) + sha1 (пароль)) + md5 (пароль)))

    Не используйте ничего из этого.

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

    Злоумышленник не может атаковать хэш, если он не знает алгоритм, но обратите внимание на алгоритм Керкхоффса.
    принцип, что злоумышленник обычно имеет доступ к исходному коду
    (особенно если это бесплатное программное обеспечение или программное обеспечение с открытым исходным кодом), и это с учетом некоторых
    пары пароль-хеш из целевой системы, отменить несложно
    разработать алгоритм.На вычисление дурацких хэш-функций уходит больше времени, но
    только на небольшой постоянный коэффициент. Лучше использовать итерационный алгоритм, который
    разработан так, чтобы его было чрезвычайно трудно распараллелить (это обсуждается ниже). А также,
    правильное засоление хеша решает проблему радужной таблицы.

    Если вы действительно хотите использовать стандартизированную «дурацкую» хеш-функцию, такую ​​как HMAC, тогда ничего страшного.
    Но если вы сделали это для того, чтобы замедлить вычисление хэша, сначала прочтите раздел ниже о растяжении клавиш.

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

    Хэш-коллизии

    Поскольку хэш-функции отображают произвольные объемы данных в строки фиксированной длины,
    должны быть некоторые входные данные, которые хешируются в ту же строку. Криптографический хеш
    функции предназначены для того, чтобы сделать эти столкновения невероятно трудными для обнаружения.Время от времени криптографы обнаруживают «атаки» на хеш-функции, которые делают
    легче находить столкновения. Недавний пример — хеш-функция MD5, для которой
    столкновения действительно обнаружены.

    Коллизионные атаки — признак того, что это может быть более вероятно для строки, отличной от
    пароль пользователя должен иметь такой же хеш. Однако обнаружение столкновений даже в
    слабая хеш-функция, такая как MD5, требует много выделенной вычислительной мощности, поэтому
    Очень маловероятно, что на практике эти столкновения произойдут «случайно».А
    хеширование пароля с использованием MD5 и соли для всех практических целей так же, как
    безопасный, как если бы он был хеширован с помощью SHA256 и соли. Тем не менее, это хороший
    идея использовать более безопасную хеш-функцию, такую ​​как SHA256, SHA512, RipeMD или
    Гидравлический бассейн, если возможно.

    Правильный способ: как правильно хешировать

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

    Основы: хеширование с использованием соли

    Предупреждение: не просто читайте этот раздел. Вы обязательно должны реализовать
    в следующем разделе: «Усложнение взлома паролей: медленное хеширование
    Функции ».

    Мы видели, как злонамеренные хакеры могут очень быстро взламывать простые хэши, используя
    таблицы поиска и радужные таблицы. Мы узнали, что рандомизация хеширования
    использование соли — это решение проблемы. Но как нам получить соль, и
    как применить это к паролю?

    Соль должна генерироваться с использованием псевдослучайной криптографической защиты .
    Генератор чисел
    (CSPRNG).CSPRNG сильно отличаются от обычных
    генераторы псевдослучайных чисел, такие как язык «C»
    rand () функция. Как следует из названия, CSPRNG являются
    разработаны для криптографической безопасности, что означает, что они обеспечивают высокий уровень
    случайность и совершенно непредсказуемы. Мы не хотим, чтобы наши соли были
    предсказуемо, поэтому мы должны использовать CSPRNG. В следующей таблице перечислены некоторые CSPRNG.
    которые существуют для некоторых популярных платформ программирования.

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

    Для сохранения пароля
    1. Сгенерируйте длинную случайную соль, используя CSPRNG.
    2. Добавьте соль к паролю и хешируйте его с помощью стандартной функции хеширования паролей , такой как Argon2, bcrypt, scrypt или PBKDF2.
    3. Сохраните и соль, и хеш в записи базы данных пользователя.
    Чтобы проверить пароль
    1. Получить соль и хэш пользователя из базы данных.
    2. Добавьте соль к данному паролю и хешируйте его, используя ту же хеш-функцию.
    3. Сравните хэш данного пароля с хешем из базы данных. Если они совпадают, пароль правильный. В противном случае пароль неверный.
    В веб-приложении всегда хэш на сервере

    Если вы пишете веб-приложение, вам может быть интересно, , где для хеширования.Если пароль хешируется в браузере пользователя с помощью JavaScript, или должен
    отправить его на сервер «в открытом виде» и там хешировать?

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

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

    Это не значит, что вы не должны хешировать в браузере, но если вы
    сделать, вам обязательно нужно хешировать на сервере. Хеширование в браузере есть
    конечно, хорошая идея, но учтите следующие моменты для вашей реализации:

    • Хеширование паролей на стороне клиента — , а не вместо HTTPS.
      (SSL / TLS). Если соединение между браузером и сервером установлено
      небезопасно, человек посередине может изменить код JavaScript как есть
      загружен, чтобы удалить функцию хеширования и получить пользовательский
      пароль.

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

    • Вам также нужно солить хэши на стороне клиента. Очевидное решение —
      заставить клиентский скрипт запрашивать у сервера соль пользователя.Не делай
      это потому, что он позволяет злоумышленникам проверять, действительно ли имя пользователя без
      зная пароль. Поскольку вы перемешиваете и солите (с хорошим
      соль) на сервере тоже, можно использовать имя пользователя (или адрес электронной почты)
      объединены со строкой для конкретного сайта (например, доменным именем) в качестве
      клиентская соль.

    Усложнение взлома паролей: медленное хеширование

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

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

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

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

    Если вы используете хэш растяжения ключа в веб-приложении, имейте в виду, что вы
    потребуются дополнительные вычислительные ресурсы для обработки больших объемов
    запросы аутентификации, и это растяжение ключа может упростить запуск
    Атака отказа в обслуживании (DoS) на ваш сайт.Я все еще рекомендую использовать ключ
    растяжение, но с меньшим количеством итераций. Вы должны рассчитать
    количество итераций на основе ваших вычислительных ресурсов и ожидаемого
    максимальная частота запросов аутентификации. Угроза отказа в обслуживании может быть
    устраняется, заставляя пользователя вводить CAPTCHA каждый раз при входе в систему.
    Всегда проектируйте свою систему так, чтобы количество итераций можно было увеличить или
    уменьшилось в будущем.

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

    Хэши, которые невозможно взломать: хэши с ключами и оборудование для хеширования паролей

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

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

    Я настоятельно рекомендую этот подход для любого крупного масштаба (более 100 000
    пользователей) сервис. Считаю необходимым для любой услуги хостинга более чем
    1000000 учетных записей пользователей.

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

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

    Другие меры безопасности

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

    Даже опытные разработчики должны иметь образование в области безопасности, чтобы писать безопасные приложения.
    Отличный ресурс для изучения уязвимостей веб-приложений —
    Открытое веб-приложение
    Проект безопасности (OWASP).Хорошее введение — это
    Список десяти самых уязвимых мест OWASP.
    Если вы не разобрались со всеми уязвимостями в списке, не пытайтесь
    написать веб-приложение, которое работает с конфиденциальными данными. Это работодатель
    ответственность за обеспечение надлежащего обучения всех разработчиков безопасным
    разработка приложения.

    Хорошая идея — провести сторонний «тест на проникновение» для вашего приложения. Четный
    лучшие программисты делают ошибки, поэтому всегда имеет смысл иметь безопасность
    экспертная проверка кода на наличие потенциальных уязвимостей.Найдите надежного
    организации (или нанять сотрудников) для регулярной проверки вашего кода. В
    процесс проверки безопасности должен начинаться в начале жизненного цикла приложения и продолжаться
    на протяжении всего своего развития.

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

    Часто задаваемые вопросы

    Какой алгоритм хеширования мне следует использовать?

    DO использование:

    НЕ используйте :

    • Быстрые криптографические хеш-функции, такие как MD5, SHA1, SHA256, SHA512, RipeMD, WHIRLPOOL, SHA3 и т. Д.
    • Небезопасные версии крипты (1 доллар, 2 доллара, 2 доллара, 3 доллара).
    • Любой алгоритм, который вы разработали самостоятельно. Используйте только те технологии, которые являются общественным достоянием и были хорошо протестированы опытными криптографами.

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

    Как разрешить пользователям сбрасывать пароль, если они его забыли?

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

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

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

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

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

    Что мне делать, если произошла утечка / взлом базы данных моей учетной записи?

    Ваша первая задача — определить, как была взломана система, и исправить
    уязвимость, которую использовал злоумышленник. Если у вас нет опыта
    реагируя на нарушения, я настоятельно рекомендую нанять стороннюю охранную фирму.

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

    Объясните своим пользователям, как именно были защищены их пароли — надеюсь
    с солью — и что, хотя они были защищены соленым
    хэш, злонамеренный хакер может по-прежнему проводить атаки по словарю и методом перебора
    хеши.Вредоносные хакеры будут использовать любые найденные пароли, чтобы попытаться войти в
    аккаунт пользователя на другом веб-сайте, надеясь, что они использовали тот же пароль на
    оба сайта. Сообщите своим пользователям об этом риске и порекомендуйте им изменить
    их пароль на любом веб-сайте или в сервисе, где они использовали аналогичный пароль.
    Заставьте их сменить пароль для вашей службы при следующем входе в систему.
    Большинство пользователей попытаются «сменить» свой пароль на исходный, чтобы получить
    вокруг принудительно меняют быстро. Используйте текущий хэш пароля, чтобы убедиться, что
    они не могут этого сделать.

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

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

    Какой должна быть моя политика паролей? Следует ли мне применять надежные пароли?

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

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

    Если злоумышленник имеет доступ к моей базе данных, не могут ли они просто заменить хэш моего пароля своим собственным хешем и логином?

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

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

    Почему я должен использовать специальный алгоритм, например HMAC? Почему я не могу просто добавить
    пароль к секретному ключу?

    Хеш-функции, такие как MD5, SHA1 и SHA2, используют
    Конструкция Меркла-Дамгарда, которая делает их уязвимыми для известных
    как атаки удлинения длины.Это означает, что при наличии хэша H (X) злоумышленник может
    найти значение H (pad (X) + Y) для любой другой строки Y, не зная X.
    pad (X) — это функция заполнения, используемая хешем.

    Это означает, что по хэшу H (ключ + сообщение) злоумышленник может вычислить H (pad (ключ +
    сообщение) + расширение), не зная ключа. Если хеш использовался как
    код аутентификации сообщения с использованием ключа, чтобы предотвратить проникновение злоумышленника
    может изменить сообщение и заменить его другим действительным хешем,
    система вышла из строя, поскольку у злоумышленника теперь есть действующий хеш сообщения +
    расширение.

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

    Должна ли соль стоять до или после пароля?

    Это не имеет значения, но выберите один и придерживайтесь его для обеспечения совместимости.
    Кажется, что соль появляется перед паролем.

    Почему хеш-код на этой странице сравнивает хеш-коды в
    «длина-константа»
    время?

    Сравнение хэшей за «постоянную длину» времени гарантирует, что
    злоумышленник не может извлечь хэш пароля в онлайн-системе, используя
    синхронизация атаки, а затем взломать ее в автономном режиме.

    Стандартный способ проверить, совпадают ли две последовательности байтов (строк):
    сравните первый байт, затем второй, затем третий и так далее. Как только
    вы найдете байт, который не является одинаковым для обеих строк, вы знаете, что они
    разные и могут сразу же дать отрицательный ответ.Если вы пройдете через
    обе строки, не обнаружив никаких различающихся байтов, вы знаете, что строки являются
    то же самое и может вернуть положительный результат. Это означает, что сравнение двух строк может
    занимает разное количество времени в зависимости от того, сколько строк совпадают.

    Например, стандартное сравнение строк «xyzabc» и
    «abcxyz» сразу увидит, что первый символ отличается
    и не стал бы проверять остальную часть строки. С другой стороны, когда
    строки «aaaaaaaaaaB» и «aaaaaaaaaaZ» сравниваются,
    алгоритм сравнения просматривает блок «а», прежде чем он определит
    струны неравные.

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

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

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

    Как работает код SlowEquals?

    Предыдущий вопрос объясняет, почему необходим SlowEquals, этот объясняет
    как на самом деле работает код.

    1. private static boolean slowEquals (byte [] a, byte [] b)
    2.»оператор для сравнения целых чисел на равенство вместо
    оператор «==». Причина объясняется ниже. Результат XORing
    два целых числа будут равны нулю тогда и только тогда, когда они точно такие же. Это
    потому что 0 XOR 0 = 0, 1 XOR 1 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1. Если мы применим это к
    все биты в обоих целых числах, результат будет нулевым, только если все биты
    совпадает.

    Итак, в первой строке, если a. Длина равна
    b.length , переменная diff получит нулевое значение, но если нет, она
    получит какое-то ненулевое значение.Затем мы сравниваем байты с помощью XOR и OR
    результат в diff. Это установит diff в ненулевое значение, если байты различаются.
    Поскольку операция ИЛИ никогда не сбрасывает биты, единственный способ diff будет равен нулю в конце
    цикл — если он был равен нулю до начала цикла (a.length == b.length) и все
    байтов в двух массивах совпадают (ни один из XOR не привел к ненулевому
    значение).

    Причина, по которой нам нужно использовать XOR вместо оператора «==» для сравнения целых чисел
    состоит в том, что «==» обычно переводится / компилируется / интерпретируется как ветка.b «должен компилироваться во что-то вроде
    следующие, время выполнения которых не зависит от равенства
    целые числа:

    MOV EAX, [A]
    XOR EAX, [B]
    OR [DIFF], EAX

    Зачем заморачиваться с хешированием?

    Ваши пользователи вводят свой пароль на ваш сайт. Они тебе доверяют
    с их безопасностью. Если ваша база данных взломана, а пароли ваших пользователей
    незащищенный, то злонамеренные хакеры могут использовать эти пароли для взлома вашего
    учетные записи пользователей на других сайтах и ​​сервисах (большинство людей используют те же
    пароль везде).Под угрозой находится не только ваша безопасность, это ваша
    пользователей. Вы несете ответственность за безопасность своих пользователей.

    Понимание, почему терминал не позволяет вводить пароль

    Иногда вам нужно ввести пароль в терминал, обычно для команд sudo или su, что позволяет пользователям выполнять команду с привилегиями суперпользователя. Это довольно типично для разрешения доступа на чтение или изменение чего-либо, что в противном случае было бы невозможно со стандартной учетной записью пользователя.Обычно вы увидите, что sudo префикс другой команды, что-то вроде «sudo nano / etc / hosts». Хотя большая часть командной строки и sudo обычно подходит только для опытных пользователей, иногда более случайным пользователям компьютеров может потребоваться обратиться к Терминалу, возможно, для включения функции, изменения системного файла или даже для устранения неполадок. Для начинающих пользователей, которые попадают в командную строку, очень часто возникает вопрос, связанный с вводом паролей в Терминал, почти всегда связанный с sudo и очевидной невозможностью ввести пароль в командную строку Mac OS X (или Linux для это важно).

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

    Если это звучит сбивающе с толку, это совсем не так, вот как это работает на практике. Допустим, вы выполняете команду, которая требует доступа sudo, в результате чего появляется знакомая запись «Пароль:».

    % sudo cat /etc/secret.conf
    Пароль:

    Когда появится запрос «Пароль:», все равно введите пароль, даже если ничего не отображается , затем нажмите «Return», когда закончите.Опять же, нет никаких указаний на то, что вводится пароль, и это сделано намеренно.

    Итак, давайте снова рассмотрим предыдущий пример команды, представив, что пароль администратора на этом конкретном компьютере — «Monkey123», вы должны ввести этот пароль, как он запрашивается, несмотря на то, что он вообще не отображается, то есть последовательность будет примерно такой:

    % sudo cat /etc/secret.conf
    Пароль: Monkey123 (нажмите клавишу возврата)

    Это выполнит команду.И нет, Monkey123 (или какой-либо другой пароль администратора) не будет отображаться на экране, также как и звездочки или маркеры.

    Чтобы быть на 100% абсолютно ясным:

    Пароли терминала не отображаются при вводе в качестве меры безопасности, все равно введите пароль при запросе и нажмите return

    При вводе пароля и нажатии клавиши «возврат» будет отправлен пароль для аутентификации, и, если пароль был введен правильно, команда будет выполняться должным образом.

    Обычно пользователю достаточно испытать это один или два раза, чтобы понять, как это работает, но это остается большим вопросом для пользователей, которые только начинают знакомиться с командной строкой. А как только вы узнаете, вы можете передать знания другим, поэтому, если кто-то спросит вас: «Почему Терминал не позволяет мне вводить пароль?», Вы можете ответить им и объяснить это.

    Для тех, кому интересно, да, это поведение по умолчанию можно изменить, чтобы отображать звездочки для каждого символа, введенного в качестве пароля в командной строке, для sudo, su или чего-то еще, что вы делаете.Тем не менее, вносить это изменение не рекомендуется, и мы не собираемся описывать это в этой конкретной статье … возможно, в будущем, если в этом будет заинтересованность.

    Что вы думаете об этой мере безопасности, которая скрывает длину пароля и ввод в Терминале? Долгое время это было стандартной практикой для мира unix, но считаете ли вы это полезным и на Mac? Сообщите нам свои мысли в комментариях ниже.

    Связанные

    % PDF-1.3
    %
    689 0 объект
    >
    endobj

    xref
    689 352
    0000000016 00000 н.
    0000010251 00000 п.
    0000010818 00000 п.
    0000010947 00000 п.
    0000011103 00000 п.
    0000013706 00000 п.
    0000013757 00000 п.
    0000014146 00000 п.
    0000014258 00000 п.
    0000014351 00000 п.
    0000014621 00000 п.
    0000015123 00000 п.
    0000015581 00000 п.
    0000016049 00000 п.
    0000016170 00000 п.
    0000016316 00000 п.
    0000016379 00000 п.
    0000016430 00000 п.
    0000016480 00000 п.
    0000016529 00000 п.
    0000016578 00000 п.
    0000016629 00000 п.
    0000016679 00000 п.
    0000016730 00000 п.
    0000016781 00000 п.
    0000016832 00000 п.
    0000016883 00000 п.
    0000016934 00000 п.
    0000016985 00000 п.
    0000017036 00000 п.
    0000017087 00000 п.
    0000017137 00000 п.
    0000017187 00000 п.
    0000017238 00000 п.
    0000017289 00000 п.
    0000017339 00000 п.
    0000017390 00000 п.
    0000017441 00000 п.
    0000017491 00000 п.
    0000017542 00000 п.
    0000017593 00000 п.
    0000017643 00000 п.
    0000017693 00000 п.
    0000017744 00000 п.
    0000017794 00000 п.
    0000017844 00000 п.
    0000017895 00000 п.
    0000017945 00000 п.
    0000017996 00000 н.
    0000018046 00000 п.
    0000018096 00000 п.
    0000018147 00000 п.
    0000018197 00000 п.
    0000018248 00000 п.
    0000018298 00000 п.
    0000018348 00000 п.
    0000018399 00000 п.
    0000018450 00000 п.
    0000018500 00000 п.
    0000018551 00000 п.
    0000018602 00000 п.
    0000018653 00000 п.
    0000018704 00000 п.
    0000018754 00000 п.
    0000018803 00000 п.
    0000018852 00000 п.
    0000018902 00000 п.
    0000018952 00000 п.
    0000019002 00000 п.
    0000019052 00000 п.
    0000019103 00000 п.
    0000019154 00000 п.
    0000019205 00000 п.
    0000019255 00000 п.
    0000019306 00000 п.
    0000019356 00000 п.
    0000019406 00000 п.
    0000019456 00000 п.
    0000019506 00000 п.
    0000019769 00000 п.
    0000020151 00000 п.
    0000020402 00000 п.
    0000020516 00000 п.
    0000025257 00000 п.
    0000025370 00000 п.
    0000029211 00000 п.
    0000029723 00000 п.
    0000030453 00000 п.
    0000030721 00000 п.
    0000030748 00000 п.
    0000031395 00000 п.
    0000031540 00000 п.
    0000032021 00000 п.
    0000035265 00000 п.
    0000039767 00000 п.
    0000040269 00000 п.
    0000040658 00000 п.
    0000040747 00000 п.
    0000041218 00000 п.
    0000045390 00000 п.
    0000045504 00000 п.
    0000049523 00000 п.
    0000049910 00000 н.
    0000050025 00000 п.
    0000050280 00000 п.
    0000054504 00000 п.
    0000054990 00000 п.
    0000060131 00000 п.
    0000215267 00000 н.
    0001012648 00000 п.
    0001012957 00000 п.
    0001013452 00000 п.
    0001017450 00000 п.
    0001026061 00000 п.
    0001026292 00000 п.
    0001037745 00000 п.
    0001037783 00000 п.
    0001043597 00000 п.
    0001043793 00000 п.
    0001070305 00000 п.
    0001070512 00000 п.
    0001070592 00000 п.
    0001070681 00000 п.
    0001071042 00000 п.
    0001071247 00000 п.
    0001071314 00000 п.
    0001071359 00000 п.
    0001071705 00000 п.
    0001071829 00000 п.
    0001071893 00000 п.
    0001072017 00000 п.
    0001072081 00000 п.
    0001083527 00000 п.
    0001083787 00000 п.
    0001084067 00000 п.
    0001084563 00000 п.
    0001084627 00000 п.
    0001085467 00000 п.
    0001085531 00000 п.
    0001086047 00000 п.
    0001086111 00000 п.
    0001086477 00000 п.
    0001086541 00000 п.
    0001086906 00000 п.
    0001086970 00000 п.
    0001087336 00000 п.
    0001087400 00000 п.
    0001087766 00000 п.
    0001087830 00000 п.
    0001088328 00000 п.
    0001088392 00000 п.
    0001089243 00000 п.
    0001089307 00000 п.
    0001089825 00000 п.
    0001089889 00000 п.
    00010

    00000 п.
    00010 00000 п.
    00010
    00000 п.
    00010 00000 п.
    0001091413 00000 п.
    0001091477 00000 п.
    0001092491 00000 п.
    0001092561 00000 п.
    0001093077 00000 п.
    0001093141 00000 п.
    0001093663 00000 п.
    0001093727 00000 п.
    0001094398 00000 п.
    0001094462 00000 п.
    0001094931 00000 п.
    0001094995 00000 п.
    0001095511 00000 п.
    0001095575 00000 п.
    0001095942 00000 п.
    0001096006 00000 п.
    0001096359 00000 п.
    0001096423 00000 п.
    0001096777 00000 п.
    0001096841 00000 п.
    0001097195 00000 п.
    0001097259 00000 п.
    0001097774 00000 п.
    0001097838 00000 п.
    0001098192 00000 п.
    0001098256 00000 п.
    0001098622 00000 п.
    0001098686 00000 п.
    0001098750 00000 п.
    0001098814 00000 п.
    0001099331 00000 п.
    0001099395 00000 п.
    0001099916 00000 п.
    0001099980 00000 п.
    0001100650 00000 п.
    0001100714 00000 п.
    0001101182 00000 п.
    0001101915 00000 п.
    0001102007 00000 п.
    0001114687 00000 п.
    0001114969 00000 п.
    0001115554 00000 п.
    0001115795 00000 п.
    0001116038 00000 п.
    0001116260 00000 п.
    0001116371 00000 п.
    0001119622 00000 п.
    0001125217 00000 п.
    0001125271 00000 п.
    0001125659 00000 п.
    0001125760 00000 п.
    0001130060 00000 п.
    0001149170 00000 п.
    0001150176 00000 п.
    0001150417 00000 п.
    0001150528 00000 п.
    0001150582 00000 п.
    0001150981 00000 п.
    0001151193 00000 п.
    0001151630 00000 п.
    0001152068 00000 п.
    0001152417 00000 п.
    0001152656 00000 п.
    0001152896 00000 п.
    0001153181 00000 п.
    0001153435 00000 п.
    0001153573 00000 п.
    0001153916 00000 п.
    0001154229 00000 п.
    0001154479 00000 п.
    0001154721 00000 п.
    0001154995 00000 п.
    0001155210 00000 п.
    0001155458 00000 п.
    0001155736 00000 п.
    0001155990 00000 п.
    0001156265 00000 п.
    0001156523 00000 п.
    0001156792 00000 п.
    0001157047 00000 п.
    0001157274 00000 п.
    0001157549 00000 п.
    0001157803 00000 п.
    0001158078 00000 п.
    0001158334 00000 п.
    0001158590 00000 п.
    0001158845 00000 п.
    0001159170 00000 п.
    0001159439 00000 п.
    0001159616 00000 п.
    0001160013 00000 пн
    0001160425 00000 п.
    0001160826 00000 п.
    0001161240 00000 п.
    0001161417 00000 п.
    0001161496 00000 п.
    0001161626 00000 п.
    0001161751 00000 п.
    0001161898 00000 п.
    0001162298 00000 п.
    0001162711 00000 п.
    0001162935 00000 п.
    0001163290 00000 п.
    0001163402 00000 пн
    0001163634 00000 п.
    0001163779 00000 п.
    0001167437 00000 п.
    0001167770 00000 п.
    0001168597 00000 п.
    0001168909 00000 п.
    0001169125 00000 п.
    0001169341 00000 п.
    00013 00000 п.
    0001472948 00000 п.
    0001474980 00000 п.
    0001475614 00000 п.
    0001483951 00000 п.
    0001485923 00000 п.
    0001511915 00000 пн
    0001512880 00000 пн
    0001516304 00000 п.
    0001517776 00000 п.
    0001518460 00000 п.
    0001525285 00000 п.
    0001527774 00000 н.
    0002131054 00000 п.
    0002143976 00000 п.
    0002144455 00000 п.
    0002146467 00000 п.
    0002152821 00000 п.
    0002153750 00000 п.
    0002160014 00000 п.
    0002162449 00000 п.
    0002783559 00000 н.
    0002787700 00000 н.
    0002815353 00000 п.
    0002836357 00000 п.
    0002983551 00000 п.
    0003065964 00000 п.
    0003140923 00000 п.
    0003223734 00000 п.
    0003285749 00000 п.
    00032

    00000 н.
    0003372200 00000 п.
    0003446102 00000 п.
    0003514527 00000 п.
    0003587891 00000 п.
    0003588290 00000 п.
    0003588738 00000 п.
    0003589209 00000 п.
    0003589582 00000 п.
    0003589981 00000 п.
    0003651870 00000 пн
    0003652323 00000 пн
    0003652702 00000 пн
    0003653004 00000 п.
    0003653459 00000 п.
    0003653838 00000 п.
    0003654303 00000 пн
    0003654724 00000 пн
    0003655209 00000 пн
    0003655581 00000 п.
    0003665588 00000 п.
    0003666021 00000 п.
    0003666396 00000 п.
    0003666835 00000 п.
    0003667208 00000 н.
    0003667758 00000 п.
    0003668148 00000 п.
    0003668534 00000 п.
    0003669080 00000 п.
    0003669507 00000 пн
    0003670313 00000 п.
    0003671984 00000 н.
    0003686336 00000 п.
    0003730025 00000 п.
    0003738500 00000 п.
    0003743612 00000 п.
    0003745982 00000 п.
    0003746372 00000 п.
    0003746608 00000 п.
    0003747037 00000 п.
    0003747593 00000 п.
    0003748100 00000 n
    0003750315 00000 п.
    0003750823 00000 п.
    0003757198 00000 п.
    0003757725 00000 п.
    0003759941 00000 п.
    0003763767 00000 п.
    0003764274 00000 п.
    0003765197 00000 п.
    0000007336 00000 н.
    трейлер
    ] / Назад 17878334 >>
    startxref
    0
    %% EOF

    1040 0 объект
    > поток
    hXyXSW? eE @ v $ E
    HΨN &.Հ «hq | a» b
    X, vVfjk @ DG (ZJ ~ q گ = 3 㼻 w; —

    % PDF-1.3
    %
    12254 0 объект
    >
    endobj
    xref
    12254 2363
    0000000016 00000 н.
    0000065951 00000 п.
    0000066316 00000 п.
    0000066453 00000 п.
    0000096223 00000 п.
    0000096366 00000 п.
    0000096420 00000 н.
    0000096475 00000 п.
    0000096530 00000 п.
    0000096585 00000 п.
    0000096640 00000 п.
    0000096695 00000 п.
    0000096749 00000 п.
    0000096803 00000 п.
    0000096858 00000 п.
    0000097235 00000 п.
    0000097423 00000 п.
    0000097477 00000 п.
    0000097531 00000 п.
    0000097701 00000 п.
    0000097885 00000 п.
    0000098075 00000 п.
    0000098128 00000 п.
    0000098181 00000 п.
    0000098235 00000 п.
    0000098288 00000 п.
    0000098341 00000 п.
    0000098401 00000 п.
    0000098455 00000 п.
    0000098508 00000 п.
    0000098562 00000 п.
    0000098616 00000 п.
    0000098670 00000 п.
    0000098723 00000 п.
    0000098778 00000 п.
    0000098832 00000 п.
    0000098886 00000 п.
    0000098940 00000 п.
    0000098994 00000 п.
    0000099049 00000 н.
    0000099102 00000 п.
    0000099157 00000 п.
    0000099211 00000 п.
    0000099265 00000 п.
    0000099320 00000 н.
    0000099374 00000 п.
    0000099428 00000 н.
    0000099482 00000 н.
    0000099536 00000 н.
    0000099590 00000 н.
    0000099643 00000 п.
    0000099697 00000 п.
    0000099751 00000 п.
    0000099805 00000 п.
    0000099858 00000 п.
    0000099912 00000 н.
    0000099966 00000 н.
    0000100019 00000 п.
    0000100072 00000 н.
    0000100125 00000 н.
    0000100179 00000 н.
    0000100234 00000 н.
    0000100288 00000 н.
    0000100342 00000 н.
    0000100396 00000 н.
    0000100450 00000 н.
    0000100504 00000 н.
    0000100558 00000 н.
    0000100612 00000 н.
    0000100667 00000 н.
    0000100721 ​​00000 н.
    0000100776 00000 п.
    0000100830 00000 н.
    0000100884 00000 н.
    0000100938 00000 п.
    0000100992 00000 н.
    0000101046 00000 н.
    0000101120 00000 н.
    0000101174 00000 н.
    0000101228 00000 н.
    0000101282 00000 н.
    0000101336 00000 н.
    0000101391 00000 н.
    0000101446 00000 н.
    0000101500 00000 н.
    0000101554 00000 н.
    0000101608 00000 н.
    0000101662 00000 н.
    0000101717 00000 н.
    0000101772 00000 н.
    0000101826 00000 н.
    0000101881 00000 н.
    0000101935 00000 н.
    0000101989 00000 н.
    0000102042 00000 н.
    0000102158 00000 п.
    0000102211 00000 н.
    0000102266 00000 н.
    0000102320 00000 н.
    0000102375 00000 п.
    0000102427 00000 н.
    0000102480 00000 н.
    0000102535 00000 н.
    0000102589 00000 н.
    0000102644 00000 п.
    0000102698 00000 н.
    0000102751 00000 п.
    0000102804 00000 п.
    0000102857 00000 н.
    0000102911 00000 н.
    0000102966 00000 н.
    0000103019 00000 н.
    0000103071 00000 н.
    0000103124 00000 п.
    0000103176 00000 п.
    0000103229 00000 н.
    0000103282 00000 н.
    0000103335 00000 н.
    0000103388 00000 н.
    0000103443 00000 п.
    0000103496 00000 н.
    0000103549 00000 н.
    0000103602 00000 п.
    0000103654 00000 п.
    0000103707 00000 н.
    0000103759 00000 п.
    0000103812 00000 н.
    0000103864 00000 н.
    0000103917 00000 н.
    0000103971 00000 н.
    0000104025 00000 н.
    0000104078 00000 п.
    0000104130 00000 н.
    0000104183 00000 п.
    0000104235 00000 п.
    0000104288 00000 п.
    0000104341 00000 п.
    0000104393 00000 п.
    0000104447 00000 н.
    0000104499 00000 н.
    0000104552 00000 п.
    0000104606 00000 н.
    0000104658 00000 п.
    0000104710 00000 н.
    0000104765 00000 н.
    0000104817 00000 н.
    0000104870 00000 н.
    0000104923 00000 п.
    0000104977 00000 н.
    0000105030 00000 н.
    0000105144 00000 п.
    0000105197 00000 п.
    0000105251 00000 п.
    0000105305 00000 н.
    0000105358 00000 п.
    0000105410 00000 п.
    0000105463 00000 п.
    0000105515 00000 н.
    0000105567 00000 н.
    0000105619 00000 п.
    0000105674 00000 н.
    0000105726 00000 н.
    0000105780 00000 н.
    0000105834 00000 п.
    0000105889 00000 н.
    0000105942 00000 н.
    0000105994 00000 н.
    0000106047 00000 н.
    0000106099 00000 н.
    0000106152 00000 п.
    0000106206 00000 н.
    0000106259 00000 п.
    0000106313 00000 п.
    0000106366 00000 н.
    0000106419 00000 н.
    0000106474 00000 н.
    0000106529 00000 н.
    0000106583 00000 н.
    0000106637 00000 н.
    0000106690 00000 н.
    0000106744 00000 н.
    0000106797 00000 н.
    0000106852 00000 н.
    0000106906 00000 п.
    0000106959 00000 п.
    0000107011 00000 п.
    0000107064 00000 н.
    0000107117 00000 н.
    0000107171 00000 н.
    0000107224 00000 н.
    0000107277 00000 н.
    0000107330 00000 н.
    0000107382 00000 н.
    0000107436 00000 н.
    0000107490 00000 н.
    0000107543 00000 п.
    0000107598 00000 п.
    0000107651 00000 н.
    0000107705 00000 н.
    0000107757 00000 н.
    0000107811 00000 п.
    0000107866 00000 п.
    0000107919 00000 п.
    0000107974 00000 п.
    0000108026 00000 н.
    0000108081 00000 п.
    0000108135 00000 п.
    0000108187 00000 п.
    0000108242 00000 н.
    0000108294 00000 н.
    0000108348 00000 п.
    0000108401 00000 п.
    0000108455 00000 н.
    0000108508 00000 н.
    0000108563 00000 н.
    0000108616 00000 п.
    0000108671 00000 н.
    0000108723 00000 п.
    0000108775 00000 п.
    0000108829 00000 н.
    0000108882 00000 н.
    0000108936 00000 н.
    0000108989 00000 н.
    0000109043 00000 н.
    0000109096 00000 н.
    0000109150 00000 н.
    0000109203 00000 н.
    0000109258 00000 н.
    0000109312 00000 п.
    0000109365 00000 п.
    0000109419 00000 п.
    0000109472 00000 п.
    0000109524 00000 н.
    0000109577 00000 н.
    0000109630 00000 н.
    0000109683 00000 п.
    0000109735 00000 п.
    0000109787 00000 н.
    0000109842 00000 п.
    0000109895 00000 п.
    0000109948 00000 н.
    0000110001 00000 н.
    0000110054 00000 н.
    0000110107 00000 н.
    0000110160 00000 п.
    0000110214 00000 п.
    0000110267 00000 н.
    0000110321 00000 п.
    0000110374 00000 п.
    0000110428 00000 н.
    0000110483 00000 п.
    0000110538 00000 п.
    0000110590 00000 н.
    0000110644 00000 п.
    0000110697 00000 п.
    0000110751 00000 п.
    0000110804 00000 н.
    0000110856 00000 н.
    0000110910 00000 п.
    0000110963 00000 н.
    0000111016 00000 н.
    0000111071 00000 н.
    0000111123 00000 н.
    0000111175 00000 н.
    0000111229 00000 н.
    0000111282 00000 н.
    0000111336 00000 н.
    0000111389 00000 н.
    0000111444 00000 н.
    0000111497 00000 н.
    0000111549 00000 н.
    0000111601 00000 н.
    0000111656 00000 н.
    0000111710 00000 н.
    0000111762 00000 н.
    0000111814 00000 н.
    0000111866 00000 н.
    0000111920 00000 н.
    0000111973 00000 н.
    0000112028 00000 н.
    0000112080 00000 н.
    0000112135 00000 н.
    0000112187 00000 н.
    0000112241 00000 н.
    0000112294 00000 н.
    0000112346 00000 н.
    0000112398 00000 н.
    0000112450 00000 н.
    0000112503 00000 н.
    0000112556 00000 н.
    0000112608 00000 н.
    0000112661 00000 н.
    0000112716 00000 н.
    0000112768 00000 н.
    0000112822 00000 н.
    0000112875 00000 н.
    0000112927 00000 н.
    0000112980 00000 н.
    0000113032 00000 н.
    0000113086 00000 н.
    0000113139 00000 п.
    0000113193 00000 п.
    0000113247 00000 н.
    0000113300 00000 н.
    0000113354 00000 п.
    0000113407 00000 н.
    0000113461 00000 н.
    0000113514 00000 н.
    0000113567 00000 н.
    0000113619 00000 н.
    0000113673 00000 н.
    0000113727 00000 н.
    0000113780 00000 н.
    0000113834 00000 п.
    0000113888 00000 н.
    0000113940 00000 н.
    0000113994 00000 н.
    0000114047 00000 н.
    0000114099 00000 н.
    0000114151 00000 п.
    0000114206 00000 н.
    0000114260 00000 н.
    0000114313 00000 н.
    0000114368 00000 н.
    0000114420 00000 н.
    0000114474 00000 н.
    0000114527 00000 н.
    0000114580 00000 н.
    0000114633 00000 н.
    0000114686 00000 н.
    0000114738 00000 н.
    0000114791 00000 н.
    0000114843 00000 н.
    0000114895 00000 н.
    0000114949 00000 н.
    0000115002 00000 н.
    0000115055 00000 н.
    0000115107 00000 н.
    0000115160 00000 н.
    0000115212 00000 н.
    0000115264 00000 н.
    0000115317 00000 н.
    0000115372 00000 н.
    0000115424 00000 н.
    0000115476 00000 н.
    0000115530 00000 н.
    0000115583 00000 н.
    0000115637 00000 н.
    0000115689 00000 н.
    0000115743 00000 н.
    0000115795 00000 н.
    0000115847 00000 н.
    0000115901 00000 н.
    0000115954 00000 н.
    0000116009 00000 н.
    0000116063 00000 н.
    0000116117 00000 н.
    0000116170 00000 н.
    0000116225 00000 н.
    0000116279 00000 н.
    0000116333 00000 п.
    0000116386 00000 н.
    0000116440 00000 н.
    0000116494 00000 н.
    0000116547 00000 н.
    0000116602 00000 н.
    0000116654 00000 н.
    0000116707 00000 н.
    0000116759 00000 н.
    0000116811 00000 н.
    0000116863 00000 н.
    0000116917 00000 н.
    0000116970 00000 н.
    0000117023 00000 н.
    0000117076 00000 н.
    0000117130 00000 н.
    0000117185 00000 н.
    0000117237 00000 н.
    0000117289 00000 н.
    0000117344 00000 н.
    0000117399 00000 н.
    0000117454 00000 н.
    0000117509 00000 н.
    0000117563 00000 н.
    0000117616 00000 н.
    0000117671 00000 н.
    0000117725 00000 н.
    0000117780 00000 н.
    0000117834 00000 н.
    0000117888 00000 н.
    0000117941 00000 п.
    0000117994 00000 н.
    0000118048 00000 н.
    0000118102 00000 п.
    0000118156 00000 н.
    0000118209 00000 н.
    0000118263 00000 н.
    0000118316 00000 н.
    0000118371 00000 н.
    0000118425 00000 н.
    0000118479 00000 н.
    0000118533 00000 н.
    0000118587 00000 н.
    0000118642 00000 н.
    0000118697 00000 н.
    0000118752 00000 н.
    0000118806 00000 н.
    0000118860 00000 н.
    0000118914 00000 н.
    0000118968 00000 н.
    0000119022 00000 н.
    0000147601 00000 н.
    0000147752 00000 н.
    0000147892 00000 н.
    0000148368 00000 н.
    0000148654 00000 н.
    0000149230 00000 н.
    0000152873 00000 н.
    0000153116 00000 н.
    0000153531 00000 н.
    0000153798 00000 н.
    0000154077 00000 н.
    0000154363 00000 н.
    0000154837 00000 н.
    0000155219 00000 п.
    0000155947 00000 н.
    0000156408 00000 н.
    0000156439 00000 н.
    0000157125 00000 н.
    0000157240 00000 н.
    0000157271 00000 н.
    0000186972 00000 н.
    0000187123 00000 н.
    0000187276 00000 н.
    0000187494 00000 н.
    0000187693 00000 п.
    0000187953 00000 н.
    0000188365 00000 н.
    0000188749 00000 н.
    0000188958 00000 н.
    0000189432 00000 н.
    0000189552 00000 н.
    0000189593 00000 н.
    0000189745 00000 н.
    0000189872 00000 н.
    00001

    00000 н.
    00001

  • 00000 н.
    00001
    00000 н.
    0000191180 00000 н.
    0000191464 00000 н.
    0000191495 00000 н.
    0000191727 00000 н.
    0000192091 00000 н.
    0000228523 00000 н.
    0000228553 00000 н.
    0000249198 00000 н.
    0000266821 00000 н.
    0000284373 00000 п.
    0000308357 00000 н.
    0000308574 00000 н.
    0000311423 00000 п.
    0000311655 00000 н.
    0000312720 00000 н.
    0000313766 00000 н.
    0000313994 00000 н.
    0000314263 00000 н.
    0000314481 00000 н.
    0000315103 00000 п.
    0000315330 00000 н.
    0000315952 00000 н.
    0000316211 00000 н.
    0000316438 00000 н.
    0000317673 00000 н.
    0000319978 00000 п.
    0000320233 00000 н.
    0000320516 00000 н.
    0000320765 00000 н.
    0000321139 00000 н.
    0000321487 00000 н.
    0000323193 00000 н.
    0000324834 00000 н.
    0000326123 00000 н.
    0000326555 00000 н.
    0000327750 00000 н.
    0000327964 00000 н.
    0000328185 00000 н.
    0000328407 00000 н.
    0000328632 00000 н.
    0000328857 00000 н.
    0000378893 00000 н.
    0000379081 00000 н.
    0000379291 00000 н.
    0000379514 00000 н.
    0000379726 00000 н.
    0000379985 00000 н.
    0000381477 00000 н.
    0000381682 00000 н.
    0000381902 00000 н.
    0000382126 00000 н.
    0000382498 00000 н.
    0000382719 00000 н.
    0000384346 00000 п.
    0000384558 00000 н.
    0000384779 00000 н.
    0000385001 00000 п.
    0000385206 00000 н.
    0000386006 00000 п.
    0000387635 00000 н.
    0000387857 00000 н.
    0000388071 00000 н.
    0000389254 00000 н.
    0000389463 00000 п.
    0000389668 00000 н.
    0000389885 00000 н.
    00003
  • 00000 н.
    00003
    00000 н.
    00003

    00000 н.
    00003 00000 н.
    0000392795 00000 н.
    0000398495 00000 н.
    0000398718 00000 н.
    0000398932 00000 н.
    0000399149 00000 н.
    0000399359 00000 н.
    0000399577 00000 н.
    0000399797 00000 н.
    0000400026 00000 н.
    0000400255 00000 н.
    0000400460 00000 н.
    0000400674 00000 н.
    0000400889 00000 н.
    0000401114 00000 н.
    0000401323 00000 н.
    0000401545 00000 н.
    0000401762 00000 н.
    0000401988 00000 н.
    0000402208 00000 н.
    0000402431 00000 н.
    0000402658 00000 н.
    0000402872 00000 н.
    0000403094 00000 н.
    0000403299 00000 н.
    0000403508 00000 н.
    0000403723 00000 н.
    0000403928 00000 н.
    0000404151 00000 п.
    0000404360 00000 н.
    0000404583 00000 н.
    0000404806 00000 н.
    0000405036 00000 н.
    0000405252 00000 н.
    0000405472 00000 н.
    0000405693 00000 п.
    0000406009 00000 н.
    0000406236 00000 п.
    0000406448 00000 н.
    0000406680 00000 н.
    0000406907 00000 н.
    0000407134 00000 н.
    0000407346 00000 п.
    0000407570 00000 н.
    0000407795 00000 н.
    0000408065 00000 н.
    0000408280 00000 н.
    0000408490 00000 н.
    0000408701 00000 н.
    0000408916 00000 н.
    0000409124 00000 н.
    0000409339 00000 н.
    0000409564 00000 н.
    0000409786 00000 н.
    0000410000 00000 н.
    0000410212 00000 п.
    0000410429 00000 п.
    0000410661 00000 п.
    0000410888 00000 п.
    0000411104 00000 п.
    0000411329 00000 н.
    0000411540 00000 п.
    0000411758 00000 п.
    0000411983 00000 п.
    0000412202 00000 н.
    0000412416 00000 н.
    0000412625 00000 н.
    0000412837 00000 н.
    0000413052 00000 н.
    0000413278 00000 н.
    0000413488 00000 н.
    0000413704 00000 н.
    0000413924 00000 н.
    0000414140 00000 н.
    0000414367 00000 н.
    0000414589 00000 н.
    0000414797 00000 н.
    0000415053 00000 н.
    0000415275 00000 н.
    0000415484 00000 н.
    0000434102 00000 п.
    0000434154 00000 п.
    0000434387 00000 п.
    0000434443 00000 п.
    0000434495 00000 н.
    0000927168 00000 н.
    0000927240 00000 н.
    0000927334 00000 н.
    0000941294 00000 н.
    0000941582 00000 н.
    0000942176 00000 п.
    0000942232 00000 н.
    0000942284 00000 н.
    0000942356 00000 п.
    0000942412 00000 н.
    0000942464 00000 н.
    0000942555 00000 н.
    0000950689 00000 н.
    0000950745 00000 н.
    0000950797 00000 п.
    0000951088 00000 н.
    0000951144 00000 н.
    0000951196 00000 н.
    0000951684 00000 н.
    0000973041 00000 н.
    0000982022 00000 н.
    0000988462 00000 п.
    0000994456 00000 н.
    0000998956 00000 н.
    0000999038 00000 н.
    0000999094 00000 н.
    0000999146 00000 н.
    0000999237 00000 н.
    0000999293 00000 н.
    0000999345 00000 н.
    0000999401 00000 н.
    0000999457 00000 н.
    0000999509 00000 н.
    0000999561 00000 н.
    0000999617 00000 н.
    0000999669 00000 н.
    0000999729 00000 н.
    0000999785 00000 н.
    0000999837 00000 н.
    0000999889 00000 н.
    0000999945 00000 н.
    0000999997 00000 н.
    0001000053 00000 п.
    0001000105 00000 п.
    0001000165 00000 п.
    0001000221 00000 п.
    0001000273 00000 п.
    0001000325 00000 п.
    0001000385 00000 п.
    0001000437 00000 п.
    0001000493 00000 п.
    0001000545 00000 п.
    0001000601 00000 п.
    0001000653 00000 п.
    0001000912 00000 п.
    0001001039 00000 п.
    0001001433 00000 n
    0001001493 00000 п.
    0001001841 00000 п.
    0001001970 00000 n
    0001002177 00000 п.
    0001002548 00000 n
    0001002875 00000 п.
    0001003582 00000 п.
    0001003638 00000 п.
    0001003690 00000 н.
    0001004311 00000 п.
    0001004437 00000 п.
    0001004562 00000 п.
    0001004701 00000 п.
    0001004757 00000 п.
    0001004809 00000 п.
    0001005160 00000 н.
    0001005216 00000 п.
    0001005268 00000 п.
    0001005405 00000 п.
    0001005465 00000 п.
    0001005578 00000 п.
    0001005701 00000 п.
    0001005766 00000 п.
    0001005835 00000 п.
    0001005891 00000 п.
    0001005943 00000 п.
    0001006012 00000 п.
    0001006068 00000 п.
    0001006120 00000 n
    0001006239 00000 п.
    0001006367 00000 п.
    0001006439 00000 п.
    0001006528 00000 п.
    0001013288 00000 п.
    0001013583 00000 п.
    0001013982 00000 п.
    0001014038 00000 п.
    0001014094 00000 п.
    0001014146 00000 п.
    0001014198 00000 п.
    0001014270 00000 п.
    0001014369 00000 п.
    0001027548 00000 п.
    0001027819 00000 п.
    0001028209 00000 п.
    0001028261 00000 п.
    0001028317 00000 п.
    0001030949 00000 п.
    0001031001 00000 п.
    0001031057 00000 п.
    0001031110 00000 п.
    0001031166 00000 п.
    0001031222 00000 п.
    0001031274 00000 п.
    0001031326 00000 п.
    0001031382 00000 п.
    0001031434 00000 п.
    0001031490 00000 п.
    0001031542 00000 п.
    0001031598 00000 п.
    0001031650 00000 п.
    0001031706 00000 п.
    0001031762 00000 п.
    0001031815 00000 п.
    0001031867 00000 п.
    0001031923 00000 п.
    0001031975 00000 п.
    0001032031 00000 п.
    0001032083 00000 п.
    0001032139 00000 п.
    0001032195 00000 п.
    0001032251 00000 п.
    0001032303 00000 п.
    0001032363 00000 п.
    0001032423 00000 п.
    0001032475 00000 п.
    0001032531 00000 п.
    0001032591 00000 п.
    0001032643 00000 п.
    0001032703 00000 п.
    0001032763 00000 п.
    0001032815 00000 п.
    0001032875 00000 п.
    0001032931 00000 п.
    0001032983 00000 п.
    0001033039 00000 п.
    0001033095 00000 п.
    0001033151 00000 п.
    0001033207 00000 п.
    0001033259 00000 п.
    0001033315 00000 п.
    0001033375 00000 п.
    0001033427 00000 п.
    0001033479 00000 п.
    0001033686 00000 п.
    0001033759 00000 п.
    0001033895 00000 п.
    0001034030 00000 п.
    0001034169 00000 п.
    0001034242 00000 п.
    0001034826 00000 п.
    0001035094 00000 п.
    0001035354 00000 п.
    0001035601 00000 п.
    0001035769 00000 п.
    0001036221 00000 п.
    0001036286 00000 п.
    0001036673 00000 п.
    0001036791 00000 п.
    0001036910 00000 п.
    0001037322 00000 п.
    0001037503 00000 п.
    0001037681 00000 п.
    0001037858 00000 п.
    0001038101 00000 п.
    0001038321 00000 п.
    0001038431 00000 п.
    0001038632 00000 п.
    0001038742 00000 п.
    0001038940 00000 п.
    0001039145 00000 п.
    0001039291 00000 п.
    0001039364 00000 п.
    0001039433 00000 п.
    0001039502 00000 п.
    0001039635 00000 п.
    0001040016 00000 п.
    0001040127 00000 п.
    0001040397 00000 п.
    0001040660 00000 п.
    0001040927 00000 п.
    0001041194 00000 п.
    0001041460 00000 п.
    0001041719 00000 п.
    0001042157 00000 п.
    0001042450 00000 п.
    0001042936 00000 п.
    0001043100 00000 п.
    0001043414 00000 п.
    0001043535 00000 п.
    0001043699 00000 п.
    0001043908 00000 п.
    0001044154 00000 п.
    0001044194 00000 п.
    0001044363 00000 п.
    0001044526 00000 п.
    0001044681 00000 п.
    0001044824 00000 п.
    0001045240 00000 п.
    0001045643 00000 п.
    0001045820 00000 п.
    0001046018 00000 п.
    0001046179 00000 п.
    0001046419 00000 п.
    0001046857 00000 п.
    0001047261 00000 п.
    0001047410 00000 п.
    0001047846 00000 п.
    0001048195 00000 п.
    0001048544 00000 п.
    0001048663 00000 п.
    0001048773 00000 п.
    0001048886 00000 п.
    0001049008 00000 пн
    0001049136 00000 п.
    0001049482 00000 п.
    0001049610 00000 п.
    0001049757 00000 п.
    0001049883 00000 п.
    0001050013 00000 н.
    0001050218 00000 п.
    0001050409 00000 п.
    0001050469 00000 п.
    0001050586 00000 п.
    0001050646 00000 п.
    0001050759 00000 п.
    0001050883 00000 п.
    0001051016 00000 п.
    0001051076 00000 п.
    0001051193 00000 п.
    0001051366 00000 п.
    0001051422 00000 п.
    0001051482 00000 п.
    0001051808 00000 п.
    0001051864 00000 п.
    0001051920 00000 п.
    0001051976 00000 п.
    0001052115 00000 п.
    0001052247 00000 п.
    0001052320 00000 п.
    0001052474 00000 п.
    0001052674 00000 п.
    0001052821 00000 п.
    0001052877 00000 п.
    0001053028 00000 п.
    0001053084 00000 п.
    0001053144 00000 п.
    0001053204 00000 п.
    0001053896 00000 п.
    0001053956 00000 п.
    0001054178 00000 п.
    0001054317 00000 п.
    0001054834 00000 п.
    0001054907 00000 п.
    0001054980 00000 п.
    0001055053 00000 п.
    0001055109 00000 п.
    0001055194 00000 п.
    0001055457 00000 п.
    0001055715 00000 п.
    0001055962 00000 п.
    0001056199 00000 п.
    0001056338 00000 п.
    0001056841 00000 п.
    0001057338 00000 п.
    0001057569 00000 п.
    0001057786 00000 п.
    0001057936 00000 п.
    0001058082 00000 п.
    0001058723 00000 п.
    0001058903 00000 п.
    0001059078 00000 п.
    0001059151 00000 п.
    0001059459 00000 п.
    0001059696 00000 п.
    0001059893 00000 п.
    0001060039 00000 п.
    0001060186 00000 п.
    0001060355 00000 п.
    0001060415 00000 п.
    0001060601 00000 п.
    0001061024 00000 п.
    0001061202 00000 п.
    0001061590 00000 п.
    0001061744 00000 п.
    0001061969 00000 п.
    0001062034 00000 п.
    0001062170 00000 п.
    0001062603 00000 п.
    0001062714 00000 п.
    0001063022 00000 п.
    0001063099 00000 п.
    0001063656 00000 п.
    0001063827 00000 п.
    0001063904 00000 п.
    0001064362 00000 п.
    0001064422 00000 п.
    0001064609 00000 п.
    0001064796 00000 п.
    0001064979 00000 п.
    0001065168 00000 п.
    0001065662 00000 п.
    0001065774 00000 п.
    0001066398 00000 п.
    0001066507 00000 пн
    0001066584 00000 п.
    0001066716 00000 п.
    0001066849 00000 п.
    0001067058 00000 п.
    0001067259 00000 п.
    0001067372 00000 п.
    0001067504 00000 п.
    0001067668 00000 п.
    0001067833 00000 п.
    0001068413 00000 п.
    0001068601 00000 п.
    0001068783 00000 п.
    0001068930 00000 п.
    0001069076 00000 п.
    0001069141 00000 п.
    0001069390 00000 п.
    0001069551 00000 п.
    0001069662 00000 п.
    0001069771 00000 п.
    0001069852 00000 п.
    0001070221 00000 п.
    0001070363 00000 п.
    0001070542 00000 п.
    0001070689 00000 п.
    0001070814 00000 п.
    0001071013 00000 п.
    0001071227 00000 п.
    0001071412 00000 п.
    0001071594 00000 п.
    0001071749 00000 п.
    0001071912 00000 п.
    0001072050 00000 п.
    0001072471 00000 п.
    0001072831 00000 п.
    0001072891 00000 п.
    0001073047 00000 п.
    0001073174 00000 п.
    0001073310 00000 п.
    0001073424 00000 п.
    0001073497 00000 п.
    0001073724 00000 п.
    0001073898 00000 п.
    0001074118 00000 п.
    0001074620 00000 п.
    0001074726 00000 п.
    0001074803 00000 п.
    0001074938 00000 п.
    0001075043 00000 п.
    0001075312 00000 п.
    0001075575 00000 п.
    0001075912 00000 пн
    0001075972 00000 п.
    0001076032 00000 п.
    0001076088 00000 п.
    0001076500 00000 п.
    0001076673 00000 п.
    0001076750 00000 п.
    0001076819 00000 п.
    0001076875 00000 п.
    0001077044 00000 п.
    0001077225 00000 п.
    0001077518 00000 п.
    0001077574 00000 п.
    0001078067 00000 п.
    0001078123 00000 п.
    0001078561 00000 п.
    0001078935 00000 п.
    0001078991 00000 п.
    0001079047 00000 п.
    0001079112 00000 п.
    0001079291 00000 п.
    0001079351 00000 п.
    0001079411 00000 п.
    0001079476 00000 п.
    0001079906 00000 п.
    0001079971 00000 п.
    0001080287 00000 п.
    0001080576 00000 п.
    0001080632 00000 п.
    0001080692 00000 п.
    0001080752 00000 п.
    0001081088 00000 п.
    0001081388 00000 п.
    0001081607 00000 п.
    0001081932 00000 п.
    0001082137 00000 п.
    0001082298 00000 п.
    0001082440 00000 п.
    0001082571 00000 п.
    0001082686 00000 п.
    0001082746 00000 п.
    0001082806 00000 п.
    0001082932 00000 п.
    0001083158 00000 п.
    0001083274 00000 п.
    0001083474 00000 п.
    0001083672 00000 п.
    0001083732 00000 п.
    0001083885 00000 п.
    0001084025 00000 п.
    0001084081 00000 п.
    0001084141 00000 п.
    0001084590 00000 п.
    0001084778 00000 п.
    0001084965 00000 п.
    0001085238 00000 п.
    0001085294 00000 п.
    0001085550 00000 п.
    0001085677 00000 п.
    0001085801 00000 п.
    0001085926 00000 п.
    0001086041 00000 п.
    0001086110 00000 п.
    0001086166 00000 п.
    0001086222 00000 п.
    0001086282 00000 п.
    0001086914 00000 п.
    0001087217 00000 п.
    0001087364 00000 п.
    0001087424 00000 п.
    0001087542 00000 п.
    0001087619 00000 п.
    0001087679 00000 п.
    0001087986 00000 п.
    0001088471 00000 п.
    0001088552 00000 п.
    0001088672 00000 п.
    0001088789 00000 п.
    0001089043 00000 п.
    0001089112 00000 п.
    0001089373 00000 п.
    0001089433 00000 п.
    0001089502 00000 п.
    0001089797 00000 п.
    0001089857 00000 п.
    00010

    00000 п.
    00010
    00000 п.
    0001091148 00000 пн
    0001091431 00000 п.
    0001091933 00000 п.
    0001092437 00000 п.
    0001092749 00000 п.
    0001093043 00000 п.
    0001093280 00000 п.
    0001093613 00000 п.
    0001093932 00000 п.
    0001094440 00000 п.
    0001094560 00000 п.
    0001094645 00000 п.
    0001094710 00000 пн
    0001094779 00000 п.
    0001095382 00000 п.
    0001095678 00000 п.
    0001095940 00000 п.
    0001096093 00000 п.
    0001096587 00000 п.
    0001097161 00000 п.
    0001097559 00000 п.
    0001097987 00000 п.
    0001098492 00000 п.
    0001099150 00000 п.
    0001099364 00000 п.
    0001099437 00000 п.
    0001099839 00000 п.
    0001099973 00000 п.
    0001100337 00000 п.
    0001100477 00000 п.
    0001100624 00000 п.
    0001100684 00000 п.
    0001100765 00000 п.
    0001100993 00000 п.
    0001101130 00000 п.
    0001101285 00000 п.
    0001101341 00000 п.
    0001101475 00000 п.
    0001101531 00000 п.
    0001102156 00000 п.
    0001102295 00000 п.
    0001102540 00000 п.
    0001102808 00000 п.
    0001103080 00000 п.
    0001103589 00000 п.
    0001104005 00000 п.
    0001104423 00000 п.
    0001104620 00000 п.
    0001104794 00000 п.
    0001104970 00000 п.
    0001105151 00000 п.
    0001105435 00000 п.
    0001105664 00000 п.
    0001105980 00000 п.
    0001106435 00000 п.
    0001106861 00000 п.
    0001107469 00000 п.
    0001108106 00000 п.
    0001108255 00000 п.
    0001108428 00000 п.
    0001108843 00000 п.
    0001109145 00000 п.
    0001109264 00000 п.
    0001109341 00000 п.
    0001109422 00000 п.
    0001109546 00000 п.
    0001109606 00000 п.
    0001109675 00000 п.
    0001109912 00000 п.
    0001109984 00000 п.
    0001110067 00000 п.
    0001119394 00000 п.
    0001119674 00000 п.
    0001119854 00000 п.
    0001119885 00000 п.
    0001120195 00000 п.
    0001120321 00000 п.
    0001122263 00000 п.
    0001122590 00000 н.
    0001122719 00000 п.
    0001124086 00000 п.
    0001124422 00000 п.
    0001124580 00000 п.
    0001127634 00000 п.
    0001127997 00000 п.
    0001133082 00000 п.
    0001133360 00000 п.
    0001136624 00000 п.
    0001136913 00000 п.
    0001139507 00000 п.
    0001139783 00000 п.
    0001142536 00000 п.
    0001142808 00000 п.
    0001145920 00000 п.
    0001146193 00000 п.
    0001146442 00000 п.
    0001146755 00000 п.
    0001147004 00000 п.
    0001147157 00000 п.
    0001147309 00000 п.
    0001147435 00000 п.
    0001147715 00000 п.
    0001147816 00000 п.
    0001147968 00000 п.
    0001148087 00000 п.
    0001148394 00000 п.
    0001148495 00000 п.
    0001148647 00000 п.
    0001148766 00000 н.
    0001148854 00000 п.
    0001148955 00000 п.
    0001149107 00000 п.
    0001149189 00000 п.
    0001149290 00000 п.
    0001149442 00000 п.
    0001149752 00000 п.
    0001149853 00000 п.
    0001150005 00000 пн
    0001150087 00000 п.
    0001150180 00000 п.
    0001150307 00000 п.
    0001150459 00000 п.
    0001150541 00000 п.
    0001150642 00000 п.
    0001150794 00000 п.
    0001151040 00000 п.
    0001151320 00000 н.
    0001151447 00000 п.
    0001151600 00000 п.
    0001151699 00000 п.
    0001151805 00000 п.
    0001151918 00000 п.
    0001152071 00000 п.
    0001152223 00000 п.
    0001152472 00000 п.
    0001152789 00000 п.
    0001153038 00000 п.
    0001153191 00000 п.
    0001153343 00000 п.
    0001153623 00000 п.
    0001153724 00000 п.
    0001153876 00000 п.
    0001155957 00000 п.
    0001156349 00000 п.
    0001158051 00000 п.
    0001158111 00000 п.
    0001158164 00000 п.
    0001158388 00000 п.
    0001158630 00000 п.
    0001158864 00000 п.
    0001159098 00000 п.
    0001159310 00000 п.
    0001159522 00000 п.
    0001160563 00000 п.
    0001161558 00000 п.
    0001161902 00000 п.
    0001162238 00000 п.
    0001162538 00000 п.
    0001162835 00000 п.
    0001163131 00000 п.
    0001163399 00000 п.
    0001163667 00000 п.
    0001163885 00000 п.
    0001164109 00000 п.
    0001164169 00000 п.
    0001164222 00000 п.
    0001164434 00000 п.
    0001164494 00000 п.
    0001164546 00000 п.
    0001164762 00000 п.
    0001164977 00000 п.
    0001165193 00000 п.
    0001165330 00000 п.
    0001165384 00000 п.
    0001165718 00000 п.
    0001165928 00000 п.
    0001166143 00000 п.
    0001166352 00000 п.
    0001166560 00000 п.
    0001166804 00000 п.
    0001167041 00000 п.
    0001167273 00000 п.
    0001167488 00000 п.
    0001167758 00000 п.
    0001168005 00000 п.
    0001168142 00000 п.
    0001168196 00000 п.
    0001168564 00000 п.
    0001168792 00000 п.
    0001169005 00000 пн
    0001169219 00000 п.
    0001169425 00000 п.
    0001169637 00000 п.
    0001169849 00000 п.
    0001170073 00000 п.
    0001170855 00000 п.
    0001171068 00000 п.
    0001171282 00000 п.
    0001171517 00000 п.
    0001171730 00000 п.
    0001171944 00000 п.
    0001172167 00000 п.
    0001172382 00000 п.
    0001172595 00000 п.
    0001172975 00000 п.
    0001173197 00000 п.
    0001173419 00000 п.
    0001173649 00000 п.
    0001173879 00000 п.
    0001174109 00000 п.
    0001174339 00000 п.
    0001174577 00000 п.
    0001174789 00000 п.
    0001175072 00000 п.
    0001175342 00000 п.
    0001175568 00000 п.
    0001175809 00000 п.
    0001176026 00000 п.
    0001176086 00000 п.
    0001176139 00000 п.
    0001176356 00000 п.
    0001176416 00000 п.
    0001176468 00000 п.
    0001176686 00000 п.
    0001176910 00000 п.
    0001177125 00000 п.
    0001177340 00000 п.
    0001177555 00000 п.
    0001177840 00000 п.
    0001178101 00000 п.
    0001178357 00000 п.
    0001178584 00000 п.
    0001178799 00000 п.
    0001179071 00000 п.
    0001179318 00000 п.
    0001179547 00000 п.
    0001179774 00000 п.
    0001180001 00000 п.
    0001180225 00000 п.
    0001185289 00000 п.
    0001185503 00000 п.
    0001185718 00000 п.
    0001185953 00000 п.
    0001186181 00000 п.
    0001186406 00000 п.
    0001186660 00000 п.
    0001186877 00000 п.
    0001187107 00000 п.
    0001187337 00000 п.
    0001187621 00000 п.
    0001187848 00000 п.
    0001188075 00000 п.
    0001188391 00000 п.
    0001188707 00000 п.
    0001188937 00000 п.
    0001189159 00000 п.
    0001189384 00000 п.
    0001189610 00000 п.
    0001189834 00000 п.
    00011

    00000 п.
    00011

    00000 п.
    00011 00000 п.
    00011
    00000 п.
    0001191389 00000 п.
    0001191654 00000 п.
    0001191916 00000 п.
    0001192198 00000 п.
    0001192477 00000 п.
    0001192740 00000 п.
    0001193004 00000 п.
    0001193208 00000 п.
    0001193421 00000 п.
    0001194053 00000 п.
    0001194277 00000 п.
    0001194486 00000 п.
    0001194714 00000 п.
    0001194927 00000 п.
    0001195119 00000 п.
    0001195331 00000 п.
    0001195595 00000 п.
    0001195843 00000 п.
    0001196076 00000 п.
    0001196310 00000 пн
    0001197100 00000 n
    0001197302 00000 п.
    0001197510 00000 п.
    0001197734 00000 п.
    0001197948 00000 пн
    0001198206 00000 п.
    0001198427 00000 п.
    0001198672 00000 п.
    0001198906 00000 п.
    0001199134 00000 п.
    0001201285 00000 пн
    0001201512 00000 п.
    0001201739 00000 п.
    0001201963 00000 н.
    0001202177 00000 п.
    0001202392 00000 п.
    0001202624 00000 п.
    0001202839 00000 п.
    0001203055 00000 п.
    0001204233 00000 п.
    0001204475 00000 п.
    0001204702 00000 п.
    0001204914 00000 п.
    0001206219 00000 п.
    0001206617 00000 п.
    0001206914 00000 п.
    0001207192 00000 п.
    0001207413 00000 п.
    0001207628 00000 п.
    0001207846 00000 п.
    0001208109 00000 п.
    0001208338 00000 п.
    0001208553 00000 п.
    0001208769 00000 п.
    0001208985 00000 п.
    0001209228 00000 п.
    0001209445 00000 п.
    0001209672 00000 п.
    0001209888 00000 п.
    0001210101 00000 п.
    0001210315 00000 п.
    0001213475 00000 п.
    0001213812 00000 п.
    0001214024 00000 н.
    0001214252 00000 п.
    0001214639 00000 п.
    0001214881 00000 п.
    0001215202 00000 п.
    0001215453 00000 п.
    0001215695 00000 п.
    0001215934 00000 п.
    0001216169 00000 п.
    0001216563 00000 п.
    0001216798 00000 п.
    0001217023 00000 п.
    0001217253 00000 пн
    0001217513 00000 п.
    0001217771 00000 п.
    0001218079 00000 п.
    0001218453 00000 п.
    0001219666 00000 п.
    0001220131 00000 п.
    0001220532 00000 п.
    0001220992 00000 н.
    0001221384 00000 п.
    0001221615 00000 п.
    0001221874 00000 п.
    0001222134 00000 п.
    0001222369 00000 п.
    0001222671 00000 п.
    0001223076 00000 п.
    0001223314 00000 п.
    0001223593 00000 п.
    0001224228 00000 п.
    0001224773 00000 п.
    0001225411 00000 п.
    0001225657 00000 пн
    0001225905 00000 п.
    0001226133 00000 п.
    0001226355 00000 п.
    0001226587 00000 п.
    0001226805 00000 п.
    0001227029 00000 п.
    0001227246 00000 п.
    0001227497 00000 п.
    0001227749 00000 пн
    0001229157 00000 п.
    0001229406 00000 п.
    0001229644 00000 п.
    0001229904 00000 н.
    0001230302 00000 п.
    0001230716 00000 п.
    0001230914 00000 п.
    0001231145 00000 п.
    0001231457 00000 п.
    0001231816 00000 п.
    0001232006 00000 пн
    0001232691 00000 п.
    0001232908 00000 н.
    0001233223 00000 п.
    0001233548 00000 п.
    0001233787 00000 п.
    0001234102 00000 п.
    0001234410 00000 п.
    0001234737 00000 п.
    0001235039 00000 п.
    0001235306 00000 п.
    0001235576 00000 п.
    0001253697 00000 п.
    0001253939 00000 п.
    0001254181 00000 п.
    0001254411 00000 п.
    0001254671 00000 п.
    0001254883 00000 п.
    0001255124 00000 п.
    0001255582 00000 п.
    0001255904 00000 п.
    0001256130 00000 пн
    0001256350 00000 п.
    0001261187 00000 п.
    0001261501 00000 п.
    0001261787 00000 п.
    0001262060 00000 п.
    0001262292 00000 п.
    0001262508 00000 п.
    0001263326 00000 п.
    0001264008 00000 пн
    0001264530 00000 п.
    0001264754 00000 п.
    0001266995 00000 п.
    0001267218 00000 п.
    0001267729 00000 п.
    0001267963 00000 п.
    0001269116 00000 п.
    0001270172 00000 п.
    0001272945 00000 пн
    0001275878 00000 п.
    0001278415 00000 п.
    0001278672 00000 п.
    0001279011 00000 п.
    0001279544 00000 п.
    0001279937 00000 п.
    0001280178 00000 п.
    0001280409 00000 п.
    0001280635 00000 п.
    0001280858 00000 п.
    0001281119 00000 п.
    0001281366 00000 п.
    0001281605 00000 п.
    0001282203 00000 п.
    0001282440 00000 п.
    0001282650 00000 п.
    0001282899 00000 н.
    0001283165 00000 п.
    0001284913 00000 п.
    0001285312 00000 п.
    0001285684 00000 п.
    0001285989 00000 п.
    0001286223 00000 п.
    0001286448 00000 н.
    0001286925 00000 п.
    0001287171 00000 п.
    0001287420 00000 н.
    0001292555 00000 п.
    0001293362 00000 п.
    0001294049 00000 п.
    0001294581 00000 п.
    0001294946 00000 п.
    0001297112 00000 п.
    0001298295 00000 п.
    0001298552 00000 п.
    0001299579 00000 н.
    0001299863 00000 п.
    0001302948 00000 п.
    0001303513 00000 п.
    0001304021 00000 п.
    0001304430 00000 п.
    0001304687 00000 п.
    0001305998 00000 п.
    0001306645 00000 п.
    0001306912 00000 п.
    0001307196 00000 п.
    0001309494 00000 п.
    0001318235 00000 п.
    0001324505 00000 п.
    0001334427 00000 п.
    0001334707 00000 п.
    0001335177 00000 п.
    0001335513 00000 п.
    0001356952 00000 п.
    0001374235 00000 п.
    0001374481 00000 п.
    0001374537 00000 п.
    0001374590 00000 п.
    0001374849 00000 п.
    0001375324 00000 п.
    0001375380 00000 п.
    0001375433 00000 п.
    0001375659 00000 п.
    0001377207 00000 п.
    0001377539 00000 п.
    0001377801 00000 п.
    0001378006 00000 п.
    0001378189 00000 п.
    0001378558 00000 п.
    0001378891 00000 п.
    0001382557 00000 п.
    0001382821 00000 п.
    0001384641 00000 п.
    0001384944 00000 п.
    0001385290 00000 п.
    0001385627 00000 п.
    0001385890 00000 п.
    0001385944 00000 п.
    0001386284 00000 п.
    0001386593 00000 п.
    0001386856 00000 п.
    0001386910 00000 п.
    0001387221 00000 п.
    0001387577 00000 п.
    0001387836 00000 п.
    0001387890 00000 н.
    0001388263 00000 п.
    0001388522 00000 п.
    0001388576 00000 п.
    0001388967 00000 п.
    0001389391 00000 п.
    00013 00000 п.
    0001391609 00000 п.
    0001392122 00000 п.
    0001392383 00000 п.
    0001392710 00000 п.
    0001393047 00000 п.
    0001393975 00000 п.
    0001396897 00000 п.
    0001402143 00000 п.
    0001404356 00000 п.
    0001404954 00000 п.
    0001421339 00000 п.
    0001422218 00000 п.
    0001426573 00000 п.
    0001428342 00000 п.
    0001431861 00000 п.
    0001433517 00000 п.
    0001433883 00000 п.
    0001435535 00000 п.
    0001435591 00000 п.
    0001435644 00000 п.
    0001435831 00000 п.
    0001476351 00000 п.
    0001501934 00000 п.
    0001502726 00000 п.
    0001503419 00000 п.
    0001504688 00000 п.
    0001507512 00000 п.
    0001508603 00000 п.
    0001514250 00000 п.
    0001541442 00000 п.
    0001542317 00000 п.
    0001542979 00000 п.
    0001543654 00000 п.
    0001543884 00000 п.
    0001545031 00000 п.
    0001551241 00000 п.
    0001552134 00000 п.
    0001553670 00000 п.
    0001553861 00000 п.
    0001554164 00000 п.
    0001554418 00000 п.
    0001554644 00000 п.
    0001554833 00000 п.
    0001555024 00000 п.
    0001555455 00000 п.
    0001555707 00000 п.
    0001556123 00000 п.
    0001556428 00000 п.
    0001556758 00000 п.
    0001556987 00000 п.
    0001557231 00000 п.
    0001557606 00000 п.
    0001557821 00000 н.
    0001558072 00000 п.
    0001558338 00000 п.
    0001558566 00000 п.
    0001558822 00000 п.
    0001559036 00000 н.
    0001559293 00000 п.
    0001559508 00000 п.
    0001559752 00000 п.
    0001559983 00000 н.
    0001560173 00000 п.
    0001560435 00000 п.
    0001560650 00000 п.
    0001561103 00000 п.
    0001561529 00000 п.
    0001561589 00000 п.
    0001561641 00000 п.
    0001561857 00000 п.
    0001562593 00000 п.
    0001562909 00000 п.
    0001567920 00000 н.
    0001568655 00000 п.
    0001568897 00000 п.
    0001569556 00000 п.
    0001570198 00000 п.
    0001570666 00000 п.
    0001571119 00000 п.
    0001571349 00000 п.
    0001571985 00000 п.
    0001572199 00000 п.
    0001572428 00000 п.
    0001572640 00000 п.
    0001572934 00000 п.
    0001573259 00000 н.
    0001573487 00000 п.
    0001574021 00000 п.
    0001574529 00000 п.
    0001574809 00000 п.
    0001575038 00000 п.
    0001575256 00000 п.
    0001575700 00000 п.
    0001576124 00000 п.
    0001576339 00000 п.
    0001582576 00000 п.
    0001582802 00000 п.
    0001583029 00000 п.
    0001583278 00000 п.
    0001583493 00000 п.
    0001583809 00000 п.
    0001584036 00000 п.
    0001584497 00000 п.
    0001584713 00000 п.
    0001585408 00000 п.
    0001585638 00000 п.
    0001586190 00000 п.
    0001586404 00000 п.
    0001586619 00000 п.
    0001586985 00000 п.
    0001587215 00000 п.
    0001587464 00000 п.
    0001587520 00000 п.
    0001587572 00000 п.
    0001587794 00000 п.
    0001588024 00000 п.
    0001588240 00000 п.
    0001588462 00000 п.
    0001588692 00000 п.
    0001588972 00000 n
    0001589260 00000 п.
    0001589490 00000 n
    00015 00000 н.
    0001592446 00000 п.
    0001592671 00000 п.
    0001592727 00000 n
    0001592779 00000 п.
    0001592988 00000 п.
    0001593203 00000 п.
    0001593427 00000 н.
    0001593649 00000 п.
    0001593863 00000 п.
    0001594100 00000 п.
    0001594328 00000 п.
    0001594550 00000 п.
    0001594832 00000 н.
    0001595080 00000 п.
    0001595306 00000 п.
    0001595529 00000 п.
    0001595758 00000 п.
    0001595987 00000 п.
    0001596458 00000 п.
    0001597113 00000 п.
    0001597740 00000 п.
    0001597983 00000 п.
    0001600211 00000 п.
    0001600428 00000 п.
    0001600655 00000 пн
    0001600867 00000 п.
    0001601095 00000 п.
    0001601410 00000 п.
    0001601663 00000 п.
    0001601890 00000 п.
    0001602107 00000 п.
    0001602337 00000 п.
    0001602565 00000 п.
    0001602793 00000 п.
    0001603407 00000 п.
    0001603650 00000 п.
    0001603866 00000 п.
    0001604289 00000 п.
    0001604543 00000 п.
    0001604599 00000 п.
    0001604651 00000 п.
    0001604874 00000 п.
    0001604930 00000 п.
    0001604982 00000 п.
    0001605191 00000 п.
    0001605251 00000 п.
    0001605303 00000 п.
    0001605519 00000 п.
    0001605759 00000 п.
    0001606053 00000 п.
    0001606113 00000 п.
    0001606165 00000 п.
    0001606387 00000 п.
    0001606626 00000 п.
    0001606682 00000 п.
    0001606734 00000 п.
    0001606948 00000 п.
    0001607008 00000 пн
    0001607060 00000 п.
    0001607281 00000 п.
    0001607487 00000 п.
    0001607702 00000 п.

    0001671194 00000 п.

    трейлер

    startxref
    0
    %% EOF

    > поток

    Запятые обычно обозначают короткую паузу; они не так окончательны, как периоды.

    Правило 1. Используйте запятые для разделения слов и групп слов в простой серии из трех или более элементов.

    Пример: Мое имущество переходит к моему мужу, сыну, невестке и племяннику.

    Примечание: Когда последняя запятая в серии стоит перед и или или (после невестки в приведенном выше примере), она известна как Оксфордская запятая .Большинство газет и журналов опускают оксфордскую запятую в простой серии, видимо, чувствуя в этом ненужность. Однако отсутствие оксфордской запятой иногда может привести к недопониманию.

    Пример: У нас были кофе, сыр, крекеры и виноград.

    Добавление запятой после крекеров проясняет, что сыра и крекеров представляют собой одно блюдо. В подобных случаях для ясности нужна оксфордская запятая.

    У нас был кофе, сыр с крекерами и виноград.

    Художественная и документальная литература обычно предпочитает оксфордскую запятую. Писатели должны выбрать Оксфорд или нет Оксфорд и не переключаться туда и обратно, за исключением случаев, когда пропуск запятой Оксфорд может вызвать путаницу, как в примере с сыром и крекерами .

    Правило 2. Используйте запятую для разделения двух прилагательных, если порядок следования прилагательных является взаимозаменяемым.

    Пример: Он сильный, здоровый человек.
    Еще можно сказать здоровых, сильных мужчин.

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

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

    Правило 3а. Многие неопытные писатели объединяют два независимых предложения вместе, используя запятую вместо точки. Это приводит к ужасному продолжающемуся предложению или, говоря более технически, соединению запятой .

    Неправильно: Он шел домой всю дорогу, он закрыл дверь.

    Есть несколько простых средств:

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

    Правило 3b. В предложениях, где два независимых предложения соединены соединителями, такими как и, или, но, и т. Д., Ставьте запятую в конце первого предложения.

    Неправильно: Он прошел весь путь до дома и закрыл дверь.
    Правильно: Он шел до самого дома и закрыл дверь.

    Некоторые авторы опускают запятую, если оба предложения довольно короткие:

    Пример: Я рисую, а он пишет.

    Правило 3c. Если подлежащее не появляется перед вторым глаголом, запятая, как правило, не нужна.

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

    Но иногда запятая в этой ситуации необходима, чтобы избежать путаницы.

    Непонятно: Я видел, что она была занята и готова уходить.
    Яснее через запятую: Я увидел, что она была занята и собралась уходить.

    Без запятой читатель может подумать, что «она» была той, кто был готов уйти.

    Правило 4а. В начале предложения с зависимого предложения ставьте после него запятую.

    Пример: Если вы не уверены в этом, дайте мне знать сейчас.

    Следуйте той же политике с вводными фразами.

    Пример: Наконец приехав в город, мы пошли за покупками.

    Однако, если вступительная фраза ясная и краткая (три или четыре слова), запятая не обязательна.

    Пример: В городе мы ходим за покупками.

    Но всегда добавляйте запятую, чтобы избежать путаницы.

    Пример: В прошлое воскресенье вечерние занятия были отменены. (Запятая предотвращает неправильное чтение.)

    Когда вступительная фраза начинается с предлога, запятая может не требоваться, даже если фраза содержит более трех или четырех слов.

    Пример: Он смотрел в сверкающий хрустальный шар.

    Если такая фраза содержит более одного предлога, можно использовать запятую , если глагол не следует сразу за фразой.

    Примеры:
    Между вашим домом на Мейн-стрит и моим домом на Гранд-авеню гордо возвышается особняк мэра.
    Между вашим домом на Мейн-стрит и моим домом на Гранд-авеню находится особняк мэра.

    Правило 4b. Запятая обычно не нужна, если предложение начинается с независимого предложения, за которым следует зависимое предложение.

    Пример: Дайте мне знать, если вы не уверены в этом.

    Правило 5. Используйте запятые, чтобы выделить второстепенные слова, предложения и фразы (см. Кто, что, что, Правило 2b).

    Неправильно: Джилл, моя сестра, закрыла дверь.
    Правильно: Джилл, моя сестра, закрыла дверь.

    Неправильно: Человек, зная, что поздно, поспешил домой.
    Правильно: Мужчина, зная, что было поздно, поспешил домой.

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

    Неправильно: Пришел мой лучший друг, Джо.
    Правильно: Приехал мой лучший друг Джо.

    Неправильно: На столе лежали три предмета: книга, ручка и бумага.
    Правильно: Три предмета: книга, ручка и бумага — лежали на столе.

    Правило 6. Если что-то или кто-то достаточно идентифицирован, последующее описание считается несущественным и должно быть заключено в запятую.

    Примеры:
    Хромый Фредди попал в автокатастрофу.
    Если мы уже знаем, о каком Фредди идет речь, описание несущественно.

    Прихрамывающий мальчик попал в автокатастрофу.
    Мы не знаем, о каком мальчике идет речь, без дальнейшего описания; поэтому запятые не используются.

    Это приводит к постоянной проблеме. Посмотрите на следующее предложение:

    Пример: Мой брат Билл здесь.

    Теперь посмотрите, как добавление двух запятых меняет значение этого предложения:

    Пример: Мой брат Билл здесь.

    Внимательные писатели и читатели понимают, что первое предложение означает, что у меня более одного брата. Запятые во втором предложении означают, что Билл — мой единственный брат.

    Почему? В первом предложении Bill является важной информацией: он определяет, о каком из двух (или более) моих братьев я говорю. Вот почему счет не заключен в запятую.

    Во втором предложении Bill — несущественная информация — кого еще, кроме Билла, я мог иметь в виду? — отсюда запятые.

    Неправильное использование запятых — несерьезное дело. Это может привести к такой катастрофе поезда:

    Пример: Книга Марка Твена, Том Сойер, — восхищение.

    Из-за запятых в этом предложении говорится, что Твен написал только одну книгу. На самом деле он написал их более двух десятков.

    Правило 7а. Используйте запятую после определенных слов, которые вводят предложение, например, ну, да, почему, привет, эй, и т. Д.

    Примеры:
    Я не могу в это поверить!
    Нет, у вас не может быть доллара.

    Правило 7b. Используйте запятые для выделения выражений, которые прерывают поток предложений ( все же, кстати, с другой стороны, и т. Д.).

    Пример: Я, кстати, очень нервничаю по этому поводу.

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

    Примеры:
    Аиша, ты сделаешь это задание за меня?
    Да, старый друг, пойду.
    Добрый день, капитан.

    Правило 9. Используйте запятую, чтобы отделить день месяца от года, и — что большинство людей забывает! — всегда ставьте еще один после года.

    Пример: Это было в выпуске Sun от 5 июня 2003 года.

    Запятая не нужна только для месяца и года.

    Пример: Это было в статье за ​​июнь 2003 года.

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

    Пример: Я из города Акрон, штат Огайо.

    Правило 11. Традиционно, если за именем человека следует старший или младший , после фамилии следует запятая: Martin Luther King, Jr. Эта запятая больше не считается обязательной. Однако, если запятая предшествует Sr. или Jr., другая запятая должна следовать за всем именем, когда оно появляется в середине предложения.

    Правильно: Эл Муни-старший здесь.
    Правильно: Эл Муни, старший, здесь.
    Неправильно: Эл Муни старший здесь.

    Правило 12. Точно так же используйте запятые, чтобы заключить степени или названия, используемые с именами.

    Пример: Эл Муни, М.Д., здесь.

    Правило 13а. Используйте запятые, чтобы вводить или прерывать прямые расценки.

    Примеры:
    Он сказал: «Мне все равно».
    «Почему, — спросил я, — тебе все равно?»

    Это правило не является обязательным для цитат из одного слова.

    Пример: Он сказал «Стоп».

    Правило 13b. Если цитата идет до он сказал, она написала, они сообщили, настаивала Дана, или аналогичная атрибуция, заканчивайте цитируемый материал запятой, даже если это только одно слово.

    Примеры:
    «Мне все равно, — сказал он.
    «Стой, — сказал он.

    Правило 13c. Если цитата функционирует как подлежащее или объект в предложении, запятая может не потребоваться.

    Примеры:
    Неужели «мне все равно» все, что вы можете мне сказать?
    Сказать «Остановить машину» было ошибкой.

    Правило 13d. Если цитируемый вопрос заканчивается на середине предложения, вопросительный знак заменяет запятую.

    Пример: «Будешь ли ты мне другом?» она спросила.

    Правило 14. Используйте запятую, чтобы отделить утверждение от вопроса.

    Пример: Я могу пойти, не так ли?

    Правило 15. Используйте запятую для разделения противоположных частей предложения.

    Пример: Это мои деньги, а не ваши.

    Правило 16а. Используйте запятую перед и после некоторых вводных слов или терминов, например, , то есть, например, и , например , когда за ними следует ряд элементов.

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

    Правило 16b. Запятая должна предшествовать термину и т. Д. Многие авторитеты также рекомендуют ставить запятую после и т. Д. . когда он помещается в середине предложения.

    Пример: В палатке лежат спальные мешки, сковороды, теплая одежда и т. Д.

    ПРИМЕЧАНИЕ

    Аббревиатура , т.е. означает «то есть»; например означает «например».

    .