信息系统概论学习笔记

笔试排名15/170,已上岸

信息安全模型概念

知识点

安全属性、安全策略、安全模型、安全机制、安全机制设计原则、访问控制模型

安全属性

最经典的三个属性CIA

  • 机密性

    机密性指防止私密的或机密的信息泄露给非授权的实体的属性

  • 完整性

    完整性分为数据完整性与系统完整性

    • 数据完整性:确保数据只能按照授权的方式进行修改
    • 系统完整性: 系统没有受到未经授权的操控而完好无损地执行预定功能的属性
  • 可用性

    确保系统及时工作并授权用户提供所需服务的属性

其他安全属性

  • 可控性

    不允许不良内容通过公共网络进行传输,使信息在合法用户的有效掌控之中

  • 不可抵赖性

    确保行为的执行者不能否认其行为

  • 隐私性

    隐私性是指有关个人的敏感信息不对外公开的安全属性

安全策略

  • 安全策略是指规定一个组织为达到安全目标如何管理、保护和发布信息资源的法律、规章和条例的集合
  • 安全策略是指为达到某一组安全目标而设计的规则集合
  • 安全策略是指关于允许什么和禁止什么的策略

安全模型

  • 安全模型是指用更加形式化的或数学化的术语对安全策略的重新表述
  • 安全模型是指拟由系统实施的安全策略的形式化表示。

\(P^2DR\) 模型

美国国际互连网安全系统公司ISS提出,动态信息安全理论的主要模型

image-20240303182959625

Policy(安全策略)

对于一个策略体系的建立包括:安全策略的制订、安全策略的评估、安全策略的执行等。

Protection(保护)

保护通常是通过采用一些传统的静态安全技术及方法来实现的,主要有防火墙、加密、认证等方法

Detection(检测)

通过不断地检测和监控网络和系统,来发现新的威胁和弱点,通过循环反馈来及时作出有效的响应

Response (响应)

紧急响应在安全系统中占有最重要的地位,是解决安全潜在性最有效的办法。从某种意义上讲,
安全问题就是要解决紧急响应和异常处理问题。要解决好紧急响应问题,就要制订好紧急响应的
方案,做好紧急响应方案中的一切准备工作。

PDRR安全模型

防护、检测、响应、恢复

image-20240303183554131

1、检测可以使用 入侵防御系统(IDS)

2、恢复: 恢复是PDRR模型中的最后一个环节。恢复是事件发生后,把系统恢复到原来的状态,或者比原来更安全的状态。

恢复也可以分为两个方面:系统恢复和信息恢复。系统恢复指的是修补该事件所利用的系统缺陷,不让黑客再次利用这样的缺陷入侵。一般系统恢复包括系统升级、软件升级和打补丁等。系统恢复的另一个重要工作是除去后门

安全机制

  • 安全机制是指实现安全功能的逻辑
  • 安全机制是指实施安全策略的方法、工具或规程
  • 常见的安全机制有: ACL机制、权能机制

当主体访问客体的时候,ACL机制是从客体的ACL表中查权能,权能机制是从主体的权能集合中查权

安全机制设计原则

