В името на народа: Да живее правителството

Post Syndicated from Емилия Милчева original https://toest.bg/v-imeto-na-naroda-da-zhivee-pravitelstvoto/

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

Противно на обичайния съдебен процес, ще започнем с аргументите на защитата.

I. ЕС, НАТО, Русия. Нито едно правителство от времената на напъпващата ни демокрация не е работило в толкова турбулентна външна среда още в първите си сто дни. Тежкият конфликт със Северна Македония, която България възпря по пътя ѝ към преговори за членство в ЕС, не носи позитиви. София изгуби преднина пред Скопие и позицията ѝ така и остана неразбрана в Брюксел и Вашингтон, които по различни канали оказват натиск за промяната ѝ.

Руското нахлуване в Украйна хвърли най-зависимата от руски газ и петрол и най-бедна държава в ЕС на скарата на инфлацията. Поскъпването започна от миналото лято, но агресията на режима в Москва вдигна цените на газа и петрола до небесата. „Добре дошли в един нов свят, в който скоро европейците ще плащат 2000 евро за кубичен метър газ!“, заплаши бившият премиер на Путин Дмитрий Медведев в Twitter, като вероятно е имал предвид за 1000 куб.м. На спотпазарите цената вече надскочи 1300 евро и доближи 1400. Петролът мина 100 долара за барел, инфлацията в България ще е двуцифрена, обедняването – сериозно. Същински коктейл „Молотов“, който взривява протести. Цялата щедрост на новия кабинет за пенсионерите, за социално подпомагане, компенсации за бизнеса и инвестиции, отива по дяволите.

II. Неопитност. Министрите с предишен опит в изпълнителната власт са твърде малко. Настоящата вицепремиерка Корнелия Нинова е била заместник-министър на икономиката; регионалният министър Гроздан Караджов – главен секретар на Министерството на транспорта и съобщенията; премиерът Кирил Петков, вицепремиерът Асен Василев и Бойко Рашков – служебни министри съответно на икономиката, на финансите и на вътрешните работи. Едно е безспорно: повечето имат опит в частния бизнес, което предполага предприемчивост и мениджърски умения. И макар и без административен опит, в изпълнителната власт никога не е имало хора с толкова впечатляващи биографии – като образование, умения, владеене на езици.

III. Наследството. ГЕРБ остави България в чакалнята на еврозоната, на подстъпите към Шенген, с метро и една цяла магистрала. Но ГЕРБ и другите преди тях създадоха задкулисието, на което повериха правораздаването, разкаляха държавата от корупция, бетонираха зависимости. Развиха енергийна инфраструктура, която да обслужва „Газпром“ и руските интереси (и дори уредиха да е на входните и източни точки на тръбите) – и не допуснаха друга, която да наруши този монопол, като интерконектора с Гърция например. От тази кота нула трудно се вдига мироздание.

IV. Четирима в коалицията. Коалицията е твърде голяма – „Продължаваме промяната“, „Има такъв народ“, „Демократична България“, „БСП за България“. В действителност три коалиции и една партия, обединени в управлението. Това е твърде сложна конфигурация, в която са преплетени различен тип подчинености и интереси. Необходимо е време, за да се изгради партньорство и доверие между участниците.

V. Президентът Радев. Държавният глава е менторът на това правителство и макар и да няма опасност той да го събори, евентуален провал ще засегне рейтинга му на най-харесван политик. Разбира се, в по-малка степен, отколкото на съпредседателите на проекта за Промяна – Кирил Петков и Асен Василев. Макар и критичен (в опит за надпартийност), президентът ще подкрепя управляващите заради предстоящата съдебна реформа и отстраняването на Гешев, както и заради местните избори догодина.

А сега – аргументите на обвинението.

I. ЕС, НАТО, Русия. Европейската комисия критикува българския План за възстановяване и устойчивост, с който не се справи нито служебният кабинет на Румен Радев, нито настоящият. Правителството на Кирил Петков и Асен Василев дори скри проектите и проведе обществено обсъждане, без да даде гласност на изпратената в Брюксел чернова. За някои от тях има съмнения за нездрав лобизъм – например за закупуването на нови влакове и твърде много батерии за съхранение на електроенергия. Управляващите са загърбили обещанията си за публичност и откритост и към Плана, по който България очаква малко над 6 млрд. еврогрантове, и по други проекти, свързани с енергетиката.

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

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

II. Неопитност. Присъствието на толкова хора от частния бизнес неизбежно води до лобизъм и конфликт на интереси – примерът с отстранения зам.-министър на транспорта Илия Илиев е показателен, макар че мотивът е, че не тича в темпото на промяната. Управлението не е тренировъчна зала, така че се налага да се учат бързо и в движение поради отговорностите, които имат, и обещанията, които дадоха. Действията им издават, че нямат намерение да правят същински промени. Тази година само ще раздават пари и ще поръчват одити и анализи. Догодина няма да се правят реформи заради местните избори. Ако стигнат до 2024-та – тогава пък е вотът за евродепутати и разбира се, също няма да ядосват избирателите. А 2025-та е последната година от редовния мандат – и по българска традиция пак не се правят реформи.

III. Наследството. Главният прокурор, както и цялата система от институции „бухалки“ е тежко наследство, но който се страхува от мечки, не ходи за гешевци в гората. Ако управляващите се провалят в битката си не просто за отстраняването на Иван Гешев, а за върховенство на правото, на следващи избори някои от коалицията няма да минат и 4%.

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

V. Президентът Радев. Колкото и да е висок, рейтингът на държавния глава не може да е основание редовно да прескача оградата на своите правомощия. Президентството има ясно определени функции по Конституция и не може да е втори, пардон, първи център на властта. Радев свика министри и спецслужби на „Дондуков“ 2 заради началото на войната в Украйна, но в изявлението си след срещата не осъжда действията на Русия, не заявява подкрепа за Украйна – само констатира пълномащабната операция и заявява, че е „абсолютно недопустимо“. На „Дондуков“ 1 премиерът обаче заявява, че „българското правителство остро осъжда агресията от Руската федерация към Украйна“.

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

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

Заглавна снимка: © Министерският съвет

Източник

По буквите: Бърлин, Радичков, Пауърс

Post Syndicated from Зорница Христова original https://toest.bg/po-bukvite-berlin-radichkov-powers/

В емблематичната си колонка, започната още през 2008 г. във в-к „Култура“, Марин Бодаков ни представяше нови литературни заглавия и питаше с какво точно тези книги ни променят. Вярваме, че е важно тази рубрика да продължи. От човек до човек, с нова книга в ръка.

„Идва събота“ от Лусия Бърлин

превод от английски Василена Мирчева, София: изд. „Кръг“, 2022

Не знам дали обичате да четете в метрото.

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

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

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

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

Лусия Бърлин е политически коректна колкото Чарлз Буковски. И също толкова ѝ пука за социалните норми. Историите ѝ са силно автобиографични и все пак в прозата ѝ има толкова елегантна ирония, че не може да бъдеш сигурен. Впрочем един от синовете ѝ казва, че може би майка му нарочно е търсила подобни преживявания, за да може да пише за тях. Защото никога не се е съмнявала в таланта си, макар признанието да не идва приживе. Публикува тук-там, но истинската слава идва след смъртта ѝ, когато нейният приятел Стивън Емерсън събира разказите и ги публикува в сборник със заглавие „Наръчник за чистачки“.

Още първата седмица книгата влиза под №18 в списъка с бестселъри на „Ню Йорк Таймс“. Сравняват Бърлин с Реймънд Карвър и Грейс Пейли. Тази година впрочем Педро Алмодовар ще довърши филма си по книгата, с Кейт Бланшет в главната роля. Предполагам, че ще излезе с оригиналното си заглавие A Manual for Cleaning Women – макар Джойс Каръл Оутс да предупреждава, че нито то, нито подредбата са избор на авторката.

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

„Бомбето“ от Йордан Радичков

София: изд. „Нике“, 2022

„Бомбето“ е много повече от това, което може да се резюмира; много повече от своята достатъчно симпатична идея политическата история на България от царско до каскетско и посткаскетско време да бъде разказана през очите на една шапка.

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

Шапките били свикнали с тях, както ние свикваме със старите си обуща или старите си идеи.

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

Не бива, не бива да четем тези сентенции без сетиво за смешното в тях. Защото слушайте как ни вижда Радичков:

… и публиката го слушаше с изострено внимание – защото публиката има особена слабост към висшия смисъл, – та докато човекът говореше, главата, скрита в дъното на Бомбето, си търкаляше непрекъснато една мисъл: „Ама че се натряскахме снощи!“

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

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

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

С други думи, препоръчвам книгата на всички, които са уморени от предсказуемостта на последните си четива; и чинно отивам да си купя билет за постановката на Катя Петрова по нея – в София ще се играе на 15 март в Столичния куклен театър.

„Дървесна история“ от Ричард Пауърс

превод от английски Деян Кючуков, изд. „Колибри“, 2022

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

