Codul sursă este publicat, licența este curată, iar conexiunea tot nu poate fi verificată de la un capăt la altul. Acest gol este obișnuit și nu este un scandal. Publicarea codului face o componentă inspectabilă de oameni care nu au fost invitați, iar aceasta este o proprietate reală și neobișnuită. De aici nu rezultă că binarul pe care l-ați instalat provine din acel cod, nici că ceva ce furnizorul rulează de cealaltă parte a fost verificat.

Separați componenta de produs

Patru lucruri pot purta eticheta de cod deschis, și rareori sunt toate deschise. Aplicația client este cea la care se referă oamenii. Implementarea protocolului de dedesubt este un alt artefact, uneori o bibliotecă și uneori cod în arbore. Software-ul de server este al treilea, iar infrastructura proprie a furnizorului, portalul de cont și instrumentele de suport sunt al patrulea. Fiecare poate fi deschis sau închis independent.

Prin urmare, afirmații precum "aplicația noastră este open source" descriu primul element și lasă restul fără răspuns, ceea ce nu este necinste, ci mai degrabă o alunecare de categorie. Întrebarea utilă este care depozit, la care etichetă, corespunde componentei pe care vă bazați.

Această distincție explică și de ce două produse cu clienți deschiși identici pot oferi garanții foarte diferite. Clientul este partea pe care o puteți verifica; comportamentul operatorului este partea pe care trebuie să o evaluați prin alte mijloace.

Potriviți build-ul instalat cu eticheta publicată

Un depozit este o înregistrare a intenției; binarul de pe disc este ceea ce rulează. Închiderea acestui gol este un exercițiu mecanic și începe cu stabilirea exactă a ceea ce este instalat, nu a ceea ce anunța pagina de descărcare.

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

Metadatele pachetului vă spun versiunea și originea, ceea ce exclude cazul trivial al unui pachet învechit sau înlocuit. Nu vă spun cum a fost compilat pachetul, iar exact la această întrebare răspund build-urile reproductibile. Build-uri reproductibile permit unei părți independente să reconstruiască din aceeași sursă și să compare rezultatul octet cu octet, astfel încât o nepotrivire devine dovadă, nu suspiciune.

Chiar și o potrivire perfectă dovedește mai puțin decât speră oamenii. Arată că artefactul corespunde sursei și rețetei de build, nu că sursa este fără defecte și nu că lanțul de instrumente folosit a fost de încredere. Ambele merită știute, dar sunt afirmații diferite.

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

De unde începe de obicei un simptom

Reclamația care declanșează această lectură este rareori "codul este închis". De obicei este o observație concretă: un client care sună undeva neașteptat, o versiune diferită de notele de lansare sau un proces de suport care cere mai mult decât ar trebui să aibă nevoie tunelul. Fiecare dintre aceste puncte indică o altă componentă.

Traficul de rețea neașteptat de la client este o chestiune de cod sursă al clientului și poate primi răspuns citind calea de cod care deschide conexiunea. O nepotrivire de versiune este o chestiune de împachetare. Un proces de suport care cere documente de identitate este o chestiune a sistemului de conturi, iar niciun audit al clientului nu o va rezolva.

Numirea componentei transformă o neîncredere vagă într-o verificare concretă. La o verificare concretă se poate răspunde, se poate discuta sau o poate închide. Alternativa este o suspiciune permanentă fără pas următor.

Ce nu poate atinge revizuirea și ce să faceți în schimb

Păstrarea pe serverele furnizorului este în afara sferei clientului. La fel comportamentul unui portal de facturare, al unui furnizor de verificare a fraudei sau al unui birou de suport care păstrează atașamente. O revizuire a clientului întinsă până la "am auditat serviciul" face o afirmație pe care dovezile nu o susțin.

Citiți ce publică operatorul despre păstrare și solicitări, notați data și tratați-o ca pe o declarație a unei părți interesate, nu ca pe o măsurare. Este o formă mai slabă de dovadă, iar a fi explicit despre diferență este mai util decât a o ridica în povestire.

Apoi folosiți ce aveți ca una dintre mai multe intrări: identitatea versiunii instalate, dacă software-ul este întreținut, cum este configurat clientul și ce spune operatorul despre propriile sisteme. Codul deschis întărește această evaluare într-un punct. Nu înlocuiește restul.

O afirmație de audit ar trebui să numească întotdeauna componentele și versiunile sale. Dacă un raport nu poate spune ce depozit și ce build a examinat, descrie o intenție, nu un produs.

Articole similare