Contoh Teknik Acra | Dokumentasi dan tutorial | Instalasi | Umpan balik Acra |
---|
Acra — rangkaian keamanan basis data untuk perlindungan data sensitif dan pribadi.
Acra menyediakan enkripsi tingkat aplikasi untuk bidang data, kontrol akses berlapis, pencegahan kebocoran basis data, dan kemampuan deteksi intrusi dalam satu rangkaian. Acra dirancang khusus untuk aplikasi terdistribusi (web, sisi server, dan seluler) yang menyimpan data dalam satu atau banyak database/penyimpanan data.
Aplikasi sempurna yang kompatibel dengan Acra | Industri yang khas |
---|---|
Aplikasi web dan seluler yang menyimpan data dalam database terpusat atau penyimpanan objek |
|
Aplikasi IoT yang mengumpulkan telemetri dan memproses data di cloud | |
Aplikasi pemrosesan data dengan beban tinggi |
Acra memberi Anda alat untuk mengenkripsi setiap catatan data sensitif (bidang data, sel database, json) sebelum menyimpannya di database/penyimpanan file. Dan kemudian mendekripsinya di area kompartemen yang aman (di sisi Acra). Acra memungkinkan untuk mengenkripsi data sedini mungkin dan beroperasi pada data terenkripsi.
Desain kriptografi Acra memastikan bahwa tidak ada rahasia (kata sandi, kunci, dll.) yang bocor dari aplikasi atau database yang cukup untuk mendekripsi data yang dilindungi. Acra meminimalkan cakupan kebocoran, mendeteksi perilaku tidak sah, dan mencegah kebocoran, memberi tahu operator tentang insiden yang sedang berlangsung.
Ini adalah Acra Community Edition, gratis untuk penggunaan komersial dan non-komersial, selamanya.
| enkripsi di sisi klien dan/atau sisi Acra – setiap bidang data dienkripsi menggunakan kunci enkripsi unik. |
| Anda memilih kolom mana yang akan dienkripsi untuk menyeimbangkan keamanan dan kinerja yang baik. |
| dua amplop kripto: AcraBlocks dan AcraStructs. AcraBlocks adalah wadah simetris cepat, gunakan secara default. AcraStructs adalah wadah asimetris, gunakan untuk enkripsi sisi klien. |
| mencari melalui data terenkripsi tanpa dekripsi. Dirancang untuk kueri yang tepat , berdasarkan AES-GCM dan indeks buta. |
| gunakan penyembunyian penuh atau sebagian untuk menghapus atau menutupi data sensitif. |
| gantikan data sensitif dengan token dan cocokkan dengan data asli hanya jika diperlukan. |
| alat bawaan untuk pembuatan kunci, ekspor, pencadangan, rotasi, dll. |
| melalui firewall SQL bawaan. |
| menggunakan catatan racun (token madu) untuk memperingatkan tentang perilaku mencurigakan. |
| tersedia untuk pengguna Acra Enterprise. |
| |
|
Acra memberikan lapisan pertahanan yang berbeda untuk berbagai bagian dan tahapan siklus hidup data. Inilah yang dimaksud dengan pertahanan mendalam – serangkaian kontrol keamanan independen yang bertujuan memitigasi berbagai risiko jika ada penyerang yang melintasi batas luar.
| semua fitur Acra dikemas ke dalam proksi basis data yang memilah lalu lintas antara aplikasi dan basis data dan menerapkan fungsi keamanan jika diperlukan. |
| Server API, yang menampilkan sebagian besar fitur Acra sebagai API HTTP/gRPC dengan perlindungan lalu lintas. |
| layanan sisi klien opsional untuk otentikasi dan enkripsi transportasi. |
| tersedia untuk pengguna Acra Enterprise. |
| |
| |
| |
|
| infrastruktur Anda aman sejak awal tanpa konfigurasi tambahan. |
| tidak ada risiko memilih panjang kunci atau padding algoritma yang salah. |
| mudah dikonfigurasi dan diotomatisasi. |
| melalui paket biner atau gambar Docker. |
| memerlukan sedikit perubahan pada kode aplikasi. |
| di seluruh komponen Acra; kompatibel dengan tumpukan ELK, Datadog, Graylog, Prometheus, Grafana, Jaeger. |
| utilitas rollback untuk mendekripsi database menjadi teks biasa. |
| banyak contoh proyek berbasis web dan berbasis Docker tersedia. |
| jalankan AcraServer di cloud DigitalOcean Anda. |
| kami dapat mengatur dan mengelola Acra untuk Anda. |
Acra mengandalkan perpustakaan kriptografi kami Themis, yang mengimplementasikan sistem kriptografi tingkat tinggi berdasarkan implementasi sumber terbuka terbaik yang tersedia dari cipher paling andal. Acra sama sekali tidak berisi kriptografi primitif buatan sendiri atau sandi yang tidak jelas.
Untuk memberikan jaminan uniknya, Acra mengandalkan kombinasi cipher terkenal dan skema manajemen kunci cerdas. Lihat Kriptografi dan manajemen kunci.
Sumber kripto-primitif default | OpenSSL |
Sumber kripto-primitif yang didukung ᵉ | BoringSSL, LibreSSL, sesuai FIPS, sesuai Gost, HSM |
Enkripsi penyimpanan (AcraBlocks) | AES-256-GCM + AES-256-GCM |
Enkripsi penyimpanan (AcraStructs) | AES-256-GCM + ECDH |
Enkripsi transportasi | TLS v1.2+ atau Sesi Aman Themis |
Integrasi KMS ᵉ | Amazon KMS, Google Cloud Platform KMS, HashiCorp Vault, Keywhiz, dll |
ᵉ — hanya tersedia di Acra versi Perusahaan. Kirimkan email kepada kami untuk mendapatkan daftar lengkap fitur dan penawaran harga.
Acra terdiri dari beberapa layanan dan utilitas. Layanan Acra memungkinkan Anda membangun aliran data canggih tanpa batas yang sangat sesuai dengan infrastruktur Anda. Bergantung pada arsitektur dan kasus penggunaan Anda, Anda mungkin perlu menerapkan layanan dasar saja atau semuanya.
Komponen penegakan keamanan : layanan tempat "enkripsi terjadi". Salah satunya diperlukan: AcraServer, AcraTranslator, AnyProxy, atau SDK sisi klien.
Penyimpanan kunci: penyimpanan data tempat Acra menyimpan kunci terenkripsi: Redis, tabel di database Anda, penyimpanan KV mana pun. Salah satunya diperlukan.
Penyimpanan kunci utama: KMS, Vault. Salah satunya sangat disarankan.
Layanan dan utilitas tambahan: utilitas manajemen kunci, skrip migrasi data, layanan keamanan transportasi, alat manajemen kebijakan. Salah satunya adalah opsional.
Lihat Acra mendalam / Arsitektur untuk mempelajari lebih lanjut tentang komponen Acra. Lihat alur data / mendalam Acra untuk melihat aliran data dan penerapan berbasis Acra yang lebih umum.
Mari kita lihat aliran data paling sederhana dengan AcraServer.
AcraServer berfungsi sebagai proxy enkripsi/dekripsi transparan dengan database SQL. Aplikasi tidak mengetahui bahwa data telah dienkripsi sebelum sampai ke database, database juga tidak mengetahui bahwa ada seseorang yang telah mengenkripsi data tersebut. Itu sebabnya kami sering menyebut mode ini sebagai "enkripsi transparan".
Anda memiliki aplikasi sisi klien yang berkomunikasi dengan database SQL. Anda menambahkan AcraServer di tengah, berfungsi sebagai proxy SQL, dan mengarahkan aplikasi ke sana.
Seperti inilah proses penulisan dan pembacaan data ke/dari database:
Anda menerapkan AcraServer dan mengonfigurasinya: koneksi ke database, sertifikat TLS, memilih bidang mana yang akan dienkripsi, menyamarkan atau memberi token, mengaktifkan firewall permintaan SQL, dll.
Setelah AcraServer diterapkan, AcraServer siap menerima permintaan SQL.
Anda mengarahkan aplikasi sisi klien ke AcraServer dan bukan database SQL.
Saat menerima kueri SQL dari aplikasi, AcraServer mem-parsing setiap kueri dan melakukan operasi keamanan: enkripsi, masking, tokenisasi. Untuk mengetahui nilai mana yang harus diubah, AcraServer menggunakan file konfigurasi tempat Anda menjelaskan kolom mana yang harus dienkripsi, disamarkan, dan diberi token.
Setelah melakukan operasi, AcraServer meneruskan kueri yang dimodifikasi ke database, dan respons database – kembali ke aplikasi klien. Misalkan Anda memilih untuk mengenkripsi bidang email: ini berarti string asli dienkripsi ke dalam wadah kriptografi dan dikirim ke database sebagai data biner.
Saat aplikasi klien ingin membaca data, aplikasi klien mengirimkan kueri SELECT ke AcraServer yang mengirimkannya ke database.
Setelah mengambil respons database, AcraServer mencoba mendekripsi, membuka kedok, mendetokenisasi bidang tertentu, dan mengembalikannya ke aplikasi.
Aplikasi menerima data dalam bentuk teks biasa.
Kecuali untuk operasi pemrosesan data, AcraServer juga menganalisis kueri SQL: memblokir kueri yang tidak diinginkan menggunakan firewall SQL bawaan yang dapat dikonfigurasi, mendeteksi injeksi SQL menggunakan catatan racun, mengirimkan log dan metrik, dan memperingatkan tim Operasi Anda jika ada kasus yang mencurigakan.
Lihat Panduan: Mengintegrasikan AcraServer ke dalam infrastruktur untuk mempelajari lebih lanjut tentang fitur-fitur AcraServer dan cara menggunakannya.
Mari kita lihat aliran data paling sederhana dengan AcraTranslator.
AcraTranslator berfungsi sebagai Enkripsi sebagai Layanan menggunakan HTTP dan API gRPC. Aplikasi mengirimkan permintaan API ke AcraTranslator dengan bidang data dan operasi (enkripsi, dekripsi, tokenisasi, detokenisasi, dll). Aplikasi ini bertanggung jawab untuk menyimpan data terenkripsi dalam database (NoSQL, KV store, SQL, AWS S3 – apa saja) dan berkomunikasi dengan AcraTranslator untuk mendekripsinya kembali.
AcraTranslator dan AcraServer merupakan komponen sisi server yang sepenuhnya independen dan dapat digunakan bersama atau terpisah bergantung pada infrastruktur Anda.
Anda memiliki aplikasi sisi klien yang mengetahui bidang mana yang harus dienkripsi, didekripsi, diberi token, dan di mana menyimpannya. Anda menambahkan AcraTranslator, dan mengajarkan aplikasi untuk melakukan panggilan API untuk menggunakannya.
Seperti inilah proses penulisan dan pembacaan data ke/dari database:
Anda menyebarkan AcraTranslator di infrastruktur Anda dan mengonfigurasi sertifikat TLS.
Setelah AcraTranslator diterapkan, AcraTranslator siap menerima permintaan API.
Aplikasi Anda memanggil AcraTranslator dan mengirimkan bidang data dan operasi pada bidang tersebut (enkripsi, dekripsi, tokenisasi, detokenisasi).
Saat menerima permintaan API, AcraTranslator melakukan operasi yang diperlukan dan mengirimkan hasilnya kembali ke aplikasi. Misalkan aplikasi mengirimkan bidang "email" dan operasi "enkripsi". Dalam hal ini, string asli dienkripsi ke dalam wadah kriptografi dan dikirim kembali ke aplikasi sebagai data biner.
Aplikasi mengambil data terenkripsi dan menyimpannya di database/penyimpanan data.
Setelah aplikasi perlu mendapatkan data teks biasa, aplikasi membaca data terenkripsi dari database/penyimpanan data, dan mengirimkan permintaan API ke AcraTranslator. Misalkan aplikasi mengirimkan bidang "email" dan operasi "dekripsi". Dalam hal ini, data asli (gumpalan biner) didekripsi menjadi string dan dikirim kembali ke aplikasi.
Kecuali untuk operasi pemrosesan data, AcraTranslator juga menganalisis kueri API: mendeteksi intrusi menggunakan catatan racun, mengirimkan log dan metrik, dan memperingatkan tim Operasi Anda jika ada kasus yang mencurigakan.
Lihat Panduan: Mengintegrasikan AcraTranslator ke dalam infrastruktur untuk mempelajari lebih lanjut tentang fitur AcraServer dan cara menggunakannya.
Acra adalah rangkaian komponen, sebagian besar bersifat "sisi server", artinya Anda menerapkan dan mengonfigurasi AcraServer, AcraTranslator, atau AnyProxy, dan menyambungkan aplikasi sisi klien ke komponen tersebut.
Komponen Acra kompatibel dengan berbagai RDBMS, penyimpanan objek dan KV, platform cloud, sistem manajemen kunci eksternal (KMS), dan sistem penyeimbangan beban.
Platform awan | DigitalOcean, AWS, GCP, Heroku, apa saja |
RDBMS | MySQL v5.7+, PosgtreSQL v9.4-v11, MariaDB v10.3; Google Cloud SQL, Amazon RDS |
Penyimpanan objek | sistem file, database KV, Amazon S3, Google Cloud DataStore |
Penyeimbangan beban | HAProxy, penyeimbang cloud |
Platform sisi server | Ubuntu, Debian, CentOS, RHEL; Buruh pelabuhan |
Bahasa aplikasi sisi klien | setiap :) |
Open source Acra memiliki dukungan integrasi terbatas, lebih banyak layanan tersedia di Acra Enterprise Edition saja.
Komponen Acra sisi server (AcraServer, AcraTranslator, AnyProxy) harus dijalankan pada server/VM terpisah untuk isolasi dan kompartementalisasi yang lebih baik. Utilitas manajemen kunci dan pembantu basis data biasanya dijalankan di server yang sama dengan AcraServer, AcraTranslator, AnyProxy.
Komponen Acra sisi server berjalan di sebagian besar distributif Linux (Ubuntu, Debian, CentOS) dan sebagai image Docker. Catatan, komponen Acra sisi server tidak kompatibel dengan OS Windows sebagai OS host, pertimbangkan untuk menggunakan Docker.
Lihat Memulai untuk mempelajari cara menginstal Acra atau mencoba Acra tanpa coding.
Acra bekerja dengan aplikasi klien apa pun. Apa pun bahasa yang Anda gunakan untuk menulis aplikasi, Anda dapat menghubungkannya ke AcraServer (melalui SQL) dan AcraTranslator/AnyProxy (melalui API) untuk mengenkripsi, mendekripsi, memberi token, dan menutupi data.
Acra menyediakan serangkaian SDK sisi klien yang hanya berguna dalam kasus penggunaan tertentu:
AcraWriter – SDK untuk mengenkripsi bidang data ke AcraStructs. Gunakan ketika mengenkripsi data di sisi aplikasi penting (untuk membangun aliran data terenkripsi ujung ke ujung atau bekerja di lingkungan yang tidak bersahabat).
AcraReader – SDK untuk mendekripsi bidang data dari AcraStructs. Gunakan ketika mendekripsi data di sisi aplikasi penting (untuk membangun aliran data terenkripsi ujung ke ujung atau bekerja di lingkungan yang tidak bersahabat).
SDK untuk AcraTranslator – SDK yang merangkum API AcraTranslator untuk penggunaan yang lebih nyaman.
SDK ini tersedia untuk Ruby, Python, Go, C++, Node.js, iOS (Swift, ObjC), Android (Java, Kotlin), desktop Java, dan PHP.
Lihat Memulai untuk mempelajari cara menginstal Acra atau mencoba Acra tanpa coding.
Proyek Contoh Acra mengilustrasikan integrasi rangkaian perlindungan data Acra ke dalam aplikasi yang ada: aplikasi web berdasarkan kerangka kerja Django dan Ruby on Rails, dan aplikasi CLI sederhana. Kami mengambil aplikasi terkenal, mendeteksi data sensitif di sana dan menambahkan lapisan enkripsi. Perlindungan data sepenuhnya transparan bagi pengguna dan hanya memerlukan sedikit perubahan pada infrastruktur dan kode aplikasi.
Ramah pengembang dan Operasi:
jalankan satu perintah untuk menyebarkan aplikasi, database, komponen Acra, log, dan dasbor;
membaca perubahan kode dan melihat betapa sedikitnya yang diperlukan untuk mengintegrasikan enkripsi ke dalam aplikasi klien;
pelajari cara kerja Acra dengan membaca log, memantau metrik di Prometheus, memeriksa pelacak di Jaeger, dan melihat dasbor Grafana;
memeriksa file pembuat Docker, skema arsitektur, tabel database, dan banyak lagi.
Persyaratan: Linux atau macOS dengan Docker terinstal.
Jalankan Proyek Contoh Acra |
---|
Versi terbaru dokumentasi, tutorial, dan demo untuk Acra tersedia di Server Dokumentasi Cossack Labs resmi.
Untuk mendapatkan pemahaman awal tentang Acra, Anda mungkin ingin:
Apa itu Acra untuk mendapatkan gambaran umum tentang berbagai hal.
Kontrol keamanan Acra untuk mempelajari lebih lanjut tentang enkripsi, masking, tokenisasi, firewall SQL, deteksi intrusi, dll.
Aliran data umum yang menunjukkan komponen Acra mana yang Anda perlukan dan apa Kelebihan dan Kekurangan dari setiap kombinasi.
Baca catatan tentang arsitektur dan desain keamanan Acra untuk memahami lebih baik apa yang Anda dapatkan saat menggunakan Acra dan model ancaman apa yang digunakan Acra.
Anda juga dapat melihat slide pembicara untuk pembicaraan berikut oleh para insinyur Cossack Labs:
"Enkripsi Tanpa Sihir, Manajemen Risiko Tanpa Rasa Sakit" oleh Anastasiia Voitova.
"Enkripsi data untuk aplikasi web Ruby" oleh Dmytro Shapovalov.
"Membangun firewall SQL (AcraCensor): wawasan dari pengembang" oleh Artem Storozhuk.
Jalankan Proyek Contoh Acra |
---|
Acra dapat membantu Anda mematuhi peraturan privasi saat ini, seperti:
Peraturan Perlindungan Data Umum (GDPR)
HIPAA (Undang-Undang Portabilitas dan Akuntabilitas Asuransi Kesehatan)
DPA (Undang-Undang Perlindungan Data)
CCPA (Undang-Undang Privasi Konsumen California)
Mengonfigurasi dan menggunakan Acra dalam formulir yang ditentukan akan mencakup sebagian besar tuntutan yang dijelaskan dalam pasal 25, 32, 33, dan 34 GDPR serta tuntutan perlindungan data PII dari HIPAA. Baca lebih lanjut tentang Acra dan Peraturannya.
Ini adalah Acra Community Edition, versi open source dari Acra, yang gratis untuk penggunaan komersial dan non-komersial. Harap beri tahu kami di Masalah jika Anda menemukan bug, melihat kemungkinan peningkatan, atau memberikan komentar tentang desain keamanan.
Tersedia juga Acra Enterprise Edition. Ini memberikan kinerja yang lebih baik, redundansi/penyeimbangan beban, sudah dikonfigurasi sebelumnya dengan kripto-primitif pilihan Anda (FIPS, GOST), memiliki integrasi dengan alat manajemen kunci/rahasia di tumpukan Anda, manajemen kebijakan, SDK sisi klien, dan memiliki banyak utilitas dan alat untuk Operasi dan SRE Anda untuk mengoperasikan Acra dengan nyaman. Bicaralah dengan kami untuk mendapatkan daftar fitur lengkap dan penawaran.
Dibutuhkan lebih dari sekedar mendapatkan kode kriptografi untuk dikompilasi guna mengamankan data sensitif. Acra tidak akan membuat Anda “patuh” terhadap semua peraturan keamanan modern, dan tidak ada alat lain yang bisa melakukannya.
Kami membantu perusahaan merencanakan strategi keamanan data mereka dengan mengaudit, menilai aliran data, dan mengklasifikasikan data, serta menghitung risikonya. Kami melakukan bagian yang paling sulit dan paling sedikit dihadiri dalam mencapai kepatuhan – mengubahnya dari “biaya menjalankan bisnis” menjadi “kerangka keamanan yang mencegah risiko”.
Jika Anda ingin menyumbangkan kode Anda atau memberikan masukan lainnya ke Acra, silakan. Titik awal Anda untuk berkontribusi ada di sini.
Jika Anda adalah pengguna Acra, silakan tinggalkan tanggapan singkat.
Acra Community Edition dilisensikan sebagai perangkat lunak sumber terbuka Apache 2.
Jika Anda ingin mengajukan pertanyaan teknis, silakan ajukan Masalah atau tulis ke [email protected].
Untuk berbicara dengan bagian bisnis Cossack Labs Limited, kirimkan email kepada kami ke [email protected].