DOKUMEN RESMI PERNYATAAN KEAMANAN & KEPATUHAN AUDIT

Pernyataan Arsitektur Keamanan & Penyimpanan Data Pengguna

Dokumen teknis komprehensif resmi untuk auditor kepatuhan, HRD korporat, dan pengguna Portoin. Menguraikan seluruh kontrol keamanan, jaminan kriptografis, siklus hidup data, serta pemenuhan regulasi UU PDP No. 27/2022, GDPR, dan standar ISO/IEC 27001.

Versi Berlaku2026.1 (Production)
Cakupan KepatuhanUU PDP, GDPR, PCI-DSS L1
Level EnkripsiPBKDF2-600k / AES-256-GCM
Status AuditTerverifikasi Patuh

DAFTAR ISI PERNYATAAN KEAMANAN (LOMPAT CEPAT):

01

Ringkasan Eksekutif & Filosofi Keamanan

Portoin dioperasikan dengan prinsip dasar rekayasa Privacy-by-Design dan Defense-in-Depth. Sebagai platform penyedia portofolio, CV, dan berkas lamaran kerja profesional, keamanan dan kedaulatan data pengguna bukan fitur tambahan, melainkan pondasi arsitektur mutlak.

1. Privacy by Default (WASM)

Operasi dokumen sensitif seperti merger PDF dan kompresi berkas dijalankan langsung di RAM browser pengguna menggunakan WebAssembly tanpa transfer berkas mentah.

2. Least Privilege & Isolation

Semua kontainer aplikasi menonaktifkan seluruh kapabilitas root Linux (`cap_drop: ALL`) dan terikat hanya pada loopback lokal tanpa akses langsung publik.

3. Offsite Disaster Recovery

Cadangan data terenkripsi AES-256-GCM direplikasi otomatis setiap 8 jam ke penyimpanan cold-storage multi-region dengan RPO < 8 jam dan RTO < 30 menit.

02

Tabel Klasifikasi Data yang Disimpan

Portoin mengklasifikasikan data pengguna ke dalam 6 kategori terpisah dengan kontrol penyimpanan, metode perlindungan kriptografi, dan periode retensi terspesifikasi:

NoKategori DataContoh ElemenLokasi PenyimpananMetode Proteksi KriptografiPeriode Retensi
1Data Akun & Otentikasi (PII)Email, Salted Password Hash, Nama Lengkap, UUIDv4PostgreSQL DB (portoin-postgres)PBKDF2-HMAC-SHA256 (600.000 iterasi) + 32-byte Server Pepper, timingSafeEqual, dummy saltSelama akun aktif; Dihapus permanen seketika saat akun ditutup
2Data Profil Karier & PortofolioPengalaman kerja, pendidikan, ringkasan keahlian, tautan proyek, bioPostgreSQL DB (portoin-postgres)RBAC terisolasi, enkripsi volume database, kontrol granular visibilitas modul (Publik/Privat)Dikelola penuh oleh pengguna; dihapus instan via 1-Click Erasure
3Berkas & Dokumen DigitalFoto sertifikat, berkas lamaran, file PDF merger, avatar portofolioRAM Browser (WASM) / /srv/portoin/data/Diproses lokal di RAM browser; Berkas server tersimpan mode 0600/0700 & penamaan UUIDv4 acakDihapus instan saat dokumen/akun dihapus (ON DELETE CASCADE)
4Data Finansial & TransaksiOrder ID, Paket Layanan, Nominal, Status Pembayaran DOKUPostgreSQL DB (portoin-postgres)TIDAK PERNAH menyimpan nomor kartu/CVV/rekening; Tokenisasi Vault DOKU PCI-DSS Level 15 tahun sesuai regulasi perpajakan & perbankan Bank Indonesia
5Data Sesi & Rate LimitingSession tokens, brute-force rate counters, cache kueriRedis Cluster (volatile-lru)In-memory isolasi loopback 127.0.0.1, TTL otomatis 15m - 24 jam15 menit hingga 24 jam (musnah otomatis saat TTL kedaluwarsa)
6Audit Trail & Log KeamananTimestamp, Hash IP pengguna, User-Agent, Event login, Webhook signaturePostgreSQL & Systemd JournalHashing satu arah untuk IP, signature HMAC-SHA256, rotasi journalctl 7d7 hingga 30 hari untuk analisis insiden dan forensik keamanan
03

