Category Archives: технология

Линукси стари, линукси нови

от Ясен Праматаров
лиценз CC BY

Не знам какво ме прихвана, но около Коледа и Нова година реших да изтупам праха от някои стари машини вкъщи. От много време вече работя все на лаптоп и настолна машина не бях пипал от доста години. Светко има в стаята си едно настолно HP, което нарочно бях избрал, за да е по-лесно за ъпгрейди, но няколко години вече не е видяло нова част, а пък и Линуксът му е стар. Деца на обущар…

Но понеже Оги получи за рождения си ден кашон с части за сглобяване на настолен компютър, след като го сглобихме, инсталирахме и настроихме, темата за настолните машини някак се завърна. Оги си избра Ubuntu 20.04 Focal Fossa – май основно заради “котката” на тапета. Всъщност фосата не е котка, а вид африканска цивета и има толкова общо с котките, колкото и, например, африканското диво куче или лисиците. Но тапетът е готин, а и си прилича на дива котка, няма какво да се лъжем.

Покрай всичко това реших да изровя старите машини. Старият ни компютър, който с Краси бяхме взели на части и сглобили, когато отидохме да живеем в Надежда навремето, бях дал на мама и татко с идеята да го ползват за музикална кутия. Вътре има много музика – копирана от мои дискове и изтеглена със свободни авторски права от интернет. Много класическа музика – тогава те искаха да могат да си слушат класика и аз бях подготвил стария “wishmaster” да им служи за това.

Дал съм им го някъде преди 10 години. Толкова не е бил включван. Сега, като го пуснах, при стартирането взе да си проверява файловата система, защото са били минали 3580 дни

Музиката си е там, линуксът си върви, макар и вече стар. Но тати го няма, така и не са стигнали до това да си пускат музика от компютъра. Трябваше да им показвам и повече да им настоявам да го ползват.

Тази машина се казва “wishmaster”, заради Nightwish. Да, близо до ума е. Между другото, и името на блога ми е от същата песен. Сега се чудя дали да обновя софтуера ѝ – всичко е замръзнало някъде между 2009 и 2011. Комбинация от Debian Squeeze, когато още е бил Sid/unstable и Sidux.

Няма проблем да го обновя, аз с такива неща даже си почивам, но като се сетя, ми става тъжно. Гледам го като паметник на отминало време, сещам се за татко. За всичко, което сме си говорили, за трудностите накрая, за болестите, колко трудно му беше на него и колко мъчно ми беше на мен, че не мога да помогна повече и как нямах даже на кого да разкажа, освен вкъщи на Краси и децата. Сигурно ще ми мине с времето…

Другата машина, която пуснах, е един попаднал ми Уиндоус 10, който беше в ужасно състояние като инсталация и на практика работеше само в safe mode, но има интересни чаркове, които все още мога да използвам – видеокарта и т.н. След като Уиндоуса не успях да оправя (е, не си дадох и прекалено зор), приенсталирах. Но понеже или заради дъното, или заради флашката, не успях да заредя от usb, се наложи да изровя старите класьори с дискове. Не съм записвал CD/DVD от ужасно много време, и аз не помня откога. В един класьор, дето Краси ми го беше подарила, когато раборех в Енергото, намерих всичките дискове на Debian Woody (от когато излезе, значи от 2002г.) – е, тръгна, но не разпозна диска… то SATA по това време си е още лека екзотика.

Рових, рових и намерих едно Ubuntu 4.10 – всичко мина ОК, само дето не можа да пусне видеокартата и остана в текстов. Тя тая geforce-ка излиза бая години след това, как да я познае. Викам на децата, “ето, тоя диск е от 4 (месец април) 2010г. – явно тогава за последно съм записвал инсталационен диск”. И тагадък-тагадък – лека-полека надстройване до 6.06, после до 8.04, после до 10.04… Следва минаване към 64-битов (дискът беше 32) и евентуално към Debian. Чак взех да се чудя защо си губя времето, но пък след толкова години администриране на сървъри, ми е интересно.

И изведнъж ми просветва – не е било април 2010г., а октомври 2004г.! След това кой ще ти записва инсталационни дискове?

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

Има един още по-стар линукс, който наистина първо трябва да бъде почистен от прах и да видя дали изобщо се включва. А и не знам дали имам AT клавиатура.

Не искам да пазя стари вещи и да събирам прах вкъщи. Просто ми беше интересно да поровя в тези стари джаджи и да си спомня разни неща. После дойде новата година и вече трябва да гледам напред. Поздрави на всички за новата 2022 година, много здраве ви пожелавам! Другото ще си го купим, ако изобщо ни потрябва. ;)

