基于异构机密计算实例部署机密RAG应用

本文介绍了基于阿里云异构机密计算实例的机密RAG方案,通过TEE保护数据与模型安全、Trustee实现远程证明与密钥管理,支持多方不互信场景下私有数据加密处理、模型安全部署及用户隐私保护的全流程密态推理。

背景介绍

在典型的检索增强生成(RAG)场景中,私有数据提供方、推理服务提供方与最终用户之间往往互不信任。传统方案面临以下核心痛点:

  • 数据上云即失控:私有数据一旦上传至云端向量数据库,存在被云平台、运维人员或第三方非法访问的风险;

  • 模型资产易泄露:推理服务方担心高价值模型在云上部署时被窃取或逆向分析;

  • 用户隐私无保障:用户的查询内容和响应结果在传输和处理过程中可能被截获或滥用;

为解决上述问题,本文提出基于可信执行环境(TEE) 的机密RAG(Confidential RAG, CRAG)方案。通过阿里云异构机密计算实例(基于Intel TDXNVIDIA机密计算GPU),在CPUGPU层面构建硬件级隔离的安全飞地,确保数据在处理全过程“可用不可见”。

方案介绍

本文介绍基于阿里云异构机密计算实例的机密RAG(Confidential RAG, CRAG)方案,支持在多方不互信场景下实现私有数据安全检索、模型安全部署与用户隐私保护的全流程密态推理。

整体流程

整个方案分为三个关键阶段,如下图所示:

image

主要分为如下三部分:

  1. 私有数据加密上传:数据提供方在本地对文档进行切片、向量化,并使用保距加密算法将向量转换为密文。原始文本内容也加密存储。加密后的数据上传至标准向量数据库(如RDS PostgreSQL),全程无需暴露明文。

    针对RAG场景私有数据的安全保护方案细节,您可以阅读RAG私有数据的保护技术章节
  2. 机密RAG服务部署:推理服务提供方创建阿里云异构机密计算实例,在TEE环境中部署大模型和RAG应用。通过Trustee服务完成远程证明,确保只有在环境可信时才释放模型和数据密钥。

  3. 用户安全访问:最终用户通过本地可信网关客户端发起请求。客户端自动验证云端RAG服务的身份真实性,并建立端到端加密通道,保障查询与响应全过程隐私安全。

点击了解机密RAG方案的技术架构

机密RAG方案的技术架构图如下所示:

image
  • 阿里云异构机密计算实例:具有机密计算特性的第8代实例规格族(gn8v-tee规格族)。在CPU TDX机密计算实例的基础上,额外将GPU引入到TEE(Trusted Execution Environment)中,并通过硬件级别的隔离与加密机制来保护数据的安全,可以保护CPUGPU之间的数据传输及GPU中的数据计算,实现推理全过程都处于加密状态。

  • 密态向量数据库:阿里云RDS PostgreSQL向量数据库,负责承载向量密文和文档密文,并提供密文检索能力。与文本加密处理工具配合,确保私有数据在存储前进行加密处理。

  • Confidential AI服务:运行在异构机密计算实例中的系统服务,与实例硬件机密计算特性结合,提供对运行环境的远程证明度量,为上层AI应用提供模型加密分发和通信隐私保护能力。

  • Confidential RAG服务:运行在异构机密计算实例中,为RAG应用提供密态检索能力。

  • 信任管理服务Trustee:负责对机密实例硬件和软件环境的远程证明审计和验证。此外,还带有密钥管理功能,能确保仅在确认环境可信后提供密钥。在本方案中,由于不同角色之间相互不信任,因此他们将分别部署自己的Trustee服务。

  • 可信网关客户端:负责在客户端侧发起推理请求时,验证确认机密RAG应用运行环境可信,然后与Confidential AI服务建立端到端加密信道传输推理请求和响应内容。

操作步骤

当前机密RAG特性处于邀测状态,请联系您的客户经理,以获取示例程序源码包。

步骤一:“机密数据提供方”准备私有数据

1. 创建普通ECS实例

本章节后续步骤将介绍数据处理过程,您需要准备一个具有公网IP地址的普通ECS实例,用于私有数据加密上传,以及Trustee服务的部署过程。您可以参照快速购买实例文档中的步骤创建ECS实例。

对于安全要求极高的场景,也可将Trustee服务部署在自有的数据中心或本地服务器上,通过专线或VPN与云上VPC网络打通。可确保信任根的软硬件环境完全由您掌握,不受云厂商的影响。

