id: Гость   вход   регистрация
текущее время 21:19 28/03/2024
Автор темы: unknown, тема открыта 31/07/2006 23:00 Печать
http://www.pgpru.com/Форум/АнонимностьВИнтернет/ПростойСпособАтакивОбходTor
создать
просмотр
ссылки

Простой способ атаки "в обход" tor


Простой способ атаки "в обход" против пользователя Tor.


Протокол сети tor (Onion Routing) имеет топологию статической сети с корневым сертификатом (Root CA). Этот сертификат используется для подписи статистики и ключей независимых серверов, подключаемых к сети Tor. Закрытая часть ключа сертификата принадлежит разработчикам программы tor, открытая зашита в саму программу. Поэтому пользователи всегда доверяют этому сертификату так же как и самой запускаемой ими программе, работу которой они могут протестировать и посмотреть исходники.


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


Однако, если использовать Tor в качестве "приманки" против конкретного пользователя, то всё делается достаточно гладко.


Вот как это может происходить:


1) Представитель силового ведомства Мэллори получает ордер на прослушивание интернет-соединения Алисы, которая использует Tor.
При этом он также получает ордер на выдачу закрытого ключа сети Tor у разработчиков (или получает его другим способом – прослушивание, кража, взлом сервера, подписывающего статистику).


2) Мэллори также получает ордер на установку у интернет-провайдера Алисы специального оборудования для прозрачной трансляции сетевых адресов (Network Adress Translation). В отличии от обычного NAT, который используют админы, это оборудование и соотвествующее программное обеспечение должно максимально незаметно подменять адреса из выбранного списка, имитировать соединение с ними, обрабатывать и отправлять траффик дальше.


3) Если Алиса использует обычное, не связанное с Tor, интернет-соединение, Мэллори просто прослушивает траффик сниффером (эту скучную работу он может поручить Еве).


4) Если Алиса посылает запрос статистики на один из серверов Tor, Мэллори осуществляет простейшую атаку человека посредине "man-in-the-middle". Он создает имитацию соединения с этим IP адресом, а на самом деле отправляет Алисе пакеты, подписанные похищенным сертификатом.


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