I Have Been Appointed As E-Governance Minister of Bulgaria

от Божидар Божанов
лиценз CC BY

Last week the Bulgarian National assembly appointed the new government. I am one of the appointed ministers – a minister for electronic governance.

The portfolio includes digitizing registers and processes in all government institutions, reducing bureaucracy, electronic identity, cybersecurity, digital skills and more.

Thanks to all my readers for following this blog throughout the years. I will be sharing some digital policy details here from now on while I’m minister. That may include some technical articles, but they are unlikely to be developer-oriented.

I hope to make some important changes and put forward key ideas for e-governance and digital policy that can be used as an example outside my country (last time I was involved in public policy, I helped pass an “open source law”).

I’ve written a few articles about IT people looking for challenges – not just technical challenges. And I think that’s a great challenge where I’ll have to put all my knowledge and skills to work for the common good.

The post I Have Been Appointed As E-Governance Minister of Bulgaria appeared first on Bozho's tech blog.

Министър на електронното управление

от Божидар Божанов
лиценз CC BY

В понеделник ще бъда предложен на Народното събрание за министър на електронното управление.

Отговорността и очакванията са огромни, а задачите – неизброими.

Ще започнем с електронната идентификация, с отпадането на удостоверения и с оптимизираме и електронизиране на ключови процеси. Ще трябва паралелно с това да създадем и министерство.

Целта е да премахнем бюрокрацията и да спестим време и нерви на гражданите и бизнеса.

Благодаря на всички за продължаващата подкрепа.

Материалът Министър на електронното управление е публикуван за пръв път на БЛОГодаря.

Възрастово разпределение на родилките в България – 2021

от Боян Юруков
лиценз CC BY-SA

Преди 6 години подтикнат от дискусия в Twitter изкарах статистика с анимирани графики за ключов аспект от демографската криза – все по-късната възраст, в която двойките решават да имат деца. По този показател въобще не сме на челните места в Европа. Всъщност, дори погледнато средно сме сред държавите с най-ниска средна възраст на родилките. Все пак отлагането на децата допринася значително за „разреждането“ на поколенията и намаляването на общата раждаемост.

В тази и предишната ми статия отново се съсредоточваме върху жените, най-вече защото за тях има най-точни данни. Този фокус обаче е в немалка степен погрешен. От една страна, жените в детеродна възраст изнасят на раменете си един изключително тежък процес докато в същото време се очаква да отговорят на всички останали обществени очаквания в икономически и социален смисъл. От друга, почти изцяло се пропуска ролята на мъжа в репродуктивното здраве, както и в процесите, които описвам по-долу.

Първото нещо попада в по-широкия дебат за равноправното участие в грижата за децата, бащинството, дискриминацията на работното място, достъпа до ясли и градини, социалната мрежа и сигурност в началото на кариерата и прочие. Тези теми засягат в огромна степен и решението за отлагане на децата и дават обяснение, защо все по-малко се решават на тази стъпка в началото на 20-те си години. Тук следва да включим и все още битуващата стигма и очакване за определена отговорност на жените и то в определена възраст. Решението е лично на всяка двойка и за такова винаги има разнообразни и лични причини. Следвайки общата статистика може само да наблюдаваме резултатите. В никакъв случай обаче не може да определяме конкретен тип решения или аспект от работната или социалната среда като първопричина. Може да се работи в посока стимули и решение на споменатите проблеми. Никой от тях обаче няма да помогне взет самостоятелно.

Вторият споменат аспект е много малко изследван и това не помага въобще на обсъждания проблем. Когато се говори за репродуктивни проблеми, всички обръщат внимание на жените и особено на късната възраст. Докато рисковете и трудностите несъмнено се повишават значително, почти изцяло се пропуска нашата роля на мъже в този процес. Репродуктивните проблеми при мъжете не са по-малко и имат също толкова негативни последствия. Отделно влошеното общо здраве, масовото пушене, липса на спорт и общо затлъстяване на не малка част от сънародниците ни задълбочава проблема. Битува обаче разбиране, че това няма значение и вината се прехвърля почти изцяло на жените. От там и съответно повечето данни и изследвания са с фокус именно върху последните.

С всичко това наум и ясно осъзнавайки, че ефективно продължавам този проблем, реших да обновя графиките с данните между 2000 и 2020 г. Повече подробности за графиките ще намерите в предишния ми текст. Тук ще гледам да мина през важните точки.