2. 处理文本并导入向量数据库

  • 下载并解压示例程序源码tar

    tar -xvf rag_demo-0.1.0.tar.gz
    cd rag_demo-0.1.0/data_owner/
  • 安装Python包管理器uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
    . ~/.bashrc
  • 创建RDS PostgreSQL数据库实例,并配置启用向量插件:

  • 获取实例的内网地址

    image.png

    在实际场景中,RAG推理服务可能和RDS PostgreSQL数据库实例可能不在同一个专有网络VPC中,您可以开通RDS PostgreSQL数据库的外网地址,同时设置正确的白名单机制,来实现访问。
  • 创建名为sample-data的目录用于存放需要建立索引的文本文件,以.txt为后缀

    点击查看测试文本文件示例

    ## 数字化转型
    
    ## 1.数字化转型的背景和意义
    
    ### 1.1 背景
    
    在过去的十年里,数字技术的迅猛发展已彻底改变了企业运营的方方面面。互联网、移动技术、云计算、大数据、物联网(loT)以及人工智能(Al)等技术的广泛应用,不仅催生了新的商业模式,还推动了企业在各个层面上的深度变革。企业开始意识到,数字化转型不仅仅是技术的应用,更是企业生存和发展的必然选择。
    
    ## 1.2 意义
    
    ### 1.2.1 提升企业竞争力
    
    数字化转型帮助企业优化流程、提高效率和降低成本,使其能够在全球市场中保持竞争优势。通过数字化技术,企业可以实现业务的自动化、数据驱动的决策以及创新能力的提升,从而迅速响应市场变化。
    
    ### 1.2.2 改善客户体验
    
    现代客户期望能够获得个性化、无缝和即时的服务体验。数字化转型使企业能够更好地了解客户需求,并通过数据分析提供定制化的产品和服务,从而提升客户满意度和忠诚度。
    
    ### 1.2.3 促进业务创新
    
    数字化技术为企业开辟了新的增长路径和收入来源。通过创新的商业模式,如平台经济、订阅服务和共享经济等,企业能够利用数字生态系统,扩大市场份额和增加盈利能力。
    
    ### 1.2.4 加强企业风险管理
    
    数字化转型不仅提升了企业的运营效率,还改善了风险管理能力。通过大数据分析和实时监控,企业能够更好地预测和应对潜在风险,确保业务的连续性和稳定性。
    
    ### 1.2.5 推动可持续发展
    
    数字化转型也有助于企业实现可持续发展的目标。例如,通过优化供应链管理,减少资源浪费和碳排放,企业可以在追求商业成功的同时履行社会责任,促进环境的可持续发展。
    
    1.3 总结
    
    总的来说,数字化转型不仅是企业应对当前市场挑战的一种战略选择,更是通向未来的必由之路。成功的数字化转型将帮助企业提升核心竞争力,优化客户体验,并在全球经济中获得长期的可持续发展。
    
    ## 2.案例分析
    
    ### 2.1 案例一:制造业的数字化转型
    
    #### 2.1.1 公司背景
    
    制造业案例介绍了一家成立于20世纪初的德国老牌汽车制造公司,拥有悠久的历史和丰富的制造经验。面对日益激烈的市场竞争和消费者需求的变化,公司意识到传统制造模式已无法适应现代市场需求,因而决定实施全面的数字化转型,以保持竞争力。
    
    #### 2.1.2 面临的挑战
    
    在数字化转型之前,制造业案例公司面临多重挑战:生产效率低下,传统制造流程依赖人工,导致效率低且易出错;供应链复杂,涉及多个国家和地区,信息传递不及时,造成库存管理困难,甚至存在供应链断裂的风险;客户需求变化快,传统大规模生产方式无法满足市场对个性化定制产品的需求。
    
    #### 2.1.3数字化转型解决方案
    
    为了应对制造业上述挑战,公司通过以下步骤进行数字化转型:首先,引入工业4.0技术,包括物联网(IoT)、人工智能(AI)、大数据分析和机器人自动化,以优化生产线;其次,构建基于云计算的智能供应链管理系统,实现供应链的端到端可视化管理。
    
    ### 2.2 案例二:零售业的数字化转型
    
    #### 2.2.1 公司背景
    
    零售业案例讲述了一家全球知名的快时尚服装零售企业,面对电子商务的崛起和消费者购物行为的快速变化,传统零售模式受到巨大挑战。为保持市场竞争力并满足消费者日益增长的数字化需求,公司决定实施全面的数字化转型战略。
    
    #### 2.2.2 面临的挑战
    
    在数字化转型之前,零售业案例的公司面临以下挑战:线上线下渠道割裂,导致库存管理不统一、客户体验不一致,难以提供无缝购物体验;数据利用率低,尽管拥有大量消费者和销售数据,但缺乏先进的数据分析工具,未能转化为可操作的商业洞察。
    
    #### 2.2.3数字化转型解决方案
    
    为了解决零售业案例的线上线下渠道割裂、数据利用率低、供应链效率低下和客户体验滞后等问题,公司实施了一系列数字化转型措施:首先,构建全渠道零售平台,实现线上与线下购物渠道的无缝整合,提升顾客的便利性和满意度;其次,引入大数据和人工智能驱动的分析平台,精准预测需求、优化库存,并提供个性化产品推荐和营销活动。
    
    ## 2.3 案例三:金融业的数字化转型
    
    ### 2.3.1 公司背景
    
    金融业案例中的金融机构是一家全球知名的银行,成立已有百年历史。随着金融科技(FinTech)的迅速发展以及消费者对在线金融服务需求的增加,传统银行业务模式面临前所未有的挑战。为了保持市场竞争力并满足客户日益增长的数字化需求,该银行决定开展全面的数字化转型。
    
    ### 2.3.2 面临的挑战
    
    在数字化转型之前,金融业案例中银行面临以下主要挑战:客户服务模式过时,主要依赖实体网点,导致服务效率低、客户体验差;金融科技企业带来巨大竞争压力,凭借创新技术和便捷服务吸引大量客户,尤其是年轻一代;数据孤岛和风险管理滞后,各业务部门缺乏数据共享机制,导致信息无法整合,风险管理效率低。
    
    ### 2.3.3 数字化转型解决方案
    
    为应对金融业案例挑战,银行实施了多方面的数字化转型措施:首先,构建数字化银行平台,推出移动银行应用、在线服务、虚拟客服和智能理财顾问,显著提升了服务便捷性和客户满意度;其次,引入人工智能和大数据分析技术,通过个性化金融产品推荐和实时风险监控,提升客户服务质量和风险管理能力。
    
    
  • 初始化向量数据库,并对./sample-data/中的材料完成分词和索引,然后将数据加密和上传存储到向量数据库。

    uv run python setup_knowledge_store_cli.py \
        -H pgm-xxxxxxxxxxxx.pg.rds.aliyuncs.com -p 5432 -d crag -U rag -P Rag_1234 \
        --scaling-factor 1.0 \
        --approximation-factor 1.0 \
        --master-key test-masterkey-12345 \
        -D ./sample-data/ \
        -t "数字化转型面临的挑战是什么?"

    请按需替换上述参数,配置说明如下:

    • 数据库连接参数:数据库地址(-H)、端口号(-p)、库名(-d)、用户名(-U)、口令(-P)

    • 向量加密参数:

      • --scaling-factor:缩放因子,影响加密过程中向量整体变换尺度,取正实数

      • --approximation-factor:近似参数,控制距离比较的容错空间,取正实数

      • --master-key:用户主密钥,用于生成随机噪音从而加密向量

    预期输出如下:

    知识库添加文档成功
    检索内容为:数字化转型面临的挑战是什么?
    共检索到2条相似内容,内容如下:[Document(id='f55ec050-a52c-4ff5-8154-eca4a3eb0c19', metadata={'source': './sample-data/test.txt'}, page_content='## 数字化转型\n\n## 1.数字化转型的背景和意义\n\n### 1.1 背景\n\n在过去的十年里,数字技术的迅猛发展已彻底改变了企业运营的方方面面。互联网、移动技术、云计算、大数据、物联网(loT)以及人工智能(Al)等技术的广泛应用,不仅催生了新的商业模式,还推动了企业在各个层面上的深度变革。企业开始意识到,数字化转型不仅仅是技术的应用,更是企业生存和发展的必然选择。\n\n## 1.2 意义\n\n### 1.2.1 提升企业竞争力\n\n数字化转型帮助企业优化流程、提高效率和降低成本,使其能够在全球市场中保持竞争优势。通过数字化技术,企业可以实现业务的自动化、数据驱动的决策以及创新能力的提升,从而迅速响应市场变化。\n\n### 1.2.2 改善客户体验\n\n现代客户期望能够获得个性化、无缝和即时的服务体验。数字化转型使企业能够更好地了解客户需求,并通过数据分析提供定制化的产品和服务,从而提升客户满意度和忠诚度。\n\n### 1.2.3 促进业务创新'), Document(id='c20e824d-24f5-4c36-b9d1-ae50563ed213', metadata={'source': './sample-data/test.txt'}, page_content='### 1.2.3 促进业务创新\n\n数字化技术为企业开辟了新的增长路径和收入来源。通过创新的商业模式,如平台经济、订阅服务和共享经济等,企业能够利用数字生态系统,扩大市场份额和增加盈利能力。\n\n### 1.2.4 加强企业风险管理\n\n数字化转型不仅提升了企业的运营效率,还改善了风险管理能力。通过大数据分析和实时监控,企业能够更好地预测和应对潜在风险,确保业务的连续性和稳定性。\n\n### 1.2.5 推动可持续发展\n\n数字化转型也有助于企业实现可持续发展的目标。例如,通过优化供应链管理,减少资源浪费和碳排放,企业可以在追求商业成功的同时履行社会责任,促进环境的可持续发展。\n\n1.3 总结\n\n总的来说,数字化转型不仅是企业应对当前市场挑战的一种战略选择,更是通向未来的必由之路。成功的数字化转型将帮助企业提升核心竞争力,优化客户体验,并在全球经济中获得长期的可持续发展。\n\n## 2.案例分析\n\n### 2.1 案例一:制造业的数字化转型\n\n#### 2.1.1 公司背景')]

