阿克拉工程實例 | 文件和教學課程 | 安裝 | 阿克拉反饋 |
---|
Acra — 用於保護敏感資料和個人資料的資料庫安全套件。
Acra 在一套套件中提供資料欄位的應用程式級加密、多層存取控制、資料庫防洩漏和入侵偵測功能。 Acra 專為將資料儲存在一個或多個資料庫/資料儲存中的分散式應用程式(Web、伺服器端和行動裝置)而設計。
完美與 Acra 相容的應用程式 | 典型產業 |
---|---|
將資料儲存在集中式資料庫或物件儲存中的 Web 和行動應用程式 |
|
在雲端收集遙測資料和處理資料的 IoT 應用程式 | |
高負載數據處理應用程式 |
Acra 為您提供了在將每個敏感資料記錄(資料欄位、資料庫單元、json)儲存到資料庫/檔案儲存之前對其進行加密的工具。然後在安全隔離區域(阿克拉一側)解密它們。 Acra 允許儘早加密資料並對加密資料進行操作。
Acra 的加密設計可確保從應用程式或資料庫洩漏的任何秘密(密碼、金鑰等)都不足以解密受保護的資料。 Acra 最大限度地減少洩漏範圍、偵測未經授權的行為並防止洩漏,並通知操作員正在發生的事件。
這是 Acra 社群版,商業和非商業用途永遠免費。
| 用戶端和/或 Acra 端加密 – 每個資料欄位都使用唯一的加密金鑰進行加密。 |
| 您可以選擇要加密的列以平衡良好的安全性和效能。 |
| 兩個加密信封:AcraBlocks 和 AcraStructs。 AcraBlocks 是快速對稱容器,預設使用它們。 AcraStructs 是非對稱容器,使用它們進行客戶端加密。 |
| 搜尋加密資料而不解密。專為精確查詢而設計,基於 AES-GCM 和盲索引。 |
| 使用完全或部分屏蔽來刪除或屏蔽敏感資料。 |
| 用令牌替換敏感數據,並僅在需要時將其與原始數據進行匹配。 |
| 用於金鑰產生、匯出、備份、輪替等的內建工具。 |
| 透過內建的 SQL 防火牆。 |
| 使用有毒記錄(蜂蜜令牌)來警告可疑行為。 |
| 可供 Acra Enterprise 用戶使用。 |
| |
|
Acra 為資料生命週期的不同部分和階段提供不同的防禦層。這就是深度防禦——一組獨立的安全控制,旨在在攻擊者越過外圍時減輕多種風險。
| 所有 Acra 功能都打包到資料庫代理程式中,該代理程式解析應用程式和資料庫之間的流量,並在適當的情況下應用安全功能。 |
| API 伺服器,將 Acra 的大部分功能公開為具有流量保護的 HTTP / gRPC API。 |
| 用於身份驗證和傳輸加密的可選客戶端服務。 |
| 可供 Acra Enterprise 用戶使用。 |
| |
| |
| |
|
| 您的基礎架構從一開始就是安全的,無需額外配置。 |
| 沒有選擇錯誤密鑰長度或演算法填充的風險。 |
| 易於配置和自動化。 |
| 透過二進位包或 Docker 映像。 |
| 需要對應用程式程式碼進行最少的更改。 |
| 貫穿所有 Acra 組件; 相容於 ELK 堆疊、Datadog、Graylog、Prometheus、Grafana、Jaeger。 |
| 將資料庫解密為明文的回溯實用程式。 |
| 有大量基於 Web 和基於 Docker 的範例專案可用。 |
| 在您的 DigitalOcean 雲端中執行 AcraServer。 |
| 我們可以為您設定和管理 Acra。 |
Acra 依賴我們的密碼庫 Themis,該庫基於最可靠密碼的最佳可用開源實作來實現高級密碼系統。 Acra 嚴格不含自製的加密原語或晦澀的密碼。
為了提供獨特的保證,Acra 依靠眾所周知的密碼和智慧金鑰管理方案的組合。請參閱密碼學和密鑰管理。
預設加密原始來源 | 開放式SSL |
支援的加密原始源ᵉ | BoringSSL、LibreSSL、符合 FIPS、符合 GOST、HSM |
儲存加密(AcraBlocks) | AES-256-GCM + AES-256-GCM |
儲存加密 (AcraStructs) | AES-256-GCM + ECDH |
傳輸加密 | TLS v1.2+ 或 Themis 安全會話 |
KMS 整合ᵉ | Amazon KMS、Google 雲端平台 KMS、HashiCorp Vault、Keywhiz 等 |
ᵉ — 僅在 Acra 企業版中可用。請給我們發送電子郵件以獲取完整的功能清單和報價。
Acra 由多種服務和公用設施組成。 Acra 服務可讓您建立無限複雜的資料流,完全適合您的特定基礎架構。根據您的架構和用例,您可能只需要部署基本服務或全部服務。
安全執行元件:「發生加密」的服務。其中之一是必需的:AcraServer、AcraTranslator、AnyProxy 或客戶端 SDK。
金鑰儲存: Acra 保存加密金鑰的資料儲存:Redis、資料庫中的表、任何 KV 儲存。其中之一是必需的。
主密鑰儲存: KMS、Vault。強烈推薦其中之一。
附加服務與公用程式:金鑰管理公用程式、資料遷移腳本、傳輸安全服務、策略管理工具。其中任何一個都是可選的。
請參閱 Acra 深入/架構以了解有關 Acra 組件的更多資訊。請參閱 Acra 深入/資料流,以了解更多典型的基於 Acra 的資料流和部署。
讓我們看看 AcraServer 最簡單的資料流。
AcraServer 作為 SQL 資料庫的透明加密/解密代理程式。應用程式在資料到達資料庫之前不知道資料已加密,資料庫也不知道有人已加密資料。這就是為什麼我們經常稱這種模式為「透明加密」。
您有一個與 SQL 資料庫對話的客戶端應用程式。您在中間新增 AcraServer,作為 SQL 代理,並將應用程式指向它。
這是向資料庫寫入資料和從資料庫讀取資料的過程如下所示:
您部署 AcraServer 並對其進行配置:連接到資料庫、TLS 憑證、選擇要加密、屏蔽或標記化的欄位、啟用 SQL 請求防火牆等。
AcraServer 部署完成後,就可以接受 SQL 請求。
您將客戶端應用程式指向 AcraServer 而不是 SQL 資料庫。
從應用程式接收 SQL 查詢後,AcraServer 會解析每個查詢並執行安全性操作:加密、屏蔽、標記化。為了知道要更改哪些值,AcraServer 使用一個配置文件,您在其中描述了哪些列應該被加密、屏蔽、標記化。
執行操作後,AcraServer 將修改後的查詢傳遞給資料庫,並將資料庫回應傳回客戶端應用程式。假設您選擇對電子郵件欄位進行加密:這表示原始字串被加密到加密容器中並以二進位資料傳送到資料庫。
當客戶端應用程式想要讀取資料時,它會向 AcraServer 發送 SELECT 查詢,然後 AcraServer 將其傳送到資料庫。
檢索資料庫回應後,AcraServer 嘗試解密、去屏蔽、去令牌化指定字段,並將其傳回給應用程式。
應用程式以明文形式接收資料。
除了資料處理操作之外,AcraServer 還分析SQL 查詢:使用內建的可設定SQL 防火牆阻止不必要的查詢,使用有害記錄偵測SQL 注入,發送日誌和指標,並在可疑情況下向您的營運團隊發出警報。
查看指南:將 AcraServer 整合到基礎架構中,以了解有關 AcraServer 功能及其使用方法的更多資訊。
讓我們看看 AcraTranslator 的最簡單的資料流。
AcraTranslator 使用 HTTP 和 gRPC API 作為加密即服務。應用程式向 AcraTranslator 發送包含資料欄位和操作(加密、解密、標記化、去標記化等)的 API 請求。該應用程式負責將加密資料儲存在資料庫(NoSQL、KV 儲存、SQL、AWS S3 – 任何)中,並與 AcraTranslator 通訊以將其解密。
AcraTranslator 和 AcraServer 是完全獨立的伺服器端元件,可根據您的基礎架構一起或單獨使用。
您有一個客戶端應用程序,它知道要加密、解密、標記化哪些欄位以及將它們儲存在哪裡。您新增 AcraTranslator,並指導應用程式執行 API 呼叫以使用它。
這是向資料庫寫入資料和從資料庫讀取資料的過程如下所示:
您在基礎架構中部署 AcraTranslator 並設定 TLS 憑證。
部署 AcraTranslator 後,它可以接受 API 要求。
您的應用程式呼叫 AcraTranslator 並傳送資料欄位和對其進行的操作(加密、解密、標記化、去標記化)。
收到 API 請求後,AcraTranslator 執行所需的操作並將結果傳送回應用程式。假設應用程式發送“電子郵件”欄位和“加密”操作。在這種情況下,原始字串被加密到加密容器中並作為二進位資料發送回應用程式。
應用程式獲取加密資料並將其儲存在資料庫/資料儲存中。
一旦應用程式需要獲取明文數據,它就會從資料庫/資料儲存中讀取加密數據,並向 AcraTranslator 發送 API 請求。假設應用程式會傳送「電子郵件」欄位和「解密」操作。在這種情況下,原始資料(二進位 blob)將被解密為字串並發回應用程式。
除了資料處理操作之外,AcraTranslator 還分析 API 查詢:使用有害記錄偵測入侵、傳送日誌和指標,並在可疑情況下向您的營運團隊發出警報。
查看指南:將 AcraTranslator 整合到基礎架構中,以了解有關 AcraServer 功能及其使用方法的更多資訊。
Acra 是一套元件,其中大部分是“伺服器端”,這意味著您可以部署和設定 AcraServer、AcraTranslator 或 AnyProxy,並將客戶端應用程式連接到它們。
Acra 元件與眾多 RDBMS、物件和 KV 儲存、雲端平台、外部金鑰管理系統 (KMS)、負載平衡系統相容。
雲端平台 | DigitalOcean、AWS、GCP、Heroku、任何 |
關係型資料庫管理系統 | MySQL v5.7+、PosgtreSQL v9.4-v11、MariaDB v10.3; Google雲端 SQL、亞馬遜 RDS |
物件儲存 | 檔案系統、KV 資料庫、Amazon S3、Google Cloud DataStore |
負載平衡 | HAProxy、雲端平衡器 |
伺服器端平台 | Ubuntu、Debian、CentOS、RHEL; 碼頭工人 |
客戶端應用程式語言 | 任何 :) |
開源 Acra 的整合支援有限,更多服務僅在 Acra 企業版中提供。
伺服器端 Acra 元件(AcraServer、AcraTranslator、AnyProxy)應在單獨的伺服器/虛擬機器上運行,以實現更好的隔離和劃分。金鑰管理實用程式和資料庫助理通常與 AcraServer、AcraTranslator、AnyProxy 在同一台伺服器上執行。
伺服器端 Acra 元件在大多數 Linux 發行版(Ubuntu、Debian、CentOS)上運行並作為 Docker 映像運行。請注意,伺服器端 Acra 元件與作為主機作業系統的 Windows 作業系統不相容,請考慮使用 Docker。
請參閱入門了解如何安裝 Acra 或無需編碼即可試用 Acra。
Acra 可與任何用戶端應用程式搭配使用。無論您使用什麼語言編寫應用程序,您都可以將它們連接到 AcraServer(透過 SQL)和 AcraTranslator/AnyProxy(透過 API)來加密、解密、標記和屏蔽資料。
Acra 提供了一組客戶端 SDK,僅在特定用例中有用:
AcraWriter – 用於將資料欄位加密到 AcraStructs 的 SDK。當應用程式端的資料加密很重要時(用於建立端對端加密資料流或在敵對環境中工作),請使用它。
AcraReader – 用於解密 AcraStructs 資料欄位的 SDK。當在應用程式端解密資料很重要時(用於建立端對端加密資料流或在敵對環境中工作),請使用它。
SDK for AcraTranslator – 封裝了 AcraTranslator API 的 SDK,使用更方便。
這些 SDK 適用於 Ruby、Python、Go、C++、Node.js、iOS(Swift、ObjC)、Android(Java、Kotlin)、桌面 Java 和 PHP。
請參閱入門了解如何安裝 Acra 或無需編碼即可試用 Acra。
Acra 範例專案說明了 Acra 資料保護套件與現有應用程式的整合:基於 Django 和 Ruby on Rails 框架的 Web 應用程式以及簡單的 CLI 應用程式。我們採用了知名的應用程序,檢測其中的敏感資料並添加了加密層。保護資料對使用者來說是完全透明的,並且只需要對基礎架構和應用程式程式碼進行最少的更改。
開發人員和營運人員友好:
執行單一命令來部署應用程式、資料庫、Acra 元件、日誌和儀表板;
閱讀程式碼變更並了解將加密整合到客戶端應用程式中需要花費多少時間;
透過閱讀日誌、監控 Prometheus 中的指標、檢查 Jaeger 中的追蹤器以及觀看 Grafana 儀表板來了解 Acra 的工作原理;
檢查 Docker-compose 檔案、架構方案、資料庫表等等。
需求:安裝了 Docker 的 Linux 或 macOS。
運行 Acra 範例項目 |
---|
Acra 的最新版本文件、教學和演示可在官方 Cossack Labs 文件伺服器上取得。
要初步了解 Acra,您可能需要:
什麼是 Acra 以了解事物的概況。
Acra 的安全控制,可了解有關加密、屏蔽、標記化、SQL 防火牆、入侵偵測等的更多資訊。
典型資料流顯示您需要哪些 Acra 元件以及每種組合的優缺點。
閱讀有關 Acra 架構和安全設計的說明,以便更好地了解使用 Acra 時會得到什麼以及 Acra 運行的威脅模型是什麼。
您還可以查看 Cossack Labs 工程師的以下演講的演講者幻燈片:
“沒有魔法的加密,沒有痛苦的風險管理”,作者:Anastasiia Voitova。
“Ruby Web 應用程式的資料加密”,作者:Dmytro Shapovalov。
“建立 SQL 防火牆 (AcraCensor):開發人員的見解”,作者:Artem Storozhuk。
運行 Acra 範例項目 |
---|
Acra 可以幫助您遵守目前的隱私法規,例如:
一般資料保護規範 (GDPR)
HIPAA(健康保險流通與責任法案)
DPA(資料保護法)
CCPA(加州消費者隱私權法)
以指定形式配置和使用 Acra 將涵蓋 GDPR 第 25、32、33 和 34 條中所述的大部分要求以及 HIPAA 的 PII 資料保護要求。了解有關 Acra 和法規的更多資訊。
這是 Acra 社群版,Acra 的開源版本,商業和非商業用途均可免費使用。如果您偶然發現錯誤、看到可能的增強功能或對安全設計有意見,請在問題中告知我們。
還有 Acra 企業版可用。它提供更好的效能、冗餘/負載平衡,預先配置了您選擇的加密基元(FIPS、GOST),與堆疊中的金鑰/秘密管理工具、策略管理、客戶端 SDK 集成,並且具有大量供您的維運人員和SRE 方便操作Acra 的實用程式和工具。請與我們聯繫以獲取完整的功能清單和報價。
為了保護敏感數據,僅僅需要編譯加密程式碼是不夠的。 Acra 不會讓您「開箱即用」地遵守所有現代安全法規,也沒有其他工具可以做到這一點。
我們透過審核、評估資料流、對資料進行分類、列舉風險來幫助企業規劃資料安全策略。我們做的是實現合規性中最困難、最少人參與的部分——將其從「開展業務的成本」轉變為「預防風險的安全框架」。
如果您想向 Acra 貢獻程式碼或提供任何其他類型的輸入,我們非常歡迎。您貢獻的起點就在這裡。
如果您是 Acra 用戶,請留下簡短的回饋。
Acra 社群版作為 Apache 2 開源軟體獲得許可。
如果您想提出技術問題,請隨時提出問題或寫信至 [email protected]。
如需與 Cossack Labs Limited 的業務部門聯繫,請發送電子郵件至 [email protected]。