All posts by Bozho

Фактите, Санчо – електронното гласуване според Михаил Константинов

Post Syndicated from Bozho original https://blog.bozho.net/blog/3232

Въпреки че знам, че това да оборваш нечие конкретно мнение не винаги е ефективен инструмент за убеждаване на хората, не мога да се сдържа и да не коментирам вчерашната статия на Михаил Константинов в 24 Часа. Статията е пълна с толкова много полуистини и неверни твърдения, че не мога да я оставя без отговор.

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

Ще извадя конкретни цитати и ще обясня защо са или неверни, или опростени до невярност.

И тъй като нямаше как другояче да действат външните сили, ясно е, че [в САЩ] ставаше дума за въздействие върху електронните средства за комуникация – първо, чрез влияние в социалните мрежи и второ – директно върху системите за гласуване.

Няма данни електронни системи за гласуване да са били манипулирани. Доклад на американския National Intelligence Council казва, че машини или компютри, с които е извършвано броене не са били манипулирани. Хакнати са били мейли на някои служители на избирателни комисии и съответно са изтекли данни за регистрирани за гласуване граждани, но това в никакъв случай не е „директно върху системите за гласуване“. А и както се казва в други статии по въпроса – ако можеш да насочиш общественото мнение, защо ти е да хакваш резултата? Защото ако хакнеш резултата, всички ще разберат, че нещо не е наред. Когато „хакнеш“ хората, те ще продължават имат доверие в системата, но тя ще бъде ефективно компрометирана.

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

Проблемът, който електронното гласуване трябва да решава не е, че не можеш да видиш какво става с гласа ти. Всяка електронна система ти позволява това – гласът ти е подписан електронно и съответно можеш да провериш дали е там. Някои от доставчиците на решения за гласуване отдавна имат патенти за използване на криптографски елементи от блокчейн за защита на интегритета на данните (тези елементи, като хеш вериги, ги има много преди биткойн). Проблемът е, че ако можеш да видиш какво става с гласа ти, можеш да го покажеш на друг и така да докажеш, че си гласувал както ти е било наредено/платено, а не както си искал. Затова трудната задача на проверимостта „от край до край“ (end-to-end verifiability) е да ти даде тази сигурност без да разкрива вота ти. Но блокчейн не помага значително в това. Като цяло научната общност е скептична към блокчейн – не защото не е добра технология, а защото не решава сложните проблеми в електронното гласуване. Решава по-простите, които вече имат и други решения, например т.нар. public bulletin boards (публикуване на криптираните гласове в реално време).

Има и два истински експеримента с блокчейн гласуване. Първият е на четвъртите президентски избори в Сиера Леоне. Оказа се , че в тази страна в Западна Африка с големи маси безработно и неграмотно население, те се справят успешно с най-новата изборна блокчейн технология.

Блокчейн гласуването в Сиера Леоне беше пиар кампания на фирма, доставчик на решение за е-гласуване (Agora). Централната избирателна комисия отрече да е имало такова нещо с нейно участие. Ако Константинов беше прочел нещо повече от вестникарски заглавия по темата, щеше да разбере, че Agora е била регистриран международен наблюдател в 280 от общо 11200 секции, и след като секционните комисии са изброили бюлетините, наблюдателите също са ги изброили и са ги записали в блокчейна си. Технологията им (която проучих тогава) звучи интересно и разумно, най-вече защото е реализирала останалите компоненти на електронното гласуване съгласно добрите практики. А не просто защото ползва блокчейн.

В Естония, която поддържа електронно гласуване, миналата година се установи, че картите, с които се гласува, са пробити. Оказа се, че произведените в западногермански концерн карти се декриптират изключително лесно.

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

Оказва се обаче, че има бърз алгоритъм, който чисто математически пробива този вид криптиране. Затова проблемът не е само технологичен т.е. калпаво изпълнение на картите, а принципен – става дума за фундаментален математически пробив в системата.

Убеден съм, че Константинов разбира математиката зад атаката на Копърсмит много по-добре от мен. Само че за да е успешна, атаката зависи от много фактори и пропуски в реализацията. В конкретния случай, само библиотеката в конкретните карти (RSALib) има този проблем. Други библиотеки, използващи същите алгоритми за генериране на ключове, криптиране и подписване (като OpenSSL), нямат такъв проблем. Освен RSA, за същите цели се ползват и елиптични криви. И те нямат този проблем. Така че твърдението, че има фундаментален математически пробив в системата на криптографията с публичен ключ, на която се базира гласуването (и много други неща, вкл. сигурността в интернет), е силно преувеличено, и даже направо грешно.

Този пробив не е решен, но естонците като спокойни северни хора се примириха с това и изчакват нещата да се оправят.

Това пък е съвсем грешно. Според доклада на естонското правителство историята е следната. На 30 август получават информация, че има потенциален проблем с картите. На 5-ти септември дават пресконференция и публикуват информация, че има риск за някои карти. Следват местни избори, които биват следени изключително внимателно, но проблеми не са открити (това не е 100% гаранция, че е нямало такива, но е сигурно, че не са повлияли на резултата от изборите). След това естонците спират сертификатите на засегнатите карти и дават възможност хората да си обновят ключовете, използвайки елиптични криви вместо RSA (елиптичните криви не са „пробити“), като много хора го правят (та чак системата за подновяване пада за малко от натоварването). Твърдението, че са седели и са чакали нещата да се оправят е напълно невярно.

В крайна сметка, твърдението, че „картите са пробити“ е грешно. Имало е научна статия, неизвестна на никой освен производителите на картите и учените, според която е възможно да се представиш за някой друг онлайн, ако имаш между няколкостотин и няколко десетки хиляди долара и ако си опитен криптограф. Информационната сигурност винаги се свежда то постигане на висок процент сигурност за практически цели и до минимизиране на риска от сериозни проблеми при откриване на пробиви. Както винаги съм казвал – риск за 0day уязвимости винаги има. Затова и има текстове в естонския изборен кодекс, които пренесохме в нашия:

(28) Когато е нарушена сигурността или отказоустойчивостта на системата или когато е налице технологична невъзможност да се гарантират основни избирателни права, Централната избирателна комисия с мотивирано решение временно спира или прекратява дистанционното електронно гласуване или не стартира системата за гласуване. Централната избирателна комисия уведомява избирателите чрез интернет страницата си и средствата за масово осведомяване за причините и публикува подробен отчет не по-късно от 24 часа ден след постановяване на решенето.

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

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

„Фактите“ не са факти, а са истории, прочетени в някой сайт, и попълнени с разбиранията и неразбиранията на автора. Можеше да проучи какво е било гласуването в Сиера Леоне. Можеше да прочете доклада на естонското правителство, можеше да прочете доклада на National Intelligence Council. Но е по-лесно просто да се публикува разхвърляна статия в 24 часа.

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

Сроковете, заложени в Изборния кодекс са пропуснати и за 2019-та няма да имат физическа възможност да въведат гласуване. Не съм привърженик на бързането – преди 3 години бях силно против да се въвежда веднага именно за да има време да се тества и отработи всичко. Затова кодексът предвиждаше експертименти. Нищо не пречи те да се случат, да направим системата, да я тестваме няколко години и ако всичко е наред, да дадем опция за гласуване. Обаче плоските представи за проблема водят до „или всичко или нищо“. Водят до липса на каквито и да е било експерименти, защото някой някъде решил, че не било сигурно. А целта на тези експерименти е да разберем дали е несигурно.

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

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

Blockchain – What Is It Good For? [slides]

Post Syndicated from Bozho original https://techblog.bozho.net/blockchain-what-is-it-good-for-slides/

Last week I gave a 20 minute talk on the way I see blockchain applicability. I’ve always been skeptical of the blockchain hype, having voiced my concerns, my rants and other thoughts on the matter.

I’ve followed actual blockchain projects that didn’t really need blockchain but managed to yield some very good results by digitizing processes, by eliminating human error, and occasionally, by guaranteeing the integrity of data. And recently I read an article that put these observations into perspective – that blockchain is just a tool for digital transformation (a buzzword broadly meaning “doing things on a computer and more efficiently”). That rarely the distributed consensus is needed, let alone public ledgers. But that doesn’t matter, as long as the technology has lead to some processes being digitized and transformed.

So here are the slides from my talk:

And people are usually surprised that I have a blockchain-related company and I’m so skeptical at the same time. But that’s actually logical – I know how the technology works, what problems it solves and how it can be applied in a broad set of domains. And that’s precisely why I don’t think it’s a revolution. It’s a wonderful piece of technological innovation that will no doubt solve some problems much better than they were solved before, but it won’t be the new internet and it won’t change everything.

Doesn’t that skepticism hurt my credibility as a founder of a blockchain-related startup? Not at all – I don’t want to get a project just because of a buzzword – that’s not sustainable anyway. I want to get it because it solves a real problem that the customer has. And to solve it the right way, i.e. with the best technologies available. And blockchain’s underlying mechanisms are a great tool in the toolbox. Just not a revolution.

In order to be revolutionary, something has to bring at least 10 times improvement over existing practices, or make a lot of things possible that weren’t possible before. Blockchain is neither. I got a question from the audience – “well, isn’t it a 10 times innovation in payments?”. My counter-question was: “Have you ever bought something with cryptocurrencies?”. Well, no. It also doesn’t improve 10 times cross-organization integration. Yes, it might help to establish a shared database, but you could’ve done that with existing technology if you needed to.

But if the blockchain hype helped people realize that digital events can be protected, and that stakeholders can exchange data and present proofs to each other that they haven’t modified the data, who cares if the ultimate implementation will be based on Ethereum, Hyperledger, Corda, or just a clever use of digital signatures, timestamps and web services, or perhaps simply merkle trees.

I hope that blockchain gets demystified soon and we all start speaking the same language (so that I don’t need to reassure an audience at a banking summit that – no, we are not doing cryptocurrencies in our blockchain company). Once we get there, we’ll be able to efficiently solve the problems of digital transformation. As for the digital revolution – it is already happening. We are moving everything online. And yes, with centralized services rather than distributed p2p networks, but that’s not a technical issue, it’s a socioeconomic one. And technology by itself is rarely a solution to such problems.

The post Blockchain – What Is It Good For? [slides] appeared first on Bozho's tech blog.

Technical Innovation vs. Process Innovation

