CAN304 计算机安全

news2024/11/26 0:57:22

本笔记来自基友 加特-林

Lec1: Computer security的概念,一些术语,攻击类型

CIA
在这里插入图片描述

Lec2:对称加密,Shift cipher,Vigenere,AES,块加密

私钥加密的别称为对称加密
在这里插入图片描述

比如shift cipher:
在这里插入图片描述

块加密的优缺点

在这里插入图片描述

Cryptographic modes

ECB

Electronic Codebook Mode密文与明文是一一映射的关系,很容易被破解(Each block of data was independently encrypted • With the same key • So two blocks with identical plaintext encrypt to the same ciphertext)
在这里插入图片描述

CBC:Cipher Block Chaining mode

引入初始随机变量IV(随消息一起发送),与P1做异或(相同为0,不同为1),每一个块的密文都与下一个块明文做异或。初始变量单独放在分组的某一段上,这样多次加密同一原文,密文会不一样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解密就是第一个C1先解密,然后异或IV得出第一个原文块,然后依次解密后续块
在这里插入图片描述

在这里插入图片描述

Lec3 Mac,CBC-MAC,Security Communication,Hash

MAC

MAC主要用来检测Integrity
在这里插入图片描述

CBC-MAC 对于相同的输入有相同的结果,无IV
在这里插入图片描述

在这里插入图片描述

Secure communication

  1. 在通话时我们想要同时保证confidentiality和integrity该怎么办?
    在这里插入图片描述

上图中,发送者用 k1 加密消息,用 k2 生成 MAC tag,然后把加密消息c和 tag t 发给接收方;接收方用 k1 解密消息,用 k2 来验证消息是否被修改过。这样就达成了加密通讯。 不过这里存在一个问题:假如我们发送两次相同的信息,密文会不同,但 tag 会相同 (MAC is deterministic),这会泄露信息。
不过这个问题很好解决:我们不生成明文的 MAC,而是生成密文的 MAC,这样每次密文不同,tag 也不 同。而接收方收到消息后,需要先用密文验证MAC,再解密。
在这里插入图片描述

  1. 在上述场景中如何防止replay attack和Re-ordering attack?
    使用 counters 和 identities 来防止这些攻击 (以及其他攻击)。即发送消息时带上自己的标识 和消息的数量,如 (”𝐵𝑜𝑏”| message1 |1) 或 (”Alice”| message2 |5)。当接收方收到counter 为1的分组时,则在下次接收时只接受counter为2的分组,依此类推。

Hash AND HMAC

𝐻: {0,1}* → {0,1}n be a hash function (任意长度映射到固定长度)。
Hash function的三个 properties:
1. Preimage resistance:我们可以把任意的信息 M 映射为 hash value h,M 便是 h 的preimage。我们只能通过 M 计算出 h,无法通过 h 计算出 M (One-way function)
2. Second preimage resistance 给定一个 x,我们无法找到一个 𝑥′ (𝑥′ ≠ 𝑥) 来使得 𝐻(𝑥) = 𝐻(𝑥′)。如果能,这个叫 weak collision resistant。
3. Collision resistance. collision 是指给定两个不同的输入 𝑥 和 𝑥′,它们的输出 𝐻(𝑥) = 𝐻(𝑥′)。如果我们无法找到这样的一对输入,那么 H 是 collision-resistance 的,这叫 strong collision resistance。

在这里插入图片描述

sender 计算 message M 的 hash value h,然后把 M 和 h 发给 receiver;receiver 再计算 M的 hash value,并与 h 作比较,如果一致,则消息没有被篡改。

Merkle tree:hash自顶向上堆叠的树

Lec4 计算的不对等,公钥加密,Diffie-Hellman algorithm, RSA,签名

GROUP:Z*5={1,2,3,4} 质数5, finite group的order是组中元素的数量
cyclic group循环组 G of order m, and generator g: G={g0, g1,…,gm-1},g是G的generator

在这里插入图片描述

Diffie-Hellman algorithm