Keamanan Data saat Disimpan (Data-at-Rest)

1. Kredensial & Kriptografi Otentikasi Pengguna

Password pengguna diproteksi dengan algoritma PBKDF2-HMAC-SHA256 dengan 600.000 iterasi (standar NIST & OWASP), dikombinasikan dengan 32-byte secret server pepper.

  • Timing Attack Protection: Seluruh verifikasi hash dan token otentikasi memanggil crypto.timingSafeEqual untuk mencegah kebocoran informasi berbasis variasi waktu respons CPU.
  • User Enumeration Mitigation: Jika email yang dicari tidak terdaftar, sistem mengeksekusi dummy salt derivation secara sintetis sehingga durasi respons request login gagal selalu identik dengan user terdaftar.

2. Isolasi Penyimpanan Berkas Server & Operasi Atomik

Seluruh berkas dokumen yang tersimpan pada server dialokasikan di direktori privat /srv/portoin/data/ dengan permission ketat file mode 0600 (hanya owner proses internal) dan direktori mode 0700.

  • UUIDv4 Obfuscation: Berkas dinamai dengan UUID acak tanpa menggunakan nama asli berkas guna memblokir path traversal dan enumerasi aset.
  • Atomic Lock (.tier-lock): Modifikasi hak akses dan kuota pengguna menggunakan atomic write file locking guna mencegah race condition.

3. Jaminan Hak Penghapusan Permanen (ON DELETE CASCADE)

Basis data PostgreSQL dikonfigurasi dengan relasi ON DELETE CASCADE di seluruh tabel pengguna (portofolio, sections, items, docs, links, dan tokens). Saat pengguna menghapus akun atau berkas, seluruh data musnah secara permanen tanpa meninggalkan catatan yatim (orphan records).

04

Keamanan Data saat Transit (Data-in-Transit)

1. Enkripsi Transport Layer (TLS 1.2 & TLS 1.3) & HSTS Preload

Semua komunikasi antara klien dan server Portoin wajib melalui koneksi terenkripsi penuh. Protokol usang seperti SSL v2/v3 dan TLS 1.0/1.1 dinonaktifkan secara permanen pada level web server.

  • Strict Cipher Suites: Menggunakan cipher modern berkekuatan tinggi termasuk ECDHE-ECDSA-AES256-GCM-SHA384 dan CHACHA20-POLY1305.
  • HSTS Preload Policy: Header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload aktif untuk mencegah downgrade attack dan SSL stripping.

2. Isolasi Port Internal Loopback (127.0.0.1) & Jaringan Docker

Seluruh port kontainer internal Portoin diisolasi secara ketat dan hanya terikat pada loopback interface internal 127.0.0.1 atau bridge Docker privat:

PostgreSQL: 127.0.0.1:5432
Redis: 127.0.0.1:6379
API App: 127.0.0.1:4100-4101
Web Frontend: 127.0.0.1:4200-4201

Tidak ada port database atau service mikro yang terekspos langsung ke antarmuka internet publik VM. Reverse proxy Nginx bertindak sebagai gerbang terinspeksi tunggal.

3. Proteksi Edge WAF & Mitigasi DDoS Cloudflare

Lalu lintas web disaring melalui Cloudflare Web Application Firewall (WAF) dengan perlindungan DDoS Layer 3, 4, dan 7, filtrasi automated malicious bots, serta edge certificate caching.

05

Manajemen Cadangan & Pemulihan Bencana (Backup & DR)