Някои смятат cli-fi за част от научната фантастика, антиутопии в безвъзвратно засегнат от климатичните промени свят. Примерно в един от романите Манхатън е под вода, само горните етажи на небостъргачите са обитаеми, свързани с тунели помежду си. В друг роман под вода е Лондон. В „Орикс и Крейк“ на Маргарет Атууд по-голямата част от човечеството е измряла от чума, а останалите се опитват да оцелеят в поразения от климатичните промени свят на урагани, потопени крайбрежия и изчезнали сезони, заменени с безкрайно лепкаво лято. И ако преди 10 години това е бил маргинален жанр, сега привържениците му твърдят, че скоро всеки роман, в който не се споменава за климатичните промени, ще е исторически роман. Смейте се вие, но моята дъщеря на два пъти ме пита по време на филм: „А тези защо са без маски?“

„Новото нормално“ в заобикалящия ни свят ражда „новото нормално“ в изкуствата.

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

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

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

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

Във втората част – „Ствол“, историите предсказуемо се заплитат, а сюжетът преминава от личната значимост на дърветата за нас към протестите срещу тяхното изсичане. Трябва да призная, че имах съпротива към тази част на сюжета, тъй като ми се струваше, че знам накъде върви. Оказа се, че всъщност тактиките на екологичните протести – и на тяхното потушаване – сами по себе си са прелюбопитна тема. И „нанасянето“ в короните на определени за сеч дървета, и подпалването на техниката на дървосекачите са част от новините и в наши дни, както и неумолимата разправа с тях. Проверете сами tree-sitting например. Изобщо като faction (fact/fiction) романът е добър възел от теми, заслужаващи да се проучат.

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

Активните дарители на „Тоест“ получават постоянна отстъпка в размер на 20% от коричната цена на всички заглавия от каталозите на „Нике“, „Колибри“, както и на няколко други български издателства в рамките на партньорската програма Читателски клуб „Тоест“. За повече информация прочетете на toest.bg/club.
Заглавна илюстрация: © Александра Димитрова

Източник

Седмицата (21–25 февруари)

Post Syndicated from Йовко Ламбрев original https://toest.bg/editorial-21-25-february-2022/

Като наследници на ред, който не сме изградили, сега ние сме свидетели на разпад, който не сме предвидили.

Тимъти Снайдър, „Пътят към несвободата“

Война.

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

Ако сте пропуснали коментара на Ан Апълбаум „Защо западната дипломация продължава да се проваля с Русия“ от 13 февруари, силно препоръчвам да се върнете към него и да му обърнете внимание, както и на останалите ѝ статии по темата в американското списание „Атлантик“. Тя, освен историк и журналист, е и активен изследовател на темата за Украйна и руско-украинските отношения. Иначе, днешният исторически момент е особено подходящ повод да прочетете и книгата ѝ „Червен глад“, която миналата година беше издадена и на български език. Тя е сред петте препоръчани от лондонския „Таймс“ изследвания, които според изданието най-добре разясняват взаимовръзките, довели до днешната руско-украинска война. На първо място в този списък е друга книга, която също е преведена на български, макар и вече да е почти невъзможно да бъде открита в книжарниците, освен антикварните – „Кървави поля“ на Тимъти Снайдър.

Венелина Попова

Така се случи, че буквално часове преди новата руска инвазия в Украйна Венелина Попова разговаря по темата с генерал-майор Димо Гяуров, бивш председател на Националната разузнавателна служба по време на управлението на ОДС. И въпреки бурното развитие на събитията, интервюто заслужава внимание заради аналитичните съпоставки и изводите в него, които продължават да са важни.

Мирослав Зафиров

Понеже когато у нас се заговори за обтегнати отношения с Русия, веднага на дневен ред излиза опасението какво ще правим без руския природен газ, Мирослав Зафиров разглежда в своя анализ доколко е възможно Катар да замени част от доставките за ЕС. Темата е особено важна за България, която не направи достатъчно да диверсифицира доставчиците си. В този контекст ключов въпрос е какво става с газовия ни интерконектор с Гърция. Актуалният краен срок за завършването му е през май т.г., съобщават от bTV.

Емилия Милчева

Установено правило е всяко ново правителство да получи известен кредит на доверие, преди да бъде преценявано и критикувано, но кабинетът на Кирил Петков нямаше шанс за такъв комфорт – и заради натрупаните проблеми, и заради местния политически пейзаж, още повече заради влошената световна обстановка. Затова и Емилия Милчева изправя правителството пред въображаемия съд на гражданите за предварителна оценка на действията му през първите десетина седмици – със съответните аргументи на защитата и на обвинението. Прочетете анализа ѝ „В името на народа: Да живее правителството“.

Николета Атанасова

🎙 На 24 февруари т.г. първият български алпинист, изкачил Еверест, щеше да навърши 79 години. Ако не бе останал завинаги на върха. В новия епизод от поредицата „Създатели и мечтатели“ на подкаста „Мястото“ с Николета Атанасова разгръщаме страници от живота на Христо Проданов с помощта на неговата съпруга Виолета, която разказва за шестте им бурни години заедно. Чуйте разговора на сайта ни или в любимото си подкаст приложение.

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

Зорница Христова

Селекцията на Зорница Христова в рубриката ни за нови книги „По буквите“ тази седмица е изключително интересна. Започва със сборника разкази на Лусия Бърлин „Идва събота“, продължава с политически бодливата според Зорница книга „Бомбето“ на непрежалимия Радичков и завършва с романа на Ричард Пауърс „Дървесна история“, който донася „Пулицър“ на автора си през 2019 г.

Понеже започваме и завършваме с книги, нека припомним две наши позабравени публикации от 2018 г., свързани с Тимъти Снайдър и негови изследвания, преведени на български език. Едната статия е на Стефан Иванов по повод българското издание на „За тиранията. Двадесет урока от XX век“, а другата е за следващата книга на същия автор – „Пътят към несвободата“, която прекрасно обяснява защо Путин е такъв, какъвто е днес. И защо лидерите на ЕС, САЩ и НАТО нямат оправдание да бъдат изненадани или колебливи. Освен ако не са чели достатъчно…

Поне към този момент изглежда, че уроците не са научени. Нито тези от историята, нито тези от Абхазия и Южна Осетия, Крим, Донбас, Нагорни Карабах и Приднестровието…

И накрая: „Тоест“ категорично подкрепя декларацията на Асоциацията на европейските журналисти – България от 24 февруари, която изисква премиерът и президентът на България да вземат отношение по изказванията на министър Стефан Янев относно нападението на Русия над Украйна. Нещо повече – като граждани на България считаме за безалтернативно неговото отстраняване от поста на министър на отбраната.

Приятно четене и слушане!

Източник

Metasploit Weekly Wrap-Up

Post Syndicated from Spencer McIntyre original https://blog.rapid7.com/2022/02/25/metasploit-weekly-wrap-up-2/

Exchange RCE

Metasploit Weekly Wrap-Up

Exchange remote code execution vulnerabilities are always valuable exploits to have. This week Metasploit added an exploit for an authenticated RCE in Microsoft Exchange servers 2016 and server 2019 identified as CVE-2021-42321. The flaw leveraged by the exploit exists in a misconfigured denylist that failed to prevent a serialized blob from being loaded resulting in code execution. While this is an authenticated vulnerability, a standard user has sufficient permissions to trigger it which likely encompasses most users within an organization that uses Exchange. The vulnerability affects Exchange Server 2019 CU10 prior to Security Update 3, Exchange Server 2019 CU11 prior to Security Update 2, Exchange Server 2016 CU21 prior to Security Update 3, and Exchange Server 2016 CU22 prior to Security Update 2.

Chrome Password Decryption

Community member timwr updated the existing Chrome enumeration module to support decrypting passwords from modern versions of Chrome. The module can now decrypt both the new and old formats of passwords. This is helpful because when Chrome is updated, passwords in the old format are not updated to the new format.

New module content (2)

  • Microweber CMS v1.2.10 Local File Inclusion (Authenticated) by Talha Karakumru – Adds a new module auxiliary/gather/microweber_lfi which targets Microweber CMS v1.2.10 and allows authenticated users to read arbitrary files on disk.
  • Microsoft Exchange Server ChainedSerializationBinder Deny List Typo RCE by Grant Willcox, Microsoft Security Response Center, Microsoft Threat Intelligence Center, peterjson, pwnforsp, testanull, and zcgonvh, which exploits CVE-2021-42321 – This adds an exploit for CVE-2021-42321 which is an authenticated RCE in Microsoft Exchange. The vulnerability is related to a misconfigured deny-list that fails to properly prevent malicious serialized objects from being loaded, leading to code execution.

Enhancements and features

  • #16061 from shoxxdj – The wordpress_scanner module has been updated to support enumerating WordPress users using the wp-json API.
  • #16200 from timwr – This updates post/windows/enum_chrome to support decrypting stored passwords for Chrome versions greater than 80.