DH是一种密钥交换协议,用来产生一对公开密钥,这对密钥可用于对称式加密,原理如下:
Alice和Bob在不安全的信道中协商一个质数p和g, g 是 p的原根。
原根:设 m 是正整数,a是整数,若a模m的阶等于φ(m),则称 a 为 模m的一个原根。(其中φ(m)表示m的欧拉函数)任何小于m的数都可以用 a^n mod(m)的形式表示,所以原根也被称为循环组的生成根
a模m的阶: 在这里插入图片描述

φ(m) for an input x is the count of numbers in {1, 2, 3, …, n} that are relatively prime to x.
Alice和Bob分别选择一个只有自己知道的数a,b然后计算A,B并在公开的信道中进行交换

在这里插入图片描述

但是DH算法无法抵御中间人攻击
在这里插入图片描述

Public key (asymmetric cryptography)

私钥加密体系设计到key-distribution and key-management的问题,所以公开密钥加密体系诞生。每个人都有两把钥匙,Pk是公钥,Sk是私钥

在这里插入图片描述

PA在非对称密钥加密中,选择明文攻击的流程Hybrid encryption:用非对称式密钥加密信息十分耗费时间,所以我们将对称式密钥引入非对称式密钥加密之中,k是对称式密钥,用k对明文进行加密后,用对方的公钥对k进行加密,然后将密文和加密后的k打包发送,接收方用自己的私钥获取密钥k。

在这里插入图片描述

RSA

RSA是一种加密算法
在这里插入图片描述

CPA(Chosen-plaintext attack)选取适当的明文进行攻击,plain RSA不具有CPA security

Digital Signatures

数字签名主要是用来保证Integrity(包含了nonrepudiation and authenticity)
与MAC相比,虽然MAC也保证了integrity,但是MAC算法并不对外公开(如果不能接触到key,就无法验证tag),只有通信双方可以对消息进行验证。但是数字签名允许其他人(机构)通过获取发送方公钥来对消息进行验证,同时具备不可抵赖性Non-repudiation的性质。

最简单的版本就是自己的私钥对原文直接加密(签名):
在这里插入图片描述

但这样做的代价就是更耗时,更费计算资源,所以我们先对原文做Hash,然后用私钥去加密Abstract (刚计算的原文Hash), 再将原文和加密后的Abstract打包发送

Lec5:用于传输密钥的协议,和门锁解锁举例

Security protocols(有个概念就好)
A series of steps involving two or more parties designed to accomplish a task with suitable security (Sequence is important),such as setting up a key between two parities.

Key establishment protocol

一个安全的交流密钥的方式protocol,这样每次交流session使用不同的加密密钥
The protocol aims to provide two or more parties communicating over an open network with a shared secret key.
该协议有两个categories:

  1. Key transport protocols: 共享密钥仅有通信的一方产生,并且传输给另一方
  2. Key agreement/exchange protocols: 共享密钥由通信双方提供的信息产生

1.Key transport protocols with private-key cryptography:

假设存在一个arbitrator Trent, Alice 和Bob都相信Trent,并与Trent都各自共享一把密钥KA和KB
在Alice和Bob之间创建对称式密钥Ks的过程如下:
在这里插入图片描述

但这样的方式无法防范中间人攻击,假设attacker叫Mallory,她也是Trent受信任的用户,与其共享密钥KM:
在这里插入图片描述
在这里插入图片描述

这样能够成功的原因是没有保证Integrity,我们可以在第1步给发送的信息计算MAC或给消息加时间戳或人物标识。

2.Key transport protocols with public-key cryptography:

在这里插入图片描述

此问题中,没有受信任的 arbitrator,Alice 和 Bob 互相发送他们的公钥。 Alice 生成一个会话密钥并将其发送给 Bob,用 Bob 的公钥加密,用Alice 的私钥签名;Bob 验证签名, 并用他的私钥解密 Alice 的消息,然后使用共享会话密钥加密会话。

这种方法也会受到中间人攻击,主要涉及到双方公钥是否可以可靠的交换,有两个办法可以解决:

  1. 找PKI,例如CA,作为一个official organization,用户可以可靠地获取到其他注册到CA用户的公钥
  2. Identity-based cryptography,原理是发送方可以直接使用对方的身份信息作为公钥,例如他人的电子邮件地址,从而不需要事先获取对方的公钥