(1)经济性原则(Economy of Mechanism

任何系统设计与实现都不可能保证完全没有缺陷。我们应该把安全机制设计得尽可能简单和短小

(2)默认拒绝原则(Fail-Safe Defaults)

只要没有看到授权信息,就不允许访问

(3)完全仲裁原则(Complete Mediation)

安全机制实施的授权检查必须能够覆盖系统中的任何一个访问操作,避免出现能逃过检查的访问操作

(4)开放设计原则(Open Design)

应该在公开安全机制设计方案的前提下,借助容易保护的特定元素,如密钥、口令或其他特征信息等,增强系统的安全性。

(5)特权分离原则(Separation of Privilege)

对特权进行细分,把一项特权细分成多项特权,分配给多个主体,减小每个特权拥有者的权力,从而增强系统的安全性。

(6)最小特权原则(Least Privilege)

(7)最少公共机制原则(Least Common Mechanism)

把由多个用户共用和被全体用户依赖的机制的数量减到最少。

(8)心理可接受原则(Psychological Acceptability)

访问控制模型

自主访问控制(DAC)与强制访问控制(MAC)

  • 自主访问控制: 用户个体可以通过设置访问控制属性来修改对该客体的访问
  • 强制访问控制: 只有系统才能控制对客体的访问

BLP模型

保证机密性,强制访问控制

  • ss-特性,Simple Security Property

    "no read up",不上读

  • *-特性

    "no write down" 不下写

BIBA模型

保证完整性,强制访问控制

防止更高完整性级别的用户向更低完整性级别的对象写入数据

不允许更低完整性级别的用户读取更高完整性级别的数据。

DTE模型

域类实施模型

  • 把主体、客体用几组域来表示
  • 基于标签实现其访问控制,标签控制域对资源的访问
  • 倾向于强制类型访问,访问规则只基于标签

相当于在ACL基础上引入了域的概念和强制访问控制

image-20240313161207614

  • DTE是一种更严格的安全模型,它通过定义域来实施安全策略,并控制主体(如用户或进程)在这些域内可以执行的操作。
  • 在DTE中,系统被划分为多个域,每个域包含了一组对象和/或主体,以及相应的访问权限规则。
  • DTE更倾向于使用强制访问控制(Mandatory Access Control, MAC),其中访问规则由中央策略确定,而不是由单个用户或资源所有者设定。

尽管DTE和ACL都是访问控制机制,但DTE提供了更高级别的安全性和控制。它通过将系统划分为不同的域,并为每个域设置明确的访问规则,从而在更广泛的范围内控制安全访问。相比之下,ACL更加灵活和细粒度,允许资源所有者指定特定资源的访问权限。在实际应用中,选择哪种机制取决于特定的安全需求和环境。

莫科尔树

莫科尔树(Merkle Tree),也被称作哈希树(Hash Tree),是一种数据结构,主要用于在信息安全和分布式系统中高效地验证数据的完整性和正确性

莫科尔树的主要功能和作用包括:

image-20240313162406848

基于角色的访问控制(RBAC)

RBAC

  1. 基本思想

    根据用户在一个组织中担任的角色来确定对其所的授权
    如,张三今天担任科长,则应授予他科长的权限,明天他提升为处长,则应授予他处长的权限。一个用户担任一个角色后,便可以拥有该角色的权限,但是他不能将权限转授给别人。

  2. 授权机制

    • 分为两步:

      1、将访问权限分配给角色
      2、将角色分配给用户

    • 授权要满足安全约束条件。

      • 最小特权原则
      • 职责分离原则
      • 角色互斥原则
      • 角色激活限制原则
    • 角色分级,高级角色可以继承低级角色的访问权限。

  3. 关键概念:

    • 角色(Role):表示一组权限的集合,通常与组织中的职务或工作职责相对应。例如,"管理员"、"编辑"、"访问者"等。
    • 用户(User):系统的使用者。在RBAC中,用户通过被分配一个或多个角色来获得相应的权限。
    • 权限(Permission):对系统资源的访问授权,如读取、写入、修改等操作。权限被分配给角色,而不是直接分配给用户
    • 会话(Session):用户与系统交互的一个实例。用户在会话中激活一组角色,以便执行特定的任务。
  4. 优点

    • 便于授权管理。

      如系统管理员需要修改系统设置等内容时,必须有几个不同角色的用户到场方能操作,增强了安全性。

    • 便于处理工作分级

      如,文件等资源分级管理。

    • 利用安全约束,容易实现各种安全策略,如最小特权,职责分离等。

    • 便于任务分担,不同角色完成不同的任务。

  5. 缺点

    复杂的权限校验,对性能有一定的影响

    RBAC主要关注静态角色分配,可能不足以应对需要动态访问控制决策的情况,如基于当前环境状态或用户行为动态调整访问权限。

    角色爆炸:在某些情况下,为了满足细粒度的访问控制需求,可能需要创建大量的角色,这会导致管理复杂性增加。

Chinese wall 模型

Chinese Wall 模型的思想是将一些可能会产生访问冲突的数据分成不同的数据集,强制所有主体最多只能访问一个数据集,但访问哪个数据集并未受强制规则的限制。

image-20240314164656535

  • 对象(Object):信息资源,如文件、数据库记录等。
  • 主体(Subject):请求访问对象的实体,通常指的是用户或用户代理。
  • 冲突类(Conflict of Interest Class, COI):包含那些访问其中一个可能影响访问另一个的敏感信息的对象集合。例如,在金融行业,代表不同客户的信息可能被分配到不同的冲突类中。

Chinese Wall模型有两种安全属性:

  • 简单安全属性:用户只能访问那些与已经拥有的信息不冲突的信息

  • * 属性:访问必须满足简单安全属性, 主体能够对一个客体写访问的前提,是主体未对任何属于其他公司数据集的客体进行读访问

Chinese Wall安全模型是为了防止信息访问过程中的利益冲突而设计的一种策略,它特别适用于需要严格遵守客户机密和信息隔离规则的行业,如金融、法律和咨询服务。下面是该模型的一些主要优缺点分析:

image-20240314165036098

可信计算

可信计算的基本思想

  • 首先建立一个信任根,信任根的可信性由物理安全、技术安全和管理安全共同确保
  • 再建立一条信任链,从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级,从而把这种信任扩展到整个计算机系统

可信计算的功能

  • 完整性度量
  • 密钥管理与密钥加密
  • 密钥的远程证明

可信计算中的各种概念

TCG

可信平台联盟

TCB

可信计算基,是系统中负责实现系统的安全策略的软/硬件资源的集合。它的作用是防止除它以外的软/硬件对它造成破坏

现代操作系统正努力降低TCB的大小

TBB

可信构造快

组成系统可信环境的一切软件、硬件的集合

TPM

可信平台模块

TPM是一种专为计算设备设计的安全加密处理器,它的目的是通过物理硬件来增强计算设备的安全性,保护计算机系统的完整性和保密性

可信

一个实体的行为总是以预期的方式,朝着预期的目标进行的,那么我们可以称它为可信

信任根

1、平台中描述平台信任相关的最小集合

2、系统中确定其他部件可信的核心信任基础

3、一系列绝对可信的功能和过程

信任链

1、信任链(Chain of Trust)指的是信任根从初始完整性度量起建立的一系列信任组成的序列
2、它是一个确保计算机启动和运行过程中软件和硬件组件都可信的机制
3、以信任根为根
信任根 => BIOS => Bootloader => OS => 应用程序

远程证明

1、向远程服务器证明系统的完整性和安全性状态
2、是一个完整性校验与身份验证的过程,向验证者提供了一份可信的平台状态报告

RTM

可信度量根

1、可信计算中负责完整性度量的部件

2、具有进行完整性度量时最先被执行的代码,可以对平台进行初始度量

CRTM

1、指的是执行完整性度量任务的最基础的指令集合

2、它是信任根的组成部分平台完整性度量的起点,对平台进行初始度量

RTS

可信存储根

用于存储度量结果,存储加密密钥与证书

RTR

可信报告根

1、为系统状态或行为提供可信报告

2、可以向外部实体证明系统的完整性和安全状态

可信计算的密钥配置

  • 背书密码(EK)
    • TPM的根密钥,出厂时固化在TPM芯片里
    • 与TPM绑定,唯一对应
  • 平台身份证明密钥AIK
    • EK的替身密钥
    • 仅用于对TPM内部表示平台可信状态的数据和信息(如PCR值、时间戳、计数器值、密钥的可迁移属性等数据)进行签名和验证签名,不能用于加密
  • 存储密钥SK
    • 用于对其他密钥进行存储保护

可信计算的经典应用

安全启动

BitLocker

BitLocker分为两部分---加解密与完整性检查

BitLocker加密原理

image-20240308161113183

BitLocker解密原理

image-20240308161129677

  • 初次整卷加密时的封装
    • 计算系统分区相关组件的哈希值
    • 把计算结果扩展到PCR寄存器
    • 用相应寄存器封装主密钥VMK
  • 引导时的完整性检查
    • 依次计算系统分区相关组件的哈希值
    • 把计算结果扩展到PCR寄存器
    • 解封主密钥VMK

在计算机引导的过程中,在装载操作系统之前,统分区中的引导组件就可以解出 FVEK 密钥

完整性校验

完整性检查的基本思路是:计算待检查对象的哈希值,并与已知的正确哈希值对比,当且仅当前后的值相同时检查通过。基于 TPM 的实施方法是,从上电开始,按照一定次序计算待检查对象的哈希值,并用 TPM 的扩展命令把该值存入 TPM 的 PCR 寄存器中,然后检查相应 PCR 寄存器的值与预先掌握的值是否一致

可信计算的优劣

image-20240314151955539

  • 基于静态度量技术,难以确保应用程序在运行态的 安全,如内存安全,因此无法抵御内存攻击
  • 可信基太大,度量完之后只能保证程序的静态文件完整性
  • TPM作为外接设备,存储空间和计算能力受限,一 般仅用来存储关键密钥和度量值等小数据

可信执行环境TEE

移动设备安全环境---TrustZone技术

Arm TrustZone技术为受信任的软件提供了系统范围的硬件隔离

TrustZone创建了一个隔离的安全世界,可以用来为 系统提供机密性和完整性

0、TrustZone的使用

ARM的TrustZone技术提供了一种硬件级别的安全机制,它通过在单个处理器上创建两个独立的执行环境来实现:一个是安全世界(Secure World),用于执行安全敏感的操作;另一个是非安全世界(Non-Secure World),用于执行常规的操作系统和应用程序。这种分割旨在提供一种有效的保护机制,以确保敏感数据和代码的安全。

通过物理上隔离安全世界和非安全世界,TrustZone提供了一种强大的方法来保护敏感数据和应用程序免受恶意软件和攻击的影响,即使非安全世界被破坏。

image-20240308163300608

1、处理器模型

  • 每个带 TrustZone 安全扩展的处理器核都有两个虚拟处理器核,每个处理器核分属不 同的执行环境(安全和非安全
  • 引入了一个特殊的机制——监控模式,负责不同执行环境间的切换。
  • 非安全虚拟处理器能仅仅访问非安全系统 资源,但安全虚拟处理器能访问所有的资源

image-20240308163542933

2、模式切换:

从非安全状态进入监控模式:

执行 SMC ( Secure Monitor Call )指令,SMC 指 令是一条特殊指令,它类似于软件中断指令(SWI ),通过它来调用监控器例程

3、总线设置

  • TrustZone针对总线的读写增加了一个额外的控制信号位 Non-Secure 即NS位
  • NS位指明当前系统的状态。如果NS为0,则当前系统处于安全态;如果NS为1,则当前系统处于非安全态

4、内存模型

MMU:

每个安全世界和非安全世界都有自己的虚拟 MMU

尽管MMU有两套,但TLB缓存硬件只有一 套,其通过NS位来标志其每一项具体属于哪一个世界,这样在两个世界间进行切换时不再需要重新刷新TLB

L1内存模型:

同TLB类似,硬件上两个世界共享一套Cache,具体的Cache数据属于哪一个世界也由其NS位指定,在世界间切换也不需要刷新Cache.

5、安全中断

FIQ:即快速中断请求,是一种专为快速处理设计的中断机制,它允许极低的延迟中断响应。

IRQ: 常规中断请求

6、隔离机制

内存隔离:

TZASC : TrustZone Address Space Controller

TZMA : TrustZone Memory Adapter

  • TZASC可以把外部内存分成多个区域,每个区域 可以单独配置为安全或非安全区域,非安全世 界的代码和应用只能访问非安全区域。
  • TZMA可以把片上ROM和SRAM隔离出安全和非 安全区域。

外设隔离:

外设的安全特 性是动态变化 的,例如键盘 平时可以作为 非安全的输入 设备,在输入 密码时可以配 置为安全设备 ,只允许安全 世界访问。

7、安全启动

  • 系统上电复位后,先从安全世界开始执行。
  • 安全世界会对非安全世界的bootloader进行验证 ,确保非安全世界执行的代码经过授权而没有 被篡改过。然后非安全世界的bootloader会加载 非安全世界的OS,完成整个系统的启动
  • 在非安全系统的bootloader加载OS时,仍然需 要安全世界对OS的代码进行验证,确保没有被 篡改

8、优劣

优势:

image-20240315151426794

劣势:

TA在Secure world运行会带来一定的开销

Secure world内部没有进一步的安全控制

安全世界和非安全世界的切换会带来较大 开销

云环境安全---SGX

Intel SGX,Intel Software Guard eXtensions ,英特尔软件保护扩展。

1、云环境安全现状

供应商角度:

  • 云提供商不信任用户
  • 使用虚拟机将用户彼此 和主机隔离开来
  • VM只提供单向保护

用户角度:

  • 用户信任他们的应用程 序
  • 用户必须隐式地信任云 提供商
  • 现有的应用程序隐含地 假定操作系统是可信的

2、SGX

SGX默认不信任OS/VMM

SGX内存加密:

SGX利用内存加密引擎(Memory Encryption Engine, MEE)自动加密Enclave内存中的数据。即使物理内存被直接访问,数据也因加密而保持安全。

SGX完整性校验:

Enclave在创建时会被度量(即计算其哈希值),并且可以被签名。这允许外部系统在与Enclave交互之前验证其完整性和真实性。

3、SGX Enclave

应用程序将其数据/代码保存在 “enclave”中

  • 减少TCB攻击面最小(App + 处理器)
  • 保护App的秘密不被不可信的特权软件(如OS, VMM等)窃取

Enclave 具有如下特征:

  • 提供机密性保护。
  • 提供完整性保护。
  • 支持多线程。
  • 对应用程序内存具有最高访问权限

4、内存访问语义

EPC(Enclave Page Cache)内存

EPC是物理内存中的一部分,专门分配给SGX Enclave使用的。这块内存区域是由CPU的内存加密引擎保护的,确保即使物理内存被直接访问,数据也保持加密状态。EPC内存中的数据只有在加载进入CPU内部,并在Enclave内部解密后,才能被Enclave的代码访问和处理。

对于使用 MOV 等指令访问 enclave 内部的页面的情况 ,硬件将执行下列的检查:

  • 处理器当前运行在 enclavemode 中
  • 访问地址在 enclave 地址空间。
  • 物理地址在 EPC 内存中。
  • 只有 enclave 内的代码才能访问该 enclave 的内容

5、地址映射保护

  • EPC内存以页为单位进行管理,页的控制信息保存在硬件结构EPCM里,一个页面对应一个EPCM表项,类似 于操作系统内的页表,管理着EPC页面的基本信息,包 括页面是否已被使用、该页的拥有者、页面类型、地 址映射和权限属性等。
  • EPCM结构在CPU地址映射过程中用于执行enclave页面的访问控制。逻辑上而言,它在保护模式的段保护和 页保护机制的基础上增加了一层安全的访问控制

6、Enclave 启动度量

  • 应用程序在申请创建一个enclave时,需要进行页 面分配、复制程序代码与数据和度量操作。
  • 创建过程的最后一步需要对enclave的完整性进行 验证,通过对每个添加的页面内容进行度量,最终 得到一个创建序列的度量结果,保存在enclave的控 制结构中,判断特权软件在创建过程中是否篡改了 程序数据

7、SGX认证机制

在远程机器上运行的代码是否完整?

代码是否在SGX enclave内运行?

  • 本地认证
    • 向同一CPU上的另一个enclave证明enclave的身份(MRENCLAVE)
  • 远程认证
    • 向远程第三方证明enclave的身份

本地认证

image-20240308171545570

远程认证

image-20240308171631373

8、 SGX限制

  • EPC容量限制,最大128MB
  • 安全保障不完善
    • enclave中的漏洞仍然可以被利用
    • 侧信道攻击
    • SGX多线程同步漏洞
  • 性能开销
    • 进出enclave消耗较大(TLB flush)
    • 内存访问检查
  • 应用重构

9、Trustzone与SGX的区别

  • 应用环境不同
    • Trustzone主用于嵌入式设备,SGX主要用于服 务器和云端
  • 运行权限不同
    • Trustzone可以运行在内核层,需要trustOS支持 ,SGX运行在应用层,不信任OS
  • 应用保护粒度不同 – Trustzone仅分为两个区域,SGX里面可以跑多 个Enclave

10、优缺点

优点:

  • 强大的数据隐私和安全性:即使在不受信任的操作系统上运行,也能保护数据和代码的隐私和完整性。
  • 灵活的应用场景:SGX适用于需要高度数据保护的应用,如云计算、金融服务、个人数据保护等。

缺点:

image-20240315153540780

密码学

一些思想

扩散就是让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响.这样可以隐蔽明文的统计特性。

混淆就是将密文与密钥之间的统计关系变得尽可能复杂,使得对手即使获取了关于密文的一些统计特性,也无法推测密钥。使用复杂的非线性代替变换可以达到比较好的混淆效果,而简单的线性代替变换得到的混淆效果则不理想。

雪崩效应(Avalanche effect)指加密算法(尤其是块密码和加密散列函数)的一种理想属性。雪崩效应就是一种不稳定的平衡状态也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的很大变化。雪崩效应是指当输入发生最微小的改变(例如,反转一个二进制位)时,也会导致输出的剧变(如,输出中一半的二进制位发生反转)。在高品质的块密码中,无论密钥或明文的任何细微变化都应当引起密文的剧烈改变。

RSA原理

前提知识:

  1. \(φ(n)\)是小于等于n的正整数中与n互质的数的数目
  2. 若n是两个质数的相乘,即n=p*q。则\(φ(n) = (p-1)(q-1)\)

rsa加密的原理:

\[m^c≡c\,(mod \,\,n) \\ c^d≡m\,(mod \,\,n) \]

其中公钥是(e,n),私钥是(d,n)

  1. d的选取来自于 \(ed≡1\,(mod\,\, φ(n))\)

    所有满足的d即可为私钥(原理证明很麻烦,先直接记住)

  2. \(φ(n)\)的值则是RSA加密强度的来源

  3. 已知

\[ n = p·q \\ φ(n) = (p-1)·(q-1) \]

  1. 那么只需要把n分解成两个质数相乘即可求出\(φ(n)\)

求d的原理:

  1. 选择两个不相等的大质数 p,q

  2. 计算p,q的值n

    \[n = p·q \]

  3. 计算n的欧拉函数phi

    \[phi = (p-1)·(q-1) \]

  4. 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质
  5. 计算e对于φ(n)的模反元素d

    \[ed≡1(mod \quad phi) \]

    这个式子等价于:

    \[ed-1 = k·phi \]

  6. 于是可以把问题转化为扩展欧几里得问题

    \[ex + phi·y = 1 \]

  7. x即为e的模反元素d

AES加密

img

最后一轮没有列混合

密钥扩展

当分组长度和密钥长度都是128位时,AES的加密算法共迭代10轮,需要10个子密钥。AES的密钥扩展的目的是将输入的128位密钥扩展成11个128位的子密钥。AES的密钥扩展算法是以字为一个基本单位(一个字为4个字节),刚好是密钥矩阵的一列。因此4个字(128位)密钥需要扩展成11个子密钥,共44个字。

AES首先将初始密钥输入到一个4*4的状态矩阵中,如下图所示。

img

这个4x4矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为W[0]、W[1]、W[2]和W[3],它们构成一个以字为单位的数组W。例如,设密钥K为"abcdefghijklmnop",则K0 = ‘a’,K1 = ‘b’, K2 = ‘c’,K3 = ‘d’,W[0] = “abcd”。接着,对W数组扩充40个新列,构成总共44列的扩展密钥数组。新列以如下的递归方式产生:

(1)如果i不是4的倍数,那么第i列由如下等式确定:W[i]=W[i-4]⨁W[i-1];

(2)如果i是4的倍数,那么第i列由如下等式确定:W[i]=W[i-4]⨁T(W[i-1]);

其中,T是一个有点复杂的函数。函数T由3部分组成:字循环、字节代换和轮常量异或,这3部分的作用分别如下。

a.字循环:将1个字中的4个字节循环左移1个字节。即将输入字[b0, b1, b2, b3]变换成[b1,b2,b3,b0]。

b.字节代换:对字循环的结果使用S盒进行字节代换。

c.轮常量异或:将前两步的结果同轮常量Rcon[j]进行异或,其中j表示轮数。

img

初始变换

img

之后初始明文矩阵与第0轮子密钥(就是初始密钥)矩阵按字节进行异或

字节代换(s_box混淆)

把初始变换后的矩阵通过一张表进行映射代换

S_box

img

通过混淆和替换来增加密码的复杂性

将状态矩阵中的每个字节替换为另一个字节,这种替换具有非线性特性,增强了加密的强度

行移位 (扩散)

img

在行移位阶段,状态矩阵的每一行会根据其行索引进行循环左移,这个操作使得每个字节都被移动到不同的位置上。行移位的思想是通过改变数据的排列顺序来增加密码的复杂性,从而增加密码的安全性。

列混合 (扩散)

有限域上的矩阵相乘

img

左边的矩阵是固定的矩阵

这个操作在数学上是一个有限域上的矩阵乘法。列混合的思想是通过线性变换来增加密码的扩散性,从而提高其抵抗密码分析的能力。

轮密钥加

img

我们把上一操作得到的矩阵结果与轮密钥矩阵进行异或

轮密钥加的思想是将密钥的信息混合到每一轮加密中,增加了密码的随机性和复杂性,从而提高了安全性。

国密

SM1

对称加密、用于数据加密

SM2

  • 作用:SM2是一种基于椭圆曲线密码学的公钥加密算法,主要用于数字签名、密钥交换等。
  • 特点:相比传统的RSA算法,SM2在相同安全级别下需要的密钥长度更短,效率更高。

SM3

用于Hash摘要

  • 作用:SM3是一个密码散列函数,用于生成消息或数据的固定长度摘要,以验证数据的完整性。
  • 特点:输出为256位的散列值,设计上具有高安全性,难以找到两个不同的输入产生相同的输出。

SM4

  • 作用:SM4是一个对称加密标准,用于数据加密,类似于AES。
  • 特点:它有128位的密钥长度,并且设计上旨在提供高效的加密和解密过程。

身份认证机制

身份认证概述

一个成熟的身份认证系统应该具有以下特征:

  • 验证者正确识别对方的概率极大
  • 攻击者伪装以骗取信任的成功率极小
  • 通过重放攻击进行欺骗和伪装的成功率极小
  • 实现身份认证的算法计算量足够小
  • 实现身份认证所需的通信量足够小
  • 秘密参数能够安全存储
  • 可信的第三方
  • 可证明安全性

基于口令的身份认证

windows口令认证机制

windows LM Hash与NTLM Hash

winxp 用前者,win10用后者

LM Hash:

image-20240321160551852

image-20240321160558969

NTLM Hash:

image-20240321160747924

WIN 10使用HMAC和MD5生成SAM密码

  • Windows系统将用户密码以哈希值形式存储在安全账户管理器(Security Accounts Manager, SAM)数据库中。为了提高安全性,密码哈希在存储前会经过加密处理。

Linux口令认证机制

image-20240304170400579

Passwd 文件格式:

image-20240304170502458

img

shadow 文件格式:

image-20240304172325740

image-20230306145503571

优劣对比

image-20240314154953366

image-20240314154959699

一些口令攻击

抵御重放攻击

  1. 在认证交换中使用一个序数来给每一个消息报文编号,仅当收到的消息序号合法时才接受;
  2. 使用时间戳(A接受一个新消息仅当该消息包含一个A认为是足够接近A所知道的时间戳);
  3. 询问/应答方式(A期望从B获得一个新消息,则先发给B一个临时值(Nonce),并要求后续从B收到的消息包含正确的这个临时值)

抵御口令文件泄露

  1. 使用机器相关函数-ErsatzPasswords

    基本思想:密码和机器特征绑定,窃取无用

  2. 使用门限密码方案-PAKE
    基本思想:密码分割、窃取部分无用
    参考: https://blog.csdn.net/MuziZZ/article/details/102569581

  3. 放置假口令- Honeywords

    基本思想:欺骗迷糊,及时检测

基于智能卡的身份验证

询问/应答认证

image-20240304180735144

image-20240304180830055

image-20240304180746584

1、由于密钥存在于智能卡中,运算过程也是在智能卡中完成,密钥认证是通过加密算法来实现的,因而极大地提高了安全性

2、每当客户端有一次服务申请时,服务器便产生一个随机串给客户,即使在网上传输的认证数据被截获,也不能带来安全上的问题

3、最安全的认证方式。

4、没有同步的问题。

5、一片认证卡可以用来存取被多个不同认证服务器所保护的系统。

缺点:

1、使用者必须按较多的按钮,操作较繁复。

2、比较多输入的失误

时间同步认证

image-20240304181537486

image-20240304181428158

image-20240304181714168

对比询问应答认证与时间同步认证

  1. 这俩就一点不一样,一个是生成的随机数,一个是用动态时间
  2. 前者更安全

局域网身份认证---Kerberos

前景知识

  1. Kerberos 有两种证书:票据ticket和认证符authenticator。
  2. 这两种证书都要使用对称加密算法进行加密,但加密的密钥不同
  3. Ticket用来安全地在AS和S之间传递用户的身份,同时保证使用ticket的用户必须是ticket中指定的用户
  4. Authenticator:提供认证信息与ticket中的信息进行比较,一起保证发出ticket的用户就是ticket中指定的用户
  5. TGS服务器: 是根据客户端提供的TGT(Ticket Granting Ticket票据)来授予访问各种服务的服务票据

Ticket一旦生成,在life指定的时间内可以被client多次使用来申请同一个server的服务(单点登录机制)

Ticket的种类:

  1. 通行证

    image-20240304191429630

  2. 服务证

    image-20240304191435706

认证符authenticator只能在一次服务请求中使用,每当client向server申请服务时,必须重新生成Authenticator

Kerberos 的认证过程

1、认证服务交换

用户C向AS发出请求,以获取访问TGS的令牌(票据许可证):\(Ticket_{tgs}\)

image-20240304191640450

image-20240304191659397

2、C从TGS得到所请求服务的令牌Tickets

一个令牌只能申请一个特定的服务,所以用户必须为每一个服务S申请新的令牌,用户可以从TGS处得到服务令牌Tickets

image-20240304191759683

image-20240304191813477

3、客户机与应用服务器之间认证交换

C向应用服务器发送服务许可票据Tickets 和认证符Authenticator—info

image-20240304191853999

image-20240304191907193

通过三阶段六步操作,用户C和服务S互相验证彼此的身份,并且拥有只有C和S两者知道的会话密钥Kc,S

image-20240304193241773

image-20240304191939065

用户C访问appserver服务器的过程:

c => AS认证服务器				// c向AS获取访问TGS令牌(通行证)
AS => C							// AS给C通信证 Ticket_tgs
C => TGS服务器					// 用户C凭借Ticket_tgs访问TGS服务器,请求得到访问AppServer服务器的令牌
TGS服务器 => C					// TGS服务器返回C用户 访问Appserver服务器的令牌 Ticket_s,与生成的随机密钥K(c,s),这是为Client端和AppServer共享的会话密钥
C => Appserver					// TGS访问Appserver
Appserver => C					// 客户机与应用服务器之间认证交换

image-20240314160613359

局限性

Ø 时间同步问题

Ø 口令猜测问题

Ø 认证域之间的信任问题

Ø 重放攻击的问题

Ø 密钥的存储问题

Ø 系统程序的安全性、完整性问题

统一身份认证-PAM

Linux-PAM(Pluggable Authentication Modules)(基于Linux的插入式验证模块)是一组共享库,使用这些模块,系统管理者可以自由选择应用程序使用的验证机制

也就是说,不需要重新编译应用程序就可以切换应用程序使用的验证机制。甚至,不必触动应用程序就可以完全升级系统使用的验证机制

PAM架构

image-20240304184904159

操作系统基础安全机制

Windows安全模型

Windows采用微内核结构和模块化的系统设计。

windows 的访问控制过程

  • Step1(身份认证)

    当一个账号被创建时,Windows为它分配一个SID,并与其他账号信息一起存入SAM数据库

  • Step2(身份认证)

    每次用户登录时,登录主机 (通常为工作站) 的系统首先把用户输入的用户名、口令和用户希望登录的服务器域信息送给安全账号管理器 (SAM Secure account manager),安全账号管理器将这些信息与SAM数据库中的信息进行比较

  • Step3 (身份认证完成并授权)

    比较结果,如果匹配,服务器发给工作站允许访问的信息,并返回用户的安全标识和用户所在组的安全标识,工作站系统为用户生成一个进程。

    服务器还要记录用户账号的特权、主目录位置、工作站参数等信息。

  • Step4 (授权)

    本地安全授权机构(LSA)为用户创建访问令牌,访问令牌中有当前用户的唯一标识SID,组唯一标识SID以及一些权限标志(Privilege)。 此后,用户每新建一个进程,都将访问令牌复制作为该进程的访问令牌

  • Step5 (访问控制)

    当用户或者用户生成的进程要访问某个对象时,安全引用监视器将用户/进程的访问令牌中的SID与对象安全描述符中的自主访问控制表进行比较,从而决定用户是否有权访问对象

    在这个过程中应该注意SID对应账号的整个有效期,而访问令牌只对应某一次账号登录(系统出问题后重启)

简记:

1、创建时分配SID,并存入SAM

2、登陆时使用用户名、口令登录

3、登录成功,返回用户安全标识,为用户生成一个进程

4、LSA为用户创建访问令牌,访问令牌中有用户唯一的SID,之后用户每创建一个进程,都将访问令牌复制作为该进程的访问令牌。

5、访问控制,ACL表自主访问控制

Linux安全模型

linux的自主访问控制模型

– 一个可执行文件在执行时,linux的内核是根据该进程的运行用户的(有效)ID,包括user id和 group id,来决定进程对资源的访问权限

– SUID/SGID可以使文件在执行时具有文件所有者或 属组的权限

– 也可通过函数调用 Setuid()、setgid()来设置S位。

– SUID/SGID往往是入侵的基础

chmod u+s xxx : 这表示设置文件或目录的SUID(Set User ID)位。当对一个可执行文件设置了SUID位时,无论谁运行该文件,该文件都将以文件所有者的权限来运行。这通常用于需要提升权限以执行特定操作的程序,比如密码更改工具。

chmod g+s test:

这表示设置文件或目录的SGID(Set Group ID)位。当对一个文件设置了SGID位时,该文件将以其所在组的权限来执行,类似于SUID的作用。对于目录,设置SGID位意味着在该目录下创建的所有新文件和目录将继承父目录的组ID(GID),而不是根据创建者的主要组ID

SELinux

Security-Enhanced Linux

域类实施模型 + 强制访问控制MAC

基于 域-类型 模型(domain-type)的强制访问控制(MAC)[安全系统]

1、SELinux的优点

传统Linux的不足

1)存在特权用户root
任何人只要得到root的权限,对于整个系统都可以为所欲为。这一点Windows也一样。

2)对于文件的访问权划分不够细
在linux系统里,对于文件的操作,只有「所有者」,「所有组」,「其他」这3类的划分。