3. 部署托管私有数据密钥的Trustee远程证明服务

  • 使用YUM源安装并启动Trustee。

    yum install -y trustee-1.5.2

    Trustee会自动启动并默认监听端口8081。以部署环境IP加上服务端口号,即http://<crag-trustee-ip>:8081/api,可作为URL直接进行网络访问。

    其中,<trustee-ip>为部署了Trustee服务器IP。如需在生产环境中使用,建议额外为Trustee配置HTTPS访问,以增强安全性。
  • 导入私有数据密钥(master-key)到Trustee实例

    执行以下命令,创建密钥目录(在本地目录/opt/trustee/kbs/repository/default/创建名为aliyun的子目录)并写入密钥内容。

    sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/
    sudo sh -c 'echo -n "test-masterkey-12345" > /opt/trustee/kbs/repository/default/aliyun/crag-master-key'

    完成上述操作后,该密钥在Trustee系统中的密钥ID将对应为:kbs:///default/aliyun/crag-master-key

步骤二:“推理服务提供方”部署机密RAG应用

1. 创建普通ECS示例

本章节后续步骤将指导您在一台异构机密计算实例上部署机密RAG应用。此外,您还需要另外准备一个具有公网IP地址的普通ECS服务器,用于模型加密上传操作,以及Trustee服务的部署过程。您可以参照快速购买实例文档中的步骤创建ECS实例。

