Archive for May, 2014

2014-05-23 една година след “болница 03”

Friday, May 23rd, 2014

Точно преди една година ми направиха дупка в главата.

Не знам дали станах по-добър човек (по-скоро не), но освен някакви дребни болки
не е имало никакъв друг проблем след това. Да не те боли е хубаво нещо.

(Ася, благодаря)

In this moment I am happy

Tuesday, May 20th, 2014

Тия дни си смених (пак) заглавието на блога, и от нямане на работа (или по-точно като почивка от разни неща, като например писане на лекции) и поради повредите, които се получиха в главата ми от четене на философски и подобни книги (“Моите правилни възгледи за всичко” на Лешек Колаковски (бля), книжката с афоризмите на Талеб (клишета от задник) и “The other side of sadness” на George Bonanno (страхотна книга)) реших да попиша малко глупости.
(приемете предното гигантско изречение като предупреждение)

(“In this moment I am happy” не знам откъде идва, брат ми си го беше написал на вратата едно време)

tldr: Светът/животът са прекрасни.

Та, светът е прекрасен. Слушам много хора да се оплакват от него, от живота и вселената като цяло, но това винаги е една изкривена картина, в която са извадени само нещата, които не им харесват.

Има няколко важни неща, които се пропускат:

Повечето проблеми са временни. Времето ги оправя, ние ги забравяме, или просто осъзнаваме колко незначителни са. Рядко има смисъл да им даваме да ни пречат да се радваме на живота.

Винаги има нещо интересно около нас. Да ти е скучно е признак или на някаква депресия, на тъпота или просто на нежелание да се направи нещо по въпроса. Човек с достатъчно желание и малко вътрешен мир може да си живее добре даже сам в главата си (както аз правя от време на време).
(като допълнение – винаги има нещо хубаво наоколо)

Имаме избор. Ако ще да е дали да живеем или не, избор винаги се намира под една или друга форма, остава да се възползваме от него.
(аз лично съм против самоубийството и дори съм говорил на хората против него, но да отнемеш избора и като цяло надеждата за някакъв резервен вариант е нещо доста гадно и не бих го причинил на никой)

В общи линии как се чувстваме е въпрос на личен избор. Дори да ни липсва способността съзнателно да го решим и реализираме, в наши дни се продава достатъчно добра дрога, че да го поправи.

Спасението на давещите се/нещастните/страдащите си остава в техните ръце.

(бяха ми споменали, че звуча будистки – мисля, че будистите са по-скоро на принципа “животът е гаден, ама какво от това/ние ще се справим и ще ни е спокойно въпреки това”, което аз намирам за примиренческо и като цяло за грешно)

2014-05-18 Stateless auth tokens (lightning talk от PlovdivConf 2014)

Sunday, May 18th, 2014

(презентация)

[slide 3 Често срещана практика]

(този трик вероятно има някакво стандартно име, което аз не знам, цялата лекция ми хрумна една вечер докато не можех да спя и така и не се зарових)

Много често ни се налага да генерираме token/код, който да изпратим на някой потребител (по страничен канал), за да се удостовери. Едно често срещано решение е да се генерира нещо съвсем random, което обаче води до пазене на твърде много state и много често не е практически възможно.

[slide 5 просто решение – подпис с криптографски hash/hash mac]

Проблемът има просто решение, чрез криптографски (hash) подписан token, от който може да се извади цялата информация, без да е нужно да се гледа някакъв state. Генерира се тривиално, като до информацията се долепя един HMAC подпис с някакъв secret, който ви е познат на вас.
(hmac е метод за прилагане на hash функция, например sha1. Не е добра идея да се използва директно SHA1 или нещо от същото семейство, понеже подлежи на lengthening атака, но може да се ползва SHA3)

Така тази информация се проверява тривиално, и не изисква да пазите каквото и да е и да могат да ви препълнят някакви таблици, да генерират писания в базата и т.н.

[slide 6 Инвалидация на token]

Схемата има един проблем – няма прост начин да се инвалидира. За това има няколко различни workaround-а:
Имаме timestamp, при който знаем кога изтича token-а и като цяло го правим да е валиден за кратко.
Слагаме в него нещо, което потребителя може да промени и така да го инвалидира (например паролата му, чрез смяната и може да ги направи невалидни).
Можем и да пазим кога последно сме генерирали token и да не признаваме по-стари (или по-нови) такива.
В общи линии последните две неща ни карат да питаме външен източник, когато проверяваме token-а, но пак ми дават възможност да държим много по-малко state.

[slide 8 VERP ]

За всички, които трябва да пращат поща и да знаят дали адресът не е bounce-нал – проста схема, в която пишем в Return-path: адресът, на който сме пратили писмото и по отговорите на този адрес знаем кой точно не се е получил. Към това лесно се добавя един прост подпис, така че да не се получават случайни писма при някакво глупаво изчерпване.

[slide 9 TCP Syncookies]

Вече default на всички tcp/ip стекове. Идеята е съвсем проста – ISN (initial sequence number) на сесията, който връщаме в SYN+ACK пакета представлява hash на secret и още няколко неща, така че когато получим третия пакет от handshake, можем да сме сигурни, че този клиент е искал да се свърже с нас.
(За повече подробности потърсете за SYN flood и защита от него).