3)SUID程序的权限升级
如果设置了SUID权限的程序有了漏洞的话,很容易被攻击者所利用

4)DAC(Discretionary Access Control)问题
文件的所有者可以对文件进行所有的操作

Selinux的优点

1)更严格和细粒度的访问控制

对于所有的文件、目录、端口这类的资源的访问,都可以是基于策略设定的,这些策略是由管理员定制的、一般用户是没有权限更改的。

2)对于进程只赋予最小的权限

3)防止权限升级

4)对于用户只赋予与最小的权限

对于用户来说,被划分成一些ROLE,例如,即使是ROOT用户,你要是不在sysadm_r里,也还是不能实行sysadm_t管理操作的

能够限制即使是根用户的权限。

2、SELinux的缺点

  • 配置和管理较为复杂,需要深入理解SELinux的工作原理和策略语言。
  • 可能与某些应用程序不兼容,需要调整策略或应用程序以确保正常运行。

3、SELinux的安全上下文

1、在SELinux当中,所有操作系统访问控制都是以关联的客体和主体的某种访问控制属性为基础。

2、访问控制属性叫做安全上下文

3、所有的客体以及主体都有与其有关联的安全上下文

4、一个安全上下文由三部分组成:用户、角色和类型标识符

4、策略描述语言

因为SELinux默认不允许任何访问,所以,所有的访问都必须明确授权,不管用户/组ID是什么, 在SELinux中,通过allow 语句对主体授权对客体的访问权限

  1. 源类型(Source type(s)) 通常是尝试访问进程的域类型
  2. 目标类型(Target type(s)) 被进程访问的客体的类型
  3. 客体类别(Object class(es)) 指定允许访问的客体的类型 如file,dir,socket等
  4. 许可(Pemission(s)) 象征目标类型允许源类型访问客体类型的访问种类