2. 准备并上传加密模型

本小节使用模型加密工具处理模型数据,并将其上传到对象存储OSS中,为后续的密态分发和部署做准备。请参照基于异构机密计算实例构建安全大语言模型推理环境中的“步骤一:准备加密的模型数据”进行。

由于模型文件较大,过程耗时较长。如需快速体验方案,您可以跳过模型加密上传环节,选择我们提供的加密模型示例进行试用,直接进入后续步骤。

模型名称

加密方式

加密密码

公共读OSS地域

OSS Endpoint

模型存储位置

Qwen2.5-3B-Instruct

Gocryptfs

0Bn4Q1wwY9fN3P

cn-beijing

oss-cn-beijing-internal.aliyuncs.com

conf-ai:/qwen2.5-3b-gocryptfs/

Sam

conf-ai:/qwen2.5-3b-sam/

3. 部署托管模型加密密钥的Trustee远程证明服务

  • 使用YUM源安装并启动Trustee。

    yum install -y trustee-1.5.2

    Trustee会自动启动并默认监听端口8081。以部署环境IP加上服务端口号,即http://<cai-trustee-ip>:8081/api,可作为URL直接进行网络访问。

    其中,<trustee-ip>为部署了Trustee服务器IP。如需在生产环境中使用,建议额外为Trustee配置HTTPS访问,以增强安全性。
  • 导入模型解密密钥(model-decryption-key)到Trustee实例

    执行以下命令,创建密钥目录(在本地目录/opt/trustee/kbs/repository/default/创建名为aliyun的子目录)并写入密钥内容。

    sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/
    sudo sh -c 'echo -n "0Bn4Q1wwY9fN3P" > /opt/trustee/kbs/repository/default/aliyun/model-decryption-key'

    完成上述操作后,该密钥在Trustee系统中的密钥ID将对应为:kbs:///default/aliyun/model-decryption-key