Key exchange protocols

PPT中讲的是ECDH,原理和DH算法差不多,有兴趣可以了解下

设计门锁(using private key tools):
在这里插入图片描述

设计门锁(using public key tools):
在这里插入图片描述

Lec6:Authentication,Salt

Authentication mechanism based on something you know

最常见的用户验证就是通过password, OS 通过存储password Hash值对用户的密码进行验证,当用户输入密码时,OS计算相应密码的Hash值,并于密码本中的值进行对比。

Dictionary attacks: 假设attacker黑到了数据库中存储密码的文件,并且他有一本字典记载着常见密码对应的hash值,如果有用户使用这些密码,那么账户将被破解。

Salted passwords: 在计算密码hash值的时候,引入一个随机数,这个随机数需要被记录在密码文件中
在这里插入图片描述
在这里插入图片描述

S/Key One-Time Password:
服务器生成x, H(x), H2(x),…,Hn+1(x),
X到Hn(x)全部发给用户,服务器只存储Hn+1(x),
验证时,用户从Hn(x)开始使用,使用时服务器验证这个东西经过一次hash能够对上Hn+1(x),然后把Hn(x)存进服务器,下次用户使用的是Hn-1(x), 服务器验证能不能哈希对上Hn(x)。。。

在这里插入图片描述

Lec7: 鉴权,

Access Control

只有授权实体(用户、程序、进程或其他系统)才允许使用系统
Access control implements a security policy that specifies who or what (e.g., in the case of a process) may have access to each specific system resource and the type of access that is permitted in each instance.

Access Control的三个基本组成元素:

  1. Subject: An entity, such as a user
  2. Object: Resources, such as a file
  3. Access Right

Access Control Policies:

  1. Discretionary access control(自主访问控制) :允许一个实体赋予其它实体access right的能力,每行代表每个用户对于每个文件的访问权限
  2. Role-based access control: 基于用户的角色定义他们的权限
  3. Attribute-based access control: 引入新的变量Environment(例如current date),并且赋予subject, object, Environment 属性,通过构造三个元素属性的逻辑判断式去赋予用户的权限

四种关于access control(Discretionary access control)的表达形式:
在这里插入图片描述

Discretionary access control
该策略仅由三个基本组成元素定义,*表示该权限可以被拥有的实体赋予给其他人
在这里插入图片描述

Role-Based Access Control (RBAC)
Users 在系统中可以对应多个Role,一个Role又对应多个objects/permissions。且是动态的,而DAC是基于用户的identity,是静态的两张表
在这里插入图片描述

RBAC0,RBAC1(role层次结构),RBAC2(加constraint),RBAC3(1+2)
在这里插入图片描述
在这里插入图片描述
RBAC2加入了Constraints
在这里插入图片描述
在这里插入图片描述

Attribute-Based Access Control (ABAC)
There are three key elements to an ABAC model:
• attributes
• policy model
• architecture model
在这里插入图片描述

Policies Model
A policy is a set of rules and relationships that govern allowable behavior within an organization, based on the privileges of subjects and how resources or objects are to be protected under which environment conditions.
在这里插入图片描述

A Rule 是一个boolean function,规定在给定了S,O,E的情况下,其属性是否满足访问的requirements

相比于RBAC(基于角色定义权限),ABAC更加的灵活,假设现在有个电影网站想要在用户的年龄的基础上,根据会员等级更改用户对电影的访问,用户的年龄段分为Child,Adult,Juvenile,会员等级分为regular,premium. RBAC则需要重新定义role表和权限表,因为引入了会员等级,但是ABAC只需要增加一个boolean function去判断用户是否是会员即可。

在这里插入图片描述

Lec 8-9:Makware,Dos

Malware (Malicious software)

一种流行的恶意软件分类方法:首先了解它如何传播 (spreads or propagates) 以达到所需的目标,然后了解它在到达目标后执行的操作或有效载荷 (actions or payloads)。

Propagation:

在这里插入图片描述
在这里插入图片描述

