И из чего ты сделал такое магическое умозаключение?
Ничего у меня не получится. Я могу на спор написать BASE8 на VB .NET. Но я не обладаю такими знаниями, терпением и желанием, чтоб с нуля написать и отладить алгоритм Rijndael.
Видишь разнице между непониманием алгоритма и неспособностью его реализовать?
Можно мыслить криптоалгоритмом на уровне "Берем два случайных больших простых числа", а можно на уровне "Для обеспечения безопасности службы используем SSL"
Я учусь в Таврической Государственной Агротехнической Академии (ТГАТА) на специальности "Информационные технологии проектирования" (ИТП) кафедры "Механизация сельского хозяйства" (МСХ). От нашего ВУЗа есть сельскохозяйственный техником, посмотрев продукты техникума сложно себе представить куда там можно приплести ассемблер, кроме как для того чтоб книгами по ассемблеру подпирать разболтаные парты....
Стойкость криптоалгоритма изучают криптологи, а вот что им можно дать на изучение и оценку в .net? Безмозглые вызовы функций? Код то ваш закрытый, т.е. рассказы о "крутых встроенных алгоримов" - детский сад. Вы код криптоаналитикам то покажите того же Rijndael, а нет у вас кода, нечего вам показывать ))
HACKER, ну не надо ж такую ерунду говорить
Если бы какой-то криптоаналитик усомнился в надежности AES в .NET Framework, то ему было бы достаточно скачать программу Reflector и декомпилировать нужный класс - не думаю что возможность безпрепятственной декомпиляции сборок для тебя новость
AES изначально опенсоурсное соревнование было, там годами всё проверяли, всем кому не лень, это не двадцаток, и не тридцаток криптоаналитиков ) А сотни и тысячи, причём которые делали это не для материальной выгоды.
Круто. А, значит, когда писали криптографию в .NET Framework, собрался десяток индусских программистов, наспех придумали какой-то алгоритм и реализовали? Ну честное слово, не нужно ерунду говорить!
Вопрос от аффторитетного криптоаналитика - почему в твоем коде нету вектора инициалзации? Для повышения уровня безопасности пакета данных что ли?
И вообще что я хочу сказать. Если орентироваться на бизнес-решения, которые в свою очередь орентированы на скорость разработки, и затем на скорость продажи Наверное .net хорошее решение. Если проект критичен к скорости, к безопасности, к универсальности, кросслпатформенности, .net неподходит. И ненужны мне бенчмарки, если б всё было гладко - все давно бы перешли на .net, а так, это лишь некоторые...
Насчет скорости - рассудить нас может только бенчмарк.
Безопасность - все криптоалгоритмы в .NET реализованы на основе стандартных алгоритмов, а не высосаны из пальца. Если бы были проблемы с реализацией данных алгоритмов, они бы проявились
Универсальность - поясни что ты имеешь в виду?
Насчет кросплатформенности - посмотри - все системы коммуникации - веб-сервисы, WCF - все основаны на открытых стандартах - XML, SOAP, стеке WS-* и т.п. Мою службу можно использовать из .NET, из VB, из С++, из ассемблера и т.п.
Даже если на Землю прилетит марсинаский корабль, то он тоже сможет использовать мою службу так как она работает на основе открытых стандартов.
Корчое извини, HACKER, но твой пост полностью не в тему вышел...
Привести код RijndaelManaged - не проблема, но это противоречит лицензионному соглашению, поэтому если интересно, можешь сам посмотреть, я в этом принимать участия не намерен.
Видишь разнице между непониманием алгоритма и неспособностью его реализовать?
Ууу, чем дальше, тем интересней...
Т.е. так, у тебя есть все подручные средства для реализации алгоритма программно(aka VB.NET), есть знания которые необходимы для реализации алгоритма(я надеюсь умеешь ксорить и сдвигать битики байтики или в этом вся загвоздка?), ты понимаешь, что этот алгоритм из себя представляет, а реализовать не можешь... Ну тут дело или в религии, которая не позволяет тебе этого сделать, или ты таки забыл что такое xor... А разве нет System.ForLamers.LogicalInstructions.MegaXor? Вот невезуха...
Психиатрическая больница, приезжает проверка. Всё им показывают, всё замечательно. И перед отъездом начальство психушки организует небольшой банкет. Выпили, закусили, и один из првоеряющих спрашивает:
- Слушай, вот можно вопрос один?
- Да, конечно.
- Вот всё никак не могу понять, очень инетресно. Вот как вы понимаете, когда больного пора выписывать, вот как эту тонкую грань нащупать?
- А, ну тут всё очень просто. У нас есть специальная тестовая комната, пойдемте покажу.
Проходят, там такая комнатка небольшая, посреди комнаты стоит ванна. Доктор набирает полную ванну воды, кладет ложку и ставит кружку.
- Вот мы больного приводим и спрашиваем: чем быстрее вычерпать, ложкой или кружкой?
- Ну конечно кружкой!
- Нет, таких мы пока не выписываем. Там внизу пробочка есть...
Т.е. так, у тебя есть все подручные средства для реализации алгоритма программно(aka VB.NET), есть знания которые необходимы для реализации алгоритма(я надеюсь умеешь ксорить и сдвигать битики байтики или в этом вся загвоздка?), ты понимаешь, что этот алгоритм из себя представляет, а реализовать не можешь... Ну тут дело или в религии, которая не позволяет тебе этого сделать, или ты таки забыл что такое xor... А разве нет System.ForLamers.LogicalInstructions.MegaXor? Вот невезуха...
1) Западло читать полное описание алгоритма
2) Западло писать 1000 строк кода
3) Западло потом все это отлаживать и доводить до ума.
Я мог 2 года назад на спор реализовать BASE 8 о котором ничего на тот момент не знал, но сейчас мне просто западло это делать - у меня нет времени херней маяться, мне нужно работать и зарабатывать деньги.
Brand, ну ей Богу, о какой херне речь?
Давай подумаем сколько получает денег человек, который писал AES для фреймворка? Ладно, шучу...
Сомневаться в перспективах человека, который сегодня может написать AES на ассемблере, просто глупо и звучит это смешно, у меня уже начинает складываться впечатление, что ты просто завидуешь. Надеюсь, я ошибаюсь всё-таки
Господа, которые считают, что МС хотя бы что-то может реализовать не через жопу, будь то операционная система, метод сортировки (банальнейший! который знает любой студент-программист!) или алгоритм шифрования, меня сильно удивляют. MS Blast, Sasser, многочисленные дыры во всем, чем только можно и даже в медиа-файлах, BMP, WMF и недавний ANI - как после этого можно думать, что а уж вот этот кусок говнокода, который, правда, пока мало кому интересен, точно не содержит никаких ошибок, и AES там реализован идеально и все остальное тоже.
Давай подумаем сколько получает денег человек, который писал AES для фреймворка?
Давай подумаем сколько денег получает человек который основал Microsoft?
Сомневаться в перспективах человека, который сегодня может написать AES на ассемблере,
... в перспективах челвоеа, который сегодня может написать тысячную по счету раелазиацию AES без вектора инициализации на ассемблере...
у меня уже начинает складываться впечатление, что ты просто завидуешь
Я завидую. Очень завидую. Но не тому кто может сходу написать на ассемблере 1000 строк кода.
Я завидую тому кто может десятком строк в кофнигурационном файле проложить тунель с задаными характеристиками между двумя приложениями.
И в перспективах человека который это может сделать, я ни на секунду не засомневаюсь.
А ассемблер и реалзиацию AES предпочту оставить энтузиастам у которых куча времени свободного.
Если бы какой-то криптоаналитик усомнился в надежности AES в .NET Framework, то ему было бы достаточно скачать программу Reflector и декомпилировать нужный класс - не думаю что возможность безпрепятственной декомпиляции сборок для тебя новость
Все классы будем декомпилировать? Тебе Sharp предлагал, давай декомпилируем RijndaelManaged )) С этого места отпадает жилание у криптоаналитиков работать с MS продуктами. Декомпиляция будет включать в себя столько хлама, кто ты просто ничего не вычитаешь оттуда относительно Rijndael'a. От этого невозможность изучения фреймворка, его классов, встроенных алгоритмов. От этого мы больше ничего неможем сказать, кроме того, что ваша надёжность основывается на недоступности, а это значит это плохая надёжность. Т.е. кому надо найти лазейку, действительно декомпилируют и найдут. А вы в свою очередь только кричите что нам нужны деньги, скорость, и единственный аргумент - "оно" работает. Как оно работает вам абсолютно фиолетово, т.к. кроме классов System.ForLamers.LogicalInstructions.MegaXor больше ничего нет. Те, кто делают деньги обеспечивая ИТ-безопасность не используют .net, или используют его для других целей (морды проги итп...) Или я не прав? и WCF мало относится к теме...
Sharp, погоди, я до этого не дошёл))
Кстати, люди, которые писали сплойты под эти уязвимости заработали столько денег, сколько любой NET программист за год едва ли заработает
Ну да, конечно же все они знали ассемблер.
Давай подумаем сколько денег получает человек который основал Microsoft?
Думаешь, он бы зарабатывал столько, если не знал ассемблера?
в перспективах челвоеа, который сегодня может написать тысячную по счету раелазиацию AES без вектора инициализации на ассемблере
Может объяснишь неведающему, каким образом использование вектора инициализации будет влиять на реализацию непосредственно алгоритма шифрования?
Не неси чушь.
Я завидую тому кто может десятком строк в кофнигурационном файле проложить тунель с задаными характеристиками между двумя приложениями.
Странные у тебя представления о безопасности. Если скажем на
автомобиле установлена сигнализация, это значит что иммобилайзер
хреновый? Вообще в нормальных системах всегда делается несколько слоев
обеспечения безопасности (скажем, для безопасности БД нужно закрыть
прямой доступ к таблицам, а взаимодействие производить через View и
ХП, для доступа использовать учетную запись с ограниченными правами,
для недопущения SQL injection использовать параметризированные запросы
и т.п. Нарушение одного из этих методов возможно не позволит взломать
систему, но чем больше средств защиты, тем лучше; так же в моем
примере насчет автомобиля - отсутствие сигнализации не позволит угнать
автомобиль, если стоит иммобилайзер, но зато магнитолу стырить будет
труднее).
То, что код шифрования скомпилирован в сборку - не значит, что код
хреновый. Да и скомпилирован он не для обеспечения защиты, хотя
чуть-чуть геммороя доморощенным криптоаналитикам может создать.
HACKER, ну я понимаю, что ты горазд - много головой об стену бился, но
кроме ассемблера еще логику применяй, жить станет легче