allow user_t bin_t: file {read execute getattr}

5、SELinux的实现

  • LSM HOOK

    image-20240307163536218

6、TE (Type Enforcement) (类型强制规则)

TE规则是SELinux(Security-Enhanced Linux)中的一个重要概念,代表了类型强制(Type Enforcement)规则。

1、对所有的文件都赋予一个叫type的文件类型标签,对于所有的进程也赋予各自的一个叫 domain的标签。

2、Domain标签能够执行的操作也是在访问控制策略里定义好的

其他强制访问控制工具

SEAndroid

-安全标签只有四个字段

与Selinux相比,少了Category标签 (Grsecurity保护linux内核的内存页受限于最小权限原则)

-更细粒度

定义了80多个策略文件,共包含千条策略

AppArmor

-使用文件路径作为安全标签

-相比于 SELinux 它提供更多的特性,更容易使用

-包括一个学习模式,可以让系统“学习”一个特定应用的行为,以及通过配置文件设置限制实现安全的应用使用。

-Ubuntu默认支持AppArmor

-安全性不如Selinux

数据库安全

隐蔽信道

如果存在某个渠道,原本是不该用于传递信息的,实际上却能被用于传递信息,那么这样的渠道就是一个隐蔽信道。

或者说:

可定义为系统中不受安全策略控制的、范围安全策略的信息泄露路径。

