Отворен код и придобиване на софтуер от държавата

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

Continue reading

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

Преди около десет дни бяха обнародвани измененията в Закона за електронното управление. Измежду тях е и изискването всяка система, която се разработва по задание от държавата, да бъде с отворен код и да се разработва в публично хранилище на Държавна агенция „Електронно управление“. След като публикувах кратка новина по темата в Medium, тя бързо се разпространи през reddit, hacker news и slashdot и достигна до TechCrunch и TheNextWeb (както и няколко други). Защо новината се оказа толкова голяма за технологичните медии? Защото макар много държави да имат политики и правила за използване на отворен код, и макар Европейският парламент да прави на няколко пъти препоръки за използването му, за първи път при нас това влиза в закон. Съответно ентусиазмът на технологичните общности е голям. Обратно в реалността – какво на практика означава това. В детайли съм обяснил в лекцията си на OpenFest, но първото разяснение, което трябва да се направи е, че това не означава, че държавата няма да може да си купува повече софтуер със затворен код. Операционни системи, офис пакети, бази данни, счетоводни системи и всякакъв друг софтуер, за който се купуват лицензи, а не самия софтуер, ще продължи да действа по същия начин (макар че идеята за вбъдеще е да се поставят и системи с отворен код на масата, тъй като те са реална конкуренция в някои случаи, макар да нямат толкова силни отдели за продажби). Софтуерът, който се разработва по специални изисквания на държавата, обаче, ще бъде публично достъпен. Той и в момента е собственост на държавата, която пък го е платила с данъците на гражданите си, съответно те имат пълното право да го използват както намерят за добре. Плюсовете от това са няколко – по-висока прозрачност за какво се харчат пари, повече възможности външни експерти да наблюдават процеса и да дават конструктивна критика, по-ясен механизъм

Continue reading

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

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

Continue reading

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

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

Continue reading

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

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

Continue reading

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

От няколко месеца egov.bg е (отново) подновен. Това е трето правене от нулата, доколкото ми е известно. Но за това друг път. Тъй като вече старата версия не функционира, проблемът, който ще опиша, няма да засегне никого. А именно – всички документи в целия портал бяха достъпни за всеки. Документите съдържат лични данни – ЕГН-та, номера на лична карта, адреси, телефони. И бяха достъпни за сваляне от всеки „хакер“, който не е умствено изостанал. Един абзац и за техническото описание. Всяко заявление за услуга е документ в системата. Гражданите имаха възможност да свалят на компютъра си XML-оригиналът на документа (системата работеше вътрешно с обмен на XML документи). Това ставаше, като с javascript браузърът беше насочен към нещо от сорта на /document?eDocId=XXX, където XXX беше… Base64-encoded пореден номер на документа. Само че не се правеше проверка дали текущо-логнатият потребител е собственик на даден документ, съответно всеки потребител можеше да изтегли всеки документ, стига да може да чете javascript и да знае какво е Base64. А изтеглянето на всички документи е улеснено от факта, че номерата им са последователни. Като цяло – безкрайно лаическа грешка, която дава достъп до личните данни на всички, ползващи портала. За щастие не много хора го ползваха, защото почти нямаше електронни услуги. Тук може би трябва да отбележа, че аз не разполагам с никакви чужди документи. Експериментирах с мой документ (но без да съм логнат), а дори да съм правел експерименти с други документи, е било само за да проверя хипотезата за поредността на номерата на документите. (Т.е. не съм нарушил никакви закони) И като един white-hat-wanna-be („добри хакери“, които помагат за решаването на проблемите, вместо да ги използват за собствена облага) докладвах за проблема. На всички възможни email-и на портала и на дирекцията към министерство на транспорта, която се занимаваше с електронното правителство. 1-во нямах отговор.

Continue reading