4. 创建异构机密计算实例

  • 请参照基于异构机密计算实例构建安全大语言模型推理环境中的“步骤三:创建异构机密计算实例”完成实例创建。后续步骤将在该异构机密计算实例上进行。

  • 由于大语言模型文件较大,建议您在创建实例时为系统盘分配至少100GB的空间。

  • 安全组配置:

    • 请配置步骤一和步骤二中创建的Trustee远程证明服务所在实例的安全组,允许该异构机密计算实例访问其8081 TCP端口

    • 请配置该异构机密计算实例的安全组,允许您的本地电脑访问其8080 TCP端口

5. 配置并启动Confidential AI服务

  1. 通过Workbench连接实例

  2. 创建cai.env,写入如下内容。

    # 模型解密相关配置
    TRUSTEE_URL="http://<cai-trustee-ip>:8081/api"
    MODEL_KEY_ID="kbs:///default/aliyun/model-decryption-key"
    
    # 加密模型分发相关配置
    MODEL_OSS_BUCKET_PATH="<bucket-name>:<model-path>" # 存放在阿里云OSS上的模型密文路径,例如conf-ai:/qwen2.5-3b-gocryptfs/
    MODEL_OSS_ENDPOINT="https://oss-cn-beijing-internal.aliyuncs.com" # 存放模型密文的OSS URL
    # MODEL_OSS_ACCESS_KEY_ID=""    # 用于访问OSS bucketaccess key
    # MODEL_OSS_SECRET_ACCESS_KEY=""    # 用于访问OSS bucketaccess key secret
    # MODEL_OSS_SESSION_TOKEN=""    # 用于访问OSS bucketsession token,仅在通过STS凭据访问OSS时需要
    MODEL_ENCRYPTION_METHOD="gocryptfs"    # 加密模式使用的加密方法,取值为"gocryptfs"或"sam",默认值为"gocryptfs"
    MODEL_MOUNT_POINT=/tmp/model    # 解密后模型明文的挂载位置,模型推理服务可以从该路径加载模型
    
    # 私有数据密钥相关配置
    ALT_TRUSTEE_URL="http://<crag-trustee-ip>:8081/api"
    ALT_KEY_ID="kbs:///default/aliyun/crag-master-key"
    
    # 大模型服务通信加密相关配置
    MODEL_SERVICE_PORT=8080    # 业务使用的TCP端口号,该端口上的通信将被透明加密保护
    
    
    # 模型P2P分发加速相关配置,默认可忽略
    TRUSTEE_POLICY="default"
    # MODEL_SHARING_PEER="172.30.24.146 172.30.24.144"
    请按需替换上述配置中的参数
  3. 运行Confidential AI 服务

    docker compose -f /opt/alibaba/cai-docker/docker-compose.yml --env-file ./cai.env up -d

    预期所有的组件都应该为Healthy或者Started状态。

    image.png

6. 部署机密RAG应用

  1. 通过vllm运行一个大模型推理服务,该服务将为RAG应用处理推理任务

    docker run -d \
        --net host \
        -v /tmp/model:/tmp/model \
        --gpus all \
        egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.8.5-pytorch2.6-cu124-20250429 python3 -m vllm.entrypoints.openai.api_server \
            --model=/tmp/model \
            --trust-remote-code \
            --port 8081
    注意:根据cai.env中的配置,Confidential AI服务将对8080端口提供保护,因此这里让vllm server监听在8081端口,而让后续拉起的RAG应用监听在8080端口。
  2. 下载并解压示例程序源码tar

    tar -xvf rag_demo-0.1.0.tar.gz
    cd rag_demo-0.1.0/app/
  3. 安装Python包管理器uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
    . ~/.bashrc
  4. 检查config.py并按需进行修改。

    注意:请确保这里填写的加密参数配置(除master_key外)与“机密数据提供方”所使用的一致,并填写的连接访问信息可以正确数据库。

    # 加密参数配置,用于向量加密以及文本内容加解密,需提前指定
    master_key = open('/run/cai/resources/alt-key', 'rb').read()
    scaling_factor = 1.0
    approximation_factor = 1.0
    
    # PostgreSQL向量数据库配置
    db_host="pgm-xxxxxxxxxxxx.pg.rds.aliyuncs.com"
    db_port=5432
    db_name="crag"
    db_username="rag"
    db_password="Rag_1234"
  5. 运行基于LangChainRAG应用

    uv run langchain serve --port=8080 --host=0.0.0.0

    image

