Privacy and security in cloud systems
Vitor Mattos
Making dreams real since 2003
OpenSource lover
Speaker
PHP Zend Certified Engineer ( ZEND024235 )
PHPRio ( https://telegram.me/phprio )
CTO LibreCode
Social networks: VitorMattos or VitorMattosRJ


"Federal law enforcement to compel U.S.-based technology companies via warrant or subpoena to provide requested data stored on servers regardless of whether the data are stored in the U.S. or on foreign soil."
From: Wikipedia
CLOUD Act
CLOUD Act
compliance problems
- LGPD
- GDPR




The solution



The origin of Nextcloud
Fork

Frank Karlitschek
KDE contributor since 2001

Safe authentication

Safe authentication

Safe authentication

Two-Factor Notifications
Safe authentication
Two-Factor email verification

Safe authentication
Two-Factor Gateway
- TOTP
- SMS
- Telegram
- Signal
- U2F


Other login ways

Custom OAuth2

Open
LDAP
Other login ways
Other login ways
'user_backend_sql_raw' => array(
//'db_type' => 'postgresql',
//'db_host' => 'localhost',
//'db_port' => '5432',
'db_name' => 'theNameOfYourUserDatabase',
'db_user' => 'yourDatabaseUser',
'db_password' => 'thePasswordforTheDatabaseUser',
//'mariadb_charset' => 'utf8mb4',
'queries' => [
'get_password_hash_for_user' => 'SELECT password_hash FROM users_fqda WHERE fqda = :username',
'user_exists' => 'SELECT EXISTS(SELECT 1 FROM users_fqda WHERE fqda = :username)',
'get_users' => 'SELECT fqda FROM users_fqda WHERE (fqda ILIKE :search) OR (display_name ILIKE :search)',
//'set_password_hash_for_user' => 'UPDATE users SET password_hash = :new_password_hash WHERE local = split_part(:username, \'@\', 1) AND domain = split_part(:username, \'@\', 2)',
//'delete_user' => 'DELETE FROM users WHERE local = split_part(:username, \'@\', 1) AND domain = split_part(:username, \'@\', 2)',
//'get_display_name' => 'SELECT display_name FROM users WHERE local = split_part(:username, \'@\', 1) AND domain = split_part(:username, \'@\', 2)',
//'set_display_name' => 'UPDATE users SET display_name = :new_display_name WHERE local = split_part(:username, \'@\', 1) AND domain = split_part(:username, \'@\', 2)',
//'count_users' => 'SELECT COUNT (*) FROM users',
//'get_home' => '',
//'create_user' => 'INSERT INTO users (local, domain, password_hash) VALUES (split_part(:username, \'@\', 1), split_part(:username, \'@\', 2), :password_hash)',
],
Other login ways

Files can be encrypted on the server.
Data traffic is always encrypted
Data security

File access control
Proteção contra Ransomware
histórico de mudanças

Data security
Self-hosted.
Who owns your data?

O Nextcloud Files oferece uma plataforma universal de acesso e sincronização de arquivos no local, com poderosos recursos de colaboração e interfaces de desktop, móveis e web.

Automations

Automations

Digital signateure

Data Analytics

Monitoring


Logs

Action Monitoring

Integration with monitoring tools
Email client

Online calendar

Contact Management


Contacts and calendar sync
Task manager


Integrations

Online document editors
DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF, Import/View Visio, Publisher e outros
Edição online de documentos
DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF, Import/View Visio, Publisher e outros


Armazenamento externo
Armazenamento externo
Integração com outros meios de armazenamento online

Full text search


Videoconferência
E muito mais
com apps

Integrações / clientes





Docker
Setup

Self-hosting
Setup


self-hosted
Setup

self-hosted
easy setup
Setup
SaaS and cloud
Development
Server

Development
Server

Development
Front

LGPD & GDPR
Encriptação
Auditável, transparente
Total controle de acesso
LGPD & GDPR



COMPLIANCE
Soluções self-hosted facilitam compliance
Manter dados sensíveis na rede interna