[slide 10 client-side session]

Също така можем да спестим място от потребителски сесии – можем да пазим само последен timestamp и нищо друго, а самата сесия да е в cookie при потребителя и да не ни интересува. Така можем да сме сигурни, че ние сме му я подали и че не съдържа нещо, което не сме искали.

2014-05-11 workshop за видео/аудиозаписване за конференции

Sunday, May 11th, 2014

В четвъртък (15 май), от 19:30 в initLab ще правя пак workshop за озвучаване/записване (като за конференции).

2014-05-09 pandoc

Friday, May 9th, 2014

Никога повече няма да ползва WYSIWYG редактор, за да си пиша презентациите.

(tldr – може да видите какво ползвам в github и да си го нагласяте по ваш вкус)

Преди rogueconf бях решил, че повече не ми се занимава с libreoffice и кривото писане на лекции, та с малко търсене в google и съвети от хора открих pandoc, който се оказа доста удобен инструмент – от markdown генерира pdf презентации (и reveal.js и други такива бози), като сгъва markdown-а до latex, и от него прави pdf чрез beamer модула. Пример за това може да се види в лекцията ми от rouge2014.

Аз обаче имам навика да пиша и текста на самата лекция, освен презентацията, т.е. процесът ми е “бележки, презентация, текст, и после редактиране на последните две докато стават за нещо”. Дразнеше ме идеята, че трябва да редактирам два файла и че не мога да свържа добре нещата, защото обичам после и да блогна текста.

В крайна сметка стигнах до setup-а от github repo-то горе, който изглежда по следния начин:
В един .pandoc файл си пиша презентацията, и след всеки slide – текстът, в html коментар (който pandoc-а игнорира);
Чрез Makefile (щото съм мързел) от .pandoc файла генерирам:
презентация (с разни параметри, които ще разкажа);
бележки (реално текстът на .pandoc файла, подреден чрез a2ps така, че да се събира добре на landscape A4 листи);
blog post, който казва номер на slide, заглавие и след това текста от коментара (което се прави чрез тъп php скрипт, който си написах).

(едно от големите удобства на makefile и т.н. е, че може да си отворите презентацията с evince, при всяка промяна на файл да пускате make и той автоматично ще reload-не файла, така че да си виждате промените)

За да генерирам презентацията, както аз искам (т.е. какво може лесно да пипнете по кода горе) са правени следните неща:

–slide-level 2 – на колко “нива” са ви slide-овете. Примерната презентация е на 2, тази за pCloud api-то е на 3, като май 3 е идеално за нормално 40-минутна презентация и изглежда много добре с тая тема (Warsaw), понеже така отгоре се виждат секцията и под-секцията. Мисля, че май първо видях Харалд Велте да ползва нещо такова и бая ми хареса, но не бях мислил как го прави.

–template beamer.my – наложи се да пипна стандартния beamer template, щото по default не изкарваше кирилица (за pCloud-ската го използвах и да сложа логото в нея, което беше бая куц процес). Също така там има едно място, в което може да махнете да показва slide-ове за тези, които не са от най-долното ниво (т.е. в примерната презентация да няма “проблемът”, “решението” и “примери”).

-V colortheme:krok – има beamercolorthemekrok.sty в директорията, което е crane color theme от beamer-а, само че със сменени цветове (при мен зелено, в pcloud API-то – странно синьо).

Разбира се, може да си изберете и други теми, на този сайт има матрица с комбинациите от тема и тема за цветовете (темите за шрифтовете са малко и май default-а е ок).

Цялото нещо си има и проблеми – добавянето на лого беше супер мъчително (и стана със странен hack, в който не ми се навлиза), да се влияе на шрифтовете от markdown-а до latex-а е малко сложно, и има някакви странности (например, като сложех коментар веднага след заглавния slide, ми добавяше един празен). Също така ако не знаете latex (като мен) може да ви е доста криво да си правите някакви custom неща, но па google е добър приятел и даже в stackoverflow им texexchange, където хората редовно си задават такива въпроси и може да намерите нещо полезно.

2014-05-05 PlovdivConf 2014 – CfP и т.н.

Monday, May 5th, 2014

Почваме “турнето” тази година с PlovdivConf (2014), на 17ти май, повече подробности (ще) има на страницата. Също така от тази година пускаме тестово frab, та сега всеки може да подаде заявка за лекция.

тук има версия на интерфейса на български, но колко работи и как, дявол знае, ако имате желание, тествайте и си кажете мнението. Самия frab съм го fork-нал в джитхюп с моите промени и тия дни ще им ги пратя)

2014-05-01 how to cryptoparty

Thursday, May 1st, 2014

Утре (2ри май 2014, от 14:00) ще има How to Cryptoparty workshop/лекция в initLab, дошъл ни е на гости един младеж от Берлин да ни сподели опит. Това ни приближава още малко към по-генералната идея за такова събитие.

(ще се записва)

(от 13:00 ще правим setup-а за записа и ще обяснявам как се прави, ако на някой му е интересно)