Bugs fixed

  • #16197 from adfoster-r7 – This fixes an edge case when reading files on Windows, and fixes Ruby 3 crashes when reading files.
  • #16215 from bwatters-r7 – This updates payloads version to 2.0.75, taking in the changes landed in https://github.com/rapid7/metasploit-payloads/pull/542 and fixes a bug in Windows Meterpreter getsystem command where a failed attempt to elevate can result in a partially-broken session.
  • #16093 from h00die – A number of broken URL references have been fixed in Metasploit modules. In addition, the tools/modules/module_reference.rb code has been updated to log redirects so that they can be appropriately triaged later and to support saving results to a CSV file. Finally, several modules had their code adjusted to conform to RuboCop standards.

Get it

As always, you can update to the latest Metasploit Framework with msfupdate
and you can get more details on the changes since the last blog post from
GitHub:

If you are a git user, you can clone the Metasploit Framework repo (master branch) for the latest.
To install fresh without using git, you can use the open-source-only Nightly Installers or the
binary installers (which also include the commercial edition).

За наведените и изправените

Post Syndicated from original http://www.gatchev.info/blog/?p=2421

Покрай битката в Украйна чувам тук всякакви мнения. И немалко са как ние трябва да сме добре и с НАТО, и с Русия. И изобщо, как трябва да се снишим и наведем, че да мине бурята. Преклонената главичка сабя не я сече…

А има ли кой да ни поучи дали трябва?… Разбира се. Историята е велик учител.

Гледам историята ни. Има в нея и изправени, и наведени. Левски, Ботев, Бенковски, Стамболов… И поп Кръстю, хаджи Иванчо Пенчович, литературни герои като Вазовия Кириак Стефчов…

Мисля си – кои са останали, след като е минала бурята? Кои сме запомнили, празнуваме… абе всичко, което оставят великите? Кои са оставили деца, домове… всичко, което се надяват да оставят обикновените?

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

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

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

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

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

За да не остане и помен, че те, нашите собствени предци, са били наведени.

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

Но днес не е Възраждането. Думите, които оставяме в Интернет – блогове, форуми, социални мрежи – придобиват безсмъртие. Срамни ли са, няма да е лесно потомците ни да ги изтрият и отрекат. Ще трябва или да носят срама на челото до края на света, или да се отрекат от нас изрично и на висок глас. Да ни обрекат на безсмъртие на позора и на бездетност, както ние сме обрекли поп Кръстю и хаджи Иванчо Пенчович – но за разлика от тях заслужено.

Не бойте се, деца наши. Завещаем ли ви позор, ще имате правото да ни обречете на позор и бездетност, поименно. И не се колебайте да го направите, ще сме го заслужили. Щом вече го знаем, поучени от възрожденците, и щом за разлика от тях ще сме го избрали сами, няма да имаме оправдание. Не само някой днешен Ненко Терзийски – всички ние. Той може да ни е казвал да се навеждаме, но ние сами ще сме избрали да го послушаме. Така че на изкупление ще получим право когато убитите в Украйна станат от гроба. Включително руските войници – те са също такава жертва на злото в Кремъл, както убитите от тях.

… Не зная за вас, които четете това. Аз смятам да остана изправен. Не защото мисля, че някой ще ме помни или почита, нямам такива илюзии. Защото днес да си наведен означава да си негодник, а това не го мога.

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

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

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

И че човек живее само веднъж.

Using DevOps Automation to Deploy Lambda APIs across Accounts and Environments

Post Syndicated from Subrahmanyam Madduru original https://aws.amazon.com/blogs/architecture/using-devops-automation-to-deploy-lambda-apis-across-accounts-and-environments/

by Subrahmanyam Madduru – Global Partner Solutions Architect Leader, AWS, Sandipan Chakraborti – Senior AWS Architect, Wipro Limited, Abhishek Gautam – AWS Developer and Solutions Architect, Wipro Limited, Arati Deshmukh – AWS Architect, Infosys

As more and more enterprises adopt serverless technologies to deliver their business capabilities in a more agile manner, it is imperative to automate release processes. Multiple AWS Accounts are needed to separate and isolate workloads in production versus non-production environments. Release automation becomes critical when you have multiple business units within an enterprise, each consisting of a number of AWS accounts that are continuously deploying to production and non-production environments.

As a DevOps best practice, the DevOps engineering team responsible for build-test-deploy in a non-production environment should not release the application and infrastructure code on to both non-production and production environments.  This risks introducing errors in application and infrastructure deployments in production environments. This in turn results in significant rework and delays in delivering functionalities and go-to-market initiatives. Deploying the code in a repeatable fashion while reducing manual error requires automating the entire release process. In this blog, we show how you can build a cross-account code pipeline that automates the releases across different environments using AWS CloudFormation templates and AWS cross-account access.

Cross-account code pipeline enables an AWS Identity & Access Management (IAM) user to assume an IAM Production role using AWS Secure Token Service (Managing AWS STS in an AWS Region – AWS Identity and Access Management) to switch between non-production and production deployments based as required. An automated release pipeline goes through all the release stages from source, to build, to deploy, on non-production AWS Account and then calls STS Assume Role API (cross-account access) to get temporary token and access to AWS Production Account for deployment. This follow the least privilege model for granting role-based access through IAM policies, which ensures the secure automation of the production pipeline release.

Solution Overview

In this blog post, we will show how a cross-account IAM assume role can be used to deploy AWS Lambda Serverless API code into pre-production and production environments. We are building on the process outlined in this blog post: Building a CI/CD pipeline for cross-account deployment of an AWS Lambda API with the Serverless Framework by programmatically automating the deployment of Amazon API Gateway using CloudFormation templates. For this use case, we are assuming a single tenant customer with separate AWS Accounts to isolate pre-production and production workloads.  In Figure 1, we have represented the code pipeline workflow diagramatically for our use case.

Figure 1. AWS cross-account CodePipeline for production and non-production workloads

Figure 1. AWS cross-account AWS CodePipeline for production and non-production workloads

Let us describe the code pipeline workflow in detail for each step noted in the preceding diagram:

  1. An IAM user belonging to the DevOps engineering team logs in to AWS Command-line Interface (AWS CLI) from a local machine using an IAM secret and access key.
  2. Next, the  IAM user assumes the IAM role to the corresponding activities – AWS Code Commit, AWS CodeBuild, AWS CodeDeploy, AWS CodePipeline Execution and deploys the code for pre-production.
  3. A typical AWS CodePipeline comprises of build, test and deploy stages. In the build stage, the AWS CodeBuild service generates the Cloudformation template stack (template-export.yaml) into Amazon S3.
  4. In the deploy stage, AWS CodePipeline uses a CloudFormation template (a yaml file) to deploy the code from an S3 bucket containing the application API endpoints via Amazon API Gateway in the pre-production environment.
  5. The final step in the pipeline workflow is to deploy the application code changes onto the Production environment by assuming STS production IAM role.

Since the AWS CodePipeline is fully automated, we can use the same pipeline by switching between  pre-production and production accounts. These accounts assume the IAM role appropriate to the target environment and deploy the validated build to that environment using CloudFormation templates.

Prerequisites

Here are the pre-requisites before you get started with implementation.

  • A user  with appropriate privileges (for example: Project Admin) in a production AWS account
  • A user with appropriate privileges (for example: Developer Lead) in a pre-production AWS account such as development
  • A CloudFormation template for deploying infrastructure in the pre-production account
  • Ensure your local machine has AWS CLI installed and configured 

Implementation Steps

In this section, we show how you can use AWS CodePipeline to release a serverless API in a secure manner to pre-production and production environments. AWS CloudWatch logging will be used to monitor the events on the AWS CodePipeline.

1. Create Resources in a pre-production account

In this step, we create the required resources such as a code repository, an S3 bucket, and a KMS key in a pre-production environment.

  • Clone the code repository into your CodeCommit. Make necessary changes to index.js and ensure the buildspec.yaml is there to build the artifacts.
    • Using codebase (lambda APIs) as input, you output a CloudFormation template, and environmental configuration JSON files (used for configuring Production and other non-Production environments such as dev, test). The build artifacts are packaged using AWS Serverless Application Model into a zip file and uploads it to an S3 bucket created for storing artifacts. Make note of the repository name as it will be required later.
  • Create an S3 bucket in a Region (Example: us-east-2). This bucket will be used by the pipeline for get and put artifacts. Make a note of the bucket name.
    • Make sure you edit the bucket policy to have your production account ID and the bucket name. Refer to AWS S3 Bucket Policy documentation to make changes to Amazon S3 bucket policies and permissions.
  • Navigate to AWS Key Management Service (KMS) and create a symmetric key.
  • Then create a new secret, configure the KMS key and provide access to development and production account. Make a note of the ARN for the key.

2. Create IAM Roles in the Production Account and required policies

In this step, we create roles and policies required to deploy the code.

{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
        "kms:DescribeKey",
        "kms:GenerateDataKey*",
        "kms:Encrypt",
        "kms:ReEncrypt*",
        "kms:Decrypt"
      ],
      "Resource": [
        "Your KMS Key ARN you created in Development Account"
      ]
    }
  ]
}

Once you’ve created both policies, attach them to the previously created cross-account role.

3. Create a CloudFormation Deployment role

In this step, you need to create another IAM role, “CloudFormationDeploymentRole” for Application deployment. Then attach the following four policies to it.

