Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем хорош opensource, или чем я занимался последние 4 дня :) 
V
    Опции темы
nickless
Дата 5.10.2008, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 7
Всего: 181



Как известно, один из аргументов за FOSS (Free / Open Source Software) является этот самый open source, причем часто в спорах/религиозных войнах в ответ на это говорят что-то вроде "а ты когда-нибудь в сорцы других программ заглядывал?".
Вот мне только что эта возможность очень помогла smile 


В общем, надо мне было написать (частичную) реализацию протокола TLS, чтобы подключится к веб-серверу через https:// и скачать index.html. Нужно это для универа, как демонстрация возможностей одной программки. Соответственно использовать готовую реализацию чего-нибудь посложнее базовых операций вроде шифрования можно было разве что для сравнения.

В начале всё шло гладко, поставил себе apache, сконфигурировал как надо, включил там дебаг, мониторил пакеты tcpdump-ом. Всё работало, пока я не дошел до второго шифрованого пакета, в ответ на который apache тупо писал в лог
Код

[debug] ssl_engine_kernel.c(1789): OpenSSL: Exit: error in SSLv3 read certificate verify A
...
[info] SSL Library Error: 336130329 error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac


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

Прикол в том, что в TLS всё завязано друг на друге - если в начале например не правильно сгенерировать так называемый "master secret" или не правильно зашифровать, ошибиться хоть где-нибудь на один бит, то вероятность того, что это сработает чрезвычайно мала.
Более того, все хорошие серверы пытаются выдать как можно меньше информации, которыя могла бы использоваться в целях нападения. OpenSSL например (как я потом узнал) в случае любой ошибки в полученом пакете тихо ставит флаг об ошибке и преспокойно продолжает протокол со случайными данными smile  smile 
В часности "decryption failed or bad record mac" могло означать любую комбинацию из: баг в HMAC хэше, баг в PRF функции (псевдо-рандом-генератор), не правильно сгенерированый master secret, не правильно сгенерированый ключ или начальный вектор (4 ключа, 2 вектора), ошибка в шифровании или padding-е одного из двух шифрованых пакетов, не правильный MAC итд. итп.

Я стал искать где бы включить побольше дебага, и тут до меня дошло, что я сижу под gentoo, и заинсталлировать слегка изменённую OpneSSL тут проще простого smile 
Нашел я там нужные файлы, благо функции используют названия из сецификации, и о чудо - там оказывается есть замечательный дефайн TLS_DEBUG, который делает как раз то что мне надо smile 
Я это немного разширил, добавил запись в лог всех ключей, секретов, размеров, деталей процесса расшифровки и за пару часов пофиксил все свои баги smile 


Я даже не хочу себе представлять как бы мне пришлось помучаться скажем с IIS и какой-нибудь propriatary реализацией SSL/TLS в нём...


Kак говорится, Use the Source, Luke smile 


--------------------
user posted image

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
PM MAIL   Вверх
krwlr
Дата 5.10.2008, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 6.12.2006

Репутация: 3
Всего: 51



we like sex smile 


--------------------
убрал
PM   Вверх
nickless
Дата 5.10.2008, 01:29 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 7
Всего: 181



угу smile 


--------------------
user posted image

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
PM MAIL   Вверх
powerfox
Дата 5.10.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Несколько раз при разработке использовал исходники Qt4. Если не понимаешь, почему функция работает не так, то gdb помогает это понять. А недавно, прорабатывая багрепорт, наткнулся на такую штуку:
Код

QString QAbstractFileEngine::fileName(FileName file) const
{
    Q_UNUSED(file);
    return QString();
}

Сразу стало ясно, почему я получаю вместо имени папки пустую строку.


--------------------
user posted image
PM WWW   Вверх
powerfox
Дата 5.10.2008, 13:45 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Но самое классное в Open Source — возможность заниматься любым проектом, который вас заинтересует. При этом вы чаще всего общаетесь с очень инетересными и опытными людьми. Это даёт возможность получать удовольствие от разработки и набираться опыта у более опытных коллег. 


--------------------
user posted image
PM WWW   Вверх
Alexandr87
Дата 5.10.2008, 15:58 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



opensource хорош тем, что не надо каждый раз изобретать велосипеды
PM Jabber   Вверх
anatox91
Дата 5.10.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: нет
Всего: 13



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


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
GrayCardinal
Дата 7.10.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



krwlr, 
 smile 


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 7.10.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 4
Всего: 207



nickless, 
+1
сам не раз использовал фичи opensource, в частности
opensource дает возможность модифицировать довольно серьезные библиотеки для приспособления их к своим нуждам


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Клуб юнуксоидов"
powerfox
ZeeLax
nickless

Что такое клуб юнуксоидов?

Это место более свободного общения специалистов и любителей *NIX систем.


Новичкам: Этот раздел предназначен в основном именно для общения а не решения проблем.


Правила всего раздела Linux/UNIX сюда не распространяются, но здесь имеются свои правила:


  • Оскорбления запрещены.
  • Holy wars разрешены, но в небольших размерах. Если вы создаёте что-то уровня Windows vs. Linux, то постите это в Религиозных войнах, пожалуйста.
  • Если вы хотите выставить здесь какое-либо своё творение - милости просим.
  • За интересные новости, интересные статьи, высказывания и юмор (в тему) + в репу.

Короче, по репе получите по полной программе ;-) Happy hacking!



Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Клуб юнуксоидов | Следующая тема »


 




[ Время генерации скрипта: 0.0686 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.