Първата графика показва кривата на възрастовото разпределение през годините. Малко трудно се чете и затова направих следващите графики. Вижда се обаче ясно изместване на кривите вдясно към по-големите възрасти. Вижда се също спиране и обръщане на намалението на родилките под 25 г., за което ще говорим после.

Тук се вижда промяната по възрастови групи спрямо 2000 г. Вижда се, че родилките над 30 години заемат много по-голям дял, нещо, което знаем. Децата родени от майки над 45 г. пък са се увеличили 10 пъти, като основното увеличение е било след 2014-та. Обяснението за последното са делата по онова време срещу фонда за асистирана репродукция относно дискриминативните им практики.

Следващата графика показва броя деца родени по възрастова група на майките. Забелязва се резкия спад на броя деца от жени под 25 г. и изместването към 30 и 35 годишните. За това разбираме и от средната възраст на майките като индикатор публикуван всяка година от НСИ. Тази анимация обаче показва динамиката на този процес.

Около 2010-та година нарастването на средната възраст се е дължало не на намалението на ражданията сред 20-годишните, а на увеличената раждаемост сред 35 годишните поради отлагане на деца в края на 90-те. 10 години по-късно обаче вече се вижда ясно изместване на общия профил на жените, а и двойките, които се решават на деца в посока на стандартното за Западна Европа.

Горната графика обаче показва броя деца в абсолютни стойности. В действителност възрастовият профил на жените в детеродна възраст се е променял значително през разглеждания период от 20 години. Повече за това по-нататък. Докато до тук разглеждахме раждания, следващата графика показва раждаемостта – т.е. брой деца на всеки 1000 жени.

Сега се вижда онова паралелно увеличение до 2010-та година при 35 годишните, за което говорих преди. След 2010-та обаче не се вижда вече изместване на профила на родилките. Т.е. жените през 2010-та под 25 г. са раждали почти толкова, колкото тези през 2020-та. Просто като общ брой са били по-малко. Вижда се дори увеличение при тези между 25 и 30 г.

Оказва се, че основната причина за повишаването на средната възраст на раждане не е до каква степен жените навлизащи в детеродна възраст и по-слабите им половинки са готови на деца, а решенията, които техните родители са взели през 90-те. Защото сегашните 20 до 30 годишни са именно тези родени между 1990 и 2000 г.

На следната графика виждаме в лилаво динамиката на броя жени от всяка възрастова група през годините между 2000 и 2020 г. Освен ниската и отложена раждаемост през 90-те, един голям фактор е емиграцията. Затова този път добавих приблизителна оценка какъв би бил броя им, ако изключим изцяло емиграцията. В оценката взимам населението през 60-те и прилагам същите индекси на раждаемост и смъртност, каквито са регистрирани през следващите 60 години.

Виждаме ясно отдалечаване на двете криви колкото повече време минава. Тази разлика отразява не само хората напуснали страната, но и децата им, които тепърва ще влизат в детеродна възраст. През 2010-та година разликата е била около 342 хиляди жени между 15 и 55 години. През 2020-та вече е 415 хиляди. Това е липса изцяло базирана на емиграцията.

Разбира се, тази оценка е доста груба и в нея прозират няколко дефекта. Основният е, че предполага същата раждаемост и смъртност при условия на „затворени граници“. Най-малкото икономическите и социалните ефекти от подобна мярка биха влошили значително и двата показателя. Отделно, че в актуалните данни се отчитат двойки, които са родили деца и за заминали заедно и такива, които са били в чужбина, но са е върнали и са имали деца преди или след прибирането.

Динамиката на населението не е нещо, което може да се обрисува с толкова прост механизъм като описания. Целта тук обаче е да даде приблизителна представа за ефектът, който намалената раждаемост през 90-те има над раждаемостта сега, както и че дори без емиграцията такова намаление щеше да се наблюдава, макар и с известно закъснение.

Един положителен сигнал, който виждаме в данните от последните години, е лекото увеличение на жените навлизащи в детеродна възраст. Вижда се от увеличението на броя момичета под 20 години. Това, разбира се, е ефектът от повишената раждаемост, която видяхме в началото на графиките горе. В същото време е твърде слаб и все още кратък сигнал, за да може да си правим изводи. Вълната на ефекта от 90-те ще има нужда от 40 години да отмине, през което време ще виждаме намаляваща раждаемост. Т.н. демографски преход тепърва започва.