Policy 1: For Cloudformation to deploy the application in the Production account

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "cloudformation:DetectStackDrift",
        "cloudformation:CancelUpdateStack",
        "cloudformation:DescribeStackResource",
        "cloudformation:CreateChangeSet",
        "cloudformation:ContinueUpdateRollback",
        "cloudformation:DetectStackResourceDrift",
        "cloudformation:DescribeStackEvents",
        "cloudformation:UpdateStack",
        "cloudformation:DescribeChangeSet",
        "cloudformation:ExecuteChangeSet",
        "cloudformation:ListStackResources",
        "cloudformation:SetStackPolicy",
        "cloudformation:ListStacks",
        "cloudformation:DescribeStackResources",
        "cloudformation:DescribePublisher",
        "cloudformation:GetTemplateSummary",
        "cloudformation:DescribeStacks",
        "cloudformation:DescribeStackResourceDrifts",
        "cloudformation:CreateStack",
        "cloudformation:GetTemplate",
        "cloudformation:DeleteStack",
        "cloudformation:TagResource",
        "cloudformation:UntagResource",
        "cloudformation:ListChangeSets",
        "cloudformation:ValidateTemplate"
      ],
      "Resource": "arn:aws:cloudformation:us-east-2:940679525002:stack/DevOps-Automation-API*/*"        }
  ]
}

Policy 2: For Cloudformation to perform required IAM actions

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:GetPolicy",
        "iam:TagRole",
        "iam:DeletePolicy",
        "iam:CreateRole",
        "iam:DeleteRole",
        "iam:AttachRolePolicy",
        "iam:PutRolePolicy",
        "iam:TagPolicy",
        "iam:CreatePolicy",
        "iam:PassRole",
        "iam:DetachRolePolicy",
        "iam:DeleteRolePolicy"
      ],
      "Resource": "*"
    }
  ]
}

Policy 3: Lambda function service invocation policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "lambda:CreateFunction",
        "lambda:UpdateFunctionCode",
        "lambda:AddPermission",
        "lambda:InvokeFunction",
        "lambda:GetFunction",
        "lambda:DeleteFunction",
        "lambda:PublishVersion",
        "lambda:CreateAlias"
      ],
      "Resource": "arn:aws:lambda:us-east-2:Your_Production_AccountID:function:SampleApplication*"
    }
  ]
}

Policy 4: API Gateway service invocation policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "apigateway:DELETE",
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:*::/restapis/*/deployments/*",
        "arn:aws:apigateway:*::/restapis/*/stages/*",
        "arn:aws:apigateway:*::/clientcertificates",
        "arn:aws:apigateway:*::/restapis/*/models",
        "arn:aws:apigateway:*::/restapis/*/resources/*",
        "arn:aws:apigateway:*::/restapis/*/models/*",
        "arn:aws:apigateway:*::/restapis/*/gatewayresponses/*",
        "arn:aws:apigateway:*::/restapis/*/stages",
        "arn:aws:apigateway:*::/restapis/*/resources",
        "arn:aws:apigateway:*::/restapis/*/gatewayresponses",
        "arn:aws:apigateway:*::/clientcertificates/*",
        "arn:aws:apigateway:*::/account",
        "arn:aws:apigateway:*::/restapis/*/deployments",
        "arn:aws:apigateway:*::/restapis"
      ]
    },
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "apigateway:DELETE",
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:GET"
      ],
      "Resource": "arn:aws:apigateway:*::/restapis/*/resources/*/methods/*/responses/*"
    },
    {
      "Sid": "VisualEditor2",
      "Effect": "Allow",
      "Action": [
        "apigateway:DELETE",
        "apigateway:PATCH",
        "apigateway:GET"
      ],
      "Resource": "arn:aws:apigateway:*::/restapis/*"
    },
    {
      "Sid": "VisualEditor3",
      "Effect": "Allow",
      "Action": [
        "apigateway:DELETE",
        "apigateway:PATCH",
        "apigateway:GET"
      ],
      "Resource": "arn:aws:apigateway:*::/restapis/*/resources/*/methods/*"
    }
  ]
}

Make sure you also attach the S3 read/write access and KMS policies created in Step-2, to the CloudFormationDeploymentRole.

4. Setup and launch CodePipeline

You can launch the CodePipeline either manually in the AWS console using “Launch Stack” or programmatically via command-line in CLI.

On your local machine go to terminal/ command prompt and launch this command:

aws cloudformation deploy –template-file <Path to pipeline.yaml> –region us-east-2 –stack-name <Name_Of_Your_Stack> –capabilities CAPABILITY_IAM –parameter-overrides ArtifactBucketName=<Your_Artifact_Bucket_Name>  ArtifactEncryptionKeyArn=<Your_KMS_Key_ARN>  ProductionAccountId=<Your_Production_Account_ID>  ApplicationRepositoryName=<Your_Repository_Name> RepositoryBranch=master

If you have configured a profile in AWS CLI,  mention that profile while executing the command:

–profile <your_profile_name>

After launching the pipeline, your serverless API gets deployed in pre-production as well as in the production Accounts. You can check the deployment of your API in production or pre-production Account, by navigating to the API Gateway in the AWS console and looking for your API in the Region where it was deployed.

Figure 2. Check your deployment in pre-production/production environment

Figure 2. Check your deployment in pre-production/production environment

Then select your API and navigate to stages, to view the published API with an endpoint. Then validate your API response by selecting the API link.

Figure 3. Check whether your API is being published in pre-production/production environment

Figure 3. Check whether your API is being published in pre-production/production environment

Alternatively you can also navigate to your APIs by navigating through your deployed application CloudFormation stack and selecting the link for API in the Resources tab.

Cleanup

If you are trying this out in your AWS accounts, make sure to delete all the resources created during this exercise to avoid incurring any AWS charges.

Conclusion

In this blog, we showed how to build a cross-account code pipeline to automate releases across different environments using AWS CloudFormation templates and AWS Cross Account Access. You also learned how serveless APIs can be securely deployed across pre-production and production accounts. This helps enterprises automate release deployments in a repeatable and agile manner, reduce manual errors and deliver business cababilities more quickly.

New – Additional Checksum Algorithms for Amazon S3

Post Syndicated from Jeff Barr original https://aws.amazon.com/blogs/aws/new-additional-checksum-algorithms-for-amazon-s3/

Amazon Simple Storage Service (Amazon S3) is designed to provide 99.999999999% (11 9s) of durability for your objects and for the metadata associated with your objects. You can rest assured that S3 stores exactly what you PUT, and returns exactly what is stored when you GET. In order to make sure that the object is transmitted back-and-forth properly, S3 uses checksums, basically a kind of digital fingerprint.

S3’s PutObject function already allows you to pass the MD5 checksum of the object, and only accepts the operation if the value that you supply matches the one computed by S3. While this allows S3 to detect data transmission errors, it does mean that you need to compute the checksum before you call PutObject or after you call GetObject. Further, computing checksums for large (multi-GB or even multi-TB) objects can be computationally intensive, and can lead to bottlenecks. In fact, some large S3 users have built special-purpose EC2 fleets solely to compute and validate checksums.

New Checksum Support
Today I am happy to tell you about S3’s new support for four checksum algorithms. It is now very easy for you to calculate and store checksums for data stored in Amazon S3 and to use the checksums to check the integrity of your upload and download requests. You can use this new feature to implement the digital preservation best practices and controls that are specific to your industry. In particular, you can specify the use of any one of four widely used checksum algorithms (SHA-1, SHA-256, CRC-32, and CRC-32C) when you upload each of your objects to S3.

Here are the principal aspects of this new feature:

Object Upload – The newest versions of the AWS SDKs compute the specified checksum as part of the upload, and include it in an HTTP trailer at the conclusion of the upload. You also have the option to supply a precomputed checksum. Either way, S3 will verify the checksum and accept the operation if the value in the request matches the one computed by S3. In combination with the use of HTTP trailers, this feature can greatly accelerate client-side integrity checking.

Multipart Object Upload – The AWS SDKs now take advantage of client-side parallelism and compute checksums for each part of a multipart upload. The checksums for all of the parts are themselves checksummed and this checksum-of-checksums is transmitted to S3 when the upload is finalized.

Checksum Storage & Persistence – The verified checksum, along with the specified algorithm, are stored as part of the object’s metadata. If Server-Side Encryption with KMS Keys is requested for the object, then the checksum is stored in encrypted form. The algorithm and the checksum stick to the object throughout its lifetime, even if it changes storage classes or is superseded by a newer version. They are also transferred as part of S3 Replication.

Checksum Retrieval – The new GetObjectAttributes function returns the checksum for the object and (if applicable) for each part.

Checksums in Action
You can access this feature from the AWS Command Line Interface (CLI), AWS SDKs, or the S3 Console. In the console, I enable the Additional Checksums option when I prepare to upload an object:

Then I choose a Checksum function:

If I have already computed the checksum I can enter it, otherwise the console will compute it.

After the upload is complete I can view the object’s properties to see the checksum:

The checksum function for each object is also listed in the S3 Inventory Report.

From my own code, the SDK can compute the checksum for me:

with open(file_path, 'rb') as file:
    r = s3.put_object(
        Bucket=bucket,
        Key=key,
        Body=file,
        ChecksumAlgorithm='sha1'
    )

