![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 7 Всего: 181 |
Как известно, один из аргументов за FOSS (Free / Open Source Software) является этот самый open source, причем часто в спорах/религиозных войнах в ответ на это говорят что-то вроде "а ты когда-нибудь в сорцы других программ заглядывал?".
Вот мне только что эта возможность очень помогла В общем, надо мне было написать (частичную) реализацию протокола TLS, чтобы подключится к веб-серверу через https:// и скачать index.html. Нужно это для универа, как демонстрация возможностей одной программки. Соответственно использовать готовую реализацию чего-нибудь посложнее базовых операций вроде шифрования можно было разве что для сравнения. В начале всё шло гладко, поставил себе apache, сконфигурировал как надо, включил там дебаг, мониторил пакеты tcpdump-ом. Всё работало, пока я не дошел до второго шифрованого пакета, в ответ на который apache тупо писал в лог
Я целый день дебажил это дело, перечитывал спецификацию, пытался найти что именно идёт не так, скачал реализацию TLS, сравнивал с моей, использовал части другой реализации везде где можно, посылал мусор, инициализировал всё нулями итд. Никакой разницы. Прикол в том, что в TLS всё завязано друг на друге - если в начале например не правильно сгенерировать так называемый "master secret" или не правильно зашифровать, ошибиться хоть где-нибудь на один бит, то вероятность того, что это сработает чрезвычайно мала. Более того, все хорошие серверы пытаются выдать как можно меньше информации, которыя могла бы использоваться в целях нападения. OpenSSL например (как я потом узнал) в случае любой ошибки в полученом пакете тихо ставит флаг об ошибке и преспокойно продолжает протокол со случайными данными В часности "decryption failed or bad record mac" могло означать любую комбинацию из: баг в HMAC хэше, баг в PRF функции (псевдо-рандом-генератор), не правильно сгенерированый master secret, не правильно сгенерированый ключ или начальный вектор (4 ключа, 2 вектора), ошибка в шифровании или padding-е одного из двух шифрованых пакетов, не правильный MAC итд. итп. Я стал искать где бы включить побольше дебага, и тут до меня дошло, что я сижу под gentoo, и заинсталлировать слегка изменённую OpneSSL тут проще простого Нашел я там нужные файлы, благо функции используют названия из сецификации, и о чудо - там оказывается есть замечательный дефайн TLS_DEBUG, который делает как раз то что мне надо Я это немного разширил, добавил запись в лог всех ключей, секретов, размеров, деталей процесса расшифровки и за пару часов пофиксил все свои баги Я даже не хочу себе представлять как бы мне пришлось помучаться скажем с IIS и какой-нибудь propriatary реализацией SSL/TLS в нём... Kак говорится, Use the Source, Luke -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
| krwlr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 6.12.2006 Репутация: 3 Всего: 51 |
we like sex
-------------------- убрал |
|||
|
||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 7 Всего: 181 |
угу
-------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 20 Всего: 97 |
Несколько раз при разработке использовал исходники Qt4. Если не понимаешь, почему функция работает не так, то gdb помогает это понять. А недавно, прорабатывая багрепорт, наткнулся на такую штуку:
Сразу стало ясно, почему я получаю вместо имени папки пустую строку. |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 20 Всего: 97 |
Но самое классное в Open Source — возможность заниматься любым проектом, который вас заинтересует. При этом вы чаще всего общаетесь с очень инетересными и опытными людьми. Это даёт возможность получать удовольствие от разработки и набираться опыта у более опытных коллег.
|
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
opensource хорош тем, что не надо каждый раз изобретать велосипеды
|
|||
|
||||
| anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
больше всего он хорош для начинающих программистов типа меня, т.к. таким образом лучше всего, как я считаю, получать опыт
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 18 Всего: 58 |
krwlr,
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 4 Всего: 207 |
nickless,
+1 сам не раз использовал фичи opensource, в частности opensource дает возможность модифицировать довольно серьезные библиотеки для приспособления их к своим нуждам -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Клуб юнуксоидов" | |
|
|
Что такое клуб юнуксоидов? Это место более свободного общения специалистов и любителей *NIX систем. Новичкам: Этот раздел предназначен в основном именно для общения а не решения проблем. Правила всего раздела Linux/UNIX сюда не распространяются, но здесь имеются свои правила:
Короче, по репе получите по полной программе ;-) Happy hacking! Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Клуб юнуксоидов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |