Sebastian Krause izvor čudne nespojivosti sa uslugom skriptu , koja se koristi za automatizaciju dobijanja TLS sertifikata putem ACME protokola. Sa Bypass rade i referentni klijent i uacme, ali ne dehydrated (tačnije, on je takođe radio uz neke zaobilazne maneuvre, ali isključivo u dns-1 režimu).
Razlog se pokazao banalnim: umesto da zaista analizira odgovor u JSON formatu, autor dehydrated je koristio posebnost formatiranja određenog JSON izlaza od usluge Let’s Encrypt i izvršio analizu pomoću regularnog izraza. Ali Bypass vraća ne lepo formatiran, već minifikovan JSON, i korišćeni nije radio. Ovaj pristup ne isključuje mogućnost javljanja problema i sa LetsEncrypt, ako ova usluga u budućnosti bez upozorenja promeni format izlaza, ostajući pritom u potpunosti u okviru zvaničnog protokola.
Tokom rasprave o problemu predloženo je koristiti spoljni JSON parser, kao što je ili (dodati u pipe ‘jq -r «.authorizations | .[]»‘ za pravilnu analizu).
Nedostatak ovakvog pristupa je zamagljivanje ideje da se koristi minimalna i lako verifikovana sredstva, kao i problemi sa obradom grešaka.
Autor projekta dehydrated (projekat je nedavno kompaniji Apilayer GmbH) , da je analiza JSON-a veliki problem, ali dodavanje spoljnih parsera ne smatra dobrom idejom, jer jedna od ključnih prednosti skripte je odsustvo zavisnosti od spoljašnjih resursa. Trenutno je zauzet, ali se nada da će u narednih nekoliko dana obratiti pažnju na rešavanje problema. U planu je prepravka JSON parsera ili integracija gotovog parsera na jeziku shell — .
Izvor: opennet.ru
