id: Гость   вход   регистрация
текущее время 11:56 28/03/2024
Владелец: SATtva (создано 14/09/2006 22:50), редакция от 03/09/2006 21:08 (автор: SATtva) Печать
Категории: софт, инфобезопасность, сайт проекта, статьи, ошибки и баги, уязвимости
https://www.pgpru.com/Библиотека/Статьи/ХанаанскийБальзам
создать
просмотр
редакции
ссылки

Ханаанский бальзам


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


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


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


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


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


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


"Encryptor 4.0 использует уникальный алгоритм инкрементального сдвига базы собственной разработки. Дешифрование практически невозможно; даже если кто-то декомпилирует нашу программу и узнает алгоритм, дешифрование файла зависит от точного знания пароля (ключа шифрования). Даже если кто-то подбирёт ключ шифрования, файл будет расшифрован правильно только в том случае, если ключ шифрования совпал с исходным на 100 процентов. Прочтите ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ на нашем веб-сайте."

Я просмотрел их веб-сайт; шанс, что этот продукт представляет хоть минимальную ценность, равна нулю.


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

Симптом № 1: Псевдоматематическое кудахтанье


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


У Meganet на веб-сайте можно обнаружить следующий перл:


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

Сущая бессмыслица даже для эксперта.


У US Data Security еще один перл: "С математической точки зрения, алгоритм ТТМ интуитивно понятен и менее обременителен при использовании, чем методы, основанные на теории чисел". SuperKrypt пытается впечатлить аббревиатурой: "Продукты SuperKrypt используют метод группового шифрования DNGT", что бы это ни означало. А Cennoid просто не понимает то, о чем он говорит: "Так как длина ключа и ключевая структура изменяются, и так как механизм шифрования не использует никаких математических алгоритмов, восcтановление исходных данных невозможно, и подбор так же невозможен".


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

Симптом № 2: Новые математические методы


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


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

Симптом № 3: Закрытая криптография


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


Еще одна компания, Crypt-o-Text, обещает "сложный алгоритм шифрования собственной разработки", и что "нет абсолютно никакого способа узнать, какой пароль был использован, путем изучения шифртекста". Он был полностью взломан в обозрении InfoWorld.


Этим отличаются не только маленькие компании. Axent однажды попробовал подсунуть XOR в качестве алгоритма шифрования. Уловка проходила до тех пор, пока кто-то не проанализировал скомпилированный код, и вот тут всё и открылось...


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

Симптом № 4: Исключительное невежество


Некоторые компании делают настолько ужасные заявления, что становится очевидно, что они просто ничего не понимают в этой области. TriStrata утверждает про свой алгоритм шифрования: "Так как криптографическая схема TriStrata очень проста и имеет очень низкую вычислительную сложность, клиентская часть может размещаться на самых разных системах – от сервера до ноутбука". Понимают ли они, что практически любой алгоритм шифрования требует очень мало ресурсов и может уместиться на ноутбуке, что DES, RSA и SHA могут быть реализованы в 8-битных смарт-картах, что некоторые кандидаты на AES требуют всего 17 тактов процессора на каждый байт и могут быть реализованы аппаратно при помощи нескольких тысяч вентилей?


GenioUSA объясняет, почему они не используют криптосистемы с открытым ключом в своем продукте:


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

Какие выводы? Эта компания просто не поняла, в чем же смысл.

Симптом № 5: Нелепые длины ключей


Jaws Technology хвалится: "Благодаря статистически невзламываемому 4096-битному ключу алгоритма JAWS L5, вы можете быть уверены в безопасности ваших наиболее ценных файлов". Meganet зашел еще дальше : "Симметричные ключи длиной 1 миллион бит – конкуренты предлагают только 40-160 бит!!"


Чем длиннее ключ, тем лучше, но только до определенного предела. AES будет поддерживать ключи длиной 128, 192 и 256 бит. Это гораздо больше, чем может потребоваться в обозримом будущем. По правде говоря, мы даже не можем себе представить мир, в котором возможен полный перебор всех ключей длиной 256 бит. Это потребует каких-то фундаментальных открытий в физике и в нашем понимании устройства Вселенной. В криптосистемах с открытым ключом аналогичным свойством обладают ключи длиной 2048 бит: более длинные ключи использовать бессмысленно.


Это следует рассматривать как частный случай Симптома № 4: хотите ли вы доверить разработку криптографического средства компании, которая не понимает, что означает длина ключа?

Симптом № 6: Одноразовые блокноты


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


Elementrix, ныне не функционирующий, несколько лет назад объявил о выходе продукта, реализующего одноразовый блокнот, и отказался дать комментарии, когда было показано, что никакого одноразового блокнота в его продукте нет. Ciphile Software просто пытается ввести в заблуждение: "Original Absolute Privacy – Level3 – это автоматизированный генератор псевдо-одноразовых блокнотов с очень развитыми и мощными дополнительными возможностями". Что бы это означало?


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


Ultimate Privacy, может быть, действительно использует одноразовый блокнот (хотя они заявляют, что используют и Blowfish, что меня настораживает):


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

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