第一种传播方式(Viruses)的代表就是Virus,通过感染现有的文件去传播到未被感染的文件。它通常将自己的代码置于另一个程序的执行路径中,这就意味着virus能做任何该程序可以做的事。同时它必须能自我复制。例如,它可能用受病毒感染的文件副本替换其他可执行文件。
在这里插入图片描述

在这里插入图片描述

如何检测病毒? - 通过判断文件大小,将病毒副本插进文件中会使文件增大(File-size based detection);但是压缩病毒可以避免被检测到。

第二种传播方式(Vulnerability Exploit)通过软件的漏洞和主动下载去进行传播,媒介可以是互联网,U盘或者是邮件里面的附件,代表是Worms。Worms以machine为单位去感染,而virus以file为单位去感染。
在传播阶段通常执行以下功能:

  1. Search for appropriate access mechanisms to other systems to infect.
  2. Use the access mechanisms found to transfer a copy of itself to the remote system, and cause the copy to be run.

病毒virus和蠕虫worm对比:
术语terms经常互换使用•病毒virus试图感染其他程序•蠕虫worm试图从一台机器转移到另一台机器•不要沉迷于分类

第三种传播方式(Social Engineering)主要通过欺骗用户去协助自己的破坏,例如Spam / phishing e-mails / 有用的软件里面包含有害代码
Logic bomb:trigger,触发病毒,开始干坏事

Payload action:

在这里插入图片描述
在这里插入图片描述

第一种是Data destruction,通常涉及到事件的触发,我们将当事件被触发所需要执行的恶意代码称为logical bomb
在这里插入图片描述

第二种是Attack agent,通过夺取被感染电脑的控制权去发起网络攻击,例如DDOS
第三种是Information Theft,比较典型的例子是keylogger,通过监控键盘的输入去捕获敏感的信息,通常使用某种形式的过滤机制,仅返回接近关键字的信息(“login”,“password”)。再例如Phishing email,伪装为权威机构,并用一个与官方网站相似的网站去诱导用户输入他们的隐私信息。
第四种是stealthing,当老六,创造一些漏洞和允许一些非法软件的渗入

Dos And DDos

三个攻击的资源对象:

  1. 网络的带宽bandwidth
  2. 网络控制软件(network handling software)
  3. 应用服务器资源

Flooding:此攻击的目的是压倒与目标组织的网络连接的容量
Source Address Spoofing: 使用大量伪造的源地址进行攻击。攻击者生成大量以目标系统为ip目标地址的数据包。由于源地址是伪造的,所以很难追踪。

SYN Flooding: 常见的 DoS 攻击
在这里插入图片描述

这个问题可以通过引入SYN cookie解决:
服务器收到syn请求(第一次握手)后,会根据当前状态计算出一个cookie值。放在syn+ack报文(第二次握手)中发出,此时服务器并不会划分资源去维护这个半连接,当客户端返回ack报文(第三次握手)时会再次带上这个cookie值。服务端取出这个值进行验证。如果合法就认为连接建立成功,用cookie值重建连结。加入全连接队列中并正式分配资源。
在这里插入图片描述

DDOS Distributed Denial of Service
多机分布式攻击
在这里插入图片描述

反射攻击(Reflection Attack): 攻击者把自己的地址伪造成目标的地址,将数据包发送到服务器上的已知服务。当服务器响应时,响应将被发送到目标。相当于是让服务器 (reflector) 来进行攻击。特点是以小封包换大封包,小的request换大的response。
在这里插入图片描述

放大攻击(Amplication Attack):原理和反射攻击类似,攻击者把请求发送给服务器,服务器会将请求扩增 (比如使用广播机制),来发送给目标。特点是以少换多,以少封包换多封包,一个request换多个response。

Lec 10-11:入侵检测,诱饵,防火墙,入侵抵御

Intrusion Detection System (IDS)(Q2)

Security Intrusion:试图访问受限内容,Intrusion Detection:检测出访问受限内容的事件
IDS有三个逻辑组成部分:
在这里插入图片描述

在行为上,合法用户(legitimate users)和入侵者(Intruder)存在交集,我们用Confusion Matrix去描述IDS的判断:
False positive: 合法用户的行为被识别为intrusion
False negative: 有intrusion,但没有被识别
True positive: 有intrusion且被识别
True negative: 没有intrusion且没有错误识别