解决手段:

1、多实例

image-20240322211803942

数据库推理控制

利用推理(Inference)手段,用户有可能间接访问数据库中的数据

1、借助求和结果进行推理

2、借助记录个数进行推理

3、借助平均值、中位数进行推理

4、借助智能填充进行推理

image-20240322212440499

5、借助线性特性进行推理

a1 和 a2 都是敏感信息,但 a1+a2 可能就不是了。但是,如果允许查询敏感信息经过算术运算后的结果,从这些表面看来不是敏感信息的结果中也许可以推出敏感信息来。

image-20240322212604803

数据库推理控制的应对策略

1、DBMS 可以屏蔽数量少但比例高的数据

2、滤除法

就是当查询可能涉及敏感信息时,默默拒绝提供查询结果,不给出任何反馈

3、隐藏法

就是当查询可能涉及敏感信息时,隐藏掉部分与查询相关的信息,只提供近似查询结果。

  • 结果合并式隐藏法

    image-20240322212810315

  • 随机抽样式隐藏法

    随机抽样式隐藏法通过随机抽样的办法隐藏数据库信息。当 DBMS 接收到一个查询请求时,它首先从查询对象数据中生成一个随机样本数据集,然后在样本数据集上实施查询操作,生成查询结果

  • 偏差导入式隐藏法

    简单地说,数据扰动就是对原始数据进行适当的修改,以便掩饰数据真实的值。数据扰动的常用技术有数据交换(Swapping)和数据随机化(Randomization)等。数据交换就是交换数据记录之间的数值。数据随机化则是给数据添加噪声

    image-20240322213110657