Post Syndicated from Bozho original https://techblog.bozho.net/technical-innovation-vs-process-innovation/

We are often talking about “innovation” and “digital innovation” (or “technical innovation”) in particular, when it comes to tech startups. It has, unfortunately, become a cliche, and now “innovation” is devoid of meaning. I’ve been trying to put some meaningful analysis of the “innovation landscape” and to classify what is being called “innovation”.

And the broad classification I got to is “technical innovation” vs “process innovation”. In the majority of cases, tech startups are actually process innovations. They get existing technology and try to optimize some real world process with it. These processes include “communicating with friends online”, “getting in touch with business contacts online”, “getting a taxi online”, “getting a date online”, “ordering food online”, “uploading photos online”, and so on. There is no inherent technical innovation in any of these – they either introduce new (and better) processes, or they optimize existing ones.

And don’t get me wrong – these are all very useful things. In fact, this is what “digital transformation” means – doing things electronically that were previously done in an analogue way, or doing things that were previously not possible in the analogue world. And the better you imagine or reimagine the process, the more effective your company will be.

In many cases these digital transformation tools have to deal with real-world complexities – legislation, entrenched behaviour, edge cases. E.g. you can easily write food delivery software. You get the order, you notify the store, you optimize the delivery people’s routes to collect and deliver as much food as possible, and you’re good to go. And then you “hit” the real world, where there are traffic jams, temporarily closed streets, restricted parking, unreponsive restaurants, unresponsive customers, keeping the online menu and what’s in stock in sync, worsened weather conditions, messed up orders, part-time job regulations that differ by country, and so on. And you have to navigate that maze in order to deliver a digitally transformed food delivery service.

There is nothing technically complex about that – any kid with some PHP and JS knowledge can write the software by finding answers to the programming hurdles on Stackoverflow. In that sense, it is no so technically innovative. The hard part is the processes and the real-world complexities. And of course, turning that into a profitable business.

In the long run, these non-technical innovations end up producing technical innovation. Facebook had nothing interesting on the technical side in the beginning. Then it had millions of users and had to scale, and then it became interesting – how to process so much data, how to scale to multiple parts of the world, how to optimize the storage of so many photos, and so on. Facebook gave us Cassandra, Twitter gave us Snowflake, LinkedIn gave us Kafka. There are many more examples, and it’s great that these companies open source some of their internally developed technologies. But these are side-effects of the scale, not an inherent technical innovation that lead to the scale in the first place.

And then there’s the technical innovation companies. I think it’s a much more rare phenomenon and the prime example is Google – the company started as a consequence of a research paper. Roughly speaking, the paper outlined a technical innovation in search that made all other approaches to search obsolete. We can say that Bitcoin was such an innovation, as well. In some cases it’s not the founders that develop the original research, but they derive their product from existing computer science research. They combine multiple papers, adapt them to the needs of the real world (because, as we know, research papers often rely on a “spherical horse in vacuum”) and build something useful.

As a personal side-note here, some of my (side) projects were purely process innovations – I once made an online bus ticket reservation service (before such a thing existed in my country), then I made a social network aggregator (that was arguably better than existing ones at the time). And they were much less interesting than my more technically innovative projects, like Computoser (which has some original research) or LogSentinel (which combines several research papers into a product).

A subset of the technical innovation is the so called “deep tech” – projects that are supposed to enable future innovation. This can be simplified as “applied research”. Computer vision, AI, biomedical. This is where you need a lot of R&D, not simply “pouring” code for a few months.

Just as “process innovation” companies eventually lead to technical innovation, technical innovation companies eventually (or immediately) lead to process improvements. Google practically changed the way we consume information, so it’s impact on the processes is rather high. And to me, that’s the goal of each company – to get to change behaviour. It’s much more interesting to do that using never-before-done technical feats, but if you can do it without the technical bits (i.e. by simply building a website/app using current web/mobile frameworks), good for you.

If you become a successful company, you’ll necessarily have both types of innovation, regardless of how you started. And in order to have a successful company, you have to improve processes and change behaviour. You have to do digital transformation. In the long run, it doesn’t make that much of a difference which was first – the technology or the process innovation. Although from business and investment perspective, it’s easier for competitors to copy the processes and harder to copy internal R&D.

Whether we should call process innovation “technical innovation” – I don’t think so, but that ship has already sailed – anything that uses technology is now “technical innovation”, even if it’s a WordPress site. But for technical people it’s much more challenging and rewarding to be based on actual technical innovation. We just have to remember that we have to solve real-world problems, improve or introduce processes and change behaviour.

The post Technical Innovation vs. Process Innovation appeared first on Bozho's tech blog.

Отлагат електронното гласуване

Post Syndicated from Bozho original https://blog.bozho.net/blog/3227

Когато преди една година на едно събитие отидох при проф. Михаил Константинов и го помолих да не говори неща за електронното гласуване, които са твърде опростени, за да се верни, той се обиди и каза, че бил математик и не лъжел.

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

И онзи ден ги чухме едно към едно от премиера. „Пробиха естонските карти“, „Холандия го забрани“, „Германският конституционен съд го забрани“, „Намесиха се в американските избори“.

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

А в конкретика, за всички тези митове съм писал и преди, но ето и тук накратко – част от естонските карти имаха потенциален проблем, с който срещу няколкостотин долара на карта, можеш да подпишеш нещо вместо собственика на картата. Сериозен проблем, но откриваем при опит за злоупотреба. Естонските власти обявиха, че не е установено някой да се е възползвал. Освен това цената е доста повече от цената на един купен глас. Та не е точно „естонските карти ги пробиха“. Даже хич.

Холандия и Германия го били забранили. И двете са се отказали от конкретни реализации на машинно гласуване по различни причини. Т.е. малко общо с темата. Решението на констутуцуонния съд в Германия не изключва да има електронно и машинно гласуване, но поставя високи изисквания. Т.е. хич не е „Германия и Холандия го забраниха“.

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

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

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

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

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

Алгоритмична и технологична прозрачност [презентация]

Post Syndicated from Bozho original https://blog.bozho.net/blog/3223

На тазгодишния OpenFest (конференция за отворени технологии) реших да говоря по малко по-абстрактна тема. А именно – как нямаме представа какво правят технологиите около нас и че това е опасно, както индивидуално за нас, така и за обществата ни.

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

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

Затова тезата ми е, че най-важната първа стъпка е прозрачността – да знаем какво и как се случва около нас. Да знаем кой има достъп до автомобила ни или до домашното устройство за измерване на фините прахови частици, да знаем защо YouTube ни препоръчва усилено видеа против ваксините или твърдящи, че земята е плоска, да знаем защо Facebook ни показва реклама за депресия и защо ни предлага за приятел онзи човек от съседната маса в кръчмата снощи. Да знаем дали самоуправляващата се кола ще избере да убие детето или бабата, дали фризерът ни не изпраща разговорите ни вкъщи към компанията-производител, дали да си купим врата за апартамента с „електронно заключване“ (или след декомпилиране на приложението да се хванем за главата и да се откажем).

А какво като знаем защо и как? Колкото повече знаем, толкова по-информиран избор правим. Толкова по-малко могат да ни манипулират (не че знанието елиминира тези влияния, но поне ни помага да сме нащрек). Толкова по-малки са рисковете да се случи технологична антиутопия.

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

Видеото можете да гледате тук, а тъй като slideshare не работи, слайдовете са качени само на английски тук (или на български в самото видео):

Resources on Distributed Hash Tables

Post Syndicated from Bozho original https://techblog.bozho.net/resources-on-distributed-hash-tables/

Distributed p2p technologies have always been fascinating to me. Bittorrent is cool not because you can download pirated content for free, but because it’s an amazing piece of technology.

At some point I read and researched a lot about how DHTs (distributed hash tables) work. DHTs are not part of the original bittorrent protocol, but after trackers were increasingly under threat to be closed for copyright infringment, “trackerless” features were added to the protocol. A DHT is distributed among all peers and holds information about which peer holds what data. Once you are connected to a peer, you can query it for their knowledge on who has what.

During my research (which was with no particular purpose) I took a note on many resources that I thought useful for understanding how DHTs work and possibly implementing something ontop of them in the future. In fact, a DHT is a “shared database”, “just like” a blockchain. You can’t trust it as much, but proving digital events does not require a blockchain anyway. My point here is – there is a lot more cool stuff to distributed / p2p systems than blockchain. And maybe way more practical stuff.

It’s important to note that the DHT used in BitTorrent is Kademlia. You’ll see a lot about it below.

Anyway, the point of this post is to share the resources that I collected. For my own reference and for everyone who wants to start somewhere on the topic of DHTs.

I hope the list is interesting and useful. It’s not trivial to think of other uses of DHTs, but simply knowing about them and how they work is a good thing.

The post Resources on Distributed Hash Tables appeared first on Bozho's tech blog.

Моята лингвистична история

Post Syndicated from Bozho original https://blog.bozho.net/blog/3217

Тази година е 35-тата годишнина на ученическата лингвистика в България – състезания, олимпиади, семинари. Тъй като съм минал през всички роли – ученик и състезател, лектор, ръководител, жури – бях помолен да напиша нещо за лингвистиката от моя гледна точка. Та, реших да опиша всичко, макар и накратко.

Започнах да се занимавам с лингвистика общо взето случайно. Имам бегъл спомен как в 9-ти клас учителката ни по математика дойде и каза „в календара на олимпиадите има някаква математическа лингвистика. Искате ли да пробвате?“ Е, пробвахме… и няколко човека от класа стигнахме до националния кръг, където даже спечелихме трето място на отборното състезание.

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

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

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

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

В крайна сметка стигнахме до Москва, кацнахме на Шереметиево посред нощ, и с едни бус организаторите ни извозиха до общежитията на РГГУ. А те бяха запомнящи се общежития – това е история, която разказвам и до ден днешен. Това, че всеки две стаи имаха споделена мивка и че общите бани на етажа нямаха врати – окей. Обаче тоалетните (общи за етажа) имаха резета както отвътре, така и отвън. Както казват руснаците – „нарочно не придумаешь“. Общата стая, с хладилници наредени плътно един до друг и опасващи целите стени, беше мястото, където се събирахме, говорихме, обсъждахме, разказвахме вицове.

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