Има две неща, които могат да го обърнат. За първото ще си говорим друг път. Второто е имиграцията и включва както така бленуваното и обещаваното от всеки следващ провъзгласил се за спасител връщане на някаква част от българите от чужбина, така и миграция от трети страни като южна Азия, съседните балкански страни или такива, с които България е имала добри контакти и обмен на студенти в миналото. С досегашната политика, публично говорене, действия към правата на човека и бездействие по ред други теми, което и от двете е трудно да си представим да се случи в мащаби, които ще променят сигнала нагоре.

The post Възрастово разпределение на родилките в България – 2021 first appeared on Блогът на Юруков.

Движение на активните българи в чужбина – ноември 2021

от Боян Юруков
лиценз CC BY-SA

Реших да обновя картата, която изготвих през юли. Тогава тя даваше представа за пътя на над 9400 души. Сега с последните заявления виждаме този на над 12 хиляди.

Наскоро отново стана дума дали съдържанието ѝ отговоря на GDPR и въобще дали се обработват някакви лични данни. Описал съм подробно алгоритъма в оригиналната статия от преди 5 години, когато картата имаше едва 1268 записа. В последната отбелязах отново важното.

В случая става дума за информация, която се публикува от ЦИК в рамките на специален закон. Доколко това е правилно съм оспорвал вече – едно е да разлепяш списъци пред секции, друго е да ги публикувал в електронен формат, както много общини правят. Има много по-добър начин ЦИК да осигури проверката на заявилите гласуване в чужбина спазвайки изискването за проверимост заложено в закона. Но са се спрели на чисто чиновническо решение. Отделно собственото им чиновническо мислене довежда до там да не спазват собствените си процедури и системи за сигурност и се стига до теч на лични данни, както този с ЕГН-тата на членовете на комисии зад граница. При заявленията за гласуване не говорим за теч на данни обаче, а нарочно публикуване.

Въпросът дали и как може да се обработват не е приложим при тази карта или инициативата Glasuvam.org като цяло, тъй като тук се борави със статистика върху публикуваната информация. Не се записват имената на хората, а анонимизирана информация с цел потвърждение на броя заявили желание по секции, потвърждение на собствените данни на ЦИК, както и промените и прехвърляне на заявления, които често правят в рамките на кампанията. В този смисъл анонимизираната информация не съдържа лични данни и не може да се използва за идентифициране на даден човек.

Всъщност, макар картата да не „проследява“ отделни активни българи в чужбина, подобно на картата за българчетата родени зад граница и статистиката, която извадих след това за тях, тя дава представа за общото движение на групи от хора. Така има повече естетическа стойност и „поглед отвисоко“, а не е инструмент за проследяване, както навярно би могло да се приеме буквално заглавието на първата ми статия.

В същото време, в интервюта и предишни текстове съм предупреждавал, че подобна обработка на големи масиви от данни без анонимизиране и всички мерки, които взимам години преди да се въведе GDPR, би могло да се проследяват по подобен начин хора. Разбира се, това е далеч по-трудно, непрактично и неточно, в сравнение с редовните течове на информация, особено такива включващи българите в чужбина. Такива са не само скорошния на ЦИК, но и този на НАП преди две години и този на Външно преди доста повече, когато изтекоха адресите в България и чужбина на подали заявление да гласуват зад граница. Истината е, че има прекалено много идентифицираща информация в частни и обществени структури, от които може да се сглоби притеснително точна картинка кои сме и какво правим. Това отдавна се използва като основа на бизнес модела на редица компании, някои за които дори не сме чували. Докато обръщаме много внимание на действията и проблемите в администрацията, истината е, че подобни „течове“ са редовна практика и всъщност същността на най-големите бизнеси, от които вече неизменно зависим.

The post Движение на активните българи в чужбина – ноември 2021 first appeared on Блогът на Юруков.

Simple Things That Are Actually Hard: User Authentication

от Божидар Божанов
лиценз CC BY

You build a system. User authentication is the component that is always there, regardless of the functionality of the system. And by now it should be simple to implement it – just “drag” some ready-to-use authentication module, or configure it with some basic options (e.g. Spring Security), and you’re done.