二类知识点

优先级较低的知识点

信息隐藏技术

  • 信息隐藏是指将某一信号(一般是签字信号)嵌入掩护媒体的过程,掩护媒体经嵌入信息后变成一个伪装媒体

  • 需要满足:

    1、Robustness: 稳定性、健壮性

    签字信号对主信号的各种失真变换,如失真信号压缩、仿射变换、加噪、A/D或D/A转化等,以及各种恶意性攻击,都体现了一定的鲁棒性。除非,主信号的感知特性被明显破坏,签字信号将很难被去除

    2、签名信号的不可感知性,签名信号嵌入后,主信号的感知特性没有明显变化,签字信号被主信号影藏了起来

  • 一般来讲,签字信号的嵌入不增加主信号的存储空间和传输带宽。也就是说,签字信号嵌入后,"表面"上很难觉察到信息的改变

(1)隐写术-伪装式保密通信
(2)数字水印-数字产品版权保护

容错技术

容错技术是一种确保系统在面临软件错误、硬件故障或其他问题时任能正常运行的技术。它旨在通过增强系统的鲁棒性和可靠性,使系统能够在部分组件失败时继续提供无缝的服务。容错技术的实现方式多样,包括但不限于数据备份、冗余硬件、错误检测和纠错算法、以及故障切换机制等

故障自检测与自诊断技术

联机检测与诊断: 在系统运行期间实现自我检测与诊断的过程,也叫自检测与自诊断,是提高系统可靠性的重要环节。

脱机检测与诊断:在系统非运行期间进行检测与诊断,是提高系统可用度、可维性的重要环节

故障屏蔽技术

故障屏蔽技术(Fault Masking Technology)防止系统中的故障在该系统的信息结构中产生差错的各种措施的总称,其实质是在故障效应达到模块的输出以前,利用冗余资源将故障影响掩盖起来,达到容错目的。

冗余容错技术

硬件冗余

原理:采用并联结构,从输入端输入相同的信息,并执行同样的程序,完成同样的任务,得到的结果送入表决器,以多数的结果作为最后的输出。 (N取r系统模型)

优点: 简单易行

缺点: 增加了硬件设备,提高了系统的费用

动态冗余:

采用辅助系统作为主系统的热备份,正常状态下主系统工作,并对主系统进行故障检测和定位,一旦诊断出故障发生的位置,系统能进行自动修复。

  • 热备份(Hot Backup): 热备份是在系统运行时进行的备份,不需要停止服务或关闭数据库。
  • 冷备份:冷备份是在系统停止运行或处于离线状态时进行的备份。

优点:各子系统无需或少许增加硬件设备,就可以起到互为冗余的作用