步骤三:“推理服务用户”访问机密RAG应用

1. 创建普通ECS实例

本章节后续步骤将指导您在自己的电脑上通过可信网关客户端访问机密RAG应用。在此之前,您还需要另外准备一个具有公网IP地址的普通ECS服务器,用于Trustee服务的部署过程。您可以参照快速购买实例文档中的步骤创建ECS实例。

2. 部署验证异构机密计算实例身份的Trustee远程证明服务

  • 使用YUM源安装并启动Trustee。

    yum install -y trustee-1.5.2

    Trustee会自动启动并默认监听端口8081。以部署环境IP加上服务端口号,即http://<user-trustee-ip>:8081/api,可作为URL直接进行网络访问。

    其中,<trustee-ip>为部署了Trustee服务器IP。如需在生产环境中使用,建议额外为Trustee配置HTTPS访问,以增强安全性。
  • 配置该Trustee远程证明服务所在实例的安全组,允许您的电脑访问其8081 TCP端口

3. 在您的电脑上运行可信网关客户端

  • 此处GitHub页面下载对应平台的可信网关客户端(TNG Client)二进制文件

  • 使用如下命令运行可信网关客户端

    ./tng launch --config-content '
            {
                "add_ingress": [
                    {
                        "http_proxy": {
                            "proxy_listen": {
                                "host": "127.0.0.1",
                                "port": 41000
                            }
                        },
                        "verify": {
                            "as_addr": "http://<user-trustee-ip>:8081/api/attestation-service",
                            "policy_ids": [
                                "default"
                            ]
                        }
                    }
                ]
            }
        '
    注意:请替换as_addr为对应的值

    可信网关客户端将在本机网络环境创建一个HTTP代理端口(监听在127.0.0.1:41000),您可以为需要访问机密RAG应用的程序(如浏览器)配置该HTTP代理。随后,可信网关客户端将使用远程证明对机密RAG应用的身份进行验证,并使用协商的会话密钥加密与机密RAG应用交互的后续请求及响应。

  • 启动浏览器,在浏览器设置中,配置HTTP代理为127.0.0.1:41000

以火狐浏览器为例:

image

  • 打开新标签页,在地址栏中输入http://<crag-ip>:8080/,访问部署的机密RAG服务

    请将<crag-ip>替换为异构机密计算实例的公网IP地址
    1. question栏输入“请按我总结数字化转型的意义”,点击“start”按钮

    2. 可以看到输出内容,与“机密数据提供方”提供的数据中的内容相符image

    3. 点击“intermediate steps”按钮,可以看到LangChain服务端在处理请求过程中,成功通过rag查询到了最相关的文档,并将其作为推理过程的上下文信息。

      image

RAG私有数据的保护技术

RAG场景通常依赖云上向量数据库来存储私有数据,在私有数据上云的过程中,其的安全性和隐私保护至关重要。业界要采用以下两种方法来保护私有数据:基于保距算法的向量加密和全密态数据库。

  1. 基于保距算法的向量加密

保距算法是一种加密技术,通过对向量添加随机噪声或者进行线性变换来实现加密。这种变换方式确保了加密后的向量与原始向量之间的欧氏距离或其他度量方式保持一致。这意味着加密后的向量仍然能够用于相似度搜索,而不会泄露原始向量的具体内容。

在该方法中,用户需要使用特殊工具将私有数据离线处理转换成向量形式,并以保距算法加密后存储在普通的向量数据库中,对于向量对应的文本片段原文,则采用业界标准的AES加密算法存储。从而允许RAG应用在密态下对数据进行高效的相似度检索。

  1. 全密态数据库

全密态数据库是一种支持在密文上进行所有的数据库事务、查询、分析等操作的技术。在全密态数据库中,所有数据都是以加密形式存储的,通过与机密计算(例如基于Intel TDX的全密态数据库)等高级加密技术结合,可以避免云平台软件、管理人员(如DBA)以及其他非授权人员接触到明文数据,防止研发和运维人员窃取数据,确保数据在计算过程中“可用不可见”,既保证了数据的安全性,又不影响检索效率。

在该方法中,私有数据在用户侧(客户端)加密后,在全密态数据库中完成对数据的处理,用户可以像操作普通数据库一样操作全密态数据库,从而大大减少用户使用成本。

本文介绍的机密RAG应用将使用“基于保距算法的向量加密”方法保护私有数据,如果您希望使用全密态数据库,可以前往了解阿里云的全密态数据库(公测)