Łukasz Olejnik

Bezpieczeństwo, cyberbezpieczeństwo, prywatność, ochrona danych

Digital Markets Act, Google Chrome, rozszerzenia - analiza przypadku

Akt o rynkach cyfrowych (Digital Markets Act, DMA) jest jednym z najmniej rozumianych unijnych przepisów technologicznych. Mimo to ma duży wpływ – zarówno pozytywny, jak i negatywny – na krajobraz technologiczny. Wykorzystamy nadarzającą się okazję do przestudiowania interesującego i rzeczywistego przypadku. Dotyczy praktyki polegającej na tym, że przeglądarka internetowa Chrome załadowuje pewne rozszerzenie przeglądarki, aby usługi Google mogły łatwo i domyślnie, bez wiedzy i zgody użytkownika, przesyłać dane do usług Google. Problem polega na tym, że to obejście podstawowej zasady bezpieczeństwa i prywatności w sieci, czyli tzw. single-origin policy (dane nie powinny móc wyciekać między kontekstami przeglądania, np. z jednego taba do innego, albo z systemu do internetu). Ta opcja nie jest dostępna dla innych dostawców przeglądarek internetowych i rozszerzeń.

Praktyka przeglądarki Google Chrome polegająca na wstępnym ładowaniu rozszerzenia i przyznających mu uprawnienia niedostępnego dla rozszerzeń innych twórców może stanowić naruszenie art. 6 ust. 7 aktu o rynkach cyfrowych (DMA). Artykuł ten nakłada na gatekeeperów obowiązek umożliwienia swobodnej i skutecznej interoperacyjności oraz dostępu do tych samych funkcji oprogramowania, które są dostępne w przypadku usług świadczonych przez gatekeepera, niezależnie od tego, czy funkcje te stanowią część systemu operacyjnego. Umożliwiając swoim rozszerzeniom dostęp do ekskluzywnych interfejsów API lub funkcji, które nie są w równym stopniu dostępne dla zewnętrznych programistów i twórców, Google może podważać zasady uczciwej konkurencję, poprzez faworyzowanie siebie.

Reżim DMA przewiduje kary do 10% obrotu, ale nie traćmy czasu na szacunki tak przyziemnych spraw i przejdźmy do mięsa/tofu.

Kwestie techniczne

Przeglądarki internetowe mogą instalować rozszerzenia, które zwiększają możliwości przeglądarki internetowej. Najpopularniejszy jest chyba Adblock, który, cóż, blokuje wyświetlanie reklam. Takie przeglądarki muszą szanować zasady bezpieczeństwa, aby chronić użytkowników przed na przykład wysłaniem wszystkich danych użytkownika na zdalny serwer w celu ich kradzieży. Z tego też powodu domyślnie rozszerzenia przeglądarek internetowych są sprawdzane przez dostawców takich jak Mozilla czy Google. Tylko zweryfikowane, zatwierdzone rozszerzenia mogą być instalowane przez użytkowników naprawdę bez wysiłku.

Problem polega na tym, że preinstalowane rozszerzenie Google jest zawarte bezpośrednio w przeglądarce internetowej Chrome. Oznacza to, że działa na każdej zainstalowanej przeglądarce Chrome od samego momentu instalacji, w tym na jej pochodnych, takich jak Microsoft Edge czy Brave. Funkcjonalność rozszerzenia umożliwia wysyłanie danych diagnostycznych do Google zgodnie z definicją zawartą w pliku Manifest:

"externally_connectable": {
"matches": ["https://*.google.com/*"]
},

Oto co co i jak jest wysyłane:


port.postMessage({
'browserCpuUsage': browserProcessCpu || 0,
'gpuCpuUsage': gpuProcessCpu || 0,
'tabCpuUsage': tabProcess.cpu,
'tabJsMemoryAllocated': tabProcess.jsMemoryAllocated,
'tabJsMemoryUsed': tabProcess.jsMemoryUsed,
});



Można to wykazać za pomocą tej prostej linii kodu. Możesz odwiedzić chrome://system, aby sprawdzić, czy rozszerzenie 1) jest zainstalowane, 2) ma identyfikator „nkeimhogjdpnpccoofpliimaahmaaome”.


Uruchomienie poniższego kodu w DevTools, demonstruje możliwość wysyłania danych na serwery Google (najpierw odwiedź google.com):

chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome', {method: 'cpu.getInfo'}, response => {
const url = `https://www.google.com/path?X=${encodeURIComponent(JSON.stringify(response))}`;
fetch(url)
.then(response => response.json())
.then(data => console.log('Data sent to Google:', data))
.catch(error => console.error('Error:', error));
});