Well, no. It’s the most obvious thing and yet it’s extremely complicated to get right. It’s not just login form -> check username/password -> set cookie. It has a lot of other things to think about:

  • Cookie security – how to make it so that a cookie doesn’t leak or can’t be forged. Should you even have a cookie, or use some stateless approach like JWT, use SameSite lax or strict?
  • Bind cookie to IP and logout user if IP changes?
  • Password requirements – minimum length, special characters? UI to help with selecting a password?
  • Storing passwords in the database – bcrypt, scrypt, PBKDF2, SHA with multiple iterations?
  • Allow storing in the browser? Generally “yes”, but some applications deliberately hash it before sending it, so that it can’t be stored automatically
  • Email vs username – do you need a username at all? Should change of email be allowed?
  • Rate-limiting authentication attempts – how many failed logins should block the account, for how long, should admins get notifications or at least logs for locked accounts? Is the limit per IP, per account, a combination of those?
  • Captcha – do you need captcha at all, which one, and after how many attempts? Is Re-Captcha an option?
  • Password reset – password reset token database table or expiring links with HMAC? Rate-limit password reset?
  • SSO – should your service should support LDAP/ActiveDirectory authentication (probably yes), should it support SAML 2.0 or OpenID Connect, and if yes, which ones? Or all of them? Should it ONLY support SSO, rather than internal authentication?
  • 2FA – TOTP or other? Implement the whole 2FA flow, including enable/disable and use or backup codes; add option to not ask for 2FA for a particular device for a period of time? Configuring subset of AD/LDAP users to authenticate based on certain group memberships?
  • Force 2FA by admin configuration – implement time window for activating 2FA after a global option is enabled?
  • Login by link – should the option to send a one-time login link be email be supported?
  • XSS protection – make sure no XSS vulnerabilities exist especially on the login page (but not only, as XSS can steal cookies)
  • Dedicated authentication log – keep a history of all logins, with time, IP, user agent
  • Force logout – is the ability to logout a logged-in device needed, how to implement it, e.g. with stateless tokens it’s not trivial.
  • Keeping a mobile device logged in – what should be stored client-side? (certainly not the password)
  • Working behind proxy – if the client IP matters (it does), make sure the X-Forwarded-For header is parsed
  • Capture login timezone for user and store it in the session to adjust times in the UI?
  • TLS Mutual authentication – if we need to support hardware token authentication with private key, we should enable TLS mutual. What should be in the truststore, does the web server support per-page mutual TLS or should we use a subdomain, if there’s a load balancer / reverse proxy, does it support it and how to forward certificate details?
  • Require account activation or let the user login immediately after registration? Require account approval by back-office staff?
  • Initial password setting for accounts created by admins – generate initial password and force changing it on first login? Don’t generate password and start from a password reset flow?
  • Login anomalies – how to detect them and should you inform the user? Should you rely on 3rd party tools (e.g. a SIEM), or have such functionality built-in?

And that’s for the most obvious feature that every application has. No wonder it has been implemented incorrectly many, many times. The IT world is complex and nothing is simple. Sending email isn’t simple, authentication isn’t simple, logging isn’t simple. Working with strings and dates isn’t simple, sanitizing input and output isn’t simple.

We have done a poor job in building the frameworks and tools to help us with all those things. We can’t really ignore them, we have to think about them actively and take conscious, informed decisions.

The post Simple Things That Are Actually Hard: User Authentication appeared first on Bozho's tech blog.

Integrity Guarantees of Blockchains In Case of Single Owner Or Colluding Owners

от Божидар Божанов
лиценз CC BY

The title may sound as a paper title, rather than a blogpost, because it was originally an idea for such, but I’m unlikely to find the time to put a proper paper about it, so here it is – a blogpost.

Blockchain has been touted as the ultimate integrity guarantee – if you “have blockchain”, nobody can tamper with your data. Of course, reality is more complicated, and even in the most distributed of ledgers, there are known attacks. But most organizations that are experimenting with blockchain, rely on a private network, sometimes having themselves as the sole owner of the infrastructure, and sometimes sharing it with just a few partners.

The point of having the technology in the first place is to guarantee that once collected, data cannot be tampered with. So let’s review how that works in practice.

First, we have two define two terms – “tamper-resistant” (sometimes referred to as tamper-free) and “tamper-evident”. “Tamper-resistant” means nobody can ever tamper with the data and the state of the data structure is always guaranteed to be without any modifications. “Tamper-evident”, on the other hand, means that a data structure can be validated for integrity violations, and it will be known that there have been modifications (alterations, deletions or back-dating of entries). Therefore, with tamper-evident structures you can prove that the data is intact, but if it’s not intact, you can’t know the original state. It’s still a very important property, as the ability to prove that data is not tampered with is crucial for compliance and legal aspects.