缺点: 虽然不增加硬件设备却增加了大量软件工作,系统研制的难度、周期和费用增加了。遇到故障时自动定位和恢复过程较慢;不适合实时性很强的系统。

软件冗余

动态冗余:

  • 程序回卷(Program Rollback)

    在执行的程序中设置若干测试点,在每个测试点上检查输出结果。当测试程序检测出错误时,就认为正在执行的程序是一个错误的系统中运行的,这段程序要被重新执行,即程序的卷回。

    缺点: 对固定的故障无能为力

  • 多道程序表决法

    • 对同一个问题按不同的算法编多个程序,对执行的结果进行表决。
    • 串行执行:费时,过多地占用主存空间,不符合实时性和实用性的要求
    • 并行执行:需要硬件支持
  • 模块恢复法

    • 程序按照模块执行,每执行完一块,接着执行一个测试程序,对刚执行的程序进行测试,通过后再执行下一个模块,通不过则重新执行
    • 无法适应实时系统的要求

静态冗余:

image-20240316170803829

容错软件设计的基本技术

N版本程序设计(NVP)

由N个实现相同功能的不同程序同时(或几乎同时)在松耦合计算机上运行,然后比较运行结果,在出现不一致的情况下,利用多数表决决定一个最优先的结果

恢复块(Recovery Block)技术

image-20240316171020454

三类知识点

渗透测试的生命周期

  1. 信息收集
  2. 目标测试
  3. 漏洞利用
  4. 提升权限
  5. 维持访问、清除痕迹

Fuzz

Fuzz方法

1、盲fuzz

在随机位置插入随机的数据以生成畸形文件

2、智能fuzz

面向逻辑,生成测试用例时考虑数据结构以及编码方法

Fuzz类型

1、文件Fuzz

文件作为程序主要输入;按照实现约定好的数据结构对文件中不同的数据域进行解析

2、协议fuzz

对网络协议的Fuzz,目标是聚类实现报文分类,然后对报文域识别

3、组件Fuzz

组件提取,组件接口分析;构造测试用例;测试驱动、异常跟踪;结果分析

4、web fuzz

特殊形式的网络协议模糊测试;构造Web请求,对制定URL进行检测,如sqlmap

云计算与云计算安全

旨在保护云计算环境中的数据、应用程序和基础设施免受威胁、泄露、窃取和删除。云计算安全关注的核心领域包括:

  • 数据安全:保护存储在云服务中的数据不被未授权访问或泄露。这通常涉及到加密技术,以及访问控制和身份验证机制。
  • 网络安全:确保数据在传输过程中的安全,包括使用加密协议防止数据在传输中被拦截。
  • 合规性:遵守相关行业和国家的数据保护法规,例如GDPR(欧盟通用数据保护条例)或HIPAA(健康保险便携和问责法案),确保数据处理符合法律要求
  • 灾难恢复和业务连续性:建立策略和程序,以便在发生安全事件或其他中断时,快速恢复服务和数据访问。
  • 用户和设备管理:确保只有授权的用户和设备能够访问云资源,通过实施强大的身份和设备管理策略来实现。

云安全面临的威胁与挑战

1、数据泄露与隐私问题

  • 数据泄露是云计算安全中最常见的问题之一,可能由于多种原因导致,包括恶意攻击、配置错误、或者是内部人员的滥用权限。
  • 隐私问题也非常关键,特别是在跨国云服务中,数据的存储和处理可能涉及不同国家的法律和规定。

2、接入管理和身份认证

  • 云环境通常支持远程访问,这就要求有强大的身份认证访问控制机制,以防止未授权访问。
  • 多租户环境的特性要求服务提供商能够有效隔离不同客户的资源和数据,防止数据泄露。

3、高级持续性威胁(APT)和DDoS攻击

  • 高级持续性威胁(APT)是指攻击者长时间潜伏在网络中,悄无声息地进行数据窃取或系统破坏。
  • 分布式拒绝服务(DDoS)攻击可以通过超载云服务的网络和资源,使其无法处理合法的请求。

4、配置和管理错误

  • 由于云环境的复杂性,配置错误是常见的安全问题。错误配置的云资源可能会对外暴露,成为攻击者的目标。

  • 供应链风险,由于云服务通常依赖于第三方服务和组件,因此整个供应链的安全性也会影响云服务的安全

为了应对这些威胁和挑战,企业需要采取综合的安全策略,

1、选择合适的云服务提供商

2、实施严格的访问控制和身份验证机制

3、对数据进行加密处理

4、确保配置的正确性、并持续监控云环境的安全状态

5、与云服务提供商紧密合作,了解其安全实践和责任分界,也是保障云计算安全的关键因素。

什么是拟态防御

通过动态变化系统的攻击面/来保护网络和系统免受未知威胁和高级持续性威胁(APT)的攻击。

这种方法模仿了生物世界中的拟态机制,如某些动物变化颜色或形态以躲避天敌。

在信息安全领域,拟态防御通过定期、随机或在检测到攻击迹象时改变网络、软件应用程序或系统环境的配置和特性/,从而使攻击者难以确定有效的攻击矢量或持久地保留对目标系统的访问。

一些前沿领域

chatgpt / 人工智能

一、向量化

向量化是将文本转换为能够被机器理解的数字形式的过程。在自然语言处理(NLP)中,这通常意味着将词、短语或整个文档转换为向量。这些向量捕捉了语义信息,即词的含义和上下文。ChatGPT 通过词嵌入(word embeddings)实现向量化,每个词被映射到一个高维空间中的一个点。这些嵌入向量是在预训练阶段学习的,可以捕捉到词与词之间的复杂关系,如同义词、反义词等。

二、信息压缩与特征提取

模型需要从海量的输入数据中提取最重要的信息,忽略不相关的细节。在 ChatGPT 中,这是通过多层的 Transformer 网络完成的。

  • 信息压缩:在处理输入数据(如文本)时,模型通过层层的网络结构压缩信息,保留最有意义的信号。这一过程涉及到维度的降低,但同时保持数据的核心内容不变。这使得模型能够高效地处理和生成文本。
  • 特征提取:特征提取是从原始数据中识别出最有用的信息以供后续处理的过程。在 ChatGPT 中,Transformer 网络通过自注意力(Self-Attention)机制来实现这一点。自注意力允许模型在处理每个词时考虑到整个输入序列的上下文,这样它就可以更好地理解每个词在特定上下文中的意义,从而提取出重要的特征。

chatgpt只使用了transformer的解码器,用于把向量化的数据输出为文本

bert,语言理解模型,使用的是编码器

transformer

1、模型可以捕捉到长距离依赖关系,比如文本中相隔很远的词之间的语义联系。

2、Transformer依靠自注意力机制来捕获输入数据之间的复杂关系,这使得GPT能够生成连贯、相关联的文本。

  • 编码器:

    理解语言,把语言映射成向量

    • 寻找相似度:

      向量与句子中其他词语点乘,值越大,夹角就越小

    • 在点乘过程中根据损失函数不断反馈损失值,根据损失值调整最初的向量和权重,直到找到正确答案(预测函数?),这个过程叫做收敛.

    通过大数据逼近损失函数最低点的过程

    训练集 ==> 预测函数 ==> 损失函数 ===> 收敛 ==> 预测函数

    https://www.bilibili.com/video/BV13U4y1H7Xn/?p=3&spm_id_from=pageDriver

    image-20240317092654892

  • 解码器:

    生成语言,把向量映射成语言