След Москва започнах да чета – каквото намеря онлайн – за всички аспекти на лингвистиката. Не решавах толкова задачи (защото нямаше достъпни), но четох за странни лингвистични явления в непознати езици, интересни писмености и бройни системи. Дори пишех плановете си по някои предмети в училище на новонаучените писмености. По физика пишех с деванагари, по химия с гръцката писменост, а по биология – с арабската.

Някъде в 11-ти клас започнах да пиша лингвистични задачи, а с Тодор Червенков (съотборник от Варна) организирахме онлайн състезание по лингвистика. С наши задачи и наша проверка. И написан от нас уебсайт (който пък спечели награда на състезание по Информационни технологии). Онлайн състезанието имаше няколко издания и беше както интересно начинание, така и доста полезен опит.

В следващите две години не успях да се класирам на международната олимпиада заради глупави грешки. Най-глупавата беше в 12-ти клас, когато не реших задача, за която знаех нещо, което другите нерешили не знаеха – посоката на писане. Общо взето 10-тина човека се бяха сетили посоката на писане и съответно я бяха решили. Аз я знаех, но не я реших. И досега не смятам задачата за добра, но не защото не съм я решил (какъвто беше случая и с любима моя задача от предната година), а защото разчиташе на разбърканост за трудността си. (За този и други аспекти на лингвистичните задачи написахме статия с д-р Держански, няколко години по-късно, която беше представена на конференцията на американската асоциация по компютърна лингвистика)

Все пак на следващия ден спечелих отборното, върху една чудесна задача за виетнамска поезия (song thất lục bát, което изглежда като song that looks bad. След това с Тодор Червенков писахме стихове на български в същата поетична форма; още помня неговото, свързано с това, че без да искам щях да хапна свински език в ресторанта в Слънчев бряг). Защо казвам „спечелих“ – всички мои съученици, с които трябваше да съм в отбор заминаха за София, за да се явят на предварителен кандидатстудентски изпит. В последния момент пратиха при мен едно момче от Хасково, така че все пак да имаме формално отбор. Той се включи, разбира се, така че единственото число не е напълно оправдано. Но когато дойде време за награждаване, той отказа да излезе, така че стоях аз сам, награден с грамота и 4 държача за CD-та насред физкултурния салон на гимназията във Враца.

Макар да не успявах за малко да вляза в разширения отбор и двете години ходих на подготовката за международната (все пак в топ 25, така че получавах покана). Ходих не само защото беше интересно и исках да научавам неща, но и защото след Москва бях общувал повече със съотборниците си и вече имах доста приятели. Подготовката в Слънчев Бряг беше една добра среща на приятели и място за нови запознанства.

В 12-ти клас на контролните по време на подготовката успях да се представя доста добре, и по точки бях 5-ти в крайното класиране (започвайки от нещо като 16-то място след националния кръг). За съжаление регламентът не позволяваше да отида на международната. Все пак „ръководството“ реши да поправи тази несправедливост като ме покани на международна школа в Естония, точно преди олимпиадата.

Тази школа също е история, която често разказвам и до днес. Като за начало – водех се „настойник“ на едно друго момче, което не беше навършило още пълнолетие (а трябваше трима човека да се връщаме до София сами). Още при пристигането ни в Усть Нарва (в източната част на Естония), се оказа, че в почивната станция топла вода няма да има („морето е 20 градуса, там ще се къпете“, както беше казала домакинката). С други думи, върви ни с баните по такива мероприятия. Но след като сглобихме от две съседни бани една (крушка, душ-слушалка), се оказа, че в нашата баня всъщност има топла вода. Само в нашата, за школа с ученици от няколко държави. След няколко дни новината се беше разчула и всички идваха да се къпят при нас. Някои влизаха направо с маратонките и излизаха джвакайки. А, разбира се и лекциите бяха интересни.

След това завърших. Но нещата далеч не свършват дотук. Д-р Иван Держански ме покани в журито на българската олимпиада, където някои мои задачи видяха бял свят. Опитът от онлайн състезанието беше полезен. Иван Держански заслужава отделна статия, ако не и повече – основната движеща сила в лингвистиката от научна гледна точка за последните 20 години, като това, че говори „няколко дузини езици“ е само началото (е, не всички лингвисти говорят много езици, това е стандартен лингвистичен мит)

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

В следващите няколко години водех лекции на подготовката и тя продължаваше да е място за среща с приятели. Давах и проверявах задачи на националната олимпиада и на зимните състезания.

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

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

На въпросната олимпиада за първи път участвах в работата на журито. А тя е специфична. С годините човек свиква със стандартните спорове и стандартните аргументи (на последната олимпиада в Прага дори направихме „бинго“ със стандартни фрази, използвани при споровете при разпределение на медалите и най-добрите решения). Но с всички нейни специфики, работата на журито е прецизна. Всичко се проверява по 2 пъти, а при разлики – 3 пъти. Винаги има забавни моменти с някой ученик, който е отпуснал въображението си. Даже до преди няколко години правех колекции от бисери от националната ни олимпиада и зимните състезания. Ето няколко примера:

има две думи за „сестра“, следователно едната е „медицинска“
носорна съгласна
има удвояване на последната буква от цифрата
tu – представка за минало, тук в значение на умрял
В мъркинския език окончанията седят в края
В началото на всяка дума се поставя наставката о-
чете се отляво надясно – както изречението, така и думите поотделно
когато в едно изречение има три подлога, два глагола и черта над последната гласна на втория глагол…
в 3-та група са си чисто криминални глаголи
забелязваме, че всички подлоги от ж.р. …
според мен отговорите са относителни. Ще напиша различни дати и ще ги обясня
всички глаголни форми са съставени от глагол…
съгласната „ъ“
словоред: сказуемо-подлог-лодка
княгинят (м.р. на „княгинята“ не знам)
княжът (м.р. от княгиня)
чичо ми е вода
флейтата ме чува, че забравям
„еми…тъпа съм“ (на празен лист с нерешена задача)

От 2008-ма насам съм бил в задачната комисия и международното жури почти винаги (с изключение на олимпиадите в САЩ, Словения и Ирландия). В Благоевград през 2015-та бях председател на журито – основно комуникационна и административна работа – хората от организационния комитет ми станаха автоматично „любими номера“ в телефона в рамките на тия 5 дена.

Напоследък по-рядко успявам да участвам в българските олимпиади, а и в работата на международната задачна комисия комисия. Но това е основно поради други задачи (pun intended) – лингвистиката продължава да ми е интересна и си водя бележки за потенциални задачи, които искам да направя.

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

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

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

Algorithmic and Technological Transparency

Post Syndicated from Bozho original https://techblog.bozho.net/algorithmic-and-technological-transparency/

Today I had a talk on OpenFest about algorithmic and technological transparency. It was a somewhat abstract and high-level talk but I hoped to make it more meaningful than if some random guy just spoke about techno-dystopias.

I don’t really like these kinds of talks where someone who has no idea what a “training set” is, how dirty the data is and how to write five lines in Python talks about an AI revolution. But I think being a technical person let’s me put some details into the high-level stuff and make it less useless.

The problem I’m trying to address is opaque systems – we don’t know how recommendation systems work, why are seeing certain videos or ads, how decisions are taken, what happens with our data and how secure the systems we use are, including our cars and future self-driving cars.

Algorithms have real impact on society – recommendation engines make conspiracy theories mainstream, motivate fascists, create echo chambers. Algorithms decide whether we get loans, welfare, a conviction, or even if we get hit by a car (as in the classical trolley problem).

How do we make the systems more transparent, though? There are many approaches, some overlapping. Textual description of how things operate, tracking the actions of back-office admins and making them provable to third parties, implementing “Why am I seeing this?”, tracking each step in machine learning algorithms, publishing datasets, publishing source code (as I’ve previously discussed open-sourcing some aspects of self-driving cars).

We don’t have to reveal trade secrets and lose competitive advantage in order to be transparent. Transparency doesn’t have to come at the expense of profit. In some cases it can even improve the perception of a company.

I think we should start with defining best practices then move to industry codes and standards, and if that doesn’t work, carefully think of focused regulation (but have in mind politicians are mostly clueless about technology and may do more damage)

The slides from the talk are below (the talk itself was not in English)

It can be seen as our responsibility as engineers to steer our products in that direction. Not all of them require or would benefit from such transparency (rarely anyone cares about how an accounting system works), and it would normally be the product people that can decide what should become more transparent, but we also have a stake and should be morally accountable for what we build.

I hope we start thinking and working towards more transparent systems. And of course, each system has its specifics and ways to become more transparent, but I think it should be a general mode of thinking – how do we make our systems not only better and more secure, but also more understandable so that we don’t become the “masterminds” behind black-boxes that decide lives.

The post Algorithmic and Technological Transparency appeared first on Bozho's tech blog.

Администрацията ще обменя документи електронно

Post Syndicated from Bozho original https://blog.bozho.net/blog/3214

От днес администрацията е длъжна да обменя документи електронно. Ще разкажа малко предистория.

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

Наредбата към Закона за електронно управление, която прокарахме през есента на 2016-та, въвеждаше следните неща:

  • Държавна агенция „Електронно управление“ да направи въпросният протокол официален. Да го съгласува, „дооправи“ и да му сложи „печат“, че е официален протокол за комуникация
  • Всички администрации да са длъжни да ползват този протокол за обмен на документи помежду си и нямат право да обменят документи на хартия
  • Това да стане до 1-ви ноември 2018-та (т.е. за срок от две години).

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

Така с помощта на нормативни изменения благодарение на политическа воля и достатъчна експертиза на политическо ниво (ние в кабинета на Румяна Бъчварова преди две години и след това подкрепа от Томислав Дончев), на проактивна администрация (ДАЕУ) и на бизнеса (доставчиците на деловодни системи), най-накрая хартиите между администрациите са към своя край.

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

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

Кратък политически коментар

Post Syndicated from Bozho original https://blog.bozho.net/blog/3210

И във Фейсбук, и на живо, политическият сезон е в разгара си. Демократична България, обединението на Да, България, ДСБ и Зелените, от което съм част, като най-активната извънпарламентарна опозиция (а и дори сравнена с парламентарната) е подложено и на най-много Фейсбук критика. Тези дни даже премиерът каза, че „само хейтим“. Което, разбира се, не е вярно (заради редица конкретни предложения по различни теми, в т.ч. законопроекти).

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

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

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

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

