Posts tagged отворен код

България вече има закон за отворения код

8

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

След като публикувах кратка новина по темата в Medium, тя бързо се разпространи през reddit, hacker news и slashdot и достигна до TechCrunch и TheNextWeb (както и няколко други).

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

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

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

Въпросът за сигурността е първият, който бива задаван – така няма ли „лошите“ да видят как да атакуват системата. В информационната сигурност съществува понятието „security through obscurity“ (сигурност чрез неизвестност), и той не работи – ако нещо е сигурно, само защото „лошите“ не знаят как работи, то не е сигурно. Сигурността по дизайн изисква една система да бъде сигурна дори всичко за нея да е известно, с изключение на паролите и ключовете а достъп (те, разбира се, няма да са публични). Разбира се, че системите ще имат пропуски, но те няма да са достъпни само за злонамерените, а и за доброжелателните. Които всъщност са повече – през последната година съм получил много добронамерени описания на дупки в сигурността, без човекът да е злоупотребил с тях. Лошото е, че в момента ако не изискам лично кода и не го оправя „в ръчен режим“, а софтуерът е с изтекла поддръжка или фирмата е недобросъвестна, няма кой и как да оправи този проблем. Когато кодът е отворен, външни експерти ще могат да предлагат как да бъде поправен съответния проблем. И съм убеден, че ще го правят.

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

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

Статията е публикувана в Терминал3

Share Button

Софтуерът на държавата – с отворен код и отворени данни

2

С това click-bait заглавие ще ви разкажа накратко за конференцията на Астел (Асоциация Телекомуникации) на тема електронно управление – мисията възможна, на която презентирах и аз.

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

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

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

След това Гроздан Караджов (председател на транспортната комисия в парламента) сподели някои коректни разсъждения за електронното управление (и някои нюанси, с които не съм съгласен – напр. че техническите детайли нямат такова значение). След него зам-министърът на транспорта Валери Борисов говори по много теми.

Аз говорих за визията на Общество.бг за електронно управление – отворено, координирано и фокусирано върху гражданите. Ето и слайдовете:

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

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

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

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

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

Share Button

Отворен код в държавата

9

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

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

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

(Но колкото и да ни харесва идеята, само с едно „супер“ няма да се реализира. Трябва да „тормозим“ администрацията и политиците с това наше желание)

Share Button

Новият egov.bg – за черните кутии и отвореността

6

Предполагам, че само най-заинтересованите в сферата на електронното управление граждани изобщо са чували, че имаме нов портал egov.bg. От около една година. Не говоря за ползване – надали някой го е използвал, но има.

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

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

Нямам за цел просто да наплюя поредната неуспешна държавна поръчка за софтуер, но ето кратък списък от проблеми: акаунтите от предишния портал не са мигрирани – който е имал регистрация там, да се регистрира пак. Все още няма достъп с универсален електронен подпис, който е законно средство за идентификация. Има достъп с е-ИД, което наистина е хубава технология, само дето никой не я ползва. Сайтът изобщо не е оптимизиран за мобилни устройства. URL-ите са излишно грозни и безполезни, а и отново не е помислено, че някой може да иска да даде линк към информация за дадена услуга. Не е помислено коя е основната цел – гражданин да намери електронна услуга. Търсенето не е направено удобно, и вместо да ти показва предложения докато пишеш, трябва да натиснеш бутон. Но най-големият проблем е, че сайтът е отчайващо бавен. Въпреки, че им посочих този проблем преди година, решение няма – явно операциите по пращане на заявки към една таблица са много тежки и потребителят трябва да чака страницата повече от 10 секунди понякога.

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

А как иначе? Както показват добрите практики от други държави, като Великобритания, САЩ, Естония, тенденцията е софтуерът на държавата да бъде с отворен код. Не, не говоря за линукси и openoffice, а когато държавата поръча на някоя фирма да ѝ направи поредния портал egov.bg, или какъвто и да е друг софтуер, искаме този код да бъде в GitHub, където от ранна фаза мотивирани и компетентни хора (а такива има) да дадат обратна връзка, да посочат проблемите, и дори да предложат решения. Моделът, в който се очаква администрацията, на края на проекта, да каже „да, става“ трябва да се смени с по-agile метод, по-итеративен подход, в който експерти (ама истински, а не тези в министерствата, извинявам се за генерализацията, но ИТ експерти там почти няма) да кажат кое не е наред и как да бъде.

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

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

А дотогава – опитвайте да ползвате черната кутия на държавата – egov.bg. И изпийте едно кафе, докато ви отвори резултатите от търсенето.

Share Button

Какъв проблем със сигурността имаше egov.bg

4

От няколко месеца egov.bg е (отново) подновен. Това е трето правене от нулата, доколкото ми е известно. Но за това друг път. Тъй като вече старата версия не функционира, проблемът, който ще опиша, няма да засегне никого.

А именно – всички документи в целия портал бяха достъпни за всеки. Документите съдържат лични данни – ЕГН-та, номера на лична карта, адреси, телефони. И бяха достъпни за сваляне от всеки „хакер“, който не е умствено изостанал.

Един абзац и за техническото описание. Всяко заявление за услуга е документ в системата. Гражданите имаха възможност да свалят на компютъра си XML-оригиналът на документа (системата работеше вътрешно с обмен на XML документи). Това ставаше, като с javascript браузърът беше насочен към нещо от сорта на /document?eDocId=XXX, където XXX беше… Base64-encoded пореден номер на документа. Само че не се правеше проверка дали текущо-логнатият потребител е собственик на даден документ, съответно всеки потребител можеше да изтегли всеки документ, стига да може да чете javascript и да знае какво е Base64. А изтеглянето на всички документи е улеснено от факта, че номерата им са последователни.

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

И като един white-hat-wanna-be („добри хакери“, които помагат за решаването на проблемите, вместо да ги използват за собствена облага) докладвах за проблема. На всички възможни email-и на портала и на дирекцията към министерство на транспорта, която се занимаваше с електронното правителство. 1-во нямах отговор. След известен брой напомняния за проблема (вкл. веднъж писах и до министъра), получих отговор, че техните „експерти проактивно не успяха да репродуцират проблема“. Те проактивно опитали да изпълнят 1 елементарна стъпка – да отворят URL-a на моя личен документ, и да осъзнаят, че това, че успяват да го свалят и да ми видят личните данни, е проблем.

След това писах до омбудсмана (a.k.a. арменския поп). От там след известно време ми отговориха, че не могат да направят нищо по въпроса, да се обърна към съответната администрация. Oh, really? Даже вече не помня писах ли след това на министерството, че разкажа на медиите за проблема. Не го направих, защото се появи новата версия на egov.bg и поне този проблем изчезна автоматично.

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

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

A нито едно от тези неща не е променено, доколкото знам. С две думи: електронно правителство през крив макарон. А то е изключително важно, за да може администрацията да функционира бързо, ефективно, некорумпирано и да е от полза. Татко каза, че ще имаме електронно правителство, ама друг път…аман от идиоти.

Share Button
Go to Top