Sebastian Krause zdroj zvláštnej nekompatibility so službou skript , ktorý sa používa na automatizáciu získavania TLS certifikátov pomocou protokolu ACME. S Bypass fungujú aj referenčný klient a uacme, ale nie dehydrated (presnejšie, ten tiež s niektorými obchádzkami fungoval, ale výhradne v režime dns-1).
Príčina bola banálna: namiesto toho, aby správne parsoval odpoveď vo formáte JSON, autor dehydrated využil špeciálnosť formátovania konkrétneho JSON výstupu od služby Let’s Encrypt a vykonával analýzu pomocou regulárneho výrazu. Ale Bypass vracia nezrozumiteľne formátovaný, ale minifikovaný JSON, a použitý nefungoval. Uvedený prístup nevylučuje vznik problémov aj s LetsEncrypt, ak táto služba v budúcnosti bez varovania zmení formát výstupu, pričom zostane v rámci oficiálneho protokolu.
Pri diskusii o probléme bolo navrhnuté použiť externý JSON parser, ako napríklad alebo (pridať do pipu ‘jq -r «.authorizations | .[]»‘ pre správnu analýzu).
Nevýhodou takého prístupu je rozmazanie myšlienky obísť sa minimálnymi a ľahko overiteľnými prostriedkami, ako aj problémy s spracovaním chýb.
Autor projektu dehydrated (projekt bol nedávno spoločnosti Apilayer GmbH) , že analýza JSON je veľkým problémom, ale pridávanie externých parserov nepovažuje za dobrý nápad, keďže jednou z kľúčových výhod skriptu je absencia závislosti na externých komponentoch. V súčasnosti je zaneprázdnený, ale dúfa, že v najbližších dňoch sa bude môcť venovať riešeniu problému. V pláne je prepracovanie parseru JSON alebo integrácia hotového parseru v shelli — .
Zdroj: opennet.ru
