2 Sharp
Меня че-то начал напрягать гон на алгоритм сортировки, не поленился пройти процедуру регистарции и получил сообщение следующего характера...
---------------------------
Windows Internet Explorer
---------------------------
Арена Test-the-Best 2.0 работает только на броузере Firefox версии 1.5+. Скачать его вы можете по адресу: http://www.mozilla.com/firefox/
---------------------------
OK
---------------------------
Я безусловно уважаю организаторов конкурса, но ставить на рабочую ОС какой-то браузер только потому что под ним работает некая арена не намерен.
Если есть возможность - скинь, пожалуйста, этот самый кусок кода, буду очень благодарен.
Господа, которые считают, что МС хотя бы что-то может реализовать не через жопу, будь то операционная система, метод сортировки (банальнейший! который знает любой студент-программист!) или алгоритм шифрования, меня сильно удивляют.
Я открывал тут тему, ссылался на исследвоание, которое показывало что Windows является более безопасной чем другие ОС, правда тему потерли.
В 50-м посту я объяснил почему не намерен кидать сюда кусок кода из .NET Framework.
Получить код AES может любой школьник который умеет работать с приложениями более сложными чем MS Paint
С этого места отпадает жилание у криптоаналитиков работать с MS продуктами. Декомпиляция будет включать в себя столько хлама, кто ты просто ничего не вычитаешь оттуда относительно Rijndael'a. От этого невозможность изучения фреймворка, его классов, встроенных алгоритмов.
Руслан, по долгу службы мне приходится по несколько раз в неделю заглядывать в исходный код .NET Framework и я авторитетно заявляю что ты сказал - это полная чушь не имеющая отношения к действительности.
Можно получить исходный код любого класса и это будет именно исходный код, причем на том языке который тебе нравится - это неверноятно, но .NET Framework не подвергся действия обфускаторов, очевидно, если бы было что скрывать, то исходный код бы очень хорошо обсусцировали, тебе так не кажется?
От этого мы больше ничего неможем сказать, кроме того, что ваша надёжность основывается на недоступности, а это значит это плохая надёжность.
Может вам на Информационной безопасности не объясняли, я объясню.
Безопасность, основанная на неизвестности (security through obscurity) - это обеспечение безопасности, основаное на том, что злоумышленнику неизвестен алгоритм шифрования, IP-адрес компьютера, порт на котором работает служба и т.п.
Например - я размещу на компьютере секретную информацию, повешу компьютер в интернете и буду утверждать, что информция безопасна, так как IP-адрес компьютера неизвестен злоумышленника, следовательно, информцию он считать не сможет.
Или поступлю по-другому - к каждому байту применю XOR 10. Поскольку злоумышленнику неизвестно, какую операцию я делаю, он не сможет считать информацию.
В принципе это очень неэфективная методика обеспечения безопасности.
Приведу пример - полтора или 2 года назад некоторые участники после одной из полемик решили поглумиться надо мной и размещали на форуме в мой адрес некотоыре сообщения, применив к ним некотоыре алгоритмы, чтоб я не смог прочитать сообщение. Между собой они делились алгоритмами, и поэтому могли это читать.
Когда же алгоритм который они использовали стал известен мне, я тоже сомг это прочитать, вобщем-то алгоритмы были очень предсказуемы.
Это называется безопасность, основаная на неизвестности алгоритма шифрования.
В ответ я также разместит сообщение. Опять же алгоритм был предсказуем - и участники очень быстро догадались что к сообщению был применен алгоритм MD5 и BASE64. Но узнать что же там было написано никому не удалось.
Я использовал открытые алгоритмы, но дело все в том, что алгоритм MD5 не предусматривает возможности обратной операции при наличии ограниченых вычислительных средств.
Это, так сказать, небольшой ликбез.
Теперь что касается фразы
От этого мы больше ничего неможем сказать, кроме того, что ваша надёжность основывается на недоступности, а это значит это плохая надёжность.
Это, безусловно, верно, но это не имеет никакого отношения к .NET Framework.
AES - это открытый стандарт, я повторюсь - открытый стандарт.
Каждый желающий может с ним ознакомиться, скажем, здесь - http://en.wikipedia.org/wiki/AES
И какая бы реализация этого алгоритма не была - будет она на ассемблере и валяться на каждом углу сети, будет она на С++, на Delphi или на .NET - без разницы, доступен код, недоступен - это будет надежно.
На основе открытого алгоритма просто невозможно сделать "безопасность, основаную на неизвестности".
Т.е. кому надо найти лазейку, действительно декомпилируют и найдут.
Может в других системах это и так.
В .NET - пожалуйста, смотри - не хочу
А вы в свою очередь только кричите что нам нужны деньги, скорость, и единственный аргумент - "оно" работает.
Да, удивительно, судя по всему тебе не нужны деньги и скорость, а главный аргумент - "оно не работает"?
WCF мало относится к теме...
WCF очень хорошо относится к теме, так как одна из обязанностей WCF - это обеспечивать безопасность коммуникаций - и заметь, он это делает на основе открытых алгоритмов и открытых стандартов.
Вот, можешь зайти почитать:
http://en.wikipedia.org/wiki/WS-%2A
Безопасность, основанная на неизвестности (security through obscurity) - это обеспечение безопасности, основаное на том, что злоумышленнику неизвестен алгоритм шифрования, IP-адрес компьютера, порт на котором работает служба и т.п.
Норм шутка, смеялсо... Кто нибуть, объясните ему, у меня нет сил.
Например - я размещу на компьютере секретную информацию, повешу компьютер в интернете и буду утверждать, что информция безопасна, так как IP-адрес компьютера неизвестен злоумышленника, следовательно, информцию он считать не сможет.
Или поступлю по-другому - к каждому байту применю XOR 10. Поскольку злоумышленнику неизвестно, какую операцию я делаю, он не сможет считать информацию.
Оба примера аналогичны. Ничего что хотябы напоминает в них безопасноть, как ты и сказал, в них нет.
AES - это открытый стандарт, я повторюсь - открытый стандарт.
Ага открытый. Да он написанный на х.з. каких языках, да, валяется на каждом углу сети (хотя гы, ссылку в студию, я посмотрю где это он валяется ) ) но тот финалист конкурса, уж точно небыл написан на .net ) Соответственно MS его переписывали под свой фреймворк. А что может MS переписать/написать что-то нормально? MessageBox и ту немогут ) Куда им до AES, ну ты подумай )
Получить код AES может любой школьник который умеет работать с приложениями более сложными чем MS Paint
Может... ты вот пробовал, вначале это был IL код, потом был разговор про disassembler mode, потом был листинг Reflector... Что будет дальеше? Ты мне чёткий и ясный код AES, который работает напрямую с процессором, можешь выковырят из своего фреймворка? Ну мне он нафиг ненужен, но например криптоаналитикам чтобы проверить криворукость MS. Я недумаю что у тебя получится, максимум что получится, дизассемблировать ядро фрейворка, но там же билиберда будет... Как ты сомной несогласишся я непойму... Там будет вместо переменных - адреса, вместо меток, тоже адреса, циклы будут криво реализованы, условия тоже, это будет чистый ассемблер, но не чистый AES. У тебя и близко неполучится того кода, что я привёл на 3-ей страницы (хотя и он тоже не идеален, но его можно изучать...)
Ладно, всё это сотрясание воздуха, которое плавно перетикает NETvsШо_нибуть... Давай лучше конкретно вот про что. Вот скажи мне, почему банковские системы склонны к аппаратным реализациям, в этих аппаратах (платах) в микроконтроллерах код явно не на фреймворке, там больше похож на ассемблер. Причём за такие платы отваливают столько денег, что на них можно купить вполне крутой сервер, на который можно поставить и ос, и фреймворк... Так нет, заказывают именно аппаратные реализации тех же алгоримов шифрования, распределения ключей итп... Ну вот почему не пользуются готовыми классами фреймворка? А... нету .net специалистов? )) Ыыыы... а почему????
Норм шутка, смеялсо... Кто нибуть, объясните ему, у меня нет сил.
у студентов "Информационной безопасности" есть другое опредленеие "Безопасности, основанной на неизвестности"? Озвуч, пожалуйста, мне бы было интересно услышать.
Вряд ли ты скажешь что-то принципиально отличающееся.
Может... ты вот пробовал, вначале это был IL код, потом был разговор про disassembler mode, потом был листинг Reflector... Что будет дальеше?
Я тебе предлагал помимо IL еще на выбор 4-5 языков, если ты ни один из них не знаешь - твои проблемы.
Я недумаю что у тебя получится, максимум что получится, дизассемблировать ядро фрейворка, но там же билиберда будет...
не будет
У тебя и близко неполучится того кода, что я привёл на 3-ей страницы (хотя и он тоже не идеален, но его можно изучать...)
как же так? Официальная реализация AES - и не идеальная? Да не вздумай никому такое говорить - отчислят из Информационной безопасности еще до того как успеешь рот открыть.
Вот скажи мне, почему банковские системы склонны к аппаратным реализациям, в этих аппаратах (платах) в микроконтроллерах код явно не на фреймворке,
Ну и приведи мне пример "аппаратной реализации"!
Я могу привести пример - крупнейший банк Украины - ПриватБанк. Вся банковская система снабжена веб-интерфейсом, интернет-банк также имеет веб-интерфейс.
Я не могу утверждать с 100%-й уверенностью, но у меня есть все основания полагать, что серверная часть написана на Java.
В банкоматах очень часто стоит Windows NT/2000, и оснований утверждать что софт под них написан на ассемблере у меня нет, да, думаю, у тебя тоже нет.
Я тебе предлагал помимо IL еще на выбор 4-5 языков, если ты ни один из них не знаешь - твои проблемы
Да зачем мне нужно знать все эти языки? Ты мне на языке процессора, так ничего толкового, кроме факториала, и не показал...
Ну и приведи мне пример "аппаратной реализации"!
см. сайт ИИТ'a. Ссылку приводил выше.
Я могу привести пример - крупнейший банк Украины - ПриватБанк. Вся банковская система снабжена веб-интерфейсом, интернет-банк также имеет веб-интерфейс.
Ну, а я про что?! ) GUI, Web интерфейс итп итд.. конечно на .net, собственно он для этого и предназначен
Я не могу утверждать с 100%-й уверенностью, но у меня есть все основания полагать, что серверная часть написана на Java.
Зачем так обобщать серверную часть? Она может и на VB6.0 быть написана, и кстати прекрасно работать Но что с вариантом Java, что с VB6.0 обошлись без аппаратного распределения ключей - я просто неверю!
В банкоматах очень часто стоит Windows NT/2000, и оснований утверждать что софт под них написан на ассемблере у меня нет, да, думаю, у тебя тоже нет.
Ну смотри, GUI проги, которая работает с сервером по сокету, пусть хоть на твоём .net, хоть на vb6 - это действительно фиолетово. А относительно защиты той же дырявой ос nt/2000, ну как ты думаешь, на чём написано ядро того же фаервола? Опять на .net? )
Да зачем мне нужно знать все эти языки? Ты мне на языке процессора, так ничего толкового, кроме факториала, и не показал...
Да я и не говорил что покажу вообще-то...
Ну, а я про что?! ) GUI, Web интерфейс итп итд.. конечно на .net, собственно он для этого и предназначен
Ну че за гон? Я привел пример имнено банковской системы, или ты считаешь что система которая используется в крупнейшем банке Украины - она какая-то не совсем банковская?
Зачем так обобщать серверную часть? Она может и на VB6.0 быть написана, и кстати прекрасно работать Но что с вариантом Java, что с VB6.0 обошлись без аппаратного распределения ключей - я просто неверю!
На VB 6.0 она не написана, повторюсь, есть все основания предполагать что написана на JAVA.
Поверь - они обошлись без аппаратного распределения ключей.
Ну смотри, GUI проги, которая работает с сервером по сокету, пусть хоть на твоём .net, хоть на vb6 - это действительно фиолетово. А относительно защиты той же дырявой ос nt/2000, ну как ты думаешь, на чём написано ядро того же фаервола? Опять на .net? )
Мне вобщем-то абсолютно похрену на чем написан файрвол, тем более что к теме это никакого отношения не имеет.
А теперь правда о куске ассемблерного кода, предложеного HACKER'ом и им же названым "Официальной реализацией AES", кроме того "созданой самим победителем конкурса"
По просьбе предоставить мне информацию о том, какая реализация AES является официальной, HACKER предложил для ознакомления документ:
http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael-ammended.pdf
В документе я нашел очень интересную для себя информацию. В частности - полное описание алгоритма шифрования, выраженое, судя по всему, в математической нотации.
Также есть куски кода, первый из них помечен замечанием:
The round transformation is composed of four different transformations. In pseudo C notation
we have:
Вцелом в документе присутствует еще несколько примеров кода на неизвестном мне языке (судя по всему С), но ни строчки кода на ассемблере, тем более, указанных как "Официальная реализация AES" там нет.
Из того факта, что в комментарии к коду находится имя победителя конкурса и слово AES не следует что:
1) Данный код является официальной реализацией AES
2) Что данный код вообще написан победителем конкурса.
Поэтому у меня очень большая просьба к участникам форума приводить в обсуждениях только достоверную информацию, таковой можно считать информцию, подтвержденную официальными источниками.