自注意力机制的优点是 长距离依赖关系

专用人工智能与通用人工智能的区别

专业人工智能(聚焦在细分的某个领域): 下围棋、图像识别

通用人工智能则是指能够执行任何智能任务的人工智能系统,类似于人类的智能。

机器学习

机器学习就是要找到那条线,一分为二

线性回归/逻辑回归

回归就是预测,线性回归就是找到一条线来预测一个具体的值

逻辑回归是为了解决分类问题

线性回归/逻辑回归的算法就是 如何用数学的方式使用损失函数,找到这条线的过程

k近邻 (KNN)

解决分类问题

物以类聚,人以群分

image-20240317094038589

决策树

image-20240317094452485

支持向量机 svm

image-20240317094853240

找条线把数据一分为二,新的数据落在左边为猫,落在右边为狗

沟壑叫做超平面,狗猫叫做支持向量

svm可以解决线性不可分问题:

通过核函数进行升维

image-20240317095106658

二维下无法一分为二

使用核函数\(z=x^2+y^2\) 升维

image-20240317095152136

朴素贝叶斯

用于分类

image-20240317095428807

image-20240317095524654

神经网络/ 深度学习(CNN)

神经网络是深度学习的底层技术

加层处理线性不可分问题

不管多复杂的数据通过加层的方式,都可以拟合出合适的曲线

加层就是函数的嵌套,理论来说,不管多复杂的问题,我们都可以通过简单的线性函数组合出来

比如异或运算:

image-20240317100630018

image-20240317100640010

image-20240317100657452

卷积神经网络

卷积: 让计算机忽略细节只管特征,即提取特征

以图片为例:

image-20240317105342882

用卷积核提取特征,如果像素与卷积核特征比较相似,上下相乘再相加再平平均之后,最后算出的数会比较大,反之算出的数比较小。我们以此来把最关键的特征提取出来,我们使用不同的卷积核提取不同的特征

池化:

一张 1920 * 1080大小的图片,有100万像素而且冗余像素很多,我们想办法把图片缩小。

两种做法: 1、在每个四乘四的格子中找到数值最高的像素保留下来

2、在四个像素取平均值,保留下来

卷积神经网络原理:

不断的池化、卷积,把最后提取到的特征全部放入由感知机组成的全连接神经网络,做最后一次分类。再根据损失函数进行反馈,经过上千万次的尝试后,就找到了每个特征的合适权重组合

量子计算机/密码

量子计算机的原理

量子计算机的工作原理是利用量子位(qubit)来进行计算。与传统计算机的比特(bit)不同,比特在任何时刻只能处于0或1的状态之一,而量子位可以通过量子叠加的状态同时表示0和1。这意味着量子计算机可以同时处理大量的计算路径,极大地提高了计算速度和效率。

量子计算的关键原理包括:

  • 量子叠加:量子位可以同时存在于多个状态(0和1)中,允许量子计算机并行处理大量计算。
  • 量子纠缠:量子位之间可以产生一种特殊的连接,称为量子纠缠。当两个量子位纠缠在一起时,不管它们相距多远,对其中一个量子位的测量将即刻影响到另一个量子位的状态,这使得量子计算机能够在处理复杂计算问题时展现出超常的能力。
  • 量子干涉:利用量子叠加态的不同路径干涉,以筛选出正确的答案,排除错误的计算路径。

量子密码学的原理

量子密码学是利用量子力学的原理来进行信息的加密和传输,以保障信息的安全。它主要基于以下两个量子力学现象:

  • 量子不可克隆定理(抗监听性):这个原理指出,不可能完美复制一个未知的量子态。这意味着潜在的窃听者不能复制量子通信中的量子态,从而无法不被发现地拦截信息
  • 量子纠缠(量子密钥分发):如前所述,量子纠缠可以用来实现量子密钥分发(Quantum Key Distribution, QKD),即允许两个通信方安全地共享一个密钥,即使有窃听者也无法知道这个密钥。最著名的量子密钥分发协议是BB84协议。

生物计算

生物计算是一种使用生物学机制,如DNA、蛋白质或细胞来进行计算的技术。这个领域结合了生物学、计算机科学和工程学,旨在开发出新的计算模型、系统和工具。生物计算利用生物分子进行信息的处理和存储,有望为处理大规模数据和解决特定问题提供新的途径。

主要研究方向包括:

  1. DNA计算使用DNA分子来存储信息和执行计算。DNA计算的概念是由莱纳德·阿德曼于1994年提出的,他通过DNA分子的组合来解决哈密顿路径问题。DNA计算利用分子生物学的技术,通过设计特定的DNA序列来表示数据和计算步骤,利用DNA分子的自我组装能力来实现计算过程。
  2. 蛋白质计算:研究如何利用蛋白质的结构和动态变化来执行计算任务。蛋白质可以通过其形态的变化来表达不同的状态,这些状态可以用于表示计算中的逻辑状态。
  3. 细胞计算:利用活细胞的网络来进行信息处理。例如,通过改变细胞之间的信号传递方式或改变细胞内的基因表达网络,来模拟计算过程。细胞计算可以应用于生物传感、智能药物输送等领域。

应用领域:

  • 药物发现:通过模拟生物分子间的相互作用,加快新药的发现和开发过程。
  • 生物传感器:利用生物分子特有的识别能力,开发用于检测特定物质的高灵敏度传感器。
  • 数据存储:基于DNA的数据存储技术因其高密度和长期稳定性,被视为未来数据存储的一种潜在解决方案。
  • 智能材料和纳米技术:利用生物计算原理设计出具有自我组装、自我修复能力的智能材料。

生物计算领域仍然处于探索阶段,但它提供了一种全新的思考计算问题的方式,有潜力在未来实现突破性的进展。随着生物学和计算机科学研究的深入,我们可以期待在生物计算领域出现更多的创新和应用。

sora

Sora是由OpenAI开发的一款先进的人工智能模型,能够根据文本描述生成视频。这一技术基于OpenAI之前的文本到图像生成模型DALL-E,并进一步扩展其能力,使其能够创建长达一分钟的视频。Sora能够处理包括公开可用视频和专为训练目的获授权的版权视频在内的各种训练数据,尽管OpenAI没有公开具体的数据量和来源。

尽管如此,Sora仍然存在一些局限性,如难以精确模拟复杂场景的物理原理混淆空间细节,以及在描述随时间推移发生的事件方面的挑战。例如,Sora生成的视频中的人物可能咬一口饼干,但饼干上可能看不到明显的咬痕。此外,它在处理空间细节,如分辨左右时,也可能表现出混淆。

尽管面临挑战,Sora的出现仍预示着视觉叙事新时代的到来,随着技术的持续迭代和进步,这些局限性有望逐步得到解决,Sora的模型能力也将越来越强大。

posted @ 2024-03-26 17:43  TLSN  阅读(32)  评论(0编辑  收藏  举报