Blockchain is usually built ontop of several main cryptographic primitives: cryptographic hashes, hash chains, Merkle trees, cryptographic timestamps and digital signatures. They all play a role in the integrity guarantees, but the most important ones are the Merkle tree (with all of its variations, like a Patricia Merkle tree) and the hash chain. The original bitcoin paper describes a blockchain to be a hash chain, based on the roots of multiple Merkle trees (which form a single block). Some blockchains rely on a single, ever-growing merkle tree, but let’s not get into particular implementation details.

In all cases, blockchains are considered tamper-resistant because their significantly distributed in a way that enough number of members have a copy of the data. If some node modifies that data, e.g. 5 blocks in the past, it has to prove to everyone else that this is the correct merkle root for that block. You have to have more than 50% of the network capacity in order to do that (and it’s more complicated than just having them), but it’s still possible. In a way, tamper resistance = tamper evidence + distributed data.

But many of the practical applications of blockchain rely on private networks, serving one or several entities. They are often based on proof of authority, which means whoever has access to a set of private keys, controls what the network agree on. So let’s review the two cases:

  • Multiple owners – in case of multiple node owners, several of them can collude to rewrite the chain. The collusion can be based on mutual business interest (e.g. in a supply chain, several members may team up against the producer to report distorted data), or can be based on security compromise (e.g. multiple members are hacked by the same group). In that case, the remaining node owners can have a backup of the original data, but finding out whether the rest were malicious or the changes were legitimate part of the business logic would require a complicated investigation.
  • Single owner – a single owner can have a nice Merkle tree or hash chain, but an admin with access to the underlying data store can regenerate the whole chain and it will look legitimate, while in reality it will be tampered with. Splitting access between multiple admins is one approach (or giving them access to separate nodes, none of whom has access to a majority), but they often drink beer together and collusion is again possible. But more importantly – you can’t prove to a 3rd party that your own employees haven’t colluded under orders from management in order to cover some tracks to present a better picture to a regulator.

In the case of a single owner, you don’t even have a tamper-evident structure – the chain can be fully rewritten and nobody will understand that. In case of multiple owners, it depends on the implementation. There will be a record of the modification at the non-colluding party, but proving which side “cheated” would be next to impossible. Tamper-evidence is only partially achieved, because you can’t prove whose data was modified and whose data hasn’t (you only know that one of the copies has tampered data).

In order to achieve tamper-evident structure with both scenarios is to use anchoring. Checkpoints of the data need to be anchored externally, so that there is a clear record of what has been the state of the chain at different points in time. Before blockchain, the recommended approach was to print it in newspapers (e.g. as an ad) and because it has a large enough circulation, nobody can collect all newspapers and modify the published checkpoint hash. This published hash would be either a root of the Merkle tree, or the latest hash in a hash chain. An ever-growing Merkle tree would allow consistency and inclusion proofs to be validated.

When we have electronic distribution of data, we can use public blockchains to regularly anchor our internal ones, in order to achieve proper tamper-evident data. We, at LogSentinel, for example, do exactly that – we allow publishing the latest Merkle root and the latest hash chain to Ethereum. Then even if those with access to the underlying datastore manage to modify and regenerate the entire chain/tree, there will be no match with the publicly advertised values.

How to store data on publish blockchains is a separate topic. In case of Ethereum, you can put any payload within a transaction, so you can put that hash in low-value transactions between two own addresses (or self-transactions). You can use smart-contracts as well, but that’s not necessary. For Bitcoin, you can use OP_RETURN. Other implementations may have different approaches to storing data within transactions.

If we want to achieve tamper-resistance, we just need to have several copies of the data, all subject to tamper-evidence guarantees. Just as in a public network. But what a public network gives is is a layer, which we can trust with providing us with the necessary piece for achieving local tamper evidence. Of course, going to hardware, it’s easier to have write-only storage (WORM, write once, ready many). The problem with it, is that it’s expensive and that you can’t reuse it. It’s not so much applicable to use-cases that require short-lived data that requires tamper-resistance.

So in summary, in order to have proper integrity guarantees and the ability to prove that the data in a single-owner or multi-owner private blockchains hasn’t been tampered with, we have to send publicly the latest hash of whatever structure we are using (chain or tree). If not, we are only complicating our lives by integrating a complex piece of technology without getting the real benefit it can bring – proving the integrity of our data.

The post Integrity Guarantees of Blockchains In Case of Single Owner Or Colluding Owners appeared first on Bozho's tech blog.

Представителна история за една шофьорска книжка

от Божидар Божанов
лиценз CC BY

