BigBlueButton.plNiezależny serwis po polsku

Prywatność i dane

Dane przetwarzane podczas spotkania, nagrania i miejsca ich przechowywania.

Tłumaczenie automatyczne 4.0 Stan źródeł:
Ilustracja rozdziału: Prywatność i dane
Ilustracja z repozytorium dokumentacji BigBlueButton, tag v4.0.0. Niektóre obrazy źródłowe przedstawiają starszy interfejs. Źródło ilustracji.

Przegląd

W wielu krajach istnieją regulacje dotyczące ochrony danych. Dla operatorów usług BigBlueButton ważnym tematem są zwłaszcza regulacje dotyczące ochrony danych prywatnych. W Unii Europejskiej właściwym rozporządzeniem jest Ogólne rozporządzenie o ochronie danych (RODO). Wiele innych krajów również przyjęło podobne przepisy (na przykład California Consumer Privacy Act (CCPA) w Kalifornii w USA lub Lei Geral de Proteção de Dados (LGPD) w Brazylii), a niektóre z tych przepisów muszą być przestrzegane nawet poza tymi krajami pod pewnymi warunkami. Poniższa dokumentacja ma pomóc zrozumieć, gdzie prywatne dane są przetwarzane i przechowywane w typowej konfiguracji BigBlueButton oraz jakie są dostępne opcje konfiguracji.

Zastrzeżenie: poniższa dokumentacja nie stanowi porady prawnej ani nie jest kompletna. To jest coś w toku.

BigBlueButton

W tej sekcji opisano ustawienia związane z prywatnością, wartości domyślne i opcje konfiguracji w samym BigBlueButton. Pamiętaj, że wprowadzone tutaj zmiany konfiguracyjne mogą zostać po cichu nadpisane podczas aktualizacji za pośrednictwem apt, zobacz problem 9111 Aby temu zapobiec, upewnij się, że korzystasz z katalogu /etc/bigbluebutton, aby mieć pewność, że zmiany zostaną zachowane po aktualizacjach i ponownym uruchomieniu.

Nagrania

BigBlueButton albo nagrywa całą sesję, albo nie nagrywa wcale

Gdy w BigBlueButton zostanie utworzony pokój, który umożliwia nagrywanie (tzn. przycisk nagrywania jest widoczny) BigBlueButton nagra całą sesję. Jest to niezależne od tego, czy przycisk nagrywania jest faktycznie wciśnięty, czy nie. Technicznym powodem jest to, że części nagrań (szczególnie pliki SVG dla tablicy) zależą od wcześniejszego stanu, aby mogły zostać prawidłowo przetworzone, patrz: Nagranie Domyślnie te pliki są przechowywane przez dwa tygodnie (patrz „Przechowywanie plików pamięci podręcznej” poniżej). Ponadto, w zależności od przypadku użycia i jurysdykcji, rozsądne może być zachowanie opcji w celu tworzenia nagrań „z mocą wsteczną”, np. gdy użytkownicy zapomną kliknąć przycisk nagrywania.

Jeśli frontend (który wykorzystuje API BigBlueButton do tworzenia/uruchamiania pokoju) określi record=true, cała sesja zostanie nagrana, chyba że nagrywanie zostanie wyłączone dla wszystkich pomieszczeń w BigBlueButton. Jeśli frontend określi record=false lub nie określi tego parametru, sesja nie zostanie nagrana, a przycisk „start”/„stop” nagrywania nie będzie dostępny podczas sesji.

Rozdzielczość

Operatorzy mają co najmniej dwie opcje obsługi tego problemu:

Globalnie wyłącz nagrania w BigBlueButton