Or I can compute the checksum myself and pass it to put_object:

with open(file_path, 'rb') as file:
    r = s3.put_object(
        Bucket=bucket,
        Key=key,
        Body=file,
        ChecksumSHA1='fUM9R+mPkIokxBJK7zU5QfeAHSy='
    )

When I retrieve the object, I specify checksum mode to indicate that I want the returned object validated:

r = s3.get_object(Bucket=bucket, Key=key, ChecksumMode='ENABLED')

The actual validation happens when I read the object from r['Body'], and an exception will be raised if there’s a mismatch.

Watch the Demo
Here’s a demo (first shown at re:Invent 2021) of this new feature in action:

Available Now
The four additional checksums are now available in all commercial AWS Regions and you can start using them today at no extra charge.

Jeff;

[$] Better visibility into packet-dropping decisions

Post Syndicated from original https://lwn.net/Articles/885729/

Dropped packets are a fact of life in networking; there can be any number
of reasons why a packet may not survive the journey to its destination.
Indeed, there are so many ways that a packet can meet its demise that it
can be hard for an administrator to tell why packets are being dropped.
That, in turn, can make life difficult in times when users are complaining
about high packet-loss rates. Starting with 5.17, the kernel is getting
some improved instrumentation that should shed some light on why the kernel
decides route packets into the bit bucket.

The post-quantum future: challenges and opportunities

Post Syndicated from Sofía Celi original https://blog.cloudflare.com/post-quantum-future/

The post-quantum future: challenges and opportunities

“People ask me to predict the future, when all I want to do is prevent it. Better yet, build it. Predicting the future is much too easy, anyway. You look at the people around you, the street you stand on, the visible air you breathe, and predict more of the same. To hell with more. I want better.”
Ray Bradbury, from Beyond 1984: The People Machines

The post-quantum future: challenges and opportunities

The story and the path are clear: quantum computers are coming that will have the ability to break the cryptographic mechanisms we rely on to secure modern communications, but there is hope! The cryptographic community has designed new mechanisms to safeguard against this disruption. There are challenges: will the new safeguards be practical? How will the fast-evolving Internet migrate to this new reality? In other blog posts in this series, we have outlined some potential solutions to these questions: there are new algorithms for maintaining confidentiality and authentication (in a “post-quantum” manner) in the protocols we use. But will they be fast enough to deploy at scale? Will they provide the required properties and work in all protocols? Are they easy to use?

Adding post-quantum cryptography into architectures and networks is not only about being novel and looking at interesting research problems or exciting engineering challenges. It is primarily about protecting people’s communications and data because a quantum adversary can not only decrypt future traffic but, if they want to, past traffic. Quantum adversaries could also be capable of other attacks (by using quantum algorithms, for example) that we may be unaware of now, so protecting against them is, in a way, the challenge of facing the unknown. We can’t fully predict everything that will happen with the advent of quantum computers1, but we can prepare and build greater protections than the ones that currently exist. We do not see the future as apocalyptic, but as an opportunity to reflect, discover and build better.

What are the challenges, then? And related to this question: what have we learned from the past that enables us to build better in a post-quantum world?

Beyond a post-quantum TLS

As we have shown in other blog posts, the most important security and privacy properties to protect in the face of a quantum computer are confidentiality and authentication. The threat model of confidentiality is clear: quantum computers will not only be able to decrypt on-going traffic, but also any traffic that was recorded and stored prior to their arrival. The threat model for authentication is a little more complex: a quantum computer could be used to impersonate a party (by successfully mounting a monster-in-the-middle attack, for example) in a connection or conversation, and it could also be used to retroactively modify elements of the past message, like the identity of a sender (by, for example, changing the authorship of a past message to a different party). Both threat models are important to consider and pose a problem not only for future traffic but also for any traffic sent now.

In the case of using a quantum computer to impersonate a party: how can this be done? Suppose an attacker is able to use a quantum computer to compromise a user’s TLS certificate private key (which has been used to sign lots of past connections). The attacker can then forge connections and pretend that they come from the honest user (by signing with the user’s key) to another user, let’s say Bob. Bob will think the connections are coming from the honest user (as they all did in the past), when, in reality, they are now coming from the attacker.

We have algorithms that protect confidentiality and authentication in the face of quantum threats. We know how to integrate them into TLS, as we have seen in this blog post, so is that it? Will our connections then be safe? We argue that we will not yet be done, and these are the future challenges we see:

  • Changing the key exchange of the TLS handshake is simple; changing the authentication of TLS, in practice, is hard.
  • Middleboxes and middleware in the network, such as antivirus software and corporate proxies, can be slow to upgrade, hindering the rollout of new protocols.
  • TLS is not the only foundational protocol of the Internet, there are other protocols to take into account: some of them are very similar to TLS and they are easy to fix; others such as DNSSEC or QUIC are more challenging.

TLS (we will be focusing on its current version, which is 1.3) is a protocol that aims to achieve three primary security properties:

The first two properties are easy to maintain in a quantum-computer world: confidentiality is maintained by swapping the existing non-quantum-safe algorithm for a post-quantum one; integrity is maintained because the algorithms are intractable on a quantum computer. What about the last property, authentication? There are three ways to achieve authentication in a TLS handshake, depending on whether server-only or mutual authentication is required:

  1. By using a ‘pre-shared’ key (PSK) generated from a previous run of the TLS connection that can be used to establish a new connection (this is often called “session resumption” or “resuming” with a PSK),
  2. By using a Password-Authenticated Key Exchange (PAKE) for handshake authentication or post-handshake authentication (with the usage of exported authenticators, for example). This can be done by using the OPAQUE or the SPAKE protocols,
  3. By using public certificates that advertise parameters that are employed to assure (i.e., create a proof of) the identity of the party you are talking to (this is by far the most common method).

Securing the first authentication mechanism is easily achieved in the post-quantum sphere as a unique key is derived from the initial quantum-protected handshake. The second authentication mechanism does not pose a theoretical challenge (as public and private parameters are replaced with post-quantum counterparts) but rather faces practical limitations: certificate-based authentication involves multiple actors and it is difficult to properly synchronize this change with them, as we will see next. It is not only one public parameter and one public certificate: certificate-based authentication is achieved through the use of a certificate chain with multiple entities.

A certificate chain is a chain of trust by which different entities attest to the validity of public parameters to provide verifiability and confidence. Typically, for one party to authenticate another (for example, for a client to authenticate a server), a chain of certificates starting from a root’s Certificate Authority (CA) certificate is used, followed by at least one intermediate CA certificate, and finally by the leaf (or end-entity) certificate of the actual party. This is what you usually find in real-world connections. It is worth noting that the order of this chain (for TLS 1.3) does not require each certificate to certify the one immediately preceding it. Servers sometimes send both a current and deprecated intermediate certificate for transitional purposes, or are configured incorrectly.

What are these certificates? Why do multiple actors need to validate them? A (digital) certificate certifies the ownership of a public key by the named party of the certificate: it attests that the party owns the private counterpart of the public parameter through the use of digital signatures. A CA is the entity that issues these certificates. Browsers, operating systems or mobile devices operate CA “membership” programs where a CA must meet certain criteria to be incorporated into the trusted set. Devices accept their CA root certificates as they come “pre-installed” in a root store. Root certificates, in turn, are used to generate a number of intermediate certificates which will be, in turn, used to generate leaf certificates. This certificate chain process of generation, validation and revocation is not only a procedure that happens at a software level but rather an amalgamation of policies, rules, roles, and hardware2 and software needs. This is what is often called the Public Key Infrastructure (PKI).

All of the above goes to show that while we can change all of these parameters to post-quantum ones, it is not as simple as just modifying the TLS handshake. Certificate-based authentication involves many actors and processes, and it does not only involve one algorithm (as it happens in the key exchange phase) but typically at least six signatures: one handshake signature; two in the certificate chain; one OCSP staple and two SCTs. The last five signatures together are used to prove that the server you’re talking to is the right server for the website you’re visiting, for example. Of these five, the last three are essentially patches: the OCSP staple is used to deal with revoked certificates and the SCTs are to detect rogue CA’s. Starting with a clean slate, could we improve on the status quo with an efficient solution?

More pointedly, we can ask if indeed we still need to use this system of public attestation. The migration to post-quantum cryptography is also an opportunity to modify this system. The PKI as it exists is difficult to maintain, update, revoke, model, or compose. We have an opportunity, perhaps, to rethink this system.

Even without considering making fundamental changes to public attestation, updating the existing complex system presents both technical and management/coordination challenges:

  • On the technical side: are the post-quantum signatures, which have larger sizes and bigger computation times, usable in our handshakes? We explore this idea in this experiment, but we need more information. One potential solution is to cache intermediate certificates or to use other forms of authentication beyond digital signatures (like KEMTLS).
  • On the management/coordination side: how are we going to coordinate the migration of this complex system? Will there be some kind of ceremony to update algorithms? How will we deal with the situation where some systems have updated but others have not? How will we revoke past certificates?