За всеки, който казва „трябват ви нови лица“ има друг, който казва „не сте разпознаваеми“.

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

За всеки, който казва „трябва ви един силен лидер“ има друг, който ще каже „няма да гласувам за авторитарна/лидерска партия“.

За всеки, който казва „зелените са прекалено леви“ има друг, който ще каже „предложенията ви са прекалено десни“.

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

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

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

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

Засега мисля, че нещата се движат в правилна посока. Но остава още много работа.

Automate Access Control for User-Specific Entities

Post Syndicated from Bozho original https://techblog.bozho.net/automate-access-control-for-user-specific-entities/

Practically every web application is supposed to have multiple users and each user has some data – posts, documents, messages, whatever. And the most obvious thing to do is to protect these entities from being obtained by users that are not the rightful owners of these resources.

Unfortunately, this is not the easiest thing to do. I don’t mean it’s hard, it’s just not as intuitive as simply returning the resources. When you are your /record/{recordId} endpoint, a database query for the recordId is the immediate thing you do. Only then comes the concern of checking whether this record belongs to the currently authenticated user.

Frameworks don’t give you a hand here, because this access control and ownership logic is domain-specific. There’s no obvious generic way to define the ownership. It depends on the entity model and the relationships between entities. In some cases it can be pretty complex, involving a lookup in a join table (for many-to-many relationships).

But you should automate this, for two reasons. First, manually doing these checks on every endpoint/controller method is tedious and makes the code ugly. Second, it’s easier to forget to add these checks, especially if there are new developers.

You can do these checks in several places, all the way to the DAO, but in general you should fail as early as possible, so these checks should be on a controller (endpoint handler) level. In the case of Java and Spring, you can use annotations and a HandlerInterceptor to automate this. In case of any other language or framework, there are similar approaches available – some pluggable way to describe the ownership relationship to be checked.

Below is an example annotation to put on each controller method:

public @interface VerifyEntityOwnership {
    String entityIdParam() default "id";
    Class<?> entityType();
}

Then you define the interceptor (which, of course, should be configured to be executed)

@Component
public class VerifyEntityOwnershipInterceptor extends HandlerInterceptorAdapter {

    private static final Logger logger = LoggerFactory.getLogger(VerifyEntityOwnershipInterceptor.class);
    
    @Autowired
    private OrganizationService organizationService;

    @Autowired
    private MessageService MessageService;
    