Operatorzy serwerów mogą nadpisać domyślną wartość disableRecordingDefault początkowo ustawioną w /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties, nadpisując ją w /etc/bigbluebutton/bbb-web.properties - ustaw disableRecordingDefault=false na disableRecordingDefault=true, aby globalnie wyłączyć nagrania. Ponadto należy wyłączyć nagrywanie pokojów podgrup, ustawiając breakoutRoomsRecord=false. Generalnie jest to godny polecenia pomysł (niezależnie od disableRecordingDefault=true, ponieważ pokoje typu breakout mogą wiązać się z pewnym poziomem prywatności typowych użytkowników.

Skrypt po nagraniu usuwający nagrania bez żadnych znaczników nagrywania

Operatorzy serwerów mogą wdrożyć niestandardowy skrypt, który czyści nagrania i pliki pamięci podręcznej nagrań, dla których nie utworzono znaczników nagrań.

Wersja prosta: /etc/sudoers: bigbluebutton ALL = NOPASSWD: /usr/bin/bbb-record

i

/usr/local/bigbluebutton/core/scripts/archive/archive.rb (after line 242): BigBlueButton.logger.info("There are no recording marks for #{meeting_id}, deleting the recording.") system('sudo', 'bbb-record', '--delete', "#{meeting_id}") || raise('Failed to delete local recording')

Pełniejszą wersję, która również wyraźnie usuwa pliki pamięci podręcznej nagrań dla Freeswitch/kurento, zobacz: bbb-recording-archive-obejście

BigBlueButton przechowuje prezentacje przesłane podczas sesji

BigBlueButton przechowuje prezentacje sesji w /var/bigbluebutton nawet jeśli pokój zaczyna się od record=false.

Rozdzielczość

Nieznane, niejasne, jakie działania po nagraniu zostaną uruchomione, jeśli nie zostanie utworzone żadne nagranie. DO ZROBIENIA: dodaj tutaj kilka najlepszych praktyk

BigBlueButton przechowuje pełne nieprzetworzone dane nagrań

BigBlueButton przechowuje surowe dane nagrań spotkań, które mają znaczniki nagrywania przez czas nieokreślony. Dotyczy to części sesji, w których prezenter/moderator nie kliknął jeszcze przycisku nagrywania.

Rozwiązanie

Można to rozwiązać, usuwając surowe dane nagrań po pomyślnej archiwizacji spotkania. W przypadku wdrożeń wykorzystujących Scalelite można to osiągnąć poprzez następujące zmiany:

/etc/sudoers: bigbluebutton ALL = NOPASSWD: /usr/bin/bbb-record

/usr/local/bigbluebutton/core/scripts/post_publish/scalelite_post_publish.rb, po wierszu 66: system('sudo', 'bbb-record', '--delete', "#{meeting_id}") || raise('Failed to delete local recording')

W przypadku innych wdrożeń należy dodać usunięcie /var/bigbluebutton/recording/raw/$meeting/ do skryptu poarchiwalnego.

Dane te można również usuwać okresowo, patrz Retention of cache files

Wszystkie nagrania są zawsze dostępne

Domyślnie nagrania BigBlueButton są dostępne, patrz np. numer 8505

Dodatkowo adresy URL nagrań są łatwo przeliczalne, patrz numer 1466 i numer 9443

Rozdzielczość

Administratorzy serwerów mogą zmienić konfigurację Nginx, aby ograniczyć dostęp do adresów URL nagrań. W zależności od przypadku użycia instrukcja auth w nginx może wchodzić w interakcję z używanym frontendem w celu wymuszenia dalszych ograniczeń (np. żądania tych samych danych uwierzytelniających co frontend). Na przykład opcje konfiguracji i wywołanie zwrotne uwierzytelniania do frontendu Greenlight zobacz: bbb-rec-perm

Pliki pamięci podręcznej

Stos BigBlueButton tworzy różne pliki pamięci podręcznej, gdy włączone są nagrania. Konkretnie w:

/var/bigbluebutton/recording/raw/ /var/bigbluebutton/unpublished/ /var/bigbluebutton/published/presentation/ /usr/share/red5/webapps/video/streams/ /usr/share/red5/webapps/screenshare/streams/ /usr/share/red5/webapps/video-broadcast/streams/ /var/kurento/recordings/ /var/kurento/screenshare/ /var/freeswitch/meetings/

Rozdzielczość

Informacje na temat automatycznego czyszczenia tych plików po nagraniach można znaleźć w BigBlueButton always records when recording of a room is enabled. Ponadto, aby zapobiec zapisywaniu tych danych na dysku, pliki te można zamontować za pomocą tmpfs, aby zachować pamięć podręczną zapisów w pamięci. W tym celu do /etc/fstab należy dodać następujące wiersze:

tmpfs /var/bigbluebutton/recording/raw/ tmpfs rw,nosuid,noatime,uid=998,gid=998,size=16G,mode=0755 0 0 tmpfs /var/bigbluebutton/unpublished/ tmpfs rw,nosuid,noatime,uid=998,gid=998,size=16G,mode=0755 0 0 tmpfs /var/bigbluebutton/published/presentation/ tmpfs rw,nosuid,noatime,uid=998,gid=998,size=16G,mode=0755 0 0 tmpfs /usr/share/red5/webapps/video/streams/ tmpfs rw,nosuid,noatime,uid=999,gid=999,size=16G,mode=0755 0 0 tmpfs /usr/share/red5/webapps/screenshare/streams/ tmpfs rw,nosuid,noatime,uid=999,gid=999,size=16G,mode=0755 0 0 tmpfs /usr/share/red5/webapps/video-broadcast/streams/ tmpfs rw,nosuid,noatime,uid=999,gid=999,size=16G,mode=0755 0 0 tmpfs /var/kurento/recordings/ tmpfs rw,nosuid,noatime,uid=996,gid=996,size=16G,mode=0755 0 0 tmpfs /var/kurento/screenshare/ tmpfs rw,nosuid,noatime,uid=996,gid=996,size=16G,mode=0755 0 0 tmpfs /var/freeswitch/meetings/ tmpfs rw,nosuid,noatime,uid=997,gid=997,size=16G,mode=0755 0 0

Po zastosowaniu tego administrator serwera musi wykonać bbb-conf --stop; mount -a; bbb-conf --start.

Ponadto wartości uid/gid muszą zostać dostosowane do lokalnej instalacji. W powyższym przykładzie przyjęto:

red5:x:999:999:red5 user-daemon:/usr/share/red5:/bin/false bigbluebutton:x:998:998:bigbluebutton:/home/bigbluebutton:/bin/false freeswitch:x:997:997:freeswitch:/opt/freeswitch:/bin/bash kurento:x:996:996::/var/lib/kurento:

DO ZROBIENIA: wyjaśnij, jakie są te wartości uid/gid i jak uzyskać prawidłowe

Usunięte nagrania pozostają na dysku

Kiedy nagrania są usuwane za pomocą deleteRecordings API, BigBlueButton nie usuwa ich natychmiast z dysku. Zamiast tego przenosi je do katalogu /var/bigbluebutton/deleted/ w ramach mechanizmu miękkiego usuwania. Podejście to pozwala na tymczasowe zachowanie nagrań na wypadek konieczności ich odzyskania, jednak administratorzy powinni mieć świadomość, że pliki te w dalszym ciągu zajmują miejsce na dysku i mogą zawierać wrażliwe dane, z zastrzeżeniem wymogów zgodności. Ta implementacja służy jako środek zabezpieczający przed przypadkowym usunięciem, ale wymaga wyraźnych działań administratora w celu całkowitego usunięcia nagrań i odzyskania miejsca na dysku.

System nie usuwa automatycznie tych plików, co oznacza, że ​​usunięte nagrania pozostaną w pamięci na czas nieokreślony, aż do ręcznego usunięcia. Chociaż metadane nadal pojawiają się w odpowiedziach API, same usunięte nagrania pozostają na dysku (niedostępne publicznie) do czasu ręcznego usunięcia.

Rozdzielczość

Aby całkowicie zwolnić miejsce na dysku, administratorzy muszą ręcznie usunąć pliki z systemu. Najbardziej bezpośrednią metodą jest uruchomienie:

rm -rf /var/bigbluebutton/deleted/*

To polecenie trwale usunie całą zawartość usuniętego katalogu nagrań. Ponieważ ta czynność jest nieodwracalna, zalecamy sprawdzenie kopii zapasowych przed kontynuowaniem.

Przechowywanie plików pamięci podręcznej

BigBlueButton przechowuje różne pliki pamięci podręcznej i dziennika. Ogólny okres przechowywania tych plików można skonfigurować w /etc/cron.daily/bigbluebutton.

  • history to okres przechowywania prezentacji, pamięci podręcznych Red5, pamięci podręcznej Kurento i pamięci podręcznej Freeswitch w dniach
  • unrecorded_days okresy przechowywania nagrań ze spotkań, dla których nie ustawiono znaczników nagrywania (oczekiwania użytkownika: Nie zostały zarejestrowane)
  • published_days okres przechowywania surowych danych nagrań, jeżeli zostały one opublikowane. Aby to wyłączyć, należy skomentować linię remove_raw_of_published_recordings.

Aby bezpośrednio usunąć te pamięci podręczne, zobacz 'Skrypt po nagraniu usuwający nagrania bez żadnych znaczników nagrywania'

Logi

Ogólna rotacja logów

Jeżeli operatorzy serwerów zdecydują się na przechowywanie plików nagrań i logów, powinni znać i zmienić:

  • czas przechowywania plików nagrań /etc/cron.daily/bigluebutton, przy użyciu ustawienia log_history
  • ustawienia logrotate w /etc/logrotate.d/(bbb-record-core.logrotate|bbb-webrtc-sfu.logrotate), które obracają kłody w /var/log/bbb-webrtc-sfu/ co 7 dni i /var/log/bigbluebutton/(bbb-rap-worker.log|sanity.log) co 8 dni
  • ustawienia logrotate w /usr/share/bbb-web/WEB-INF/classes/logback.xml, które codziennie zmieniają dzienniki o /var/log/bigbluebutton/bbb-web.log i przechowują je przez 14 dni

Rejestrowanie BigBlueButton

BigBlueButton rejestruje wszystkie interakcje z pokojami, tj. kiedy zostały utworzone, kto dołączył i kiedy opuścił /var/log/bigbluebutton/bbb-web.log

Szczegółowość logów aplikacji podstawowej można zmniejszyć, ustawiając appLogLevel=Error /etc/bigbluebutton/bbb-web.properties i dostosowując indywidualne ustawienia w /usr/share/bbb-web/WEB-INF/classes/logback.xml.

Aby uniknąć rejestrowania adresów IP w bbb-webrtc-sfu, ustaw level: error w /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml.

Te pliki zawierają również poziomy dziennika dotyczące użytkowania czatu i wiadomości czatu:

  • /etc/bbb-apps-akka/application.conf i /etc/bbb-apps-akka/logback.xml

nginx

Domyślnie BigBlueButton ma włączone „dzienniki pełnego dostępu” dla nginx. Dotyczy to adresów IP użytkowników, nazw użytkowników, dołączonych spotkań itp. Można to wyłączyć, przełączając poziom logowania na „ERROR” tylko w /etc/nginx/sites-available/bigbluebutton i /etc/nginx/nginx.conf:

error_log /var/log/nginx/bigbluebutton.error.log; access_log /dev/null;

freeswitch

Domyślna instalacja FreeSWITCH domyślnie loguje się z poziomem logowania DEBUG. Można to zmienić w /etc/bbb-fsesl-akka/application.conf i /etc/bbb-fsesl-akka/logback.xml. Domyślna konfiguracja przechowuje nazwy użytkowników, połączone sesje i znaczniki czasu.

Integracje

TURN serwer

BigBlueButton używa serwera TURN do przechodzenia przez NAT. Domyślnie serwer STUN z freeswitch.org jest skonfigurowany dla BigBlueButton. Możesz skonfigurować własny serwer TURN/STUN i skonfigurować go w /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.

Greenlight

Greenlight zawsze rozpoczyna nowe pokoje z nagraniem=true

Domyślnie, gdy Greenlight tworzy konferencję, wartość 'record=true' jest przekazywana do BigBlueButton. Konferencje te zostaną nagrane nawet jeśli przycisk nagrywania nie zostanie naciśnięty. Zobacz także: Nagranie

Rozdzielczość

Możesz wyłączyć nagrywanie globalnie w ustawieniach pokoju Greenlight dla wszystkich lub opcjonalnie dla wszystkich w ich pokoju. zobacz: pull request 1296 Alternatywnie, jeśli to konieczne, całkowicie wyłącz funkcję nagrywania w konfiguracji serwera BigBlueButton.

BigBlueButton nie ma funkcji zmuszającej uczestników do wyrażenia zgody na politykę prywatności lub bycia nagrywanym przed dołączeniem do pokoju. Greenlight posiada opcjonalną funkcję, którą należy włączyć w ustawieniach podstawowych: „Wymaga zgody inicjatora pokoju i uczestników na nagranie”. Dzięki temu wszyscy uczestnicy przed wejściem na konferencję otrzymają ostrzeżenie, że to pomieszczenie będzie nagrywane.

Rozdzielczość

W numerze 1163 omówiono, w jaki sposób można uwzględnić wymaganą zmianę. linia 21 dodaje zastrzeżenie. Kod można rozszerzyć o link do polityki prywatności oraz pole wyboru, które użytkownicy muszą kliknąć, aby potwierdzić, że spotkanie, do którego mają zamiar dołączyć, zostanie zarejestrowane i że wyrażą na to zgodę; Przycisk dołączania powinien być włączony tylko wtedy, gdy ten znacznik wyboru jest ustawiony.

Bardziej istotna zmiana w BigBlueButton i Greenlight polegałaby na nagrywaniu selektywnym, tj. wykluczaniu treści wideo, audio, czatów i rysunków od użytkowników, którzy nie wyrazili zgody na nagrywanie.

Greenlight zawiera nazwy użytkowników w adresach URL pokoi

W Greenlight adresy URL pokoi zawierają nazwę użytkownika właściciela, która może być również danymi prywatnymi w zależności od lokalnych przepisów. Rozwiązanie tego zależy od problemu 1057

Warunki korzystania z usługi

Greenlight obsługuje wyświetlanie warunków dla zarejestrowanych użytkowników lub po rejestracji.

Wszystkie nagrania są zawsze dostępne

Domyślnie dostępne są nagrania BigBlueButton, patrz np. numer 8505 . Dodatkowo adresy URL nagrań są łatwo przeliczalne, patrz numer 1466 i numer 9443.

Greenlight domyślnie udostępnia dwa ustawienia nagrań: publiczne, tj. nagranie jest wymienione na stronie pokoju i niepubliczne, tj. nagranie jest dostępne wyłącznie poprzez (wyliczalny) bezpośredni link.

Rozdzielczość

Greenlight można załatać, aby umożliwić bardziej precyzyjną kontrolę widoczności nagrań i publikacji. Za pomocą opcji rec_restrictions do menu rozwijanego widoczności nagrania (public/unlisted/private) dodawana jest trzecia wartość, która prowadzi do ustawienia odpowiednich metadanych nagrania (gl-listed=true/unlisted/false) w nagraniu albo w Scalelite, albo na hoście BigBlueButton.

bbb-rec-perm można następnie użyć do sprawdzenia żądań nagrań pod kątem tych metadanych, zwracając kod 403, jeśli nagranie jest ustawione jako prywatne, i zwracając nagranie, jeśli jest ustawione jako niepubliczne lub publiczne.

Logi

Logi Railsów

Domyślnie Greenlight loguje się do $GREENLIGHTDIR/logs/production.log. Usunięcie tej linii z pliku .env powoduje zachowanie dzienników, ale nie udostępnia ich hostowi okna dokowanego. Najłatwiejszym rozwiązaniem jest połączenie $GREENLIGHTDIR/logs/production.log z /dev/null

Logi nginx

Domyślnie Greenlight ma włączone logi pełnego dostępu dla nginx. Obejmuje to adresy IP użytkowników, nazwy użytkowników, dołączone spotkania itp. Można to wyłączyć, przełączając poziom logowania na „ERROR” tylko w /etc/nginx/sites-available/bigbluebutton i /etc/nginx/nginx.conf:

error_log /var/log/nginx/bigbluebutton.error.log; access_log /dev/null;

powrót

Domyślnie przywraca logi do /var/log/coturn.log, z regularną rotacją dzienników. Ten plik dziennika zawiera adresy IP użytkowników korzystających z serwera TURN oraz używane przez nich porty. Razem z innymi dziennikami BigBlueButton umożliwia to identyfikację sesji, do których dołączyli ci użytkownicy.

coturn nie ma możliwości ograniczenia logowania. Najlepszą opcją jest tutaj połączenie /var/log/coturn.log z /dev/null

Scalelite

Logi

Logi Nginx

Scalelite używa kontenera z uruchomionym Nginx jako frontendem, który gromadzi standardowe logi dostępu. Domyślnie Scalelite ma włączone logi pełnego dostępu dla nginx. Dotyczy to adresów IP użytkowników, nazw użytkowników, dołączonych spotkań, obserwowanych spotkań itp. Najłatwiejszym sposobem rozwiązania tego problemu jest migracja nginx do hosta, a tym samym pozbycie się Dockera.

Następnie można wyłączyć logowanie poprzez zmianę poziomu logowania na 'ERROR' w /etc/nginx/sites-available/bigbluebutton i /etc/nginx/nginx.conf:

error_log /var/log/nginx/bigbluebutton.error.log; access_log /dev/null;

Dzienniki Scalelite-API-Container

Kontener obrazu Scalelite-API-Image (blindsidenetwks/scalelite:v1-api) rejestruje także działania użytkownika. Na przykład: Kto dołączył do którego spotkania:

{"log":"I, [<timestamp>] INFO -- : [<some_identifier>] Redirected to https://<URL>/bigbluebutton/api/join?meetingID=<meeting_ID>\u0026fullName=<name>\u0026password=<hashed_pw>... }

W wersji Scalelite 1.0.9 wprowadzono rotację logów. Są one automatycznie usuwane po jednym dniu.

Ogólne uwagi dotyczące RODO

RODO wymienia kilka ważnych kwestii, w szczególności:

  • Prawo do żądania zbioru (do odczytu maszynowego) wszystkich przechowywanych prywatnych danych
  • Prawo do usunięcia wszystkich danych osobowych
  • Ograniczenie celu
  • Minimalizacja danych
  • Ograniczenie przechowywania

Powyższe stwarza wyzwania w kontekście BigBlueButton, zwłaszcza biorąc pod uwagę możliwość anonimowego łączenia pokoi. Oznacza to, że operator może nie być w stanie łatwo zidentyfikować wszystkich przechowywanych prywatnych informacji powiązanych z użytkownikiem, nawet jeśli są to dane osobowe/prywatne, np. nagrania z kamery internetowej pokoju, do którego dołączono jako gość pod pseudonimem .

W wielu przypadkach najłatwiejszym rozwiązaniem jest w ogóle nie przechowywać żadnych prywatnych danych użytkowników. Obejmuje to zmniejszenie poziomu rejestrowania lub wyłączenie rejestrowania (log do /dev/null), przechowywanie danych tymczasowych wyłącznie w pamięci (tmpfs) zamiast na dysku oraz wyłączenie funkcji nagrywania sesji. Nawet po wykonaniu tej czynności serwer BigBlueButton nadal przetwarza wszystkie te dane. Dlatego zazwyczaj konieczna jest umowa powierzenia przetwarzania danych od firmy hostingowej, a także należy przekazać użytkownikom usługi informacje o przetwarzaniu danych prywatnych.