Metodologia
Wyniki są produktem, który sprzedaje ta strona, więc model jest publikowany, a nie tylko opisywany: ta strona jest renderowana z pliku methodology.json, tego samego, który odczytuje mechanizm oceniający. Metoda nie może się rozjechać z liczbami, bo istnieje tylko jedna jej kopia.
Żaden z wyników nie jest drukowany bez klasy usługi, która mówi, który z nich odpowiada na pytanie, które faktycznie masz.
Pozycja w rankingu nie jest zapisaną wartością. To właściwość listy: każda rankingowa strona porządkuje dostawców na podstawie dwóch wyników i mówi, według której osi posortowała. Ranking prywatności prowadzi na bezpieczeństwie, ranking streamingowy na użyteczności. Gdy prowadząca oś daje remis, lista sięga po drugi wynik, a potem po nazwę, więc kolejność jest całkowita i żadne dwa wiersze nie niosą tej samej liczby. Nie ma pola pozycji, którym ktokolwiek mógłby poruszyć.
Osiem niezależnych kanałów ryzyka, z których każdy zadaje opublikowanemu rekordowi jedno pytanie. Kanał odpowiada prawdopodobieństwem między 0 a 1 — jak prawdopodobne jest, że ta konkretna droga identyfikuje użytkownika — a osiem odpowiedzi jest mnożonych, a nie sumowanych.
Żaden kanał nie jest ważony na podstawie tego, jak istotny się wydaje. Ważenie leży w tym, co znajdzie każdy kanał, a znalezienie niczego zostawia wynik bez zmian.
Każdy kanał wskazuje pola, które odczytuje, a każda strona dostawcy pokazuje rzeczywiste odczytane wartości, wraz ze źródłami i datami. Liczba poniżej to, ile z 67 pól bezpieczeństwa zasila każdy z nich; pole odpowiadające na więcej niż jedno pytanie jest liczone przy każdym z nich, dlatego suma liczb przekracza 67.
| Kanał | Zadawane pytanie | Pola |
|---|---|---|
| Retencja | Czy istnieje rekord łączący ruch z osobą i kto to sprawdził? | 13 |
| Jurysdykcja | Czy ktoś może wymusić wydanie tego, co istnieje, bez możliwości wypowiedzenia się przez dostawcę? | 5 |
| Ujawnienie | Czy przekazał już coś? | 6 |
| Integralność | Czy przyłapano go na mówieniu jednego i robieniu czegoś innego? | 17 |
| Architektura | Kto obsługuje węzeł wyjściowy i co robi on z ruchem? | 2 |
| Higiena | Jakie materiały identyfikujące są zbierane przy okazji i czy klient w ogóle może zostać sprawdzony? | 12 |
| Niewiedza | Ile z tego nie zostało potwierdzone? | 6 |
| Milczenie | Dziesięć lat, miliony użytkowników i nic w rejestrze? | 5 |
Kanał nie odczytuje pola i sam z siebie nie produkuje liczby. Między tymi dwoma stoją reguły modelu: jest ich 32, a każda wskazuje, co odczytuje, przed jakim kanałem odpowiada i jakiego rodzaju działanie wykonuje. Są tu wydrukowane w pełni, bo reguła, której czytelnik nie widzi, jest regułą, którą czytelnik musi przyjąć na wiarę.
Dziesięć kształtów obejmuje je wszystkie, a kształt jest uczciwym podsumowaniem tego, co reguła może zrobić z wynikiem:
capped_sum
Składniki sumują się w kierunku pułapu, którego nie mogą przekroczyć.
constraint
Niezmiennik, który muszą spełniać tabele. Niczego nie wycenia i jest sprawdzany przez selftest.py, a nie oceniany dla każdego dostawcy.
decay
Wartość skalowana wiekiem stojących za nią dowodów.
derivation
Oblicza jedno pole na podstawie innych, dzięki czemu fakt jest przechowywany raz.
flag
Publikuje znacznik dla czytelnika i nie zmienia wyniku.
gate
Wybiera gałąź modelu, która ma zastosowanie, zamiast obliczać liczbę.
max
Najgorsze z kilku sposobów zakodowania jednej okoliczności. Nie kumulują się: jedno zdarzenie zapisane dwukrotnie nadal jest jednym zdarzeniem.
noisy_or
Niezależne ustalenia kumulują się: 1 − iloczyn(1 − każdego).
product
Czynniki mnożą się, a każdy skaluje to, co pozostałe potwierdziły.
threshold
Test danych wejściowych, który rozstrzyga o przedziale lub o tym, czy reguła zadziała.
Nie wszystkie 32 coś wyceniają. Cztery mają kształt constraint, a trzy z nich — R08, R22, R23 — nie są oceniane względem żadnego dostawcy: to niezmienniki, które muszą spełniać same tabele, sprawdzane przy budowaniu kontraktu, a nie przy ocenianiu rekordu, dlatego wskazują zakres, a nie liczbę pól.
Czwarta, R29, faktycznie odczytuje rekord, ale po to, by zdecydować, jak pole może zostać zakodowane, a nie ile to kodowanie kosztuje. Jeszcze jedna, R15, to flag: publikuje znacznik dla czytelnika i nie porusza żadnej liczby.
R01_bought_coverageintegralnośćmaxodczytuje 4 pól
Zakres istniejący, ponieważ za niego zapłacono
maksimum z: pary (X08, X10) wycenianej według params.bought_coverage oraz — gdy M10 wymienia review_directory — X11 wycenianego według params.review_directory; 0,000, gdy żadna ścieżka nie zostanie uruchomiona
R02_cluster_contagionintegralnośćproductodczytuje 4 pól
Ryzyko przeniesione od przyłapanego na kłamstwie podmiotu siostrzanego
min(params.cap, coupling x transfer x maksimum spośród rodzeństwa s z R04_lie_group(s)); coupling to params.coupling odczytane z M18_shared_infrastructure, z powrotem do M17_brand_role, gdy infrastruktura jest odrębna, nieznana lub niczego nie nazywa w tabeli; transfer: 1,0, jeśli data ustalenia >= maksimum M16 obu, w przeciwnym razie 0,0; ustalenie bez daty -> 0,0; rodzeństwo musi być opublikowanymi rekordami; nigdy nie odczytuje własnej zarazy rodzeństwa
R03_owner_businessintegralnośćmaxodczytuje 1 pole
Monetyzacja wynikająca z tego, co jeszcze sprzedaje grupa
maksimum spośród kategorii M10; połączone z X05 przez maksimum, a nie noisy-OR (jedna okoliczność, dwa kodowania)
R04_lie_groupintegralnośćmaxodczytuje 2 pól
Oś kłamstwa
maksimum(X01, X02) — nigdy noisy-OR: jedno zdarzenie zakodowane dwukrotnie nie może kumulować się do CHANNEL_CAP; S19 = caught_lying, jeśli >0, unexamined, jeśli oba są nieznane, w przeciwnym razie clean
R05_exposuremilczeniethresholdodczytuje 3 pól
Przedział ekspozycji
pts = lata działalności ocenione według params.years_points + M08 według params.scale_points + params.stayed_logging_points, gdy P04=stayed_logging; przedział to najwyższy próg w params.bands, do którego sięga suma, w przeciwnym razie low; ręcznie wpisane P10 jest pomijane
Przedział jest odczytywany z opublikowanego wyniku, a nie zapisywany obok niego, więc słowo i liczba nie mogą się rozjechać.
| Przedział | Wynik | Co to znaczy |
|---|---|---|
| Ochrona: wysoka | 75–100 | Kluczowe deklaracje dostawcy dotyczące prywatności są poparte dowodami, a niezależny audyt je zweryfikował. |
| Ochrona: średnia | 55–74 | Większość tego, co ważne, jest potwierdzona i nic w aktach nie dyskwalifikuje dostawcy, ale pozostają pewne luki. |
| Ochrona: poniżej przeciętnej | 35–54 | Więcej jest niepotwierdzone niż potwierdzone. Nic skandalicznego, ale za mało, by polecić. |
| Ochrona: niska | 15–34 | To, co wiadomo, w większości działa na niekorzyść dostawcy, albo prawie nic o nim nie da się potwierdzić. |
| Niezalecany | 0–14 | Wykluczony: dostawca został przyłapany na kłamstwie na temat tego, co robi, albo jego aplikacja przepuszcza cudzy ruch przez urządzenia własnych użytkowników. |
Bezpieczeństwo to bramka, nie wymienialna wielkość. W ogólnym rankingu wysoki wynik użyteczności nie może wynieść dostawcy ponad tego z lepszym wynikiem bezpieczeństwa. Lista sortuje najpierw według bezpieczeństwa i sięga po użyteczność tylko wtedy, gdy rekordy mają identyczny wynik bezpieczeństwa.
W rejestrze w obecnym stanie dostawca z wynikiem 60 w użyteczności znajduje się 25 miejsc niżej niż ten z wynikiem 55 — i to jest poprawna kolejność, a nie błąd.
Model ocenia stan opublikowanych dowodów, a nie naszą opinię o firmie. Dlatego trzy rzeczy dotyczące wartości liczą się tak samo, jak sama wartość.
Każda wartość niesie ze sobą swoje źródła, a każde źródło niesie poziom. Wagi pochodzą wprost z modelu:
| Poziom | Waga | Co to jest |
|---|---|---|
| A | 1.00 | Sam artefakt — polityka, raport, dokument sądowy |
| B | 0.85 | Dostawca mówiący to w miejscu, za które odpowiada |
| C | 0.70 | Kompetentna strona trzecia, która to zgłasza |
| D | 0.35 | Cokolwiek słabszego niż to |
Osobno, każda wartość zapisuje jak się tam znalazła. document oznacza, że istnieje cytowanie, i tylko takie mogą być pokazane jako twierdzenia poparte źródłem; derived zostało obliczone z innych pól przez regułę na tej stronie; asserted to wartość, za którą nic nie stoi — tak zapisywane jest pole, którego nikt nie potwierdził.
Nie ma czwartej kategorii: wartość albo opiera się na dokumencie, albo została obliczona z wartości, które się na nim opierają, albo nie ma za sobą zupełnie nic.
Trzy krzywe w liczbach:
| Co się starzeje | Liczy się w pełni przez | Zmniejsza się o połowę co | Nigdy poniżej |
|---|---|---|---|
| Audyt lub kontrola | 12 miesięcy | 18 miesięcy | 5% |
| Deklaracja o bieżącej praktyce | 12 miesięcy | 60 miesięcy | 15% |
| Wskaźnik przejrzystości | 12 miesięcy | 60 miesięcy | 35% |
Trzy krzywe różnią się, bo rzeczy, które opisują, zmieniają się z różną prędkością. Migawka audytora starzeje się najszybciej: mówi, co było prawdą w jednym tygodniu jednego roku. Deklaracja o bieżącej praktyce i wskaźnik przejrzystości opisują trwały stan rzeczy, więc zachowują wartość znacznie dłużej — a raport przejrzystości utrzymuje najwyższy z trzech progów, bo firma, która raz opublikowała swoje liczby, ustaliła coś o sobie, czego nie cofnie spokojny rok.
Zupełnie inny kształt, bo odpowiada na inny rodzaj pytania: addytywna suma ważona, w której funkcje się sumują, a brakująca to niedobór. Trzynaście pól, dwanaście z nich niesie wagę, razem 34 punktów. Trzynaste to cena roczna: publikowana, bo czytelnik jej chce, ważona zerem, bo zniżka za opłacenie z góry dwunastu miesięcy to warunek handlowy, a nie właściwość usługi.
| Pole | Waga | Ponownie sprawdzane |
|---|---|---|
| Działa przy aktywnej cenzurze | 5 | 30 dni |
| Platformy z klientem | 4 | 30 dni |
| Kraje z oferowanymi lokalizacjami węzłów wyjściowych | 4 | 90 dni |
| Miesięczna cena w USD, plan miesięczny, zgodnie z naliczeniem | 3 | 30 dni |
| Użyteczny bezpłatny poziom usługi | 3 | 30 dni |
| Oferowane protokoły | 3 | 30 dni |
| Zakres działania wyłącznika awaryjnego | 3 | 30 dni |
| Jednoczesne połączenia | 2 | 30 dni |
| Trudność rozpoczęcia korzystania z niego | 2 | 30 dni |
| Dozwolone P2P | 2 | 30 dni |
| Dostęp do głównych usług streamingowych | 2 | 30 dni |
| Dostępne tunelowanie dzielone | 1 | 30 dni |
| Cena planu rocznego w USD, pierwszy okres, zgodnie z naliczeniem | — | 30 dni |
Wynik jest uśredniany po polach, które niosą wartość, więc dostawca nie jest karany za pole, którego nikt nikomu nie uzupełnił. Obchodzenie cenzury niesie najwięcej wagi, bo to jedyna właściwość użyteczności, która decyduje o tym, czy usługa w ogóle działa tam, gdzie jest to najważniejsze; tunelowanie dzielone niesie najmniej, bo jego brak jest jedynie niedogodnością.
Cena wchodzi tutaj, nie w oś bezpieczeństwa, i tylko stawka miesięczna. Stawki roczne są pokazywane wszędzie na stronie, ale nie są wyceniane: zniżka za zobowiązanie się na dwanaście miesięcy z góry to warunek handlowy, a nie właściwość usługi.
Wynik przy 50% kompletności to inne twierdzenie niż ten sam wynik przy 95%, więc kompletność jest publikowana razem z wynikiem, a oba są pokazywane wspólnie. To udział pól, które w ogóle zostały potwierdzone.
Obok niego każdy rekord niesie kluczowe luki: tekst analityka wskazujący, co nie zostało potwierdzone, co mogłoby to rozstrzygnąć, oraz zastrzeżenia, które kwalifikują tę liczbę. To tutaj czytelnik dowiaduje się, że raport poświadczający jest typu I, a nie typu II, albo że kraj floty wywnioskowano z notatki o trasowaniu.
Wysoki wynik z długą listą luk nie jest sprzecznością: wynik mówi, co potwierdzają dowody, luki mówią, ile tych dowodów było. Żadna z tych dwóch połówek nie jest ukrywana, by druga wyglądała lepiej.
Tam, gdzie dostawca nic nie publikuje, pole pozostaje nieznane. Nigdy nie jest szacowane, nigdy nie jest wnioskowane od konkurenta, nigdy nie jest po cichu wypełniane liczbą marketingową i nigdy nie jest zgadywane w żadną stronę — to kanał niewiedzy jest miejscem, gdzie to kosztuje wynik, co jest uczciwym miejscem, by coś kosztowało. W tabeli niepotwierdzona wartość pokazuje się jako — i trafia na koniec w obu kierunkach sortowania: sortowanie według rosnącej wielkości floty nie nagradza dostawcy za to, że odmówił nam powiedzenia.
Dwie osie, dwa progi, ustawione na różnych wysokościach celowo. Przy bezpieczeństwie model wstrzymuje się od werdyktu, gdy w ogóle potwierdzono mniej niż 30% pól merytorycznych, albo gdy — przy potwierdzeniu poniżej 50% i poniżej 35 punktów — dominującym ryzykiem jest nasz własny ignorance. Żadne z nich nie jest stwierdzeniem o dostawcy: mówi, że badanie nie zaszło wystarczająco daleko, by go umiejscowić, i 9 z 77 rekordów tak ma.
Przy użyteczności próg jest wyższy — wynik musi opierać się na 50% dostępnej wagi, nie na 30% — i jest wyższy, bo obie osie inaczej obciążają za pustkę. Bezpieczeństwo wycenia niewiedzę wewnątrz wyniku, więc skromny rekord już niesie ten koszt.
Użyteczność nie ma takiego kanału: niepotwierdzona funkcja po prostu wypada ze średniej, więc bez progu rekord z dwoma znanymi polami czytałby się jak zmierzony. 15 z 77 rekordów publikuje usability.state: no_data, a liczba, którą niosą, jest dolną granicą, a nie pomiarem — nigdy nie jest drukowana obok znanego wyniku, jakby oba były porównywalne.
Sześć ograniczeń, publikowanych razem z modelem, a nie odkrywanych później. Są częścią methodology.json i towarzyszą każdemu wynikowi, jaki produkuje, dlatego są tu wydrukowane słowo w słowo, a nie streszczone:
expires_at.key_gaps jest miejscem, w którym trzeba to zaznaczyć.V15_assurance_strength ma wartość unknown, a każdemu audytowanemu dostawcy przypisuje się normę rynkową, a nie to, co stwierdza jego własny raport. Pole odnotowuje deklarowaną siłę, a nie rygor stojący za nią — zlecenie może zawierać opinię o racjonalnej pewności, a mimo to być wąskie; do tego służą V03_audit_subject i V04_scope_servers.Nie ma żadnej korekty redakcyjnej. Wcześniejsza wersja tej metody pozwalała redaktorowi przesunąć obliczony wynik o maksymalnie dwa punkty z opublikowanym uzasadnieniem; zostało to usunięte, bo rozbicie na każdej stronie dostawcy pokazuje teraz pełne działanie arytmetyczne, a liczba, która nie wyszłaby z tego działania, uczyniłaby to rozbicie kłamstwem.
Osąd redakcyjny ma jedno miejsce, w którym może żyć, i nie jest to wynik: ręczny poziom jakości, trzymany osobno i nigdy niewmieszany. Jeśli redaktor uważa, że rekord jest błędny, droga jest ta sama, która jest otwarta dla każdego czytelnika — zmień dowody i pozwól modelowi przeliczyć.
Wyniki są przeliczane przy każdym imporcie i na żądanie. Ponieważ wersja modelu dotyczy wszystkich rekordów naraz, jej zmiana porusza cały rejestr, a nie jeden wiersz — i tak właśnie powinno być, dlatego każda zmiana jest jawnie rejestrowana. Data aktualizacji dostawcy zmienia się tylko wtedy, gdy zmieniło się coś istotnego; ponowny import, który niczego nie zmienia, zostawia każdą datę bez zmian, bo ostemplowanie 77 stron dzisiejszą datą byłoby sygnałem świeżości, na który nie zasłużyliśmy.
To, co można kupić, to prowizja, gdy ktoś subskrybuje przez link, oraz — jeśli kiedykolwiek sprzedane zostanie płatne miejsce — własny, oznaczony blok nad rankingiem, poza kolejnością. Żadne z tych dwóch nie jest dziś włączone — żaden link nie niesie parametru partnerskiego i żadne miejsce nie zostało sprzedane — a oba są ujawniane tam, gdzie występują, oraz w informacji o programie partnerskim. Ponieważ ranking jest obliczany z dowodów, a dowody są publikowane obok niego, kupienie lepszej pozycji wymagałoby zmiany opublikowanego rekordu — co jest dokładnie tym, co każdy może sprawdzić.
R06_ignoranceniewiedzaproductodczytuje 5 pól
Cena tego, czego nikt nie potwierdził
min(params.cap, params.slope x (1 - known_share)) x (1 - params.posture_relief x postawa); postawa = suma wpisów postawy ograniczona do 1,0
R07_silencemilczeniethresholdodczytuje 4 pól
Milczenie proporcjonalne do ekspozycji
uruchamia się tylko, gdy P01 i P03 należą do {none_known, unknown}, a P05 do {none, unknown, fresh_no_numbers}; ryzyko = min(params.cap, params.per_year x lata działalności x waga), przy czym waga jest pobierana z params.weight według przedziału ekspozycji. Wycena według roku, ponieważ milczenie się kumuluje: piętnaście lat bez niczego w rejestrze nie jest tym samym twierdzeniem co pięć, a płaski przedział tak właśnie stwierdzał. Dostawca, którego rok uruchomienia jest nieznany, nie generuje tu żadnej opłaty, zgodnie z R08
R08_unknown_pricing6 kanałówconstraintkażda tabela ryzyka i wartości progowej w schemacie
Domniemanie niewinności jako reguła arytmetyczna
dotyczy wyłącznie ustaleń przeciwko dostawcy i nigdy nie dotyczy nieznanego wpisanego jako opublikowany wcześniejszy kanał (C01 = prior_0.550), który jest stawką bazową, a nie ustaleniem. W przeciwnym razie ryzyko(unknown) <= 0,50 x ryzyko(najgorszej potwierdzonej wartości) dla tego pola i nigdy nie jest mu równe; przyłapane kłamstwo zawsze przewyższa pusty wpis; na osi kłamstwa i w każdym polu zdarzenia ryzyko(unknown) = 0,000 bezwarunkowo. Pełna cena pustego wpisu jest płacona raz, w kanale niewiedzy, gdzie jest oznaczona jako nasza
R09_channel_combination8 kanałównoisy_orodczytuje 8 pól
Jak osiem kanałów staje się jedną liczbą
wynik = 100 x product(1 - min(0.90, r_c)) dla ośmiu kanałów; bez ogólnego dolnego ani górnego ograniczenia; S18 wchodzi do integralności, a nie jako dziewiąty kanał
R10_disclosure_decayujawnieniedecaymaxodczytuje 4 pól
Zdarzenia niekorzystne też się starzeją
ujawnienie = max dla P01, P02 i P03 własnej ceny tego pola po zaniku — jedna ścieżka wybrana według najgorszego przypadku, nigdy kumulowana, ponieważ trzy kodowania jednego zajęcia są jednym zajęciem; decay(plateau=12, half_life=60, floor=0.35) w dniu wpisu P12_case_history dotyczącego tego samego zdarzenia, dopasowanego według tego, co wpis mówi o przebiegu — P01 do zajęcia, P03 do court_order, subpoena lub mandate_order — i nigdy według wyniku, ponieważ zdarzenie, które niczego nie ujawniło, nadal jest zdarzeniem, od którego datuje się ustalenie; P02 dopasowuje się według wyniku, ponieważ tam wynik jest faktem; zdarzenie niekorzystne bez takiego wpisu zachowuje swoją wartość przed zanikiem; kształt krzywej praktyki z wyższym poziomem minimalnym, tutaj 0.35 wobec 0.15 dla dowodów praktyki, ponieważ potwierdzone ujawnienie pozostaje na stałe w rejestrze
R11_evidence_voidingretencjaujawnienieintegralnośćgateodczytuje 1 pole
Zmiana kontroli resetuje to, co się przenosi
dowody datowane przed M16 nie odnoszą się do obecnego właściciela: audyty tracą premię za serię, zdarzenia ujawnienia spadają do poziomu minimalnego R10, a ustalenia dotyczące podmiotów siostrzanych w ogóle się nie przenoszą
R12_report_plausibilityintegralnośćniewiedzathresholdodczytuje 5 pól
Raport przejrzystości jest wart tyle, ile jego treść
P06 = zero_implausible, gdy P09 = 0, P08 jest wyższe niż params.min_requests, a rekord potwierdza istnienie rekordu dotyczącego jednej osoby, który można ujawnić — dotkliwość retencji na poziomie params.min_retention lub wyższym. Ocenianie tego wyłącznie według skali użytkowników karało za coś przeciwnego do celu: dostawcę, który publikuje swoje liczby i zgłasza zero przyznanych, nazywano kłamcą, podczas gdy ten, który nie publikuje niczego, nic nie płacił. Zero przyznanych jest niewiarygodne tylko w przypadku dostawcy, którego własny rekord mówi, że ma coś do przyznania; przy potwierdzonym ustaleniu o braku logów jest oczekiwaną odpowiedzią, a model nie może podważać w jednym kanale tego, co uznał w innym. Gdy warunek zadziała, ulga w zakresie postawy bezpieczeństwa z P05 zostaje ustawiona na 0.00, a integralność zyskuje ścieżkę wskazaną w params.route
R13_derived_jurisdictionjurysdykcjanoisy_ormaxodczytuje 6 pól
Pola obowiązku są wyprowadzane, a nie oceniane
C10 = M06 w MANDATE_COUNTRIES; C11 = M11 w MANDATE_COUNTRIES; gdy M11 = M06, oba stanowią jedną okoliczność, a jurysdykcja przyjmuje max(C10, C11, P11), nigdy noisy-OR; ekspozycja floty wchodzi jako max(C09b, P04), co jest odrębną ścieżką od ścieżki dotyczącej spółki; ręczne nadpisanie wymaga własnego źródła i jest jako takie publikowane
R14_disclosure_rateujawnieniethresholdodczytuje 2 pól
Odsetek żądań, które doprowadziły do przekazania danych
wskaźnik = P09 / P08, gdy P08 osiąga params.min_requests; ryzyko = params.weight x wskaźnik; publikowany obok wskaźnika, ponieważ porównywalność między jurysdykcjami jest niska — wniosek oznacza nakaz sądowy w jednym kraju, a pismo w innym
R15_free_tier_flagbrak kanałuflagodczytuje 2 pól
Darmowe plany są jakoś opłacane
S22 = oznaczone, gdy każde pole wymienione w params zawiera jedną z wartości, które params wymienia dla tego pola, w przeciwnym razie nie; nie zmienia wyniku na żadnej z osi — oba wejścia są już wycenione tam, gdzie należy, a wycena ich koniunkcji byłaby właśnie uśrednianiem, któremu obie osie mają zapobiegać
R16_opaque_at_mass_scaleintegralnośćthresholdodczytuje 2 pól
Nieprzejrzystość jest gorsza, im więcej osób obejmuje
X03 = nieprzejrzysty, a M08 = skala masowa -> params.at_mass_scale zamiast własnej ceny X03 dla nieprzejrzystego
R17_location_noticejurysdykcjaderivationodczytuje 3 pól
Gdy oferowany jest kraj z obowiązkiem, co faktycznie się w nim znajduje
C09 = kraje U02, które występują w MANDATE_COUNTRIES, wyprowadzane automatycznie i nigdy niewprowadzane ręcznie. Samo C09 nie daje żadnych punktów i pozostaje poza mianownikiem kompletności: oferowanie węzła wyjściowego w takim kraju samo w sobie niczego nie mówi, a informacja jest publikowana dla lokalizacji wybranej przez czytelnika. Oceniane jest C09b — jedyne pytanie warte zadania, gdy C09 nie jest puste: czy sprzęt faktycznie znajduje się pod tym obowiązkiem, czy lokalizacja jest wirtualna, a sprzęt znajduje się gdzie indziej. C09b ma wartość n/a, gdy C09 jest puste, i łączy się z P04 przez max: obecność pod obowiązkiem jest jedną okolicznością zakodowaną dwukrotnie
R18_audit_gateretencjagatemaxodczytuje 2 pól
Którą gałąź retencji obiera audyt
V11 określa retencję -> gałąź deklarowana w params.credence_stated; V01 = yes_* i milczenie V11 -> gałąź milczenia w params.credence_silent x subject_factor (params.subject_default, gdy podmiot nie jest potwierdzony), a żadna gałąź nie przekracza params.credence_max; w przeciwnym razie brak jakichkolwiek dowodów dokumentowych; dotkliwość na wybranej gałęzi = max(C01_linkable_retention, V11_audit_findings), nigdy noisy-OR — jedna okoliczność zakodowana dwukrotnie nie może się kumulować (tak jak w R04)
R19_audit_decayretencjadecayodczytuje 1 pole
Konfiguracja się zmienia
decay(params.decay) — ciągłe w miesiącach, bez węzłów
R20_practice_agesretencjadecaymaxodczytuje 1 pole
Każde udokumentowane zdarzenie ma własną datę
każde zdarzenie w P12 z outcome = nothing_produced wnosi decay(practice, własną datę); wartość praktyki pola jest maksimum dla jego zdarzeń, nigdy ich sumą; zastępuje to odczyt P01 i P03 oparty na jednej dacie, który sprowadzał kilka zajęć do jednego
R21_circumvention_decayusabilitydecayodczytuje 1 pole
Blokowanie postępuje szybciej niż dowody
U06 = potwierdzone jest oceniane jak deklarowane, gdy od daty as-of pola upłynęło ponad 12 miesięcy; rekord już podaje datę każdego pola, więc wiek odczytuje się stamtąd, zamiast wpisywać go do wartości; jedyne pole użyteczności z zanikiem, ponieważ tylko jego prawdziwość wygasa
R22_completenessniewiedzaconstraintkolumna kompletności każdego pola
Co liczy mianownik
pola merytoryczne z completeness = yes; n/a pozostawia się poza mianownikiem, unknown pozostaje w mianowniku; pola tożsamości, wyniki modelu, redundantne etykiety i pola użyteczności są wyłączone — pokrycie użyteczności jest raportowane osobno jako S16
R23_credence_defaultsretencjaconstraintkażda tabela czynników w schemacie
Nieprzeczytane dowody nie są zaliczane
lustrzane odbicie R08 i celowo niesymetryczne względem niego. factor(unknown) <= najsłabszy rzeczywisty poziom dowodowy w tym polu i ściśle powyżej każdej wartości oznaczającej odmowę ujawnienia (V06 unnamed, V02 none). Uznanie za wiarygodny audytu, którego nikt nie przeczytał, pozwala zakupionemu raportowi przeniknąć do wyniku; obciążenie naszą własną niewiedzą tak, jakby była odmową dostawcy, jest błędem przeciwnego rodzaju. Odmowa uznania niezweryfikowanych dowodów nie jest oskarżeniem — dostawca wraca do wartości a priori, rynkowej stopy bazowej, a nie do ustalenia
R24_retention_compositionretencjaproductmaxodczytuje 14 pól
Jak podkanały retencji stają się jedną liczbą
cztery podkanały nie są uśredniane. credence.paper = gałąź wybrana przez R18 (deklarowana: credence_stated; milczenie: credence_silent x subject_factor) x source_credence własnego .conf tej gałęzi x audit_decay (R19) x publication_factor x engagement_factor (siła firmy x standardu x zapewnienia) x scope_factor na gałęzi deklarowanej x series_bonus, gdy R11 pozostawia serię w mocy, z ograniczeniem do credence_max. credence.practice = maksimum dla datowanych zdarzeń nothing_produced z practice_credence x practice_decay (R20). credence = min(credence_max, max(paper, practice) + secondary_weight x min(paper, practice)) — dwa rodzaje dowodów mają większą wagę niż jeden, a żadna ilość dowodów nie osiąga pewności. severity = max(C01, V11) zgodnie z R18 albo wartość wcześniejsza, gdy żadne z nich nie jest potwierdzone. retention = credence x severity + (1 - credence) x max(severity, prior): regresja do bazowego wskaźnika rynkowego działa tylko w górę, więc przyznanie niekorzystnego faktu zachowuje jego wartość nominalną. retention.floor = max(retention, C12 floor:) na końcu, ponieważ audyt ograniczony do tunelu nie może unieważnić faktu dotyczącego aplikacji
R25_integrity_compositionintegralnośćnoisy_orodczytuje 14 pól
Jak ścieżki integralności stają się jedną liczbą
integrity = 1 - iloczyn(1 - route) dla uruchamiających się ścieżek: oś kłamstwa (R04), przejrzystość właściciela (R16 w skali masowej), historia grupy właścicielskiej, monetyzacja w połączeniu z tym, co grupa sprzedaje (R03), obsługa incydentów, twierdzenia absolutne, nacisk na dożywotniość, kupione pokrycie (R01), ścieżka nieprawdopodobnego raportu (R12), luka w deklaracjach sklepu (R28), disclosure_rate_weight x rate (R14) oraz zarażenie klastra (R02, S18). Ścieżki sumują się, ponieważ są odrębnymi ustaleniami; pary będące jedną okolicznością zakodowaną dwukrotnie zostały już zredukowane przez max we własnej regule, dlatego tutaj niczego nie redukuje się ponownie
R26_hygiene_compositionhigienacapped_sumodczytuje 12 pól
Jak pola higieny stają się jedną liczbą
higiena = min(params.cap, suma ryzyka: cena każdego pola skierowanego tutaj). Jedyny addytywny kanał na osi bezpieczeństwa: są to małe, niezależne wycieki, które się kumulują, a nie jedno ustalenie rozstrzygające wynik, zaś limit zapobiega temu, by stos drobnych przypadków zbierania danych wyglądał jak ujawnienie. Pole listowe ma wartość swojego najtańszego elementu — wystarczy jedna anonimowa metoda płatności — i korzysta z własnej ceny nieznanego, gdy żaden element nie ma ceny. C13_weakest_protocol jest tutaj pochodną składową (R32): aktywny starszy transport to jeszcze jedna rzecz zbierana przy okazji, a nie ustalenie rozstrzygające wynik
R27_report_concealmentintegralnośćmaxodczytuje 2 pól
Milczenie na temat ujawnienia w skali gwarantującej żądania
dostawca w średniej lub masowej skali z pewnością otrzymuje żądania, więc potwierdzony brak liczb jest faktem dotyczącym dostawcy, a nie luką w naszych badaniach: P05 = none obciąża 0,150, fresh_no_numbers 0,100 — opublikowany raport pomijający jedną istotną liczbę jest jego najostrzejszą formą — a stale 0,050. Uruchamia się wyłącznie dla potwierdzonej wartości; nieznane nie obciąża tutaj niczym i jest wyceniane w niewiedzy, do której należy sytuacja, gdy sami nie sprawdziliśmy. To odbicie R12: jedno wycenia niewiarygodną liczbę, a to wycenia brak jakiejkolwiek liczby
R28_store_declaration_gapintegralnośćmaxodczytuje 1 pole
Deklaracja sklepu w zestawieniu z polityką przekazaną sklepowi przez dostawcę
obowiązkowy formularz sklepu jest własnym, podpisanym oświadczeniem dostawcy na temat jego aplikacji, więc wszystko, co formularz deklaruje, musi również pojawić się w polityce, do której sam dostawca odsyła sklep. Odczytuje się to tylko w jednym kierunku: aplikacja jest podzbiorem usługi, więc formularz deklarujący mniej niż polityka dopuszcza wyjaśnienie zakresem i nie obciąża niczym, podczas gdy kategoria deklarowana przez formularz, której polityka nigdy nie wymienia, nie ma takiego usprawiedliwienia. Ocena zależy od tego, co ujawnia nieujawniona kategoria: identyfikator lub diagnostyka obciąża 0,150, zachowanie — aktywność aplikacji, zainstalowane aplikacje, lokalizacja lub dowolny cel reklamowy — obciąża 0,300, a deklaracja samego zbierania danych, któremu zaprzecza deklaracja braku logów, obciąża 0,450. Dwa sklepy definiują zbieranie danych inaczej, więc różnica między formularzem Apple a formularzem Google sama w sobie nie jest ustaleniem. Wygrywa największa luka spośród sklepów
R29_session_stateretencjaconstraintodczytuje 2 pól
Połączenie nie jest rekordem połączenia
C01 ocenia, z czym dostawca może nadal powiązać osobę po zakończeniu sesji. Stan istniejący tylko podczas działania tunelu — źródłowy adres IP, identyfikator konta i znacznik czasu połączenia przechowywane, aby serwer mógł kierować pakiety i egzekwować limit urządzeń — jest samym połączeniem, a nie jego rekordem, a wycenianie go jako retencji obciąża dostawcę za opis działania VPN. Co gorsza, obciąża bardziej niż powiedzenie czegokolwiek: pustka w tym polu to rynkowy poziom bazowy 0,550, a source_ip to 0,750, więc uczciwy opis piętnastominutowego bufora kosztował więcej niż milczenie. Wyłączenie jest wąskie i takie musi być, bo inaczej stałoby się zdaniem, które pisze każdy dostawca. Ma zastosowanie wyłącznie wtedy, gdy własny dokument dostawcy określa okres usunięcia powiązany z końcem sesji i nie dłuższy niż 24 godziny — najkrótsza jednostka kalendarzowa, dłuższa niż każde rozłączanie potrzebne usłudze i krótsza niż każda rotacja, którą zachowuje log. Nieokreślony czas trwania jest retencją. Okres kalendarzowy — 7 dni, 30 dni, cykl rotacji — jest retencją niezależnie od użytego sformułowania, ponieważ z założenia wykracza poza sesję. Wszystko, co dostawca zachowuje po tym okresie, nadal ma wartość własnego poziomu, a wyłączenie odczytuje wyłącznie deklarację dostawcy: gdy audyt wykazał obecność danych, R18 już umieszcza ustalenie powyżej deklaracji
R30_usability_foundationusabilitythresholdkolumna wag każdego pola użyteczności
Na jakiej części tabeli opiera się wynik użyteczności
suma użyteczności jest dzielona przez wagę, którą można było odczytać: pole, którego nikt nie potwierdził, pozostawia się w mianowniku zamiast przyznawać mu zero, ponieważ kompletność nie jest jakością. Ceną jest to, że wynik nie widzi własnej podstawy — kolumna, której najcięższego pola nie odczytano, daje taki sam kształt liczby jak kolumna wypełniona. S21 = odczytana waga / aktywna waga, gdzie aktywna obejmuje każde ważone pole użyteczności z wyjątkiem pól n/a. Poniżej usability_foundation_floor S20 = no_data: liczba oparta na mniej niż połowie tabeli wskazuje, które pola wypełniono, a nie to, co robi produkt. Próg jest bardziej rygorystyczny niż próg bezpieczeństwa, ponieważ ta oś nie ma kanału niewiedzy — bezpieczeństwo obciąża za pustkę wewnątrz wyniku, a użyteczność nie obciąża za nią nigdzie. Wynik nadal jest publikowany jako no_data, dokładnie tak jak wynik bezpieczeństwa; liczby nieudostępnionej nie można sprawdzić.
R32_protocol_floorhigienaderivationmaxodczytuje 1 pole
Najsłabszy nadal oferowany transport
C13_weakest_protocol to najgorszy protokół w U07_protocols według kolejności ryzyka z własnej tabeli C13, wyprowadzany w czasie ładowania i nigdy nieuzupełniany ręcznie — o takim samym kształcie jak R17 wyprowadzające C09 z U02. Wchodzi do R26_hygiene_composition jako kolejna składowa i podlega limitowi kanału higieny jak każdy występujący tam składnik. W zestawie oferującym wyłącznie nowoczesne transporty pole ma wartość not_applicable zamiast nazwy: gdy nie ma cen protokołów powyżej 0,000, nie ma niczego słabego w ofercie, na co można wskazać, a wybór najmniej dobrego z dobrych według kolejności rozstrzygania remisów opublikowałby ustalenie, którego nikt nie poczynił. Pole jest utrzymywane dla taniego segmentu, w którym PPTP i L2TP nadal działają. Cena proprietary nie jest obciążeniem za to, że dostawca pisze własny protokół — jest ceną niemożności stwierdzenia, czy ten protokół jest słaby, dlatego vendor_open nie kosztuje nic: transport dostawcy, którego kod źródłowy jest opublikowany i niezależnie zrecenzowany, można ocenić, a z oceny nie wynika, że jest słaby. Obciążenie nim mimo to wyceniałoby niewiedzę, która została usunięta, i sprawiałoby, że publikowanie kodu źródłowego byłoby droższe niż jego zatajenie.
R33_exit_conductarchitekturamaxodczytuje 2 pól
Co węzeł wyjściowy robi z przenoszonym ruchem
architektura = max(cena C00_architecture, cena C14_traffic_modification). To, kto prowadzi węzeł wyjściowy, i to, co węzeł wyjściowy robi z tym, co przez niego przechodzi, jest jednym pytaniem — czy dalszy koniec tunelu znajduje się po twojej stronie — i jedna zła odpowiedź je rozstrzyga, więc kanał przyjmuje gorszą z dwóch cen, a nie ich sumę: węzeł wyjściowy prowadzony przez obcych, który dodatkowo przepisuje nagłówki, nie jest dwa razy gorszy niż każda z tych rzeczy z osobna, lecz jest właśnie tak zły. headers_injected (0,300) to identyfikator sesji lub dowolny inny nagłówek dodany do ruchu przechodzącego przez węzeł, co przekazuje każdemu celowi nazwę użytkownika; content_injected (0,500) to skrypty, reklamy lub inne materiały umieszczone na stronach; tls_interception (0,750) to otwieranie przez węzeł wyjściowy zaszyfrowanych sesji. none trzeba wyczytać z dokumentu, który tak stwierdza, a niewiele dokumentów to robi, więc unknown ma taki sam rynkowy poziom bazowy jak C00, a resztę zapewnia kanał niewiedzy.
verdict: no_data mówi to wprost. Przed odczytaniem któregokolwiek wyniku sprawdź completeness na obu osiach.M14_inclusion_basis jest jedynym rekordem wyjaśniającym, dlaczego każdy z nich się tu znajduje. Brak dostawcy w katalogu jest dowodem na ten ręczny dobór, zanim stanie się dowodem dotyczącym dostawcy, a nic tutaj nie szacuje, jak wiele pominięto.Jeden
Są narysowane tutaj w takiej proporcji, w jakiej rysuje je rejestr, ponieważ ta proporcja jest właśnie argumentem: jedna z dwóch decyduje o kolejności, a druga opisuje, co za to dostajesz.
Bezpieczeństwo zadaje 8 pytań
Każde z 67 pól bezpieczeństwa zasila co najmniej jedno z nich. Osiem odpowiedzi jest mnożonych.
Decyduje o kolejności
Opisuje, co dostajesz
Użyteczność waży 12 pól
Wagi sumują się do 34, a 12 z nich jest dodawanych jako średnia ważona. Trzynaste pole jest niesione z wagą zero, więc jest publikowane, ale nic go nie wycenia.
Trzy
Oto, co daje mnożenie. Siedem kanałów może być bez zarzutu, a ósmy i tak przesądzi o rekordzie — dlatego dostawca nie może uśrednić sobie dyskwalifikującego faktu, będąc porządnym wszędzie indziej. Poruszaj suwakiem.
Siedem kanałów utrzymuje po 0.05, a jednym — czerwonym — porusza czytelnik
Nic nie zostało zsumowane ani uśrednione. Siedem porządnych kanałów wciąż jest porządnych na drugim końcu tego suwaka — i nie mogą odkupić tego, co zabrał ósmy, co jest właśnie całym powodem, dla którego te osiem się mnoży.
Cztery
Żaden kanał nie może przekroczyć 0.9, bo pewności nie da się uzyskać z samego czytania dokumentów. A jedno ustalenie przypina kanał od dołu, tam, gdzie nie sięga żaden audyt.
Kanał retencji
Nieskazitelny raport opróżnia szklankę. To, co w niej zostaje, to identyfikator, który posiada dostawca:
Raport może powiedzieć tylko to, co zostało zapisane. Identyfikator mówi, że użytkownika da się zidentyfikować niezależnie od tego, czy cokolwiek zapisano, więc te dwie rzeczy nie są odpowiedziami na to samo pytanie — a model odmawia pozwolenia, by pierwsza rozstrzygała drugą.
Pięć
Nic nie wchodzi do tego modelu bezkrytycznie. To, co mówi raport, i to, kto to mówi, to dwie osobne drabiny, i się mnożą.
Co mówi raportretencja: credence_stated wobec credence_silent
Kto to mówicztery poziomy source_credence
Te dwa się mnożą. Cztery poziomy tego, kto to mówi, i czym jest każdy z nich:
Osiem
Każda linia w tym wachlarzu to reguła wskazująca kanał, przed którym odpowiada. Wszystkie są wydrukowane w pełni dalej na tej stronie, bo reguła, której czytelnik nie widzi, jest regułą przyjmowaną na wiarę.
Lewy wachlarz to każda reguła sięgająca po pola, które odczytuje; prawy to każda reguła wskazująca kanał, przed którym odpowiada. Wszystkie 32 są wydrukowane w pełni dalej na tej stronie, bo reguła, której czytelnik nie widzi, jest regułą przyjmowaną na wiarę. Ta maszyna nie jest duża, bo jest sprytna — jest duża, bo takie są pytania, a model wystarczająco mały, by streścić go w jednym akapicie, streszczałby niewłaściwą rzecz.
Sześć
Trzy rodzaje dowodów, trzy krzywe — każda utrzymuje się na płaskim plateau, a potem opada do progu, którego już nie opuszcza. Audyt to coś, co wydarzyło się określonego dnia, a nie stan, w jakim znajduje się dostawca.
Wzdłuż osi pionowej: waga, jaką wciąż niesie dowód — pełna na górze, własny próg na dole
dziś1 rok23456 lat
Każda krzywa utrzymuje się na płaskim plateau, a potem opada do progu, którego już nie opuszcza — dowody się starzeją, ale nie stają się kłamstwem. Kropki to 30 rekordów w aktach, które publikują datowany audyt, umieszczone na krzywej audytu w swoim własnym wieku. Audyt nie jest stanem, w jakim znajduje się dostawca; to coś, co wydarzyło się określonego dnia.
Siedem
Jedyny kanał, który wycenia pustkę. To też jedyna rzecz na tej stronie, którą dostawca może poruszyć samodzielnie — a sposobem na to jest publikowanie, nie proszenie.
0.00obciążone rekordowi
min(0.6, 0.9 × (1 − established)) × (1 − 0.4 × posture)
Niewiedza nie jest neutralna. Dostawca, o którym nikt niczego nie potwierdził, niesie realne ryzyko, a model je wycenia, zamiast zostawiać grzeczną pustkę — co czyni to jedyną liczbą na całej stronie, którą dostawca porusza samodzielnie. Każdy inny kanał czeka, aż coś zostanie znalezione; ten czeka, aż coś zostanie opublikowane.
Dziewięć
Każdy VPN tutaj dostaje jedną liczbę całkowitą na sto, a model dzieli tę skalę 4 progami, które publikuje z góry. Przekroczenie progu zmienia słowo. Nic innego tego nie zmienia — ani ładniejsze logo, ani zniżka, ani informacja prasowa.
Dwa
Nic tu się nie sumuje. Każdy kanał zachowuje tę część rekordu, którą pozostawił poprzedni, więc osiem kanałów to łańcuch, a nie kolumna liczb.
score = 100 × ∏ (1 − channel)
Kształt to noisy-OR over independent risk channels. Obliczone tutaj na rekordzie Proton VPN, najwyższym wyniku w aktach — liczby poniżej pochodzą z tego rekordu, a nie są przykładem napisanym na tę okazję.
3 kanałów nic nie znajduje i nic nie zabiera. Pozostałe 5 zabierają po niewielkim udziale, a udziały się mnożą, a nie znoszą: 70 to, co zostało ze stu.
Przedziały to zakresy, ustalone, zanim oceniono choć jeden rekord, i wydrukowane tak, byś mógł sam sprawdzić każde przekroczenie — liczba jest obliczana, słowo jest z niej odczytywane, i żadnego z nich nie da się kupić.