Aby pokazać, że nie da się tego zrobić z innym rozszerzeniem, spróbujmy wykonać to samo z uBlock Origin ID („cjpalhdlnbpafiamejdnhcphjbkeiagm”)

chrome.runtime.sendMessage('cjpalhdlnbpafiamejdnhcphjbkeiagm', {method: 'cpu.getInfo'}, odpowiedź => {console.log(JSON.stringify(response, null, 2));});


To nie działa:


Polityka technologii i analiza prawna

Artykuł 6 ust. 7 DMA stanowi, że:

„gatekeeper umożliwia dostawcom usług i dostawcom sprzętu komputerowego nieodpłatną skuteczną interoperacyjność i dostęp w celu interoperacyjności do tych samych funkcji sprzętu i oprogramowania (…) gatekeeper umożliwia użytkownikom biznesowym i alternatywnym dostawcom usług świadczone wraz z usługami platformy podstawowej lub w ramach wsparcia tych usług, bezpłatnie, skuteczna interoperacyjność i dostęp w celach interoperacyjności z tym samym systemem operacyjnym, funkcjami sprzętu lub oprogramowania, niezależnie od tego, czy te funkcje stanowią część systemu operacyjnegojakie są dostępne dla tego gatekeepera lub wykorzystywane przez niego podczas świadczenia takich usług.”

Powszechnie uważa się, że ten artykuł DMA ma zastosowanie wyłącznie do systemów operacyjnych; jednakże faktycznie może to dotyczyć w tym przypadku całej platformy oprogramowania, w tym przeglądarek internetowych. Taka interpretacja jest uzasadniona, gdyż mimo że przeglądarki internetowe nie są częścią systemu operacyjnego, artykuł nakłada wymagania niezależnie od tego, czy te funkcje są częścią systemu operacyjnego. Zatem w obecnych okolicznościach miałoby to zastosowanie.

W świetle powyższego przypominam motyw 55: „konkurujący dostawcy usług lub sprzętu ... potrzebują równie skutecznej interoperacyjności z tymi samymi funkcjami sprzętu lub oprogramowania i równie skutecznego dostępu do tych funkcji na potrzeby interoperacyjności”.

Ponadto w motywie 57 podkreślono, że „W związku z tym na strażnikach dostępu powinien spoczywać wymóg zapewnienia nieodpłatnie skutecznej interoperacyjności z tym samym systemem operacyjnym, funkcjami sprzętu lub oprogramowania i dostępu do nich na potrzeby interoperacyjności, które to system i funkcje są dostępne dla nich lub używane przez nich do świadczenia własnych uzupełniających i wspierających usług lub dostarczania własnego uzupełniającego lub wspierającego sprzętu. Takiego dostępu mogą również wymagać aplikacje związane z odpowiednimi usługami świadczonymi wraz z podstawową usługą platformową lub wspierającymi takie usługi – w celu skutecznego rozwijania i dostarczania funkcjonalności interoperacyjnych z funkcjonalnościami dostarczanymi przez strażników dostępu. Celem obowiązków jest umożliwienie konkurującym osobom trzecim łączenia się za pośrednictwem interfejsów lub podobnych rozwiązań z odpowiednimi funkcjami tak skutecznie, jak ma to miejsce w przypadku własnych usług lub sprzętu strażnika dostępu”.

Motywy te wyrażają cel ustawodawcy, zgodnie z którym gatekeeperzy muszą nie tylko ułatwiać, ale aktywnie zapewniać niedyskryminacyjny dostęp do podstawowych funkcji oprogramowania, rozszerzając takie obowiązki na przeglądarki internetowe.

Ta interpretacja nakłada na przeglądarki internetowe, jako integralne elementy ekosystemu oprogramowania, obowiązek spełniania wymogów DMA dotyczących interoperacyjności i dostępu, aby utrzymać konkurencyjny rynek cyfrowy.

Q.E.D

Podsumowanie

Niedawno miałem przyjemność opowiadać o DMA i pomagć w Open Web Advocacy w ich sprawie. Ten wpis jest zapewne jedną z nielicznych analiz i zastosowań DMA do rzeczywistych produktów technologicznych. DMA to regulacja trudna w zrozumieniu, nawet duże firmy mają trudności ze zrozumieniem i dostosowaniem się. Komisja Europejska odmawia podania bardziej szczegółowych wymagań, a niektóre przepisy są bardzo ogólne i co najwyżej niejednoznaczne.

Komentarze, zapytania, a może oferty? Zachęcam do kontaktu: me@lukaszolejnik.com




Comments is loading...

Comments is loading...