    @Autowired
    private UserService userService;
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {

        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        // assuming spring-security with a custom authentication token type
        if (authentication instanceof ApiAuthenticationToken) {
            AuthenticationData authenticationData = ((ApiAuthenticationToken) authentication).getAuthenticationData();

            UUID clientId = authenticationData.getClientId();
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            
            VerifyEntityOwnership annotation = handlerMethod.getMethodAnnotation(VerifyEntityOwnership.class);
            if (annotation == null) {
                logger.warn("No VerifyEntityOwnership annotation found on method {}", handlerMethod.getMethod().getName());
                return true;
            }
            
            String entityId = getParam(request, annotation.entityIdParam());
            if (entityId != null) {
                if (annotation.entityType() == User.class) {
                    User user = userService.get(entityId);
                    if (!user.getClientId().equals(clientId)) {
                       return false;
                    }
                } else if (annotation.entityType() == Message.class) {
                    Message record = messageService.get(entityId);
                    if (!message.getClientId().equals(clientId) {
                        return false;
                    }
                } // .... more
            }
        }

        return true;
    }
    
    @SuppressWarnings("unchecked")
    private String getParam(HttpServletRequest request, String paramName) {
        String value = request.getParameter(paramName);
        if (value != null) {
            return value;
        }
        Map<String, String> pathVariables = (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
        return pathVariables.get(paramName);
    }
}

You see that this presumes the need for custom logic per type. If your model is simple, you can make that generic – make all your entities implement some `Owned interface with getClientId() method that all of them define. Then simply have a dao.get(id, entityClass); and avoid having entity-specific logic.

Notice the warning that gets printed when there is no annotation on a method – this is there to indicate that you might have forgotten to add one. Some endpoints may not require ownership check – for them you can have a special @IgnoreEntityOwnership annotation. The point is to make a conscious decision to not verify the ownership, rather than to forget about it and introduce a security issue.

What I’m saying might be obvious. But I’ve seen many examples of this omission, including production government projects. And as I said, frameworks don’t force you to consider that aspect, because they can’t do it in a generic way – web frameworks are usually not concerned with your entity model, and your ORM is not concerned with your controllers. There are comprehensive frameworks that handle all of these aspects, but even they don’t have generic mechanisms for that (at least not that I’m aware of).

Security includes applying a set of good practices and principles to a system. But it also includes procedures and automations that help developers and admins in not omitting something that they are generally aware of, but happen to forget every now and then. And the less tedious a security principle is to apply, the more likely it will be consistently applied.

The post Automate Access Control for User-Specific Entities appeared first on Bozho's tech blog.

Random App Ideas

Post Syndicated from Bozho original https://techblog.bozho.net/random-app-ideas/

Every now and then you start thinking “wouldn’t it be nice to have an app for X”. When I was in that situation, I took a note. Then that note grew, I cleaned up some absurd ones and added some more. I implemented some of these ideas of mine, the rest formed a “TODO” list.

At some point I realized I won’t be able to implement them, as the time needed is not something I’m likely to have in the near future. But I didn’t like to just delete the notes. So here they are – my random app ideas. Probably useless, but maybe a little interesting.

  • Receipts via smartphone NFC – there are apps that let you track your expenses, but they are tedious. There are apps that try to OCR receipts, but they vary too much in different parts of the world for that to be consistent (there are companies like Receipt bank that do something like that, but it’s not the way I’d like this problem solved in the long run). So I thought stores can offer the option for NFC receipts – you just tap your phone to a device (or another phone) and get the receipt in an electronic form. Not the picture, but the raw data – items, prices, taxes, issuer. Then you have to option to print it if you like. Of course I realized at some point that first legislation should allow for that – in many cases you must issue a paper receipt and the digital one is not “legal”. But the idea still remains viable and probably not hard to implement. It will allow much easier tracking of expenses by users and will save a lot of paper.
  • Am I drunk? – breathalyzer add-ons for phones are not something many people would buy. My idea was to detect drunkenness based on motion – the accelerometer (and possibly other sensors) could be trained to recognize a drunken walk on the street, thus informing you that you are… drunk. What’s the use of that – maybe if while walking to your car the app alerts you, you may be less likely to drive.
  • Mobile scavenger hunt – scavenger hunts have always been interesting. I remember we devised one for a friend’s birthday a few years ago. It would be nice, though, to be able to build such scavenger hunts dynamically, based on multiple configurable building blocks. The app could generate multiple outcomes based on certain rules (mostly using the GPS of the phone). It could be timed, it could include scanning barcodes (including those on actual products), visiting particular addresses, listening to songs and their lyrics, extracting data from Wikipedia articles, etc. “Generate scavenger hunt” (for a friend or randomly for yourself) might be interesting.
  • Sentiment analysis prior to commenting – something that somehow plugs to facebook or other social media (or screen-scrapes it?), plus a browser plugin (for desktop), that does sentiment analysis on the facebook comments you are currently typing. And recommending against them if they are too negative, personal attacks, etc. Kind of like a cool-down timer saying “thing twice before destroying the online discussion with that comment”. It is a problem of online communication that too often it gets out of control (and the same people wouldn’t be as rude in real life as online)
  • OCR shop signs – this was more of a Google glass app than for regular phone, as it requires capturing one’s surroundings. The idea is to crowdsource the current shops and restaurants and put them on a map. At the moment we rely on old and incomplete data – either data that the owners of a shop or restaurant have put, or that some contributor has added. However, shops and restaurants change often and you may not know that something has moved. It doesn’t sound that useful, but worth a thought.
  • Algorithmic impressionist painter – you train an algorithm and it creates a random picture. Now, that has already been done (I’ve been having the idea ever since I created my algorithmic music composer). And I’ve heard critics destroy the algorithmic paintings. But it’s an interesting experiment nonetheless.
  • Life game – basically record your actions and get rewarded for good deeds. The game can give particular challenges (e.g. “go help a soup kitchen”), and bonuses. The challenge here lies in data protection – depending on the level of detail, the application may have too much personal data that should not leak. Encrypting everything with a private key stored in the secure storage of your device may be one way to resolve that. I know it sounds a bit dystopian and now, after seeing something like that implemented in China, I’m happy that I can say “oh, I had this idea six years ago” and I’ve grown since then. Anyway, in my rendition it’s a voluntary game, not a state-imposed citizen score. But re-purposing technologies is a specialty of regimes, so maybe it’s a bad idea to build such a system in the first place.
  • Random hugs – you know those “free hugs” signs. You can have an app that detects other users of the same app via WiFi direct (or other GPS or non-GPS proximity/distance detection) and offers both of you to do a random hug. Yes, yes, I know it is awkward to hug strangers and it may be abused for sexual misconduct. In my defense, when I had the idea six years ago, the public attention and knowledge about sexual abuse was not on the levels it is today. Still, with a proper rating system and “report abuse”, this may not be an issue. And as hugs are considered a good thing for psychological health, it might not be such the dumb idea that it sounds.

In all cases above, there are interesting technical challenges – devising a standard receipt format and optimizing the UX of receipt exchange, training a model to detect drunkenness based on accelerometer readings, training a painting algorithm, doing sentiment analysis on small pieces of text, using niche technologies like WiFi direct for proximity, data protection and cryptography, OCR-ing pictures of surroundings. This is why I’m sharing them in this blog.

This is in line with my previous posts about making side projects with technologies that are new for you. The app may end up useless, or not used by many people, but you’ve still learned an important skill and applied it in practice.

The post Random App Ideas appeared first on Bozho's tech blog.

Няколко административни мита

Post Syndicated from Bozho original https://blog.bozho.net/blog/3200

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

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

  • Печати – печат не се изисква по закон почти за нищо. Един документ е валиден, когато е подписан от лице, което е законен представител на организацията от чието име се издава документа (по силата на нормативен акт, договор или заповед, напр.). Печатът някога може да е служил за допълнителна защита от фалшификации, но в момента можеш да направиш фалшив печат изключително лесно и евтино. Да, това би била допълнителна стъпка, която при евентуално документно престъпление би утежнила вината на извършителя, но изискване за печат няма за почти никой документ. Преди време правих анализ на законодателството с оглед на това къде се изискват печати. Има държавен печат, който е до голяма степен церемониален. Има печати на университетите, с които се подпечатват дипломи (също може да се каже, че е церемониален). Има професионални печати – напр. определени регулирани професии според специалните им закони трябва да имат печати – нотариуси, архитекти, ветеринари (пак остаряло изискване, но поне го има по закон). И има фирмени печати, чието използване е задължително общо взето само на годишните финансови отчети (голяма глупост, която пречи на подаването на машинно-четими финансови отчети). Това не е изчерпателен списък, разбира се – има поне 20-тина случаи в законодателството, където печат се изисква, но те не са общия случай. Т.е. ако някой ви каже, че документ не е валиден, защото няма печат – накарайте го да ви посочи законово основание за това.
  • Свидетелство за съдимост – някои фирми продължават да искат свидетелство за съдимост, за да ви регистрират трудовия договор. Това рядко е необходимонаредбата за необходимите документи при постъпване на работа казва, че свидетелство за съдимост се изисква само „когато със закон или нормативен акт се изисква удостоверяването на съдебно минало“. Т.е. само в регулирани професии и индустрии може да има такова изискване. Чл. 10 от GDPR затвърждава това, като казва, че данни за съдебно минало могат да се обработват само от държавни органи или в случаи, когато закон го изисква. В допълнение на темата, с изменение на една наредба от тази година вече свидетелство за съдимост не може да ви се иска от държавни органи – трябва да си го съберат по служебен път, в духа на Закона за електронното управление. Та, когато някой ви поиска свидетелство за съдимост – питайте го кой закон го изисква (или ако е администрация – да си го вземе сам, защото ще подадете сигнал за нарушение).
  • „Медицинско“ при започване на работа – това по мое наблюдение е по-масово от искането за свидетелството за съдимост. Същата наредба като по-горе обаче казва изрично в кои случаи се иска „медицинско“ – „документ за медицински преглед при първоначално постъпване на работа и след преустановяване на трудовата дейност по трудово правоотношение за срок над 3 месеца“. Т.е. само на първата ви работа, или ако сте бил без трудов договор над 3 месеца. Това не е единствената наредба, която урежда въпроса – другата казва същото. Общо взето „медицинско свидетелство“ го няма като термин в Кодекса на труда и свързаните с него (и със ЗБУТ) наредби. Има го обаче в една наредба от 91-ва (Наредба № 14), която явно не е осъвременена заедно с трудовото законодателство. И в този случай, ако ви поискат медицинско, питайте защо, вместо да се разкарвате до личния лекар (при който е добре да се ходи за профилактика, а не за бележки)
  • Съгласие за обработване на лични данни при трудов договор – това се случваше и преди, а с влизането в сила на GDPR се засили. А всъщност е напълно ненужно, тъй като личните данни за трудовото правоотношение се обработват по силата на закон (Кодекс на труда). Съгласие би имало нужда да се дава, ако данните се ползват от работодателя за нещо извън изискванията на Кодекса на труда. Например искате да ползвате данните на служителите за маркетингови цели. Само че ако съгласието е обвързано с подписването на трудовия договор, то не е свободно дадено и пак не е валидно. Така че ако някой ви поиска съгласие при подписване на трудов договор – няма нужда.
  • Материално отговорно лице – наскоро правихме електронни фактури и разровихме изискванията на законодателството. Някои от реквизитите, които са възприети кат стандартни, всъщност не се изискват. Т.нар. „МОЛ“ е един от тях. Приложимото законодателство е Закон за счетоводството (чл. 7), Закон за ДДС и Правилник за прилагане на ЗДДС. Настрана факта, че трябва от три места да се събират изисквани към един документ, но изискване за МОЛ просто няма. (Между другото, няма изискване и за „съставил“). МОЛ като цяло отсъства като термин в нормативната уредба (с изключение на 3-4 специфични наредби). Общо взето важното лице е законният представител, който може да бъде проверен в реално време в Търговския регистър на база на ЕИК (или съответно в регистър Булстат).
  • Електронният подпис – според много хора електронният подпис не е същият като саморъчният, по-известно като „това не може с електронен подпис“ или „елате да го подпишете на място“. Регламент 910/2014 на ЕС обаче казва, че „квалифицираният електронен подпис [..] има същата правна сила като саморъчния подпис.“. Това е проблем не само на нашата администрация и нашия бизнес. „С електронен подпис не може“ съм получавал като отговор и в Холандия и при отношения на немска и с люксембургска компании. Макар Директивата за електронния подпис да е била приета преди близо 20 години, а Регламентът преди 4, все още разбирането не е на високо ниво, както в администрацията, така и в бизнеса – който съвсем спокойно може да си спести куриерски услуги, но не го прави. Описал съм проблемите с разбирането за електронните подписи тук, след което комуникирах проблем с Европейската комисия, като отговорът от там беше доста незадоволителен – държавите членки в крайна сметка правят каквото си искат. Но рано или късно и администрацията, и съдът, и бизнесът ще разберат какво значи електронен документ и електронен подпис.

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

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

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

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

Scaling Horizontally on AWS [talk]

Post Syndicated from Bozho original https://techblog.bozho.net/scaling-horizontally-on-aws-talk/

On a recent conference (HackConf) I gave a talk where I tried to summarize how to do deployment and horizontal scaling on AWS. It is an overview of AWS resources (instance, load balancers, auto-scaling groups, security groups) as well as how to use CloudFormation to script your stack.

It briefly mentions the application layer and how it should look like (because another talk on the same conference was focused on that part). My point here is summarized as: ““You cannot scale an unscalable application”. But the talk continues to discuss AWS specific things, although many of them have their nearly identical counterparts in other IaaS providers (e.g. Google Cloud, Azure).

The video of the talk can be seen here:

And the slides are here:

As someone summarized on twitter: “That talk is approximately a year worth of learning experience with AWS in 40 minutes”. This is a benefit and a drawback, as it might be too condensed and too shallow, but I think I’ve covered important bits with enough depth for a starting point.

One of my points was that for simpler setups you don’t need fancy tools and platforms (docker, kubernetes, etc.) – as you’ll have to use bash anyway, you can go with just bash + CloudFormation and have a perfectly good, highly-available, blue-green deployment setup.

The other main points where: “think about your infrastructure as code”, and “consider all your resources dispensable, as they will surely die at some point”. Overall, I hope the talk is useful for everyone using or planning to use AWS, or any other IaaS provider.

The post Scaling Horizontally on AWS [talk] appeared first on Bozho's tech blog.

Models for Electronic Identification

Post Syndicated from Bozho original https://techblog.bozho.net/models-for-electronic-identification/

Electronic identity is an important concept as it lies on the crossroads of the digital, the physical and the legal worlds. How do you prove your identity without being physically present? I’ve previously given an overview talk on electronic identification, tackled the high-level and philosophical aspects, and criticized biometric-only identification as insecure. Now I want to list a few practical ways in which eID can be implemented.

First, it’s important to mention the eIDAS regulation which makes electronic identity a legal reality. It says what an electronic identification scheme is and what are its legal effects (proving that you are who you claim to be). And it defines multiple “levels of assurance”, i.e. the levels of security of a method of authentication. But it is a broad framework that doesn’t tell you how to do things in the technical world.

And while electronic identification is mostly cited in the context of government and municipal services, it applies to private companies as well. Currently in the US, for example, the SSN is used for electronic identification. This is a very poor approach, as leaking the SSN allows for identity theft. In the EU there are many different approaches to do that, from the Estonian PKI-based approach, to UK’s verify initiative, which relies on the databases of private companies.

You can see electronic identity as a more legally-meaningful login. You still perform a login, in many cases using username and password as one of the factors, but it carries additional information – who is the actual person behind that login. In some cases it doesn’t have to even give information on who the person is – it can just confirm that such a person exists, and some attributes of that person – age (e.g. if you want to purchase alcohol online), city of registration (e.g. if you want to use municipal services), conviction status (e.g. if applying for a driver in an Uber-like service). It is also very useful when doing anti money laundering checks (e.g. if you are a payment provider, an online currency or crypto-currency exchange, etc.)

Electronic identification schemes can be public and private. Public are operated by governments (federal or state in the case of the US), a particular institution (e.g. the one the issues driver’s licenses). Private ones can be operated by any company that has had the ability to verify your physical identity – e.g. by you going and signing a contract with them. A bank, a telecom, a utility company.

I will use “authentication” and “identification” interchangeably, and for practical purposes this is sort-of true. They differ, of course, as authentication is proving you are who you are, and identification is uniquely identifying you among others (and they have slightly different meanings when it comes to cryptography, but let’s not get carried away in terminology).

Enrollment is the process of signing you up in the electronic identification scheme’s database. It can include a typical online registration step, but it has to do proper identity verification. This can be done in three ways:

  • In-person – you physically go to a counter to have your identity verified. This is easy in the EU where ID cards exists, and a bit harder in the US, where you are not required to actually have an identity document (though you may have one of several). In that case you’d have to bring a birth certificate, utility bills or whatever the local legislation requires
  • Online – any combination of the following may be deemed acceptable, depending on the level of assurance needed: a videoconferencing call; selfie with an identity document; separate picture of an identity document; camera-based liveness detection; matching of selfie with government-registered photo. Basically, a way to say that 1. I have this document 2. I am the person on the document. This could be automated or manual. But does not require physical presence.
  • By proxy – by relying on another eID provider that can confirm your identity. This is an odd option, but you can cascade eID schemes.

And then there’s the technical aspects – what do you add to “username and password” to make identity theft less likely or nearly impossible:

  • OTP (one-time passwords). This can be a hardware OTP token (e.g. RSA SecureID) or a software-based TOTP (like Google Authenticator). The principal of both is the same – the client and the server share a secret, and based on the current time, generate a 6-digit password. Note that storing the secrets on the server side is not trivial – ideally that should be on an HSM (hardware security module) that can do native OTP, otherwise the secrets can leak and your users can be impersonated (The HSM is supposed to not let any secret key leave the hardware). There are less secure OTP approaches, like SMS or other type of messages – you generate one and send it to a registered phone, viber, telegram, email, etc. Banks often use that for their login, but it cannot be used across organizations, as it would require the secrets to be shared. Because the approach is centralized, you can easily revoke an OTP, e.g. declare a phone or OTP device as stolen and then go get a new one / register a new phone.
  • PKI-based authentication – when you verify the person’s identity, have them generate a private key, and issue a X.509 certificate for the corresponding public key. That way the user can use the private key to authenticate (the most straightforward way – TLS mutual authentication, where the user signs a challenge with the private key to confirm they are the “owners” of the certificate). The certificate would normally hold some identifier which can then be used to fetch data from databases. Alternatively, the data can be on the certificate itself, but that has some privacy implications and is rarely a good option. This option can be use across institutions, as you can prove you are the person that owns a private key without the other side needing to share a secret with you. They only need the certificate, and it is public anyway. Another benefit of PKI-based authentication is revokability – in case the user’s private key is somehow compromised, you can easily revoke a certificate (publish it in a CRL, for example).
  • Biometrics – when you are enrolled, you scan a fingerprint, a palm, an iris, a retina or whatever the current cool biometric tech is. I often argue that this cannot be your main factor of authentication. It can and sometimes should be used as an additional safeguard, but it has a big problem – it cannot be revoked. Once a biometric identifier is leaked, it is impossible to stop people from using it. And while they may not be able to fool scanners (although for fingerprints that has been proven easy in the past), the scanners communicate with a server which perform authentication. An attacker may simply spoof a scanner and make it seem to the server that the biometric data was properly obtained. If that has to be avoided, scanners have to themselves be identified by signing a challenge with a private key in a secure hardware module, which make the whole process too complicated to be meaningful. But then again – the biometric factor is useful and important, as we’ll see below.

The typical “factors” in an authentication process are: something you know (passwords), something you have (OTP token, smartcard, phone) and something you are (biometrics). The “something you have” part is what generates multiple variations to the PKI approach mentioned above:

  • Use an unprotected storage on a computer to store the private key – obviously not secure enough, as the private key can be easily extracted and your identity can thus be stolen. But it has to be mentioned, as it can be useful in lower-risk scenarios
  • Use a smartcard – a hardware device that can handle PKI operations (signing, encryption) and does not let private keys leave the hardware. Smartcards are tricky, as they require a reader (usually plugged via USB) and vendor-specific drivers and “magic” to have browser support. Depending on the circumstances, it could be a good approach, as it is the most secure – there is no way for someone to impersonate you, apart from stealing your smartcard and knowing both your smartcard PIN and your password. The problem with plugging the smartcard can be alleviated by utilzing NFC with a smartphone (so just place the card on the back of the smartphone in order to authenticate) but that leads to a lot more other problems, e.g. how to protect the communication from eavesdropping and MITM attacks (as far as I know, there is no established standard for that, except for NFC-SEC, which I think is not universally supported). The smartcard can be put on a national ID card, a separate card, or even the ones in existing bank cards can be reused (though issuers are reluctant to share the chip with functionality (applets) other than the EMV).
  • Use a smartphone – smartphones these days have secure storage capabilities (e.g. Android’s Trusted execution environment or iPhone’s Secure Enclave). A few years ago when I was doing a more thorough, these secure modules were not perfect and there were known attacks, but they have certainly improved. You can in many cases rely on a smartphone to protect the private key. Then, in order to authenticate, you’d need a PIN or biometrics to unlock the phone. Here’s when biometrics come really handy – when they don’t leave the phone, so even if leaked, they cannot be used to impersonate you. They can only be used to potentially make a fake fingerprint to unlock the phone (which should also be stolen). And of course, there’s still the password (“something you know”).
  • Remote HSM – the private keys can be stored remotely, on a hardware security module, so that they cannot physically leave the hardware. However, the hardware is not under your physical control and unlocking it requires just a PIN, which turns this scheme into just “something you know” (times 2, if you add the password). Remote identification and remote signing schemes are becoming popular and in order for them to be secure, you also have to somehow associate the device with the particular user and their private key on the HSM. This can be done in a combination of ways, including the IMEI of the phone (which is spoofable, though) and utilizing some of the aforementioned options – the protected storage of the phone and OTPs handled behind the scene. (Note: the keys on the HSM should be in the protected storage. Having them in an external database encrypted by the master key is not good enough, as they can still leak). If you are going to rely on the smartphone secure storage anyway, what’s the benefit of the remote HSM? It’s twofold – first – loosing the phone doesn’t mean you cannot use the same key again, and second – it reduces the risk of leaking the key, as the HSM is theoretically more secure than the smartphone storage
  • Hybrid / split key – the last two approaches – the smartphone secure storage and the remote HSM can be combined for additional security. You can have the key split in two – part in the smartphone, part on the HSM. That way you are reducing the risk of the key leaking. Losing the phone, however, would mean the key should be regenerated and new certificates should be issued, but that may be okay depending on the usecase.

As you can see, the smartphone secure storage is becoming animportant aspect for electronic identification that is both secure and usable. It allows easily adding a biometric factor without the need to be able to revoke it. And it doesn’t rely on a clunky smartcard that you can’t easily plug.

This is not everything that can be said about secure electronic identification, but I think it’s enough details to get a good picture. It’s not trivial and getting it wrong may lead to real-world damages. It is viewed as primarily government-related, but the eID market in Europe is likely going to grow (partly thanks to unifying the legislation by eIDAS) and many private providers will take part in that. In the US the problem of identity theft and the horrible practice of using the SSN for authentication is being recognized and it’s likely that legislative efforts will follow to put electronic identification on track and in turn foster a market for eID solutions (which is currently a patchwork of scanning and manual verification of documents).

The ultimate goal is to be both secure and usable. And that’s always hard. But thanks to the almost ubiquitous smartphone, it is now possible (though backup options should exist for people that don’t have smartphones). Electronic identification is a key enabler for the so called “digital transformation”, and getting it right is crucial for the digital economy. Apologies for the generic high-level sentence, but I do think we should have technical discussions at the same time as policy discussions, otherwise the two diverge and policy monsters are born.

The post Models for Electronic Identification appeared first on Bozho's tech blog.

Typical Workarounds For Compliant Logs

Post Syndicated from Bozho original https://techblog.bozho.net/typical-workarounds-for-compliant-logs/

You may think you have logs. Chances are, you can rely on them only for tracing exceptions and debugging. But you can’t rely on them for compliance, forensics, or any legal matter. And that may be none of your concern as an engineer, but it is one of those important non-functional requirements that, if not met, are ultimately our fault.

Because of my audit trail startup, I’m obviously both biased and qualified to discuss logs (I’ve previously described what audit trail / audit logs are and how they can be maintained). And while they are a only a part of the security aspects, and certainly not very exciting, they are important, especially from a legal standpoint. That’s why many standards and laws – including ISO 27001, PCI-DSS, HIPAA, SOC 2, PSD2, GDPR – require audit trail functionality. And most of them have very specific security requirements.

PCI-DSS has a bunch of sections with audit trail related requirements:

10.2.3
“Malicious users often attempt to alter audit logs to hide their actions, and a record of access allows an organization to trace any inconsistencies or potential tampering of the logs to an individual account. [..]”

10.5 Secure audit trails so they cannot be altered. Often a malicious individual who has entered the network will attempt to edit the audit logs in order to hide their activity. Without adequate protection of audit logs, their completeness, accuracy, and integrity cannot be guaranteed, and the audit logs can be rendered useless as an investigation tool after a compromise.

10.5.5
Use file-integrity monitoring or change-detection software on logs to ensure that existing log data cannot be changed without generating alerts (although new data being added should not cause an alert).

ISO 27001 Annex A also speaks about protecting the audit trail against tampering

A.12.4.2 Protection of log information
Logging facilities and log information shall be protected against tampering and unauthorized access

From my experience, sadly, logs are rarely fully compliant. However, auditors are mostly fine with that and certification is given, even though logs can be tampered with. I decided to collect and list the typical workarounds the the secure, tamper-evident/tamper-protected audit logs.

  • We don’t need them secured – you almost certainly do. If you need to be compliant – you do. If you don’t need to be compliant, but you have a high-value / high-impact system, you do. If it doesn’t have to be compliant and it’s low-value or low-impact, than yes. You don’t need much security for that anyway (but be careful to not underestimate the needed security)
  • We store it in multiple places with different access – this is based on the assumption that multiple administrators won’t conspire to tamper with the logs. And you can’t guarantee that, of course. But even if you are sure they won’t, you can’t prove that to external parties. Imagine someone sues you and you provide logs as evidence. If the logs are not tamper-evident, the other side can easily claim you have fabricated logs and make them inadmissible evidence.
  • Our system is so complicated, nobody knows how to modify data without breaking our integrity checks – this is the “security through obscurity” approach and it will probably work well … until it doesn’t.
  • We store it with external provider – external log providers usually claim they provide compliance. And they do provide many aspects of compliance, mainly operational security around the log collection systems. Besides, in that case you (or your admins) can’t easily modify the externally stored records. Some providers may give you the option to delete records, which isn’t great for audit trail. The problem with such services is that they keep the logs operational for relatively short periods of time and then export them in a form that can be tampered with. Furthermore, you can’t really be sure that the logs are not tampered with. Yes, the provider is unlikely to care about your logs, but having that as the main guarantee doesn’t sound perfect.
  • We are using trusted timestamping – and that’s great, it covers many aspects of the logs integrity. AWS is timestamping their CloudTrail log files and it’s certainly a good practice. However, it comes short in just one scenario – someone deleting an entire timestamped file. And because it’s a whole file, rather than record-by-record, you won’t know which record exactly was targeted. There’s another caveat – if the TSA is under your control, you can backdate timestamps and therefore can’t prove that you didn’t fabricate logs.

These approaches are valid and are somewhere on a non-zero point on the compliance spectrum. Is having four copies of the data accessible to different admins better than having just one? Yup. Is timestamping with a local TSA better than not timestamping? Sure. Is using an external service more secure than using a local one? Yes. Are they sufficient to get certified? Apparently yes. Is this the best that can be done? No. Do you need the best? Sometimes yes.

Most of these measures are organizational rather than technical, and organizational measures can be reversed or circumvented much more easily than technical ones. And I may be too paranoid, but when I was a government advisor, I had to be paranoid when it comes to security.

And what do I consider a non-workaround? There is a lot of research around tamper-evident logging, tamper-evident data structures, merkle trees, hash chains. Here’s just one example. It should have been mainstream by now, but it isn’t. We’ve apparently settled on suboptimal procedures (even when it comes to cost), and we’ve interpreted the standards loosely, looking for a low-hanging fruit. And that’s fine for some organizations. I guess.

It takes time for a certain good practice to become mainstream, and it has to be obvious. Tamper-evident logging isn’t obvious. We had gradually become more aware about properly storing passwords, using TLS, multi-factor authentication. But security is rarely a business priority, as seen in reports about what drives security investments (it’s predominantly “compliance”).

As a practical conclusion – if you are going to settle for a workaround, at least choose a better one. Not having audit trail or not making any effort to protect it from tampering should be out of the question.

The post Typical Workarounds For Compliant Logs appeared first on Bozho's tech blog.

Митът за недемократичния Европейски съюз

Post Syndicated from Bozho original https://blog.bozho.net/blog/3193

Има един мит, който се повтаря все по-често – че Европейският съюз е недемократичен, а решенията се вземат от неизбрани от никого бюрократи.

Сямо че…ЕС има няколко основни институции и всички те са доста демократични (както отбелязва и The Economist).

Европейският парламент се състои от 750 депутати, директно избрани от народа с избори. Да, има идиоти, да, понякога гласуват глупости, и аз съм на първите линии да ги критикувам в тези случаи, но са си съвсем демократично избрани. За българските представители даже е по-демократично от националните избори, защото водачът на листа може да бъде изместен с преференции.

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

Малко известна на широката публика доскоро институция на ЕС е Съветът. Много от решенията се вземат на практика именно там (а не в парламента или Комисията), а той е съвсем демократичен – министрите от изпълнителната власт на всяка държава имат равен глас. Да, министрите на Борисов и Орбан имат равен глас с тези на Меркел и Макрон. И макар да не са избирани пряко, а чрез парламент, това са представители на демократично избраните правителства на съответните държави. Именно този съвет председателствахме през първата половина на тази година. Да, и те правят глупости, да, решенията там се вземат бавно и с трудни компромиси между интересите на всички държави-членки. Но именно това е демократичното.

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

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

Така че Европейският съюз си е възможно най-демократичен, че даже понякога вповече, което води до блокиране на преговорите по някои теми.

„Неизбраните от никого бюрократи“ не са тези, които вземат решенията – решенията се вземат от избрани от народите на ЕС представители, така че предлагам да спрем с тази теза.

ЕС има други кусури, които трябва да работим, за да поправим, но демократичността не е един от тях.

Обобщение относно Търговския регистър

Post Syndicated from Bozho original https://blog.bozho.net/blog/3188

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

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

Разбира се, нещата не са толкова прости. Да, ИТ експертите знаят как да конфигурират и поддържат системите, но коренът на проблема не е технически, а управленски. Много ми се иска всички проблеми да имат технически решения, но както виждаме нещата понякога са иначе – много проблеми водят след себе си технически проблеми.

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

За да решим проблема с Търговския регистър трябва да дадем „zoom out“, и да видим защо изобщо се стига до некачествена поддръжка на некачествено надграждан остарял софтуер, при това в засекретена поръчка. И тук дори отговорът не обичайният – корупция. Или поне не със стандартните финансови подбуди. Поддръжката на Търговския регистър струва 90 хиляди годишно. Това са твърде малко пари за адекватна поддръжка.

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

В интервю по темата за Медиапул казах, че на първо време липсват хора, които да „превеждат“ евентуална политическа воля в технологична и организационна реалност. Днес присъствах на лекция, която дефинира ролите на продуктовия мениджър в софтуерните компании, а именно – да служи като медиатор между бизнес изискванията, потребителските изисквания и технологичната реалност. Може да се каже, че ни трябва екип от хора с умения на продуктови мениджъри за редица системи и институции. А, да – не можем да си ги позволим, защото заплатите в администрацията са ниски, а пък Държавно предприятие „Единен системен оператор“ все още няма. Така че ще разчитаме на добра подредба на звездите.

Говорейки за мерки, все пак правителството предприе няколко от описаните в документа с препоръки – активизира се по създаването на „аварийно-възстановителен център“, както и на държавно предприятие. Не би трябвало да се сещаме какво ни трябва чак след като кризата удари, но пък иначе за какво са кризите?

В заключение, немарливостта при поддръжката на Търговския регистър е системен проблем, който няма да се реши с успешното възстановяване на един дисковия масив. Решаването на този проблем не е лесно – дори когато знаеш как, случването му на практика е пълно с препятствия от всякакво естество. Но се надявам, че от ситуация на „умерен разпад“ можем да преминем поне към „умерен прогрес“. Защо се надявам? Ами защото ако не се, значи да се отчаям, а от това няма смисъл.

До Приднестровието и назад

Post Syndicated from Bozho original https://blog.bozho.net/blog/3173

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

Та на 29-ти август вечерта потеглихме… с влак. Към Русе. Защо? Защо не… в 3 без нещо бяхме на гарата в Русе, направихме една разходка и стигнахме до ресторант „Дива орхидея“ – известно денонощно заведение в Русе. Имахме време за една кола преди да дойде таксито, което поръчано от предния ден, което да ни закара до летището в Букурещ.

От Букурещ взехме полета за Яш – по различни данни между 2-ри и 5-ти по големина град в Румъния. Летището в Яш е малко, като селска автогара, но пък има три терминала. Яш е приятен, има ботаническа градина, много църкви и интересни градски гледки. Бивша столица на Молдова е (1564-1862) и макар да е било отдавна, „столичното“ се усеща. Усеща се и соцът, разбира се.

От Яш хванахме автобус към Бълци, вторият по големина град в Молдова (ако не броим Тираспол, който според приднестровците не е в Молдова). Автобусът мина по умопомрачителен път (за съжаление – главният). Дупки нямаше, явно е бил направен качествено. Но според мен това е било някъде през 80-те. Беше толкова нагънат и крив, че всеки камък в бъбреците би излязъл. Все пак бяха решили да го ремонтират, но тъй като много от местните не спазваха светофарите в еднопосочните участъци, ставаха задръствания и разминаване на камиони, автобуси и коли, каращи през тревата. Нашите пътища и нашите шофьори са си направи „първи свят“.

В Бълци е мизерно, лъха на соц, сградите плачат за саниране, а както ще забележим после в цяла Молдова и Украйна – тръби минават навсякъде. На центъра има танк, както и няколко различни пазара – едни съвсем открит, един съвсем закрит, и един полуоткрит. Впечатление прави как местните (поне по-възрастните) се кръстят не просто когато влизат и излизат от църква, а дори когато минават покрай църква в тролей. Спахме в лятната къща на местно семейство (което я беше пуснало в Booking), и след кратка сутрешна разходка на другия ден, отидохме на автогарата. Там виковете „Кишинеу, Кишинеу“ са през 10 секунди – с цел да напълнят поредната маршрутка и на нейно място да дойде следващата.

Пътят до Кишинев беше значително по-добър, та даже успях да спя. За да ни остави по-близо до квартирата (апартамент пуснат в Booking, който явно яде от пазара на AirBNB), маршрутката ни остави „в нищото“ (в центъра, все пак, де). След дълъг (сервитьорите в Молдова не бързат, или поне нашите не бързаха) обяд (с кюфтенца от мамалига) последва цял ден разходка из Кишинев.

На много стени пишеше телефонен номер на хора, предлагащи татуировки. В крайна сметка друг беше намерил пазарна ниша и предлагаше премахване на татуировки. Защо толкова много татуировки се предлагат по такъв начин – не знам.

Кишинев е приятен. Има го соц усещането, но има и доста красиви места. Гарата е чудесна. Парковете са приятни. Има места, които са направени за картички. Има интересно градско изкуство. Новото строителство е … голямо, и се чудиш дали е ново или са санирани панелки.

Бяхме в Кишинев в деня на молдовския празник Лимба ноастръ (нашият език). Централният булевард беше затворен и имаше народни песни и тълпа от хора. Това е денят, на който молдовският език е станал официален в Молдовската ССР през 89-та, като е прието, че е иденетичен с румънския и се пише с латиница. Това е сериозна стъпка, тъй като съветската власт е настоявала, че молдовският е различен език, пишел се е с кирилица, като по този начин е бил предпоставка за твърдението, че има отделна молдовска нация и съответно – държава. Много молдовци не са на това мнение, и виждат този ден като важна стъпка към обединение с Румъния (опростявам, разбира се – има много за четене по темата). Този празник е важен и за отделянето на Транснистрия, както ще видим след малко.

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

На следващия ден станахме в 6ч, за да хванем влака за Тираспол (има един влак дневно). Опашката на гарата беше до входа – правиха проверка на билетите преди излизане на перона. Влакът беше пълен, тъй като крайната му дестинация е Одеса. Интересното при влизането с влак в Транснистрия е, че няма гранична гара. Влизаш си с влака в републиката (пресичайки мост над Днестър) и на гарата в Тираспол трябва да минеш през имиграционната служба. Там попълваш една бланка (с доста грешки в английската ѝ част), вземат ти горната половина, а долната половина си я пазиш до напускане. Имаш право на 10-тина часа, като ако нощуваш някъде, трябва собственикът на апартамента или хотела да ти удължи престоя, като отиде в районното. Ние бяхме планирали да останем само до следобед, така че тази стъпка не ни се наложи.

Граничният полицай много учтиво ни обясни всичко, каза кога ни е последната маршрутка за Одеса (не беше прав, беше по-късна), каза ни и за селото с бесарабски българи близо до Тираспол и как да стигнем дотам. Обменихме и пари – там се плаща с приднестровски рубли, които можеш да си купиш само от там. От гарата тръгнахме към тролейбусна спирка, откъдето да отидем до близкия град – Бендери. Да, има тролей между двата града. Първо обаче дойде маршрутка (с гениален начин за затваряне на вратата), та се отправихме към Бендери.

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

Това е ключовият момент от приднестровската война, в който Молдовската армия нахлува в града, стреляйки по цивилни къщи и автомобили. Нещата, разбира се, са по-сложни. След приемането на молдовския (т.е. румънски) за официален език, малцинствата в Молдова – руското и гагаузкото – се притесняват от дискриминация и дори геноцид и обявяват независимост. Разбира се, езикът не е бил единственият фактор, цялостните настроения, в комбинация с разпада на съветския съюз, са довели до този акт. След референдума за напускане на СССР, Молдова все още няма опитна армия, с която да защити територията си, а 14-та руска армия подпомага приднестровците. В продължение на две години има епизоди на насилие, които кулминират в трагедията в Бендери – молдовската полиция арестува руски майор, но приднестровската „съпротива“ обстрелва полицейското управление. В отговор, молдовската армия влиза в града, за да установи контрол. Само че, твърди се, че правейки го, извършва доста нарушения. Което провокира Русия да застане официално на страната на Транснистрия. Последват кратки военни действия, след което примирие, което продължава и до днес. Общо взето Транснистрия съшествува благодарение на руската армия.

Проблемът обаче е назрявал много преди 90-та година. Транснистрия всъщност не е била част от Молдова, а от украинската ССР. След присъединяването на Молдова към СССР през 40-та година (в резултат от пакта Молотов-Рибентроп), Сталин „начертава границата“ на Молдовската ССР не до Днестър, а отвъд – включвайки и Транснистрия, в която тогава има 41% молдовско население. Бендери е „Против румънизацията“, а притесненията им може би са били отчасти основателни. Споменах Гагаузия – друга област, където се говори гагаузки език (който е тюркски). Тя през 94-та получава статут на автономна област, в която гагаузкият език е признат. Такова решение е най-логично, но за съжаление не е постигнато за Транснистрия.

Обратно в настоящето – хванахме такси от Бендери до Паркани (селото между Бендери и Тираспол). На въпрос „колко ще струва“, таксиджията каза „по апарат“. След което сложи смартфона си на таблото и отчиташе с него. Излезе колкото очаквахме. А в Паркани има бесарабски българи. Но в почивен ден в жегата не можеш точно да намериш българи по улицата. Само че решихме да потърсим споменатия от граничния полицай музей. Не било музей, оказа се, а културен център. На площада пред културния център има две неща. Паметник на Ленин и бюст на Васил Левски. Ленин и Левски – идилия.

А вътре в културния център ни посрещна жена, която, като разбра, че сме от България пита „на руски ли да говорим или да не си кършим езиците и да говорим на български. Той нашият е по-различен, де“. Показа ни експозицията на българската култура – трябваше да я подреди малко, защото я готвели за утрешния национален празник на Транснистрия. Щели да ходят с ансамбъла да представят българската култура в Тираспол. Показа ни и многото награди от български фолклорни фестивали – често идвали до България. Бесарабският български звучи много интересно – прилича на родопски, но със западни нотки.

След това излязохме на главния път и хванахме тролея за Тираспол – столицата на републиката. Видяхме паметника на Суворов (основател на Тираспол), както и явната близост на Транснистрия с Русия. Освен, че руският и приднестровският флаг винаги са един до друг, руската Сбербанк има силно присъствие.

Видяхме и сградата на парламента, пихме квас (супер е в жегата), видяхме посолсвата на Южна Осетия и Абхазия – две от трите държави, които признават Транснистрия (третата е Нагорни Карабах). Тираспол е вторият по-големина град на територията на Молдова. Усеща се като среден български областен град в началото на века – преди да дойдат европарите за ремонти.

Приднестровието е бедно. Произвеждат коняк (Квинт), чиито магазини са едно от малкото по-лъскави неща, заедно със Сбербанк. За да изнасят стоки за ЕС, те трябва да са „произведени в Молдова“, а след подписването на договора за асоцииране между Молдова и ЕС през 2014-та, приднестровската икономика бързо се преориентира към ЕС, като износът за Русия спада. Вносът от ЕС пък е с високо качество, както можем да видим от тази снимка. По десетки стълбове, както и в маршрутките, има обяви за курсове с гарантирана работа в Европа, работа в Полша и дори румънско гражданство. Руските знамена са благодарност за военната помощ от руската армия, но икономиката вече е ясно насочена към Европа. Любопитна нотка е и логото на Приста Ойл на гарата в Тираспол, вероятно от едни минали времена.

От Тираспол тръгнахме с маршрутка за Одеса. Границата е интересна, защото е тройна. Напускаш Транснистрия, съответно има техен граничен пункт. Влизаш в Украйна, съответно има техен пункт. Но интересното е, че в същото време напускаш и Молдова. И ако няма молдовски граничен пункт, няма да има кой да ти сложи печат, че си напуснал Молдова. Този проблем е решен със споразумение между Молдова и Украйна, така че на украинският пункт получаваш печата за изход от Молдова. А украинският граничен полицай ни пита „Нещо изнасяте ли? Наркотици, трева, съветски медали?“. Вероятно заради ценните метали, но все пак беше забавен въпрос.

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

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

Няколко дни след като станах на 31, посетих 31-вата си държава. Но не броя Транснистрия – с нея биха били 32. А тя е пример за това колко много история и много историческа глупост може да има на едно малко парче земя. И как тази историческа глупост води до това едни хора да живеят бедно, да бъдат облъчвани с пропаганда и да нямат възможностите за развитие, които имаме ние.

Молдова никога не е искала да бъде част от Съветския съюз. Но е станала след споразумение между двата силни режима в средата на века – хитлеристка Германия и СССР на Сталин. В резултат на това, в момента Молдова е бедна, макар че могат да се видят проблясъците и възможностите, които са пред нея.

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

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

Трябва да сме много внимателни да не попадаме в такива ситуации, защото излизането от тях е трудно. Последният път ни отне 62 години (1944-2007). Дано да няма следващ такъв малшанс, подпомаган от местни опортюнисти и полезни идиоти.

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

Общински електронни услуги и защо никой не ги ползва

Post Syndicated from Bozho original https://blog.bozho.net/blog/3167

Когато говорим за електронно управление, почти винаги си представяме електронизация на централната власт. Само че немалка част от административните услуги са общински. Или по-точно – предоставени от общините.

Някои общини имат електронни услуги, като те са се случили по един от следните начини:

  • По някой проект по ОПАК (Оперативна програма „Административен капацитет“), като индивидуално усилие на съответната община. Често тези проекти нямат устойчивост
  • Чрез публичен модул на деловодната система (най-често Акстър)
  • Чрез интеграция на системата за местни данъци и такси с НАП
  • По проект за общински електронни услуги на МТИТС, който имаше две итерации – първата внедри услугите в Столична община, а втората – с Радомир, Бургас и Габрово

Проектите по ОПАК често остават без поддръжка и електронните услуги вече дори не са достъпни. Преди доста години работех в една фирма, с която направихме електронни услуги в две общини – проверих, и в двата случая вече не работят. Даже едната община явно е имала нови електронни услуги, които да заменят старите, но и те в момента не работят. Не е новина, че ОПАК беше едно неадекватно разхищение на европари, но това е друга тема – надявам Оперативна програма „Добро управление“ (наследник на ОПАК) да бъде по-успешна, макар че в момента там има друг проблем – много малко проекти реално са стартирали, вероятно отчасти заради високите изисквания за качество и невъзможността за „пари на калпак“.

Публичните модули на деловодните системи са полезни, като плюсът е, че няма нужда от специална интеграция с това, което така или иначе администрацията ползва всеки ден – деловодната система. Много от проектите за електронни услуги създаваха де факто паралелна деловодна система (в някои случаи прехвърлянето в реалната става с copy-paste), което не е добре от процесна гледна точка.

Местните данъци и такси, с малки изключения, работят прилично – влизаш на сайта на НАП, проверяваш колко дължиш и плащаш – с банкова карта онлайн. Като истинско (само трябва да имаш ПИК или КЕП, тъй като още сме доникъде с електронната идентификация).

Проектите на МТИТС за електронни услуги дават възможност една и съща инсталация да се използва в няколко общини, с леки модификации. Т.нар. multi-tenant софтуер, залегнал и в чл. 26, ал. 2 от наредбата към Закона за е-управление.

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

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

Но ето извадка за категорията „Гражданска регистрация“ (където има най-много заявления, като изключим една вътрешно-административна услуга категория „Местни данъци и такси“).

наименование на електронна услуга/справка брой постъпили заявления за 2016 г. брой постъпили заявления за 2017 г. брой постъпили заявления за 2018 г.
Удостоверение за наследници 4 14 14
Удостоверение за настоящ адрес при вече регистриран настоящ адрес 3 13 1
Удостоверение за настоящ адрес след подаване адресна карта за заявяване или за промяна на настоящ адрес 2 5 4
Удостоверение за постоянен адрес при вече регистриран постоянен адрес 6 8 4
Удостоверение за постоянен адрес след подаване на заявление за заявяване или за промяна на постоянен адрес 2 6 3
Удостоверение за промени на постоянен адрес регистриран след 2000 година 1 2 3
Удостоверение за промeни на настоящ адрес регистриран след 2000 година 0 0 7
Удостоверение за раждане – дубликат 5 5 0
Удостоверение за родените от майката деца 1 1 0
Удостоверение за семейно положение 7 27 30
Удостоверение за семейно положение, съпруг/а и деца 26 65 54
Удостоверение за сключен граждански брак – дубликат 0 4 1
Удостоверение за съпруг/а и родствени връзки 0 1 1
Удостоверение за идентичност на лице с различни имена 0 3 2
Препис-извлечение от акт за смърт, за втори и следващ път 3 5 2
Заверен препис или копие от личeн регистрационeн картон или страница от семейния регистър на населението 1 0 0
Удостоверение за вписване в регистрите на населението 2 0 0

Та, на практика никой не ползва тези услуги. Защо?

  • Столична община не ги промотира – почти никой не знае за съществуването им.
  • Трудни са за използване – когато аз подавах заявление имаше бъг с подписването на големи документи, а подкарването на коректната версия на Java в коректния браузър беше трудно дори за Java програмист. Трудно и да измислиш коя точно услуга ти трябва – много от тях не трябва да бъдат различни услуги, а една, с разлика от едно поле.
  • Нужен е и квалифициран електронен подпис. Малко хора имат.

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

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

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

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

А дотогава – аз и още 40-тина ентусиасти ще ползват общински електронни услуги на Столична община, общината ще е отчела, че „има електронни услуги, ето“. И всичко ще си върви както винаги – на хартия и по гишета.