Миналата година на мой близък човек му изтече шофьорската книжка. И решихме да пробваме да бъде заявена новата онлайн. Тогава още я нямаше обновената система на МВР за е-услуги, така че свалихме бланката, попълнихме я и я изпратихме през системата за сигурно електронно връчване, подписана с КЕП, вкл. с прикачено необходимото медицинско.

Влизането с КЕП също не беше тривиално, защото инсталирането на софтуера за подписване имаше някои неочевидни настройки.

Последва дежурното обаждане (от пътна полиция към СДВР) „то не може“, предадено към мен – настоях за правно основание за отказа, тъй като Законът за електронно управление ги задължава да приемат заявлението и да изпълнят услугата. Казаха, че пак ще звъннат. Не звъннаха. Потърсихме ги отново, като в отговор потвърдиха, че не – няма да издадат така книжката.

Подадохме сигнал до Държавна агенция „Електронно управление“, аргументирайки се, че мълчаливият (към онзи момент) отказ противоречи на Закона за електронното управление.

Отговорът на ДАЕУ беше да се съгласят мотивите от изричния отказ на МВР, получен няколко дни след това. А той е абсурден. Според Закона за българските лични документи, МВР предоставя електронни услуги за лични документи през централизирана система за услуги. В правилния за прилагане на закона се изреждат услугите, включени в портала. Но издаване на шофьорска книжка липсва (тъй като към онзи момент не се поддържа). Да, Законът за електронното управление казва следното:

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

Обаче МВР казва „нашият подзаконов акт дерогира (отменя) закона, защото нашият специален закон делегира детайлите на нашия подзаконов акт, а той не казва нищо за тая конкретна услуга“. Абсурдна теза, граничеща с тази на РИК Стара Загора при отказа за вписване на листата на Демократична България, но останал несанкциониран.

Е, месец-два след това се появиха електронните услуги в системата, така че този казус вече не съществува. Но той илюстрира три проблема, за чието решаване ще работя:

  • Неудобно е – след като се оправиш с неудобния и „чуплив“ квалифициран електронен подпис, трябва да търсиш бланки (които ги няма там, където трябва – в административния регистър)
  • „Не може по електронен път“ – администрацията си търси всякакви абсурдни оправдания за да „им дойдеш“ на гише, както са си свиканли
  • Няма контрол – ДАЕУ като че ли беше уплашено, че няма политическата подкрепа да напише акт на МВР и да им издаде задължително предписание да спазват закона, макар че има такива правомощия

Само първият от тези проблеми е технически. Останалите са организационни и политически. И ще трябва да бъдат решени.

Материалът Представителна история за една шофьорска книжка е публикуван за пръв път на БЛОГодаря.

Избран съм за народен представител

от Божидар Божанов
лиценз CC BY

ЦИК обяви резултатите. Избран съм за народен представител.

Благодаря на всички за подкрепата. За мен лично, за Демократична България и за посоката на промяна.

Няма да спестя клишето, че тя е задължаваща. И че гледам на депутатството не като „награда“, а като на отговорност.

Ще работя за модернизация на държавата. И за това всички затлачвани дейности и замитани проблеми да бъдат поправени.

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

Ще приемам предложения, ще приемам и критики. Ще опитвам да обяснявам решенията си и политиките, които прокарвам. Ще опитам да бъда „представител“ в истинския смисъл.

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

Още веднъж – благодаря.

Материалът Избран съм за народен представител е публикуван за пръв път на БЛОГодаря.

Кратък следизборен анализ

от Божидар Божанов
лиценз CC BY

Благодаря на всички, гласували за Демократична България и за мен лично.

Да, Демократична България реализира значителен спад в получените гласове. И със сигурност е имало какво да направим по-добре и по-правилно. Но нека обясня причините за това, както ги виждам през многото данни, които минаха през ръцете ми.

ГЕРБ, БСП и ДПС са „изпилени“ до ядрата си – с малки изключения никой не може да вземе глас от тях и те не могат да вземат глас от никого. Остават другите, които искат промяна. Техните гласове два пъти отидоха за ДБ, ИТН и ИБНИ, но поради хаотичните и неадекватни действия на ИТН, това не доведе до резултат. Негативът от това се понесе и от трите партии.