This challenge brings into light that the migration to post-quantum cryptography is not only about the technical changes but is dependent on how the Internet works as the interconnected community that it is. Changing systems involves coordination and the collective willingness to do so.

On the other hand, post-quantum password-based authentication for TLS is still an open discussion. Most PAKE systems nowadays use Diffie-Hellman assumptions, which can be broken by a quantum computer. There are some ideas on how to transition their underlying algorithms to the post-quantum world; but these seem to be so inefficient as to render their deployment infeasible. It seems, though, that password authentication has an interesting property called “quantum annoyance”. A quantum computer can compromise the algorithm, but only one instance of the problem at the time for each guess of a password: “Essentially, the adversary must guess a password, solve a discrete logarithm based on their guess, and then check to see if they were correct”, as stated in the paper. Early quantum computers might take quite a long time to solve each guess, which means that a quantum-annoying PAKE combined with a large password space could delay quantum adversaries considerably in their goal of recovering a large number of passwords. Password-based authentication for TLS, therefore, could be safe for a longer time. But this does not mean, however, that it is not threatened by quantum adversaries.

The world of security protocols, though, does not end with TLS. There are many other security protocols (such as DNSSEC, WireGuard, SSH, QUIC, and more) that will need to transition to post-quantum cryptography. For DNSSEC, the challenge is complicated by the protocol not seeming to be able to deal with large signatures or high computation costs on verification time. According to research from SIDN Labs, it seems like only Falcon-512 and Rainbow-I-CZ can be used in DNSSEC (note that, though, there is a recent attack on Rainbow).

Scheme Public key size Signature size Speed of operations
Finalists
Dilithium2 1,312 2,420 Very fast
Falcon-512 897 690 Fast, if you have the right hardware
Rainbos-I-CZ 103,648 66 Fast
Alternate Candidates
SPHINCS+-128f 32 17,088 Slow
SPHINCS+-128s 32 7,856 Very slow
GeMSS-128 352,188 33 Very slow
Picnic3 35 14,612 Very slow

Table 1: Signature post-quantum algorithms. The orange rows show the suitable algorithms for DNSSEC.

What are the alternatives for a post-quantum DNSSEC? Perhaps, the isogeny-based signature scheme, SQISign, might be a solution if its verification time can be improved (which currently is 42 ms as noted in the original paper when running on a 3.40GHz Intel Core i7-6700 CPU over 250 runs for verification. Still slower than P-384. Recently, it has improved to 25ms). Another solution might be the usage of MAYO, which on an Intel i5-8400H CPU at 2.5GHz, a signing operation can take 2.50 million cycles, and a verification operation can take 1.3 million cycles. There is a lot of research that needs to be done to make isogeny-based cryptography faster so it will fit the protocol’s needs (research on this area is currently ongoing —see, for example, the Isogeny School) and provide assurance of their security properties. Another alternative could be using other forms of authentication for this protocol’s case, like using hash-based signatures.

DNSSEC is just one example of a protocol where post-quantum cryptography has a long road ahead, as we need hands-on experimentation to go along with technical updates. For the other protocols, there is timely research: there are, for example, proposals for a post-quantum WireGuard and for a post-quantum SSH. More research, though, needs to be done on the practical implications of these changes over real connections.

One important thing to note here is that there will likely be an intermediate period in which security protocols provide a “hybrid” set of algorithms for transitional purposes, compliance and security. “Hybrid” means that both a pre-quantum (or classical) algorithm and a post-quantum one are used to generate the secret used to encrypt or provide authentication. The security reason for using this hybrid mode is due to safeguarding in case post-quantum algorithms are broken. There are still many unknowns here (single code point, multiple codepoints, contingency plans) that we need to consider.

The failures of cryptography in practice

The Achilles heel for cryptography is often introducing it into the real-world. Designing, implementing, and deploying cryptography is notoriously hard to get right due to flaws in security proofs, implementation bugs, and vulnerabilities3 of software and hardware. We often deploy cryptography that is found to be flawed and the cost of fixing it is immense (it involves resources, coordination, and more). We have some previous lessons to draw from it as a community, though. For TLS 1.3, we pushed for verifying implementations of the standard, and for using tools to analyze the symbolic and computational models, as seen in other blog posts. Every time we design a new algorithm, we should aim for this same level of confidence, especially for the big migration to post-quantum cryptography.

In other blog posts, we have discussed our formal verification efforts, so we will not repeat these here. Rather let’s focus on what remains to be done on the formal verification front. Verification, analysis and implementation are not yet complete and we still need to:

  • Create easy-to-understand guides into what formal analysis is and how it can be used (as formal languages are unfamiliar to developers).
  • Develop user-tested APIs.
  • Flawless integration of a post-quantum algorithm’s API into protocols’ APIs.
  • Test and analyze the boundaries between verified and unverified code.
  • Verifying specifications at the standard level by, for example, integrating hacspec into IETF drafts.

Only in doing so can we prevent some of the security issues we have had in the past. Post-quantum cryptography will be a big migration and we can, if we are not careful, repeat the same issues of the past. We want a future that is better. We want to mitigate bugs and provide high assurance of the security of connections users have.

A post-quantum tunnel is born

The post-quantum future: challenges and opportunities

We’ve described the challenges of post-quantum cryptography from a theoretical and practical perspective. These are problems we are working on and issues that we are analyzing. They will take time to solve. But what can you expect in the short-term? What new ideas do we have? Let’s look at where else we can put post-quantum cryptography.

Cloudflare Tunnel is a service that creates a secure, outbound-only connection between your services and Cloudflare by deploying a lightweight connector in your environment. This is the end at the server side. At the other end, at the client side, we have WARP, a ‘VPN’ for client devices that can secure and accelerate all HTTPS traffic. So, what if we add post-quantum cryptography to all our internal infrastructure, and also add it to this server and the client endpoints? We would then have a post-quantum server to client connection where any request from the WARP client to a private network (one that uses Tunnel) is secure against a quantum adversary (how to do it will be similar to what is detailed here). Why would we want to do this? First, because it is great to have a connection that is fully protected against quantum computers. Second, because we can better measure the impacts of post-quantum cryptography in this environment (and even measure them in a mobile environment). This will also mean that we can provide guidelines to clients and servers on how to migrate to post-quantum cryptography. It would also be the first available service to do so at this scale. How will all of us experience this transition? Only time will tell, but we are excited to work towards this vision.

And, furthermore, as Tunnel uses the QUIC protocol in some cases and WARP uses the WireGuard protocol, this means that we can experiment with post-quantum cryptography in protocols that are novel and have not seen much experimentation in the past.

The post-quantum future: challenges and opportunities

So, what is the future in the post-quantum cryptography era? The future is better and not just the same. The future is fast and more secure. Deploying cryptography can be challenging and we have had problems with it in the past; but post-quantum cryptography is the opportunity to dream of better security, it is the path to explore, and it is the reality to make it happen.

Thank you for reading our post-quantum blog post series and expect more post-quantum content and updates from us!


If you are a student enrolled in a PhD or equivalent research program and looking for an internship for 2022, see open opportunities.

If you’re interested in contributing to projects helping Cloudflare, our engineering teams are hiring.

You can reach us with questions, comments, and research ideas at [email protected].

…..

1 And when we do predict, we often predict more of the same attacks we are accustomed to: adversaries breaking into connections, security being tampered with. Is this all that they will be capable of?
2The private part of a public key advertised in a certificate is often the target of attacks. An attacker who steals a certificate authority’s private keys is able to forge certificates, for example. Private keys are almost always stored on a hardware security module (HSM), which prevents key extraction. This is a small example of how hardware is involved in the process.
3Like constant-time failures, side-channel, and timing attacks.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless

Post Syndicated from Sofía Celi original https://blog.cloudflare.com/post-quantumify-cloudflare/

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless

Theoretically, there is no impediment to adding post-quantum cryptography to any system. But the reality is harder. In the middle of last year, we posed ourselves a big challenge: to change all internal connections at Cloudflare to use post-quantum cryptography. We call this, in a cheeky way, “post-quantum-ifying” our services. Theoretically, this should be simple: swap algorithms for post-quantum ones and move along. But with dozens of different services in various programming languages (as we have at Cloudflare), it is not so simple. The challenge is big but we are here and up for the task! In this blog post, we will look at what our plan was, where we are now, and what we have learned so far. Welcome to the first announcement of a post-quantum future at Cloudflare: our connections are going to be quantum-secure!

What are we doing?

The life of most requests at Cloudflare begins and ends at the edge of our global network. Not all requests are equal and on their path they are transmitted by several protocols. Some of those protocols provide security properties whilst others do not. For the protocols that do, for context, Cloudflare uses: TLS, QUIC, WireGuard, DNSSEC, IPsec, Privacy Pass, and more. Migrating all of these protocols and connections to use post-quantum cryptography is a formidable task. It is also a task that we do not treat lightly because:

  • We have to be assured that the security properties provided by the protocols are not diminished.
  • We have to be assured that performance is not negatively affected.
  • We have to be wary of other requirements of our ever-changing ecosystem (like, for example, keeping in mind our FedRAMP certification efforts).