Симптом № 7: Безосновательные заявления


Jaws Technologies говорит о своей новой технологии шифрования: "Этот одобренный учеными криптографический продукт – самый сильный коммерческий программный продукт такого типа в мире". Одобренный кем? Веб-сайт не дает ответа на этот вопрос. Самый сильный в мире при каком сравнении? Нет ответа...


UBE98 расшифровывается как "невзламываемое шифрование", и оно было таким до тех пор, пока кто-то не потратил день на то, чтобы его взломать. Веб-сайт содержит все те же нелепые заявления: "Один из наиболее сильных алгоритмов шифрования, доступных в Великобритании, в программе, настолько простой в использовании, что ей смогут пользоваться все!" Ура. SenCrypt рекламирует себя как "самый невзламываемый криптографический алгоритм, изобретенный человечеством". Дважды ура.


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


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

Симптом № 8: Доказательства защищенности


Есть два сорта шарлатанских доказательств. Первые – это настоящие математические доказательства, которые, однако, не имеют никакого отношения к реальному уровню защищенности. Вторые – это подделки под доказательства. Meganet утверждает, что есть доказательство того, что их алгоритм VME обладает той же стойкостью, что и одноразовый блокнот. Их "доказательство" представляет собой объяснение того, как работает одноразовый блокнот, магическое заклинание "VME имеет аналогичные эмпирические образцы поведения, что доказывает, что он так же стоек и невзламываем, как одноразовый блокнот" и результаты некоторых статистических тестов. Это даже отдаленно не напоминает доказательство.


Более тонкий вопрос – системы, защищенность которых можно доказать по-настоящему. Такие существуют. Летом 1998 года IBM подняла большой шум в прессе по поводу их доказуемо защищенной системы, что, по их заявлениям, могло произвести революцию в мире криптографии. (Обсуждение можно найти здесь.) С тех пор про эту систему ничего не слышно. Это была действительно великолепная научная работа, но к сожалению математические доказательства не имеют почти никакого отношения к защищенности конкретных продуктов.

Симптом № 9: Приз за взлом


Я писал на эту тему в декабре 1998 года. Здесь достаточно будет сказать, что объявление приза за взлом системы защиты вовсе не дает гарантии ее невзламываемости, и, как правило, означает, что разработчики не понимают, что следует сделать, чтобы показать, что система хорошо защищена.

Заключение: Что такое "хорошо" и что такое "плохо"


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


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



 
На страницу: 1, 2 След.
Комментарии [скрыть комментарии/форму]
— Гость (31/10/2006 14:18)   <#>
Одна из программ, имеющая несколько симптомов из описанной статьи – ICE Encrypt

На форуме по поводу это программы привел несколько цитат из этой статьи, а вот цитата ответа авторов программы :)

2. Далее самое интересное. Похоже Брюс Шнайер в принципе не понимает необходимости больших длин ключей. И вообще он путается в понятиях: длины ключа и размер шифруемого блока. Для него это одинаковые понятия. На примере ICE Safe скажу, что длина ключа у него около 2 миллионов бит всегда. А размер шифруемого блока может быть любым. И 128 бит, и 128 мегабайт. И похоже Брюс Шнайер совсем не понимает, что даёт переменная длина блока. А она даёт то, что алгоритм с переменной длиной блока объединяет в себе и шифрование и цифровую подпись. Не нужно делать HASH с зашифрованного файла используя MD5 или SHA, если этот файл зашифрован одним блоком. Чтобы убедиться, что всё расшифровано верно. Достаточно до шифрования добавить в конце блока сигнатуру. Всё просто, если информация расшифрована неверно, то и сигнатура будет искажена. Кстати, подделать такую подпись задача гораздо более сложная, чем подделать MD5. А информация о том, что MD5 можно фальсифицировать уже давно обнародована.

3. Ну можно ещё было бы подискутировать на эту тему. Но было бы с кем. Тексты вроде "Ханаанский бальзам" – это рекомендации для домохозяек на тему как выбрать хороший компьютер или какой автомобиль лучше.


Похоже идеальную программу для шифрования уже создали ;)
— SATtva (31/10/2006 14:56)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Если все вокруг искренне не понимают того, что понимаете вы, подумайте о посещении психиатра.

Интересно, а как выглядит шифр со 128-мегабайтовым блоком? Если он чем-то отличается от XOR'а, сколько памяти нужно для его исполнения?
— spinore (31/10/2006 16:28)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786