三种检测入侵的方式:

  1. Anomaly Detection:对正常用户legitimate user进行建模,然后去比对当前用户的行为是否符合正常用户的profile,这件事可以用machine learning去做。但是这种分析方式容易触发False positive,因为合法用户和入侵者的行为存在交集,一些行为会被识别为anomalous activities
  2. Signature Detection/misuse detection: 对攻击malicious pattern or behavior建模,Match a large collection of known patterns of malicious data against data stored on a system or in transit over a network. 预定义一套patterns,这些patterns描述了特定攻击的模式,例如payoff actions.
  3. Rule-Based heuristic identification: Involves the use of rules for identifying known penetrations or penetrations that would exploit known weaknesses. 这些rules基于专家经验,例如异常的流量模式和特定协议的不规范使用

2和3都是基于malicious pattern or behavior 进行建模,这种方式容易触发False negative,因为它们都需要预定义a set of signature patterns or a set of rules of data,对于没有被定义/没见过的入侵,系统无法识别。

IDS的三种:

第一种,HIDS,Host-Based Intrusion Detection在敏感系统里添加安全层,监控活动以检测可疑行为•主要目的是检测入侵、记录可疑事件并发送警报•可以检测外部和内部入侵。
Host agent module检测本机host,LAN monitor agent module检测整个LAN,Central manager module检测LAN和host
第二种,NIDS,Network-Based IDS,检测网络上的流量•实时逐包检查流量或应用程序级协议活动•包括多个传感器、一个用于NIDS管理的服务器和一个用于人机界面的管理控制台•随着加密通讯越来越多,这种方法无法正常工作。
Inline sensor:拦截并监听流量,Passive:不拦截,在旁路监听流量
第三种,结合上面两个
在这里插入图片描述

Honeypots:诱饵系统,旨在让攻击者在系统里停留足够长的时间来获取对攻击者的识别,并且向攻击者透露假/无意义的信息,low interaction:提供接口但不提供完整服务,提供低真实性目标。High interaction:完整的系统,被攻击者访问

Firewall

A firewall is a network security system that monitors and controls incoming and outgoing network traffic based on predetermined security rules,Typically establishes a barrier between a trusted network and an untrusted network. Only authorized traffic as defined by the local security policy will be allowed to pass.
防火墙的限制:无法抵御绕过防火墙的攻击•可能无法完全抵御内部威胁•笔记本电脑或便携式存储设备可能在公司网络外部被感染,然后在内部使用

四种类型的Firewall:
在这里插入图片描述

  1. Packet Filtering Firewall: 预定义一套rules去匹配包/分组的header,符合rules就Forward(转发),否则就discard,在这种机制下,每个分组都是独立的个体,每个分组都需要通过防火墙的检测,效率会比较慢。

在这里插入图片描述
在这里插入图片描述

  1. Stateful Inspection Firewall: 基于连接状态的检测,将通信双方之间交互的属于同一连接的所有报文都作为整个数据流来对待。防火墙会维护一个table去记录已经建立的TCP连接,对于已经建立TCP连接的分组会直接进行转发。
    而对于尚未建立TCP连接的分组(例如该连接处于第二次握手阶段),会为他创建一个新的条目,但是会通过一些规则去限制或拒绝该条连接发送的分组。同时防火墙只允许已经建立连接的请求访问高编号端口。
    在这里插入图片描述

  2. Application-Level Gateway应用层面
    Application-Level Gateway充当通过Internet通信的内部和外部系统之间的中间设备。它通过转发来自原始客户端的请求并将其掩盖为自己的网络来保护网络,所以该网关也叫Application proxy。当客户端发送访问网页的请求时,proxy与该消息相交。proxy将消息转发到Web服务器。这样做可以隐藏客户端的标识和地理位置,从而保护其不受任何限制和潜在的攻击。然后,Web服务器做出响应,并将请求的信息提供给代理,该信息将传递给客户端。

  3. Circuit-Level Gateway传输层面
    Sets up two TCP connections, one between itself and a TCP user on an inner host and one on an outside host
    Relays TCP segments from one connection to the other without examining contents
    电路层代理防火墙仅监视两个主机建立连接时的握手信息,例如 Syn、Ack 和序列数据等是否合乎逻辑。虽然在电路层代理防火墙中,数据包也是被提交应用层处理的,但它只负责传递数据,而不进行数据过滤。因而不能削弱应用层攻击的威胁。