Given these requirements, we had to decide on the following:

  • How are we going to introduce post-quantum cryptography into the protocols?
  • Which protocols will we be migrating to post-quantum cryptography?
  • Which Cloudflare services will be targeted for this migration?

Let’s explore now what we chose: welcome to our path!

TLS and post-quantum in the real world

One of the most used security protocols is Transport Layer Security (TLS). It is the vital protocol that protects most of the data that flows over the Internet today. Many of Cloudflare’s internal services also rely on TLS for security. It seemed natural that, for our migration to post-quantum cryptography, we would start with this protocol.

The protocol provides three security properties: integrity, authentication, and confidentiality. The algorithms used to provide the first property, integrity, seem to not be quantum-threatened (there is some research on the matter). The second property, authentication, is under quantum threat, but we will not focus on it for reasons detailed later. The third property, confidentiality, is the one that we are interested in protecting as it is urgent to do this now.

Confidentiality assures that no one other than the intended receiver and sender of a message can read the transmitted message. Confidentiality is especially threatened by quantum computers as an attacker can record traffic now and decrypt it in the future (when they get access to a quantum computer): this means that all past and current traffic, not just future traffic, is vulnerable to be read by anyone who obtains a quantum computer (and has stored the encrypted traffic captured today).

At Cloudflare, to protect many of our connections, we use TLS. We mainly use the latest version of the protocol, TLS 1.3, but we do sometimes still use TLS 1.2 (as seen in the image, though, it only shows the connections between websites to our network).  As we are a company that pushes for innovation, this means that we are intent on using this time of migration to post-quantum cryptography as an opportunity to also update TLS handshakes to 1.3 and be assured that we are using TLS in the right way (by, for example, ensuring that we are not using deprecated features of TLS).

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Cloudflare’s TLS and QUIC usage taken on the 17/02/2022 and showing the last 7 days.

Changing TLS 1.3 to provide quantum-resistant security for its confidentiality means changing the ‘key exchange’ phase of the TLS handshake. Let’s briefly look at how the TLS 1.3 handshake works.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
The TLS 1.3 handshake

In TLS 1.3, there will always be two parties: a client and a server. A client is a party that wants the server to “serve” them something, which could be a website, emails, chat messages, voice messages, and more. The handshake is the process by which the server and client attempt to agree on a shared secret, which will be used to encrypt the subsequent exchange of data (this shared secret is called the “master secret”). The client selects their favorite key exchange algorithms and submits one or more “key shares” to the server (they send both the name of the key share and its public key parameter). The server picks one of the key exchange algorithms (assuming that it supports one of them), and replies back with their own key share. Both the server and the client then combine the key shares to compute a shared secret (the “master secret”), which is used to protect the remainder of the connection. If the client only chooses algorithms that the server does not support, the server instead replies with the algorithms that it does support and asks the client to try again. During this initial conversation, the client and server also agree on authentication methods and the parameters for encryption, but we can leave that aside for today in this blog post. This description is also simplified to focus only in the “key exchange” phase.

There is a mechanism to add post-quantum cryptography to this procedure: you advertise post-quantum algorithms in the list of key shares, so the final derived shared key (the “master secret”) is quantum secure. But there are requirements we had to take into account when doing this with our connections: the security of much post-quantum cryptography is still under debate and we need to respect our compliance efforts. The solution to these requirements is to use a “hybrid” mechanism.

A “hybrid” mechanism means to use both a “pre-quantum” or “classical” algorithm and a “post-quantum” algorithm, and mixing both generated shared secrets into the derivation of the “master secret”. The combination of both shared secrets is of the form \Z′ = Z || T\ (for TLS and with the fixed size shared secrets, simple concatenation is secure. In other cases, you have to be a bit more careful). This procedure is a concatenation consisting of:

The usage of a “hybrid” approach allows us to safeguard our connections in case the security of the post-quantum algorithm fails. It also results in a suitable-for-FIPS secret, as it is approved in the “Recommendation for Key-Derivation Methods in Key-Establishment Schemes” (SP 800-56C Rev. 2), which is listed in the Annex D, as an approved key establishing technique for FIPS 140-2.

At Cloudflare, we are using different TLS libraries. We decided to add post-quantum cryptography to those, specifically, to the BoringCrypto library or the compiled version of Golang with BoringCrypto. We added our implementation of the Kyber-512 algorithm (this algorithm can be eventually swapped by another one; we’re not picking any here. We are using it for our testing phase) to those libraries and implemented the “hybrid” mechanism as part of the TLS handshake. For the “classical” algorithm we used curve P-256. We then compiled certain services with these new TLS libraries.

Name of algorithm Number of times loop executed Average runtime per operation Number of bytes required per operation Number of allocations
Curve P-256 23,056 52,204 ns/op 256 B/op 5 allocs/op
Kyber-512 100,977 11,793 ns/op 832 B/op 3 allocs/op

Table 1: Benchmarks of the “key share” operation of Curve P-256 and Kyber-512: Scalar Multiplication and Encapsulation respectively. Benchmarks ran on Darwin, amd64, Intel(R) Core(TM) i7-9750H CPU @ 2.60 GHz.

Note that as TLS supports the described “negotiation” mechanism for the key exchange, the client and server have a way of mutually deciding what algorithms they want to use. This means that it is not required that both a client or a server support or even prefer the exact same algorithms: they just need to share support for a single algorithm for a handshake to succeed. In turn, herewith, even if we advertise post-quantum cryptography and a server/client does not support it, they will not fail but rather agree on some other algorithm they share.

A note on a matter we left on hold above: why are we not migrating the authentication phase of TLS to post-quantum? Certificate-based authentication in TLS, which is the one we commonly use at Cloudflare, also depends on systems on the wider Internet. Thus, changes to authentication require a coordinated and much wider effort to change. Certificates are attested as proofs of identity by outside parties: migrating authentication means coordinating a ceremony of migration with these outside parties. Note though that at Cloudflare we use a PKI with internally-hosted Certificate Authorities (CAs), which means that we can more easily change our algorithms. This will still need careful planning. We will not do this today, but we will in the near future.

Cloudflare services

The first step of our post-quantum migration is done. We have TLS libraries with post-quantum cryptography using a hybrid mechanism. The second step is to test this new mechanism in specific Cloudflare connections and services. We will look at three systems from Cloudflare that we have started migrating to post-quantum cryptography. The services in question are: Logfwrdr, Cloudflare Tunnel, and GoKeyless.

A post-quantum Logfwdr

Logfwdr is an internal service, written in Golang, that handles structured logs, and sends them from our servers for processing (to a subservice called ‘Logreceiver’) where they write them to Kafka. The connection between Logfwdr and Logreceiver is protected by TLS. The same goes for the connection between Logreceiver and Kafka in core. Logfwdr pushes its logs through “streams” for processing.

This service seemed an ideal candidate for migrating to post-quantum cryptography as its architecture is simple, it has long-lived connections, and it handles a lot of traffic. In order to first test the viability of using post-quantum cryptography, we created our own instance of Logreceiver and deployed it. We also created our own stream (the “pq-stream”), which is basically a copy of a HTTP stream (which was remarkably easy to add). We then compiled these services with the modified TLS library and we got a post-quantum protected Logfwdr.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 1: TLS latency of Logfwdr for selected metals. Notice how post-quantum cryptography is faster than non-post-quantum one (it is labeled with a “PQ” acronym).

What we found was that using post-quantum cryptography is faster than using “classical” cryptography! This was expected, though, as we are using a lattice-based post-quantum algorithm (Kyber512). The TLS latency of both post-quantum handshakes and “classical” ones can be noted in Figure 1. The figure shows more handshakes are executed than usual behavior as these servers are frequently restarted.

Note though that we are not using “only” post-quantum cryptography but rather the “hybrid” mechanism described above. This could increase performance times: in this case, the increase was minimal and still kept the post-quantum handshakes faster than the classical ones. Perhaps what makes the TLS handshakes faster in the post-quantum case is the usage of TLS 1.3, as the “classical” Logfwdr is using TLS 1.2. Logfwdr, though, is a service that executes long-lived handshakes, so in aggregate TLS 1.2 is not “slower” but it does have a slower start time.

As shown in Figure 2, the average batch duration of the post-quantum stream is lower than when not using post-quantum cryptography. This may be in part due to the fact that we are not sending the quantum-protected data all the way to Kafka (as the non-post-quantum stream is doing). We didn’t yet change the connection to Kafka post-quantum.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 2: Average batch send duration: post-quantum (orange) and non-post-quantum streams (green).

We didn’t encounter any failures during this testing that ran for about some weeks. This gave us good insight that putting post-quantum cryptography into our internal network with actual data is possible. It also gave us confidence to begin migrating codebases to modified TLS libraries, which we will maintain.

What are the next steps for Logfwdr? Now that we confirmed it is possible, we will first start migrating stream by stream to this hybrid mechanism until we reach full post-quantum migration.

A post-quantum gokeyless

gokeyless is our own way to separate servers and TLS long-term private keys. With it, private keys are kept on a specialized key server operated by customers on their own architecture or, if using Geo Key Manager, in selected Cloudflare locations. We also use it for Cloudflare-held private keys with a service creatively known as gokeyless-internal. The final piece of this architecture is another service called Keynotto. Keynotto is a service written in Rust that only mints RSA and ECDSA key signatures (that are executed with the stored private key).

How does the overall architecture of gokeyless work? Let’s start with a request. The request arrives at the Cloudflare network and we perform TLS termination. Any signing request is forwarded to Keynotto. A small portion of requests (specifically from GeoKDL or external gokeyless) cannot be handled by Keynotto directly, and are instead forwarded to gokeyless-internal. gokeyless-internal also acts as a key server proxy, as it redirects connections to the customer’s keyservers (external gokeyless). External gokeyless is both the server that a customer runs and the client that will be used to contact it. The architecture can be seen in Figure 3.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 3: The life of a gokeyless request.

Migrating the transport that this architecture uses to post-quantum cryptography is a bigger challenge, as it involves migrating a service that lives on the customer side. So, for our testing phase, we decided to go for the simpler path that we are able to change ourselves: the TLS handshake between Keynotto and gokeyless-internal. This small test-bed means two things: first, that we needed to change another TLS library (as Keynotto is written in Rust) and, second, that we needed to change gokeyless-internal in such a way that it used post-quantum cryptography only for the handshakes with Keynotto and for nothing else. Note that we did not migrate the signing operations that gokeyless or Keynotto executes with the stored private key; we just migrated the transport connections.

Adding post-quantum cryptography to the rustls codebase was a straightforward exercise and we exposed an easy-to-use API call to signal the usage of post-quantum cryptography (as seen in Figure 4 and Figure 5). One thing that we noted when reviewing the TLS usage in several Cloudflare services is that giving the option to choose the algorithms for a ciphersuite, key share, and authentication in the TLS handshake confuses users. It seemed more straightforward to define the algorithm at the library level, and have a boolean or API call signal the need for this post-quantum algorithm.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 4: post-Quantum API for rustls.
Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 5: usage of the post-quantum API for rustls.

We ran a small test between Keynotto and gokeyless-internal with much success. Our next steps are to integrate this test into the real connection between Keynotto and gokeyless-internal, and to devise a plan for a customer post-quantum protected gokeyless external. This is the first instance in which our migration to post-quantum will not be ending at our edge but rather at the customer’s connection point.

A post-quantum Cloudflare Tunnel

Cloudflare Tunnel is a reverse proxy that allows customers to quickly connect their private services and networks to the Cloudflare network without having to expose their public IPs or ports through their firewall. It is mainly managed at the customer level through the usage of cloudflared, a lightweight server-side daemon, in their infrastructure. cloudflared opens several long-lived TCP connections (although, cloudflared is increasingly using the QUIC protocol) to servers on Cloudflare’s global network. When a request to a hostname comes, it is proxied through these connections to the origin service behind cloudflared.

The easiest part of the service to make post-quantum secure appears to be the connection between our network (with a service part of Tunnel called origintunneld located there) and cloudflared, which we have started migrating. While exploring this path and looking at the whole life of a Tunnel connection, we found something more interesting, though. When the Tunnel connections eventually reach core, they end up going to a service called Tunnelstore. Tunnelstore runs as a stateless application in a Kubernetes deployment, and to provide TLS termination (alongside load balancing and more) it uses a Kubernetes ingress.

The Kubernetes ingress we use at Cloudflare is made of Envoy and Contour. The latter configures the former depending on Kubernetes resources. Envoy uses the BoringSSL library for TLS. Switching TLS libraries in Envoy seemed difficult: there are thoughts on how to integrate OpenSSL to it (and even some thoughts on adding post-quantum cryptography) and ways to switch TLS libraries. Adding post-quantum cryptography to a modified version of BoringSSL, and then specifying that dependency in the Bazel file of Envoy seems to be the path to go for, as our internal test has confirmed (as seen in Figure 6). As for Contour, for many years, Cloudflare has been running their own patched version of it: we will have to again patch this version with our Golang library to provide post-quantum cryptography. We will make these libraries (and the TLS ones) available for usage.

Post-quantumify internal services: Logfwrdr, Tunnel, and gokeyless
Figure 6: Option to allow post-quantum cryptography in Envoy.

Changing the Kubernetes ingress at Cloudflare not only makes Tunnel completely quantum-safe (beyond the connection between our global network and cloudflared), but it also makes any other services using ingress safe. Our first tests on migrating Envoy and Contour to TLS libraries that contain post-quantum protections have been successful, and now we have to test how it behaves in the whole ingress ecosystem.

What is next?

The main tests are now done. We now have TLS libraries (in Go, Rust, and C) that give us post-quantum cryptography. We have two systems ready to deploy post-quantum cryptography, and a shared service (Kubernetes ingress) that we can change. At the beginning of the blog post, we said that “the life of most requests at Cloudflare begins and ends at the edge of our global network”: our aim is that post-quantum cryptography does not end there, but rather reaches all the way to where customers connect as well. Let’s explore the future challenges and this customer post-quantum path in this other blog post!

Developments in the FOSS response to Copilot and related technologies

Post Syndicated from original https://lwn.net/Articles/886129/

Back in July, the Free Software Foundation (FSF) put out a call for white papers to explore the issues around GitHub’s Copilot AI-assisted programming tool, especially with regard to copyleft licensing; each selected white paper was awarded $500. The FSF has now published five of the submissions that the organization thought “advanced discussion of important questions, and did so clearly“.

The Free Software Foundation (FSF)
In our call for papers, we set forth several areas of interest. Most of these areas centered around copyright law, questions of ownership for AI-generated code, and legal impacts for GitHub authors who use a GNU or other copyleft license(s) for their works. We are pleased to announce the community-provided research into these areas, and much more.

First, we want to thank everyone who participated by sending in their papers. We received a healthy response of twenty-two papers from members of the community. The papers weighed-in on the multiple areas of interest we had indicated in our announcement. Using an anonymous review process, we concluded there were five papers that would be best suited to inform the community and foster critical conversations to help guide our actions in the search for solutions.

One of the submissions published was from Policy Fellow at Software Freedom Conservancy, Bradley M. Kuhn; that organization has announced the formation of a committee to “develop recommendations and plans for a Free and Open Source Software (FOSS) community response to the use of machine learning tools for code generation and authorship“. A public ai-assist mailing list has been set up for discussions. “The inaugural members of the Committee are: Matthew Garrett, Benjamin Mako Hill, Bradley M. Kuhn, Heiki Lõhmus, Allison Randal, Karen M. Sandler, Slavina Stefanova, John Sullivan, David ‘Novalis’ Turner, and Stefano ‘Zack’ Zacchiroli.

Security updates for Friday

Post Syndicated from original https://lwn.net/Articles/886124/

Security updates have been issued by Fedora (dotnet6.0, kernel, libarchive, libxml2, and wireshark), openSUSE (opera), Oracle (cyrus-sasl), Red Hat (cyrus-sasl, python-pillow, and ruby:2.5), Scientific Linux (cyrus-sasl), and Ubuntu (snapd).

Privacy Violating COVID Tests

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2022/02/privacy-violating-covid-tests.html

A good lesson in reading the fine print:

Cignpost Diagnostics, which trades as ExpressTest and offers £35 tests for holidaymakers, said it holds the right to analyse samples from seals to “learn more about human health” — and sell information on to third parties.

Individuals are required to give informed consent for their sensitive medical data to be used ­ but customers’ consent for their DNA to be sold now as buried in Cignpost’s online documents.

Of course, no one ever reads the fine print.

Zabbix security advisories regarding CVE-2022-23131 and CVE-2022-23134

Post Syndicated from Arturs Lontons original https://blog.zabbix.com/zabbix-security-advisories-regarding-cve-2022-23131-and-cve-2022-23134/19720/

Here at Zabbix, the security of our product is our top priority. It has come to our attention that two potential CVE issues have been highlighted in tech media outlets  –  CVE-2022-23131 and CVE-2022-23134.

The most critical issue – CVE-2022-23131, affects only Zabbix instances where SAML SSO authentication is in use. While CVE-2022-23134 Affects Zabbix 5.4.x releases older than Zabbix 5.4.9.

Zabbix is aware of the following vulnerabilities And they have since been fixed in Zabbix version 5.4.9 and the stable release of Zabbix 6.0 LTS.

  • CVE-2022-23131 – Unsafe client-side session storage leading to authentication bypass/instance takeover via Zabbix Frontend with configured SAML
    • Affected versions: 5.4.0 – 5.4.8; 6.0.0alpha1
  • CVE-2022-23134 – Possible view of the setup pages by unauthenticated users if config file already exists
    • Affected versions: 5.4.0 – 5.4.8; 6.0.0 – 6.0.0beta1

We urge everyone who is using the SAML SSO authentication features in your environment o update your Zabbix instance to one of the aforementioned versions where the security vulnerabilities have been resolved.

keep track of any potential Zabbix security issues, the affected versions, and the required updates, visit our public Zabbix Security Advisories and CVE database page.

The post Zabbix security advisories regarding CVE-2022-23131 and CVE-2022-23134 appeared first on Zabbix Blog.

The collective thoughts of the interwebz

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close