То есть военные используют какие-то свои, особо защищёные алгоритмы высшего качества, по сравнению с которыми тот же AES и TwoFish – просто детские поделки. Кроме того, у военных есть своя математика, и своя криптограия, которыми занимаются именно профессионалы-военные, а не любители из области академической науки типа того же Шнайера. Я правильно понимаю? Да, я вспомнил: кажется, у нас в военной промышленности используются какие-то специальные госты или как их там называют... но там точно не аес и не фиш.
— spinore (31/10/2006 16:38)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
в продолжение:
... да и вообще все эти криптографы о которых все повсюду судачат – сущие клоуны. Настоящие алгоритмы используются и разрабатываются в стенах академии ФСБ. ФСБ может ломать любые шифры. И оно не доверяет всяким там прозападным и американским дилетантам – оно создаёт свои, надёжные шифры и использует только их. Кроме того, оупен сорс, морс, аес, криптофс – всё это любительские развлечения. Настоящая защита – это то что сертифицируется. Вот сказали что у вас "ораньжевый уровень" – значит всё, можете хоть свои яица на наковальню закладывать что вас не взломают. P>S: правда, эти люди смутно понимают что такое buffer overflow и сколь часто их находят даже в OpenBSD (ой какое страшное слово, надеюсь что оно не смутит специалистов – не хотел никого смущать :(). Но это не важно. Windows сертифицируется при определённых парметрах как имеющая соответствующий уровень защиты, не знаю какой там цвет по дефолту. Вопрос только в том, защиты "от кого"(?)...
— anfes (31/10/2006 17:36)   профиль/связь   <#>
комментариев: 2   документов: 0   редакций: 0
Автором первого комментария был я. И привел ссылку на программу и форум как еще один пример.

Вот часть описания программы ICE Encrypt
ICE Encrypt использует для шифрования алгоритм нового поколения – ICESafe. Этот симметричный алгоритм превосходит все известные симметричные блочные алгоритмы (DES, AES, BlowFish, GOST, ...):
1. Размер ключа для шифрования/дешифрования всегда одинаков и имеет размер около 1 миллиона бит.
2. Размер блока может меняться произвольно. Он может иметь иметь практически любую длину: 64 бита, 72 бита, 80 бит, ..., 128 бит, 1024 бит, 2097152 бит, ... и даже 17179869184 бит.
3. Теоретически невозможно создать более быстрый блочный алгоритм.
4. Атака простым перебором паролей против ICESafe не эффективна. Трудно взломать ключ длиной в 1 миллион бит простым перебором.
5. Легко реализуемо в чипе.
6. Алгоритм легко распараллеливается.
7. Легко использовать ICESafe для вычисления уникальных HASH функций или вычисления CRC.
8. ICESafe – чрезвычайно простой и ясный алгоритм.

В этом описании навскидку видны симптомы 3, 4, 5, 7. А на форуме по-моему встречаются и другие :)
— Гость (31/10/2006 21:15)   <#>
Настоящие алгоритмы используются и разрабатываются в стенах академии ФСБ.

Гос. шифры разрабатывает ИКСИ.
— spinore (01/11/2006 15:30)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786


А как это расшифровывается? Вы там работаете, в ИКСИ?
— anfes (01/11/2006 15:39)   профиль/связь   <#>
комментариев: 2   документов: 0   редакций: 0
ИКСИ – Институт криптографии, связи и информатики
— SATtva (01/11/2006 15:58)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Речь, видимо, об Институте криптографии, связи и информатики при Академии ФСБ. Ссылка есть здесь, внизу.
— spinore (01/11/2006 17:31)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786


зашёл на сайт, взял вариант примера вступительных экзаменов, скачал zip, разарзивировал – а там... doc-файлы. Представляете? Когда это быдло сдохнет? На любом нормальном сайте сейчас если и выкладываются документы в doc, то как минимум дублируются в pdf или tex. И что-то я про их институт не слышал ничего. А как они могут разрабатывать шифры? Для этого вроде бы надо знать математику... А ей по-нормальному учат только в 2-х конторах: в независимом и на мехмате. Или я что-то путаю? Или у них "своя" математика?
— Nikolay_74 (15/03/2009 06:32)   <#>
Кстати, уязвимости есть и без исходного кода, который никто показывать не собирается. Статистические тесты показывают, например, резкое подение величин при шифровании файла из 0x0 по сравнению, например, с файлом из 0x20. В первом случае тот же Chi Square = 3854.06 (а энтропия = 7.999978), во втором уже близок к нормированной величине.
— Гость (01/04/2009 22:22)   <#>
Сорри. что-то напутал с кодировкой...
Кто-то занимался криптоанализом ICESafe/ICE Encrypt?
На первый взгляд довольно стойкий алгоритм.
— Гость (01/04/2009 22:39)   <#>
Встречный вопрос: а зачем этим заниматься?
Исходного кода нет, программа не настолько популярна, чтобы восстанавливать его реверс-инженерингом, пользоваться этой программой я даже в страшном сне не собираюсь, и наконец – денег мне за это не платят.
Вывод: криптоанализ этого поделия будет пустой тратой времени.
— Гость (01/04/2009 22:49)   <#>
Наверное соглашусь...
Судя по том что я прочитал на их сайте:
простой ГСЧ генерирует последовательность байт на основе случайного ВИ длиной 56 байт, затем эта последовательность шифруеться каким-то блочным шифром для получения гаммы, которой потом и шифруеться текст.
И скорей всего ВИ добавляеться к сообщению и соответственно зная ДСЧ, задача становиться тривиальной.
— Sharkey (17/02/2010 20:40)   профиль/связь   <#>
комментариев: 3   документов: 0   редакций: 0
Интересная статья, впервые слышу о таком термине. Улыбнуло
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3