6) Для предотвращения подозрений со стороны Алисы Мэллори дополнительно фальсифицирует ответ от всех серверов, которые возвращают IP Алисы (http://serifos.eecs.harvard.edu/cgi-bin/ipaddr.pl?tor=1) и другие.
Правда этот метод не сработает, если Алиса зайдёт на SSL-защищённый сайт, от которого нет ключа у Мэллори и увидит там свой IP, не соответствующий сети tor.
В таком случае Мэллори может перенаправлять конечный траффик Алисы на свои подконтрольные сервера, зарегистрированные в сети Tor.


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


Спасибо Spinore http://www.pgpru.com/forum/viewtopic.php?p=11332#11332
который предложил множество интересных идей и вдохновил меня на более внимательное изучение анонимных протоколов, в результате чего мне и пришла в голову мысль насчёт возможности атаки на Tor и использования его в качестве средства индивидуального прослушивания траффика, после чего я и написал этот текст.


Spinore, а Вы хотели ключ хранить в анонимной сети! Современной криптографии пока ещё очень далеко до этого.


Особое внимание при написании данного текста я уделил прекрасному обзору Андреаса Хирта http://pages.cpsc.ucalgary.ca/~hirt
всвязи с его тезисами о том, что в течении давдцати лет так и не было разработано удовлетворительно стойкого и практичного анонимного сетевого протокола, надёжных сведений по доказательству стойкости и классификации атак на такие протоколы в открытой литературе крайне мало, а исследователи то и дело с подозрительным постоянством находят неописанные, хотя и очевидные атаки.


Также, советую тем, кто хочет и дальше копать в этом направлении ознакомиться с архивом проекта Gnunet.
http://www.gnunet.org/papers.php3?xlang=English


 
На страницу: 1, 2, 3, 4, 5, ... , 15, 16, 17, 18, 19 След.
Комментарии
— unknown (01/08/2006 02:01)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Небольшое исправление к пункту 6 Мэллори не должен отпускать расшифрованный траффик напрямую в сеть или подставные серверы. Он может его зашифровать обратно по тем же цепочкам, которые выбрала Алиса и пустить в сеть tor.

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

Вот так Алиса работает через обычный tor:

Alice -> encrypted traffic -> [tor] -> decrypted traffic -> Bob


А вот так с подставным:

Alice -> encrypted traffic -> [virtual tor network simulation from Mellory] -> decrypted traffic -> [Mellory tor agent used Alice chains] -> encrypted traffic -> tor -> Bob

Небольшой чёрный ящичек между Алисой и tor, в который загружен закрытый ключ сети tor.

Все недостатки системы с корневым сертификатом здесь присутствуют. Вот только у кого он может депонироваться?
— SATtva (01/08/2006 05:42)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Интересное исследование.

В качестве домашнего задания любителям теорий заговоров: можно ли использовать такую схему для индивидуализированной атаки на всех пользователей Tor и как долго нападающий сможет сохранять скрытность?
— unknown (01/08/2006 20:56)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Из классификации Хирта следует, что все протоколы анонимной связи строятся на доверии к корневому сертификату.
Эта атака может быть направлена не только против Tor, но и cipherpunk, mixmaster и др. Неподвержены ей только непрактичные протоколы
типа "сети обедающих криптографов".

Эта даже не атака в широком смысле. Это общая неполноценность систем с корневым сертификатом, которую так интенсивно критиковал Шнайер (см "Секреты и ложь"). Но там держатель сертификата в коммерческой системе мог хотя бы потерять деньги или репутацию. А в анонимной системе дела обстоят ещё хуже.

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

Пользователи получают чистые исходники и формально стойкий протокол. Дальше "незаконные" владельцы сертификата могут снимать траффик отдельных пользователей.

Мэллори должен потрудиться, чтобы создать виртуальную машину, загружающую реальные ключи узлов tor'a и полностью имитирующую фальшивую сеть tor внутри себя, но состоящую из фальшивых ключей и статистики из которой он получит открытый текст и завернёт в настоящий tor. Пакеты и на выходе для Боба и возвращаемые обратно Алисе должны быть подправлены так, чтобы не было никаких изменений в их полях (TTL и др.), чтобы не было заметно, что пакеты обрабатывались (если Алиса вдруг попытается их анализировать). То же он может проделать с mixminion, в mixmaster пользователи вообще скачивают никем не заверенные ключи откуда попало.

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

Алиса может заподозрить неладное, если она переключится на другой интернет-канал или ни с того ни сего войдёт в tor через неизвестный для Мэллори VPN. Тогда он отключит свою машинку и подозрение вызовет только то, что статистика поменялась. Но tor и так часто меняет статистику при смене IP адреса. Сравнивать же весь набор ключей на предмет того, как они меняются при переключении на разные соединения Алиса конечно может, но Мэллори тоже не дурак. Он на время отключит свою адскую машинку, подождёт пока Алиса успокоится и начнёт искать подходы ко всем её интернет-каналам, чтобы поставить аппаратуру и там.

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

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

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

Даже если случайно злоумышленник будет пойман, разработчики всегда могут развести руками и сказать, что они делали всё честно, а к краже ключа непричастны, сохранив свою репутацию. Протокол и код не содержат закладок, а начёт доверия к Root CA, ну скажут, что это же и так в соответствующих работах описано, эта такая глобальная проблема, которая в настоящее время не решена.
— SATtva (01/08/2006 22:19)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Правда если пользователей будет очень много, то машина не потянет затраты на криптооперации по процессорному времени и памяти. Но можно сделать дешифрующий кластер. Можно от многих крупных провайдеров проложить прямые линии в единый центр прослушивания коммуникаций, это не совсем глобально, но близко к тому.

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

Что касается самой проблемы, она, на мой взгляд, чем-то напоминает известную статью, Trust Reflecting Trust (название могу путать, но вы наверняка понимаете, о чём), — такая же максима. Мы можем располагать открытым исходным кодом, и, не доверяя разработчикам, провести его аудит. Но откуда у нас уверенность в компиляторе? Даже если и компилятор собирался из исходников, то с применением другого компилятора, ничуть не более доверяемого.

Продолжать можно бесконечно, а поэтому на каком-то этапе важно остановиться, основываясь, возможно, на интуиции или каких-то других неэмпирических сдерживающих факторах. Это вопрос доверия уже скорее философского, а не криптографического. Впрочем, на этот вопрос каждый себе отвечает сам...
— unknown (02/08/2006 20:26)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Не вижу причин, почему нельзя сделать такую схему распределённой по аналогии с нашим СОРМ.


Ну это уже получитя тот самый глобальный наблюдатель, защиты от которого нет, как честно говорили разработчики.
— spinore (03/08/2006 11:32)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Да, очень интересно, unknown :)
Тем не менее, хоть многие и доверяют тор, но если я был бы уверен, что за мной следят, я бы не довольствовался одним тором точно. Легко можно водрузить проксю до или после тора. Тогда окромя ордера на прослушивание нужно будет ещё догавариваться с абстрактными странами о том, что они должны выдать логи и т.д. + для критических вещей надоне забывать об end-to-end gpg, с проверкой фингерпринтов по независимым каналам. Если коротко: я завожу себе впн в отфонарной стране и лезу в тор с того впн. Пока такие адские машинки не будут установлены на большинстве серверов мира об атаке можно будет забыть. К тому же в силу текучести информации, данную прослушивающую систему будет сложно претворять на практике и применять для многих пользователей так, чтоб никто не знал о самом существовании данной системы. К тому же, прийдётся писать специальную программу для каждой из анонимизирующих сетей. Идеальным выходом из ситуации является квантовый канал с асимметричным шифрованием. Тогда слушать просто будет нельзя :) (или по кр. мере существенно сложнее). + нужно не забывать об массовости. Чем болше пользователей и траффик, тем сложнее следить и т.д.
— SATtva (03/08/2006 12:04)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Даже если случайно злоумышленник будет пойман, разработчики всегда могут развести руками и сказать, что они делали всё честно, а к краже ключа непричастны, сохранив свою репутацию. Протокол и код не содержат закладок, а начёт доверия к Root CA, ну скажут, что это же и так в соответствующих работах описано, эта такая глобальная проблема, которая в настоящее время не решена.