IPSIntrusion Prevention Systems:•也称为入侵检测和预防系统(IDPS)•是IDS的扩展,包括尝试阻止或防止检测到的恶意活动的能力•可以是基于主机的、基于网络的或分布式/混合的•可以使用异常检测来识别非合法用户的行为,或签名/启发式检测,以识别已知的恶意行为。•可以像防火墙一样阻止流量,但可以使用为IDS开发的算法类型来确定何时这样做

Lec12 数据库,sql注入,访问控制

SQL Injection Attacks (SQLi)

Example 1:
在这里插入图片描述

上面那个红色是坏蛋填写的表单value,下面那个是拼接后完整的SQL,其会得到所有苏州的邮寄地址然后删表,
其中,–用于注释掉在这后面的代码(图中例子是最后那个 ‘ )以防发生sql语法错误

Example 2:
在这里插入图片描述

Inband Attacks
Uses the same communication channel for injecting SQL code and retrieving results,检索到的数据直接显示在应用程序网页中
有三种类型:

  1. Tautology: This form of attack injects code in one or more conditional statements so that they always evaluate to true(Example2)
  2. End-of-Line Comment: 在某个参数字段的末尾加–去注释掉后面合法的代码
  3. Piggybacked Queries: 在参数字段中加入另外一些sql语句(Example 1)

在这里插入图片描述

Inference Attack
通过合法访问一些non-sensitive data去推断sensitive information,因为是non-sensitive data所以可以过access control
在这里插入图片描述

分表查询后,如果黑客知道这两种表是同一张表的索引结果,那么索引的顺序是对应的上的,则这两张表可以拼成一张表去获取每个职员的薪资。

预防Inference:
•数据库设计过程中的推理检测•该方法通过改变数据库结构或改变访问控制制度来消除推理通道,以防止推理•此类技术通常会导致不必要的更严格的访问控制,从而降低可用性
•查询时的推理检测?该方法试图消除推理通道在一个查询或一系列查询中违反的情况•如果检测到推理通道,则该查询被拒绝或修正查询

Access control

DBMS的管理策略:
Centralized administration:只有少量privileged users可以授予和回收表的访问权
Ownership-based administration:表的所有者可以授予和回收表的访问权。
Decentralized administration:不仅允许表的所有者授予和回收表的访问权,被授予访问权的用户仍可将权力授予他人。

SQL Access Controls授予和撤销权限的命令
在这里插入图片描述

撤销权限:

在这里插入图片描述
在这里插入图片描述

Database Encryption
加密成为数据库安全的最后一道防线 可应用于整个数据库、记录级别、属性级别或单个字段的级别
在这里插入图片描述

数据的机密性直接解决方案----加密全部数据,为了能够直接对加密的数据库进行处理,引入下面这种方法,涉及四种实体:

在这里插入图片描述

数据所有者:产生数据
用户:对系统提出请求的人
客户端:把用户的原始查询进行加密,或者对服务器返回的结果进行解密
服务端:接收来自数据所有者的加密数据并分发给客户的组织。

客户端按照下面顺序从数据库中检索记录:
用户发布一条SQL查询,请求具有特定主键的一条或多条记录。客户端的查询处理器加密主键,相应的修改SQL查询,并把查询传递给服务器,服务端处理主键被加密的查询,返回查询的结果。查询处理器解密数据并返回结果给用户。
缺点:缺乏灵活性,无法处理小于或大于某值的查询,因为加密后数据的顺序是乱的。
在这里插入图片描述

为了提供更好的灵活性-使用新的方法:将数据库中表的每条(行)记录按块加密
在这里插入图片描述

可将每行Ri看作一个连续的块Bi=(xi1||xi2…||xiM)。这样Ri中的每个属性值不管是文本类型还是数值类型都被看作比特序列,该行的所有属性值连接起来形成一个二进制块。将整行加密(块加密),表示为 E(k, Bi) = E (k, (xi1||xi2…||xiM))。为了支持数据检索,每个表都与属性索引关联。对部分属性或全部属性,创建索引值。
在这里插入图片描述

