Podpisane wymiany HTTP

Kinuko Yasuda

Podpisana wymiana HTTP (inaczej „SXG”) to podzbiór nowych technologii Pakiety internetowe, które umożliwiają wydawcom bezpiecznie przechowywać swoje treści, tj. udostępniać je do dalszej dystrybucji przez inne stron, zachowując integralność treści i informacje o autorze. Przenośne mają wiele zalet: szybsze dostarczanie treści Ułatwianie wymiany treści między użytkownikami i prostsze środowisko offline.

Jak działają podpisane wymiany HTTP? Technologia ta umożliwia wydawcom podpisanie pojedynczej wymiany HTTP (tj. pary żądania/odpowiedzi), tak aby w ramach podpisanej komunikacji z dowolnego serwera buforowania. Gdy przeglądarka wczyta tę Signed Exchange, może bezpiecznie wyświetlić adres URL wydawcy na pasku adresu, ponieważ podpis jest wystarczającym dowodem na to, że materiał pochodził pochodzenia wydawcy.

Signed Exchange: istota

Dzięki temu pochodzenie treści jest oddzielone od tego, kto je rozpowszechnia. Twoje treści mogą być publikowane w sieci, bez korzystania z konkretnego serwera, połączenia, lub usługę hostingową! Jesteśmy ciekawi, jak można wykorzystać SXG, na przykład:

  • Pobieranie z wyprzedzeniem chroniące prywatność: podczas pobierania zasobów (np. za pomocą linku rel=prefetch) podczas kolejnej nawigacji może działać znacznie szybciej, mają też wady ochrony prywatności. Na przykład wstępne pobieranie zasobów elementy nawigacyjne z innych domen będą informować witryny docelowej o tym, jest potencjalnie zainteresowany daną informacją, nawet jeśli użytkownik nie odwiedził witryny. SXG pozwala natomiast pobieranie z wyprzedzeniem zasobów z innych domen z szybkiej pamięci podręcznej bez konieczności uzyskiwania dostępu do witryny docelowej, komunikując w ten sposób zainteresowanie użytkownika tylko wtedy, gdy podczas nawigacji. Uważamy, że może to być przydatne dla witryn których celem jest odsyłanie użytkowników do innych witryn. W szczególności Google planuje użyć tego na stronach wyników wyszukiwania Google do ulepszanie adresów URL AMP i przyspieszyć klikanie wyników wyszukiwania.

  • Zalety sieci CDN bez wymuszania kontroli nad kluczem prywatnym certyfikatu: Treści, które nagle stały się popularne (np. linki z reddit.com) często powoduje przeciążenie witryny. jeśli witryna jest stosunkowo mała, zwykle spowolnić działanie lub nawet tymczasowo stać się niedostępne. Taka sytuacja może być unikaj, jeśli treści są udostępniane przy użyciu szybkich i wydajnych serwerów pamięci podręcznej. umożliwia to bez udostępniania kluczy TLS.

Korzystanie z technologii Signed Exchange

Signed Exchange jest dostępne w Chrome 73 i nowszych wersjach, w których wcześniej w ramach testowania origin.

Tworzenie SXG

Aby utworzyć SXG dla swojego punktu początkowego (jako wydawca), potrzebujesz kluczem certyfikatu do podpisania podpisu, a certyfikat musi mieć specjalny „CanSignHttpExchanges” rozszerzenie do przetworzenia jako prawidłowego SXG. Od listopada 2018 r., DigiCert to jedyny urząd certyfikacji, który obsługuje to rozszerzenie. Możesz poprosić o który działa w przypadku SXG tej stronie.

Po uzyskaniu certyfikatu SXG możesz utworzyć własne obszary SXG za pomocą generatorów plików referencyjnych opublikowane na GitHubie.

Możesz też zobaczyć rzeczywiste przykładowe pliki SXG w Repozytorium kodu Chrome (np. ten jest najprostszym narzędziem dla prostego pliku tekstowego). Pamiętaj, że są one generowane głównie na potrzeby testów lokalnych. Nie spodziewaj się, aby sprawdzić, czy podpis ma prawidłowe certyfikaty i sygnatury czasowe.

Lokalne testowanie funkcji

Do tworzenia SXG do celów testowych możesz utworzyć samodzielnie podpisany certyfikat i włącz usługę chrome://flags/#allow-sxg-certs-without-extension, aby Chrome przetwarza platformy SXG utworzone z użyciem certyfikatu bez specjalnego rozszerzenia.

Kod podobny do tego powinien działać, jeśli Twój serwer, certyfikat i SXG są prawidłowo skonfigurowane.

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

Pamiętaj, że tagi SXG są obsługiwane tylko przez tag kotwicy (<a>) i link rel=prefetch w Chrome 73 i nowszych wersjach. Pamiętaj też, że podpis jest ograniczony do 7. dni według specyfikacji, więc podpisana treść stosunkowo szybko wygaśnie.

Przekazywanie opinii

Chętnie poznamy Twoją opinię na temat tego eksperymentu na stronie webpackage-dev@chromium.org. Dostępne opcje Dołącz też do dyskusji na temat specyfikacji. lub zgłoś błąd w Chrome do naszego zespołu. Twoja opinia będzie bardzo pomocna w procesie standaryzacji. a także rozwiązywać problemy z implementacją.

Prześlij opinię