Они ведь честно предупреждали: "This is experimental software. Do not rely on it for strong anonymity."
— unknown (05/08/2006 01:26)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Они всё отрицают

http://archives.seul.org/or/talk/Aug-2006/msg00042.html

Но мне кажется, что всё равно эта атака сработает, наверно не так просто и примитивно, как я описал
— SATtva (05/08/2006 09:09)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Они всё отрицают

Заговор молчания? Мне кажется, комментарии других участников дискуссионной группы тоже были удалены на этапе модерации.
— unknown (05/08/2006 16:24)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664


Заговор молчания? Мне кажется, комментарии других участников дискуссионной группы тоже были удалены на этапе модерации.



Ну не всё так просто.

Кое что прояснилось. В таком виде "атака на тор" невозможна.

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

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

Для меня ещё кажется туманным вопрос, что если серверов директорий немного, то как происходит официальная процедура включения их публичных ключей в программу? Или отзыв скомпрометированных ключей? Не могут ли они все быть (или стать) подконтрольными кому-либо? (Разработчики считают защиту от такой угрозы нереальной). Работает ли распределённая модель доверия в таком ограниченном объёме?

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

А со своей стороны вопрос считаю пока закрытым. Разоблачить заговор ЦРУ или АНБ не удалось ;-)
— Гость (22/12/2007 23:33)   <#>
Серверы директории тоже независимы, разработчики включают в программу только их публичные ключи, а программа признаёт статистику верной, только если получит подтверждений более чем от половины серверов.

Серверы директории – это что-то типа master-нод? Сколько их кстати? И как они соотносятся с корневыми нодами?
У меня сразу проскользнула мысль, что, возможно, имело бы смысл включать в программу публичные ключи всех серверов тора (ну или сертификаты, если угодно). Поскольку цепочки строятся клиентом независимо, Мэллори сможет устроить атаку только за счёт преобладающего числа подконтрольных ей мод, в противном случае ничего не получится, так как они не могут иметь публичные ключи все нод.

Серверы директории тоже независимы

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

P. S.: есть небольшой позитив: раз
  • До сих пор не известно достоверное ни об одном случае, когда кого-то вычислили из-под тора.
  • Планируют запретить анонимные системы в Германии, а потом и во всей европе (ссылка пробегала) => не могут иначе, видимо, справиться.
  • Когда всё-таки начинали расследования, изымали эксит-ноды а не тех кто что-то через них посылал.
Значит, возможно, не всё так плохо... Единственная надежда.
— Гость (23/12/2007 02:47)   <#>
И вобще, имхо не вредно было бы где-нить на сайте увидеть обзор всех возможных атак на tor.
— SATtva (23/12/2007 16:30)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Серверы директории – это что-то типа master-нод? ... И как они соотносятся с корневыми нодами?

Это одно и то же. "Корневые узлы (ноды)" — термин, выдуманный участниками этого форума (в том числе и мной) ради простоты и наглядности. Но он некорректен: "directory authority" не является обычным узлом, транслирующим трафик; эти серверы только поддерживают и выдают "официальный" список Tor-узлов.

Сколько их кстати?

Четыре. Все поддерживаются разными лицами. Правда, если не ошибаюсь, все размещены в США.

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

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