假设职工ID (eid )的取值范围为[ I, 1000 )。我们将这些值划分为 个分块:[ I, 200 )、[201, 400 )、[401, 600 )、[601, 800 )和[ 801, 1000 ),然后分别指派索引值1,2,3,4和5 。对于文本字段,可以从属性值的首字母得出索引。例如,对于属性ename ,可以规定以A或B开头的值的索引为1 ,以C或D开头的值的索引为2 ,以此类推。
第一列中的值表示每行的加密值,其实际值依赖于块加密算法和加密密钥。其余列给出相应属性值的索引值。真实属性值与上述索引值之间的映射函数,存储在客户端和数据所有者处,而不存储在服务器端。

例如,假设一个用户请求eid < 300 的所有职工的记录,查询处理器请求所有 (eid )<=2的记录,服务器返回这些记录。查询处理器解密返回的所有行,丢弃不匹配原始查询的记录(即大于300小于400的记录),将被请求的未加密数据返回给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

6月5日&#xff0c;香港交易所发布公告&#xff0c;将于6月19日在香港证券市场推出“港币&#xff0d;人民币双柜台模式”&#xff0c;当日确定有21只证券指定为双柜台证券。同时&#xff0c;港交所还表示&#xff0c;在双柜台模式推出前&#xff0c;更多证券或会被接纳并加入双…

Allegro16.6详细教程(三)

確定Pad的層面 (1)用Single layer mode開關來控制pad type 勾選Single layer mode,則pad為單面孔,比如SMD 不勾選Single layer mode,則pad為通孔,比如:via (2)用滑鼠左鍵點選BEGIN LAYER彈出下面3個欄位 Regular, Thermal Relief, Anti Pad;Regular用於正片,Thermal R…

Nginx + Tomcat 反向代理,负载均衡,动态分离

这里写目录标题 一. Nginx的引入背景公司产品出现瓶颈&#xff1f; 二 nginx 和 Tomcat 的关系三. 什么是Nginx &#xff1f;&#xff08;1&#xff09;Nginx 是什么&#xff1f;(2) Nginx 特点&#xff1a; 四. Nginx作用&#xff1f;1. 反向代理&#xff1a;2. 负载均衡3. 动…

TURTLEBOT3 Burger Waffle Pi 对比

TurtleBot3简介 TurtleBot3是TurtleBot系列中的第三代产品&#xff0c;它在二代的基础之上做了一些改进&#xff0c;并开发了一些新功能&#xff0c;以补充其前身缺乏的功能和满足用户的需求。 TurtleBot3采用机器人智能驱动器Dynamixel驱动&#xff0c;是一款小型的、可编程…

运维小白必学篇之基础篇第十八集:DNS和DHCP中继实验作业

DNS和DHCP中继实验作业 目录 DNS和DHCP中继实验作业 题1&#xff1a;实现DNS服务 服务器&#xff1a; 客户端&#xff1a; 题2&#xff1a;实现DHCP中继服务 服务端配置如下&#xff1a; 客户端配置&#xff1a; 服务端配置&#xff1a;(vmware11) 中继服务器端配置&…

能听懂语音的ChatGPT来了:10小时录音扔进去,想问什么问什么

类 ChatGPT 模型的输入框里可以粘贴语音文档了。 大型语言模型&#xff08;LLM&#xff09;正在改变每个行业的用户期望。然而&#xff0c;建立以人类语音为中心的生成式人工智能产品仍然很困难&#xff0c;因为音频文件对大型语言模型构成了挑战。 将 LLM 应用于音频文件的一…

SpringBoot入门程序以及启动方式 - 项目中切换服务器依赖

文章目录 SpringBootSpringBoot入门程序SpringBoot快速启动SpringBoot基本介绍SpringBoot切换服务器 SpringBoot SpringBoot入门程序 SpringBoot入门程序步骤如下: 创建新模块&#xff0c;选择Spring初始化&#xff0c;并配置模块相关基础信息 选择当前模块需要使用的技术集 …