В началото на кампанията ДБ загуби част от избирателите си в посока Продължаваме промяната, най-вече по линията „Радев“. След това започна бавно да си ги „връща“, докато не дойде необяснимата атака на подкрепения от ДБ кандидат за президент. Това, според мен, счупи най-важното – усещането за стабилност и предвидимост в ДБ. Не че самата стабилност и предвидимост ги няма, но тези необясними действия в този електорален терен казаха на част от избирателите „тука има нещо особено, можете да ходите другаде“. Според екзит половете в крайна сметка над 1/3 от гласовете на ДБ през юли са отишли към ПП. Това далеч не е единственият фактор, разбира се. И тези избиратели не принадлежат на никого.

Факторът „новост“ комбиниран с умората от 3-ти поредни избори на останалите партии, комбиниран с неуспеха в предния парламент, комбиниран с одобрението на Радев, комбиниран с добрата им кампания донесе този успех на Продължаваме промяната, които „изсмукаха“ трудно спечелените избиратели от ДБ през тази година.

Можеше ли нещо друго да се направи? Нито можехме да бъдем нов субект след 2 кампании, нито след 2 кампании можехме да сменим рязко посланията, нито имаше откъде да привлечем други избиратели – тези на ГЕРБ, БСП и ДПС са „заключени“, а както беше казал някой – негласуващите имат една характерна особеност – не гласуват.

Нямаше как и да подкрепим Радев – дори само агентите на ДС в инициативния му комитет правят такъв избор почти невъзможен. Дори в момента 50% от избирателите ни гласуваха за Радев. Ако не се бе появила ПП, щяха да са 2/3 (такива бяха данните). И когато Лозан Панов атакува остро Радев (макар и не без причини, както посочих преди малко), допълнително „отпъди“ хора, които биха ни подкрепили, но пък харесват Радев. Получих доста такива коментари в кампанията. Бяхме наясно и с това явление, но поне 1/3 от избирателите ни щяха да са тежко разочаровани от липсата на кандидат. Панов очевидно беше напълно независим, което може би беше тактическа грешка, но много хора от ядрото ни оценяват тази независимост.

Друго важно решение, което взехме – да бъдем партньорски и позитивно настроени спрямо ПП, също имаше, макар и по-малък негативен електорален ефект – много от хората ни считат за естествен партньор след изборите и особено в изборния ден вероятно са взели решение „нека едните наши да бият ГЕРБ, после ще управляват с другите наши“. Споделените ни периферии в областните центрове потвърждават това. В други исторически моменти дясното се е нахвърляло върху всичко ново. И е губило много от това в дългосрочен план.

И последно – нашите ясни послания „за“ ваксинация нямаше как да ни донесат допълнителна подкрепа при тези ниски нива на доверие във ваксините. Но когато умират толкова, това беше отговорната, принципна позиция.

Важните решения, които взехме, на база принципи, бяха с ясен и предвидим електорален резултат – негативен. Първо, че не подкрепихме кабинета на ИТН и отказахме преговори с мандат на БСП беше част от причините за трети избори. Само че просто няма как да дадем такава подкрепа и да се погледнем в огледалото. Изборът да не подкрепим Радев, въпреки, че мнозинството от избирателите ни го подкрепяха, също беше базиран на принципи, макар да носи гарантирани електорални щети.

Цялата тази комбинация от фактори допринесе за по-слабия резултат, а не толкова кампанията ни – тя беше правена от същите хора, които доведоха коалицията от съмнения за влизане до 12% през юли. И, иронично или не, резултатът е следствие от принципните ни решения и на много сложната обстановка. Но в политиката е така.

Представляването на избиратели с разнородни и понякога противопололожни мнения е трудно. Задържането им мотивирани в три поредни кампании, последната от които, съвпадаща с президентската, при поява на нов субект на същия електорален терен, е почти невъзможно. Аз все пак заставам зад всички взети решения – те са такива, защото ние сме такива. Това носи електорални рискове, но носи и увереност, че правим правилните неща за България. И че ще ги правим, когато имаме възможност да управляваме.

Нека не забравяме, че преди година този резултат би бил определян като „успех“. Сега не е, защото екипът ни показа, че може да постига резултати.

И да, Продължаваме промяната преразпределиха гласовете на партиите извън БСП, ДПС и ГЕРБ. Привлякоха малко негласуващи за сметка на 2-та процента „фира“ от ИБНИ. Но смятам, че те са много по-перспективен и позитивен водещ партньор от ИТН и съответно резултатите на тези избори са по-скоро позитивни. Предстоят коалиционни преговори и се надявам скоро да имаме добри новини и ще можем да реализираме идеите, които печелиха доверие.

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

Материалът Кратък следизборен анализ е публикуван за пръв път на БЛОГодаря.