1. Siklus Pencadangan Otomatis Terjadwal (Setiap 8 Jam)

Systemd timer portoin-offsite-backup.timer berjalan secara otomatis setiap 8 jam untuk memicu proses dump database PostgreSQL transaksional penuh (pg_dump --clean --if-exists).

2. Enkripsi Lokal AES-256-GCM Sebelum Transmisi

Sebelum arsip cadangan ditransmisikan keluar server, arsip dienkripsi secara lokal menggunakan algoritma simetris AES-256-GCM dengan master key terpisah dari kredensial database. Ini memastikan bahwa meskipun berkas cadangan disadap di jalur jaringan atau di pihak ketiga, data tetap 100% aman dan tidak dapat didekripsi.

3. Replikasi Offsite Cloudflare R2 & Verifikasi Checksum SHA-256

Arsip terenkripsi direplikasi ke Cloudflare R2 / S3 Cold Storage di region geografis terpisah. Setiap siklus cadangan memvalidasi hash SHA-256 pada last-manifest.json.

Target Metrik Pemulihan Bencana (DR SLA):
  • RPO (Recovery Point Objective): < 8 jam (maksimal kehilangan data antara jadwal pencadangan).
  • RTO (Recovery Time Objective): < 30 menit (waktu maksimal restorasi VM dan basis data dari cadangan terenkripsi).
06

Kontrol Akses & Kepatuhan Regulasi (UU PDP & GDPR)

1. Pengerasan Kontainer Linux (Container Hardening) & Akses SSH Kriptografis

Setiap kontainer mikro Portoin dikonfigurasi di compose.yml dengan:

cap_drop: [ALL]
security_opt: [no-new-privileges:true]

Ini memastikan bahwa tidak ada proses dalam kontainer yang dapat melakukan eskalasi hak akses menjadi root VM. Akses administratif VM dibatasi hanya via SSH Private Key (Ed25519) dengan IP Whitelisting; login password root dinonaktifkan.

2. Pemenuhan Penuh Hak Subjek Data UU PDP No. 27 Tahun 2022

Pasal 20 (Dasar Pemrosesan): Pemrosesan data karier berlandaskan persetujuan eksplisit pengguna saat pendaftaran.
Pasal 27 (Hak Akses & Portabilitas): Pengguna dapat melihat dan mengekspor seluruh profil dan dokumen CV/Portofolio miliknya kapan saja dalam format standar.
Pasal 28 (Hak Perbaikan/Ralat): Pengguna memegang hak mandiri untuk memperbarui atau mengoreksi data profil secara langsung dan real-time di dashboard.
Pasal 30 (Hak Penghapusan & Pemusnahan / Right to Erasure): Dipenuhi 100% secara teknis via fitur Hapus Akun 1-Klik yang mengeksekusi PostgreSQL ON DELETE CASCADE.
Pasal 35 (Kewajiban Pengamanan): Penerapan enkripsi berstandar industri tinggi (PBKDF2-SHA256 600.000 iterasi, AES-256-GCM, TLS 1.3) memenuhi kewajiban hukum pengamanan data pribadi secara penuh.

3. Kepatuhan Transaksi PCI-DSS Level 1 & Lisensi Bank Indonesia via DOKU

Portoin mengadopsi integrasi tokenisasi langsung (Vault Direct Tokenization) dengan DOKU. Seluruh transaksi kartu kredit, transfer bank, dan QRIS diproses pada infrastruktur tersertifikasi PCI-DSS Level 1 milik DOKU yang berizin resmi Bank Indonesia. Portoin tidak pernah menyentuh, mentransmisikan, atau menyimpan data kartu mentah (PAN atau CVV), sehingga membebaskan pengguna dari risiko kebocoran data kartu pembayaran.

Butuh Verifikasi Keamanan Teknis Tambahan?

Tim rekayasa keamanan kami siap mendampingi auditor independen dan divisi HRD enterprise untuk pengisian kuesioner audit keamanan atau uji kepatuhan teknis.