И вобще, имхо не вредно было бы где-нить на сайте увидеть обзор всех возможных атак на tor.

http://www.freehaven.net/anonbib/
— unknown (23/12/2007 17:29)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Когда запускали сеть, то сервер корневой директории действительно был кажется только один или несколько,
но все принадлежали разработчикам, поэтому у меня и осталось такое представление.

Сейчас, теоретически каждый желающий может запустить такой сервер.

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




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

Из них два висят на одном IP адресе и, по крайней мере четыре из семи, связаны с разработчиками.
Так что тогда означает их фраза, что если половина директорий скомпрометирована, то игра окончена:



Instead we need to assume that Mallory compromises more than half of
the directory authority keys here. That's not something we try to
defend against, except by trying to make it harder to do: we assume
that if more than half of the authorites are compromised, we lose.



Ну и это я или не понял (я допускаю, что скорее всего так и есть) или это демагогия:



There are multiple directory authorities. Clients have
the public keys for all of them. No directory authority is trusted
completely: clients only believe a statement that is made by more than
half of the authorities.



Неполные 7 – это что, multiply, множество великое?

Вот что они пишут в спецификации, которую отослали почитать:



1. Directories were very large and use up a lot of bandwidth: clients
downloaded descriptors for all router several times an hour.
  • Every directory authority was a trust bottleneck: if a single
    directory authority lied, it could make clients believe for a time an
    arbitrarily distorted view of the Tor network.
  • Our current "verified server" system is kind of nonsensical.

        1. Getting more directory authorities would add more points of failure
          and worsen possible partitioning attacks.

    There are two problems that remain unaddressed by this design.
      1. Requiring every client to know about every router won't scale.
      2. Requiring every directory cache to know every router won't scale.

    We attempt to fix 1-4 here, and to build a solution that will work when we
    figure out an answer for 5. We haven't thought at all about what to do
    about 6.



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

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


    Далее, по тексту:



    There is a small set (say, around 10) of semi-trusted directory
    authorities. A default list of authorities is shipped with the Tor
    software. Users can change this list, but are encouraged not to do so, in
    order to avoid partitioning attacks.

    Routers periodically upload signed "descriptors" to the directory
    authorities describing their keys, capabilities, and other information.
    Routers may act as directory mirrors (also called "caches"), to reduce
    load on the directory authorities. They announce this in their
    descriptors.

    Each directory authority periodically generates and signs a compact
    "network status" document that lists that authority's view of the current
    descriptors and status for known routers, but which does not include the
    descriptors themselves.



    Со стороны клиента как работает тоже много написано, но естественно:



    When a client has no live network-status documents, it downloads
    network-status documents from a randomly chosen authority. In all other
    cases, the client downloads from mirrors randomly chosen from among those
    believed to be V2 directory servers. (This information comes from the
    network-status documents; see 6 below.



    Я не буду цитировать всё, там ещё много деталей и можете сами прочитать или на сайте
    или локально в консоли:




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




    * До сих пор не известно достоверное ни об одном случае, когда кого-то вычислили из-под тора.



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



      • Планируют запретить анонимные системы в Германии, а потом и во всей европе (ссылка пробегала) => не могут иначе, видимо, справиться.



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



      • Когда всё-таки начинали расследования, изымали эксит-ноды а не тех кто что-то через них посылал.



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



    Значит, возможно, не всё так плохо... Единственная надежда.



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

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

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

    И нравится ли это немецому правительству (или лоббистам от определённых ведомств),
    которое давно пытается освободиться от американского влияния, ещё со времён
    той самой Второй Мировой и которое использует криптографические проекты как разменную монету в своих попытках
    показать фигу Америке (то профинансируют GnuPG для борьбы с эшелоном, который используется для экономического
    шпионажа в пользу США, то на tor наедет, не раскрывая своих далеко идущих политических замыслов).

    На самом деле, лучше уделить внимание чисто технической стороне вопроса, а конспирология только уводит
    в пустоту и не даёт получить никакого реального знания. Никаких конретных фактов для позитивных выводов пока нет,
    так же как и для негативных.
    — unknown (23/12/2007 18:08)   профиль/связь   <#>
    комментариев: 9796   документов: 488   редакций: 5664

    1. Directories were very large and use up a lot of bandwidth:


    Цитата с перечислением пунктов неправильно отформатировалась из-за их автонумерации :-(
    На страницу: 1, 2, 3, 4, 5, ... , 15, 16, 17, 18, 19 След.
    Ваша оценка документа [показать результаты]
    -3-2-1 0+1+2+3