你真的会写用例吗?自动化测试用例如何编写?看着资深测试的总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

Rocky9配置固定IP

vim /etc/NetworkManager/system-connections/enp4s0.nmconnection[ipv4] methodmanual # 子网掩码为 255.255.254.0 address1192.168.1.207/23,192.168.1.1 # 如果子网掩码为 255.255.255.0 则使用下面配置 # address1192.168.1.207/24,192.168.1.1 dns192.168.1.200;45.116.2…

Springcloud--异步通信RabbitMq

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&am…

全网对BGP团体属性讲的最透彻的一篇,附华为、思科、瞻博网络三厂商配置!

你好&#xff0c;这里是网络技术联盟站。 Border Gateway Protocol&#xff08;边界网关协议&#xff0c;简称BGP&#xff09;是一种广泛用于互联网的路由选择协议。BGP的设计目标是实现自治系统&#xff08;AS&#xff09;之间的路由选择和交换&#xff0c;它决定了网络中数据…

性能测试loadrunner

目录 基本概念 性能工具jemeter代码调试 loadrunner实战代码笔记 使用Loadrunner的步骤 性能指标分析结果 基本概念 一、什么是性能&#xff1a; 性能&#xff1a;是用来描述产品除功能外的所具有的速度&#xff0c;效率和能力的综合能力评价。 二、什么是性能测试&…

【马蹄集】第十四周作业

第十四周作业 目录 MT2134 泡泡MT2135 调整队伍MT2141 快排变形MT2142 逆序MT2143 线段树 MT2134 泡泡 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 小码哥小时候喜欢吹泡泡&#xff0c;有一次他吹出了 n n n 个一样小的泡泡&…

工业无监督缺陷检测,提升缺陷检测能力,解决缺陷样品少、不平衡等问题

1. 简介 在工业生产中,质量保证是一个很重要的话题, 因此在生产中细小的缺陷需要被可靠的检出。工业异常检出旨在从正常的样本中检测异常的、有缺陷的情况。工业异常检测主要面临的挑战: 难以获取大量异常样本正常样本和异常样本差异较小异常的类型不能预先得知这些挑战使得…

Linux Tomcat服务 【Tomcat-JVM-系统内核】 优化

---------------------Tomcat 优化------------------------- Tomcat默认安装下的缺省配置并不适合生产环境&#xff0c;它可能会频繁出现假死现象需要重启&#xff0c;只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面&#xff0c;分别为操作系统优化&…

智能电表价格比机械电表价格高那么多?为什么?

智能电表是一种电子式电表&#xff0c;采用微处理器进行数据处理和控制&#xff0c;具有远程监控、数据传输、电量显示等多种功能。而机械电表则是传统的机械式电表&#xff0c;采用旋转式或弹簧式机械结构进行计量。 智能电表的价格比机械电表高&#xff0c;这主要是由于以下几…

【每日挠头算法题(1)】——旋转字符串|亲密字符串

文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提&#xff1a;如果s串和goal串长度不等&#xff0c;则goal串不可能是s串旋转得来&#xff0c;直接返回false&#xff1b; 通过观察&#xff0c;可以发现每旋转一次&#…

HCIA-流量管理方案

目录 ACL访问控制列表 ACL分类&#xff1a; ACL的工作原理&#xff1a; ACL的组成&#xff1a; 规则编号&#xff1a; 通配符 ACL的匹配机制 ACL的匹配位置 基本ACL的部署与配置 基本ACL的配置命令 基本ACL案列 高级ACL 高级ACL的创建命令 高级ACL案例 ACL访问控制列表…

安卓大作业:使用Android Studio开发天气预报APP(使用sqlite数据库)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

串口屏自制电脑机箱监控副屏-HF035

前言 如果程序员配电脑要干点什么酷酷的事情的话&#xff0c;那就自己DIY一个机箱监控副屏吧。监控副屏在某宝最便宜也要上百块&#xff0c;本文介绍了怎么使用成本几十块的串口屏模块从0开始完成一个酷炫的机箱监控副屏。主要是软件编程较多&#xff0c;仅涉及到一点硬件知识&…