0%

物联网安全

第一章 物联网概述

物联网的定义★

物联网的定义★:物联网是基于互联网、传统电信网等信息承载体,让所有能够寻址的物理实体实现互联互通,从而实现某种特定的功能业务的网络

物联网的特点★:

  • 联网终端规模化
  • 异构设备互联化
  • 感知控制普适化
  • 管理调度智能化
  • 应用服务链条化
  • 经济发展跨越化

物联网与互联网:

相同 不同
技术基础:分组数据技术——都采用分组交换网 涵盖范围
终端接入方式
技术范围

物联网的架构★

应用层-网络层-感知层架构

传感器网络参考架构(SNRA):感知域、网络域、服务域,其中网络分为数据流和控制流

M2M架构:应用实体、公共服务实体、基础网络服务实体

云管(边)端的架构:

  • 云:面向物联网感知和决策的各种数据,基于人工智能和大数据技术,通过数据分析和处理实现某种特定功能业务的资源池。
    • 云服务分为三类:软件即服务SaaS、平台即服务PaaS和基础架构即服务IaaS
  • 管:负责终端点间、终端节点与边缘节点、边缘节点与云之间数据的传输和控制指令的下发
  • 边:物联网的边缘设备,如网关、微型数据中心等。边缘设备靠近物联网终端,就近提供服务。
    • 相对于云计算而言,决策过程靠近物或数据源头,运行在具有较高计算能力的终端设备上,就近提供最近端服务,即被称作边缘计算或者雾计算。
    • 举例:工控、智能安防
  • 端:物联网系统种最靠近物理世界的实体设备,这些终端设备能够实现对物理世界的感知和控制,承担着物联网数据采集和控制执行的基本功能。

物联网的关键技术

传感器技术:传感器一般通过换能原理,将多元的物理量转化为电信号,并通过模数转换后以数字态的形式表达,以便进一步处理。

常用无线接入技术:WIFi、ZigBee、WiMAX、3G/4G/5G

云计算:传输成本较高、难以满足边缘业务的实时性需求,存在一些安全隐私风险。

边缘计算:在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。

自动识别技术:光学字符识别OCR、语音识别SR、虹膜识别、指纹识别、IC卡技术、条形码技术、二维码

RFID:射频识别技术的缩写,利用射频信号通过空间耦合实现无接触信息传递并通过所传递的信息达到识别目的

  • 由五个组件构成:传送器、接收器、微处理器、天线、标签(前三项组成阅读器)
  • 标签分类:
    • 被动标签:内部没有电源——无源
    • 主动标签:内部携带电源——有源
    • 半主动标签:内部标签用于计算而非通信
    • 采用的存储方式:EEPROM(常见)、FRAM、SRAM(需要供电)
  • RFID特性:对物体的唯一标识特性

定位系统

卫星定位系统、蜂窝基站定位、AGPS(大致确定)、室内精确定位(WiFi等)

WiFi空间指纹——基于WiFi强度

物联网新兴技术

云计算

大数据

5G:第五代移动通信技术

  • 性能目标:高速率、少延迟、节能、低成本、提高系统容量、大规模设备连接
  • 网络切片
  • MIMO波束成形

物联网应用场景

智能家居、智慧农业、智慧城市

基础设施实例:智能电表系统、公交到站预报系统、环境温度湿度检测系统、天眼系统

产业应用实例:智能制造、智慧农业

商业服务实例:电子货架、无人超市、智能商场

消费电子:智能电视、智能冰箱、智能音箱

工业物联网

车联网五大要素:人、车、路、通信、服务平台

电力物联网

物联网的安全与隐私

安全与隐私问题的一般指标

可靠性、可用性、保密性、完整性不可抵赖性、可控性

第二章 古典密码学

概述★

保密性:数据的保密基于加密算法的保密

古典密码学哲学思想:代替(直接替换字母)、置换(字母不变,但顺序打乱)

信息安全的目标★

机密性:保证信息/数据不会被泄露给未经授权的个体

  • 防御方法:加密解密算法

完整性:保证信息/数据不会被未经授权的个体修改

  • 防御方法:Hash函数,纠错码,消息认证码

可用性:保证信息/数据能够被已授权的个体访问

  • 攻击方法:Dos攻击,DDos攻击

真实性:保证信息/数据确实来自其所声称的消息源

  • 防御方法:密码方案,数字签名,Hash函数,消息认证码,质询-响应协议

不可抵赖性:保证信息/数据交互的所有参与者均不能否认曾发送过的消息和数据

  • 防御方法:数字签名

密码学的基本概念

1578055753857

1578055774001

科克霍夫假设:密码分析者知道双方使用的密码系统,包括明文的统计特性加密解密体质等、唯一不知道的是密钥。

密码学安全攻击分类:(难度越来越小)

  • 唯密文攻击:攻击者由一个或多个密文,攻击需要统计分析
  • 已知明文攻击:攻击者有一份密文和对应的明文,进行算法和密钥推导
  • 选择明文攻击:攻击者有机会使用加密机,因此可以选择任何明文并产生对应的密文,攻击概率更大
  • 选择密文攻击:攻击者有机会使用解密机,因此可以选择一些密文并产生对应的明文

密钥长度越长,加密数据越不容易被非法解密

几种古典密码学加密方法及其安全性★

移位加密(凯撒加密)

  • 方法:
    • 密钥:$k$
    • 加密:$y=x+k(mod26)$
    • 解密:$x=y-k(mod26)$
    • 其中k就是加密密钥,凯撒用k=3进行加密
  • 安全性:
    • 暴力穷举
    • 词频统计

仿射加密(从零开始)

  • 方法:

    • 密钥:$(\alpha ,\beta)$

    • 加密:$y=\alpha x+\beta (mod26)$

    • 解密:$x=\cfrac1 \alpha (y-\beta )(mod 26)$

    • 注意$\cfrac1 \alpha$是逆元而不是倒数

    • 逆元计算举例:

      1578057601347

  • 安全性:

    1578058129527

    • 解密举例:1578058957926

维吉尼亚密码(见wikipedia)

  • 方法:
    • 列出明文并按照密钥长度分组,用密钥对每个组内字母进行移位加密
    • 加密:$C=(P+K)mod26$
    • 密钥:$K$会改变
  • 安全性:
    • 能够消除字母的频率特征
    • 破解方法
      • 找到密钥长度(找出后可进行词频统计攻击)
        • Kasiski-卡西斯基实验1578061323770
        • Friedman测试法:
          • 假设密钥长度为N,计算第1,1+N…子列的重合指数IC,若IC=0.065则N为正确的密钥长度。
      • 找出密钥

一次性密码本:

  • 特点:一次性密钥
  • 安全性:牢不可破,除非密钥泄露

词频统计攻击重点

第三章 现代密码学

基本知识

流密码与分组密码:

  • 流密码:每次加密数据流的一位或者一个字节,如一次性密码本
  • 分组密码:将明文分组作为整体加密并且通常得到与明文等长的密文分组

混淆、扩散:类似于古典密码学的代替、置换

  • 混淆:使密钥密文之间的关系尽可能模糊的加密操作,在DES、AES中都有使用

  • 扩散:为了隐藏明文统计属性而将一个明文符号的影响扩散到多个密文符号的加密操作,如位置换。常用于DES中。

  • 有扩散和无扩散:

    1578104171640

S盒:在密码学中,是对称密钥加密算法执行替换计算的基本结构。在分组密码中,通常用于混淆。

  • 原理:接受特定数量的输入比特m,并将其转换为特定数量的输出比特n,n不一定等于m。
  • eg:1578104537125

私钥密码(对称密码)★

对称加密的定义:加密和解密都使用同一把密钥

1578104815060

对称加密的安全性取决于:

  • 加密算法具有安全性
  • 密钥具备保密性(关键)

DES

定义:DES是一种使用56位密钥(8位为校验位所以有效长度56)对64位长分组进行加密的密码,是一种迭代算法

特点:DES对明文中每个分组的加密过程都包含16轮,且每轮的操作都完全相同。每轮使用不同的子密钥,但是子密钥是从主密钥中推导而来。

流程:1578105571989

  • 初始置换IP:
    • 64比特明文分组置换
    • 作用是得到一个乱序的比特明文分组
  • 轮内加密
    • 整体结构:1578108007426
      • :one:”F函数”将数据半块与某个子密钥进行处理。
      • :two:然后,一个F函数的输出与另一个半块异或之后,
      • :three:再与原本的半块组合并交换顺序,进入下一个回次的处理。
      • 在最后一个回次完成时,两个半块需要交换顺序,这是费斯妥结构的一个特点,以保证加解密的过程相似。
    • F函数:1578107155618
      • 扩张:利用扩张置换(E)将32位的半块扩展到48位
      • 与密钥混合:扩张后的半块与密钥进行异或
      • S盒:经过S盒进行混淆,目的是让密码非线性
      • P盒:利用P置换进行重组,目的是为了S盒的四位输出在下一次扩张后由四个不同的S盒进行处理

注意:S盒查表方法、扩张置换的规律、最后一轮轮内加密完成后要交换两个半块

DES优势:解密的过程和加密的过程完全相同,只是使用的密钥顺序刚好相反

DES安全性:可破解,但需要7天?成本较高?

3DES

定义:由三个连续的DES加密组成

原理:1578108280891

  • $密文=E_{K3}(D_{K2}(E_{K1}(明文)))$
  • $明文=D_{K1}(E_{K2}(D_{K3}(密文)))$

三个密钥选项:

  1. 三个密钥是独立的,强度高
  2. 当$k_1=k_3$时,则称为双密钥三重DES
  3. 当$k_1=k_2=k_3$时,即为DES

3DES安全性:目前仍有足够的安全性

面临的问题:3DES实现效率低、DES分组较小

AES

分组长度:128bit

AES-128 AES-192 AES-256
密钥长度 128 192 256
迭代轮数 10 12 14

原理:一个混淆和三个代换

  • 字节代换:用一个S盒完成分组中的按字节代换

  • 行移位:一个简单的置换

    • 举例:

      1578109983211

  • 列混淆:利用在伽罗瓦域上的算数特性的代换

    • 举例:1578110030148
  • 轮密钥变换:利用当前分组和扩展密钥的一部分进行按位XOR

公钥密码(非对称密码)★

对称密钥体制的缺陷:建立传输私钥的“安全信道”并不容易,且密钥量大

公钥密码体制简介:

  • 密钥生成:通过相对容易的计算过程生成一对公钥PK与私钥SK
  • 加密:给定明文M与公钥PK,计算得到密文$C=E_{PK}(M)$
  • 解密:给定密文$C=E_{PK}(M)$和私钥SK很容易计算得到明文M
  • eg:每个人将自己设计的加密密钥和加密算法公之于众,而只保密解密密钥,任何人都可以使用这个公钥向他发送消息加密信息。

RSA算法

数学基础:

  • 剩余类的概念1578120364046

  • 剩余类互质的概念:1578120588756

  • 欧拉函数的概念:与m互素的剩余类的个数称为欧拉函数,记为$\phi(m)$

  • 欧拉定理:1578120751644

  • 费马小定理:1578120827999

    1578120846172

  • eg:1578121593653

RSA算法:

  1. 选择两个大素数p,q
  2. 选择$n=pq,z=\phi(n)=(p-1)(q-1)$
  3. 随机选取e(e<n),e与z互质
  4. 选取d使得ed-1能够被z整除(即ed mod z=1)
  5. 公钥是(n,e),私钥是(n,d)。
  • 加密:$c=m^e$mod n
  • 解密:$m=c^d$mod n

RSA安全性:

  • 问题本质:已知n,求n=pq,即分解素因数问题,一般情况下,计算不可解

密钥建立的两个方法:

  • 密钥约定
  • 密钥分发

DH协议★

用途:实现双方在不安全通信信道下交流,得到共同密钥,用于对称加密。

eg:1578124158702

  • $g^{ab}$mod p为共享密钥

问题:

  • 容易遭受阻塞攻击:当敌手发起大量的密钥请求,受攻击者将花费较大计算资源来做幂运算
  • 容易遭受中间人攻击
    • 防御:数字签名

物联网密码学技术应用

消息认证码(MAC)=H(message+key)

HASH:y=h(x):

  • 对任何长度的输入x都适用
  • 对任何长度的输入x,输出y都是固定长度
  • 计算复杂度很低
  • 对于给定输出y,找到对应输入x是不可能的
  • 对于给定的x1,找到满足h(x1)=h(x2)的x2是不可能的

常见hash函数:

  • MD5消息摘要算法
    • 输入任意长
    • 每一次处理512bits
    • 输出128bits
    • 已经发生碰撞
  • SHA
    • 输入<$2^{64}$
    • 每一次处理512bits
    • 输出160bits
    • 已经发生碰撞

数字签名:

  • 与公钥加密相反:私钥加密,公钥解密

第四章 认证安全

概述★

身份认证:

  • 目的:确认当前所声称为某种身份的用户或设备,确实是所声称的用户或设备

传统认证技术

传统用户认证技术 传统设备认证技术
静态口令 IP地址
电子令牌 Web Cookies
数字证书认证 设备ID

特点★:

  • 轻量级
  • 多安全等级
  • 跨平台

3M要素★:网络mobile、设备machine、用户man

1578125818932

四种认证形式:

1578126010179

互联网设备指纹认证技术

软件设备指纹

基于设备ID

MAC地址:全球唯一,有被篡改风险

IMEI/MEID码:

  • 前者为手机序列号
  • 后者为采用CDMA移动电话的移动设备识别码
  • 有被篡改风险

UDID码:ios设备身份标识码

基于浏览器信息

基于浏览器特性的软件设备指纹(flash、java):字体、版本、平台、清晰度、http accept等字段

基于canvas(js):字体、版本、平台、清晰度、显卡等

基于javascript:版本、平台

基于跨浏览器信息:字体、清晰度、网络信息

其他

基于软件环境

硬件设备指纹★

基于感知单元

MEMS传感器:

  • 麦克风频率响应不同
  • 图像伪像等作为指纹(畸变等)

基于传输单元

射频指纹:由于通信硬件导致的射频信号的差异

  • 瞬态信号设备指纹(开启关闭瞬间)
    • 不承载任何数据信息
  • 稳态信号设备指纹
  • 要求:指纹信号与内容无关

基于计算单元

时钟晶振硬件设备指纹:

  • 时钟偏移
  • 时钟偏移率(有效)
  • 由硬件决定从常量

基于中央处理器的硬件指纹:

  • 设备制造时的缺陷被DC-DC模块放大
  • 测量电磁辐射

互联网生物认证技术★

生物度量标准:

  • 普遍性:任何个体都有该特征
  • 独特性:任何两个个体在这一特征上都有区分性
  • 持久性:一段时间内稳定不变
  • 可采集性:可被定量采集

分类:

  • 生理性特征:指纹、面部、虹膜等
  • 行为性特征:签名、说话方式、打字习惯等

基于生理性特征

指纹识别

获取、压缩、处理、特征提取、指纹比对

人脸识别

受光照、字态、遮挡、年龄等制约

声纹识别

有变异性,非一成不变

说话人辨认和说话人确认:

  • 前者多选一
  • 后者一对一

基于行为特征

签名动态识别

静态签名与动态签名

步态识别

低成本、性能好

问题

标准化、存储安全、隐私安全、可获得性(残障)

互联网场景认证技术

定义:选择使用物理时空的一致性,即设备之间的邻近基础来完成对其的安全性认证

优点:不需要用户参与

举例:进屋自动连wifi

利用固有属性进行验证

基于射频信道的认证模式

共享无线电环境

  • 使用共享的无线电环境作为物理接近度的证据
  • 提取相同信号

信号强度

  • 两者间的接收信号强度变化

基于音频信号的认证模式

环境噪声

利用外界行为产生激励进行认证

基于同构传感器

基于相同类型的传感器

双方可能没有相同类型传感器?

基于异构传感器

不同传感器对同一事件感知维度的相似性

eg:振动与声音

第五章 传感器与执行器安全

传感器概述★

组成:

  • 敏感元件
  • 传感元件
  • 信号调节与转换电路

分类

  • 按工作原理分类:物理传感器和化学传感器
  • 按构成原理分类:
    • 结构型传感器:基于场的定理构成,如运动、电磁
    • 物性型传感器:基于物质定律构成,如光电
  • 按能量转换分类:
    • 能量控制型传感器:需要外电源
    • 能量转换型传感器:不需要外电源
  • 按输出信号分类:模拟传感器、数字传感器和开关传感器

特性:

  • 静态特性:线性度、灵敏度、迟滞、重复性、漂移、分辨率、阈值

传感器测量安全★★

测量安全的的定义★:传感器的测量值能否可信地反映真实的被测对象

换能攻击概念

换能攻击的定义:利用传感器的设计缺陷,通过对被感知物理信号作出某种影响来改变传感器测量结果的攻击

换能攻击物理信号:电磁波、声波、磁场、电场

分类:

  • DoS攻击
  • Spoofing攻击

传感器模型

传感器模型:$y=f(x_1,n)$(n为向量)

换能攻击模型:$y=f(x_1,n+a’)$(n、a为向量),详见下图

1578131214978

换能攻击例子

海豚音攻击:

1578131470963

Walnut:利用声波控制MEMS加速度传感器的输出

1578131492058

1578131519328

特斯拉自动驾驶汽车:阻塞攻击

1578131544974

Ghost Talk:利用耦合电磁干扰

关键点:信号注入和信号整形

换能攻击方法

信号注入(频率幅度类型):

  • 注入点和类型(由传感器换能信号类型决定)
  • 高效注入信号因素?不会
  • 带内信号和带外信号

信号整形:

  • 饱和:
  • 交调失真:f1,f2(f1<f2),输出包含f1、f2、f2-f1、f2+f1、2f1、2f2
  • 包络检波:输出包络线
  • 混频:根据香农采样定律,如果一个信号的频率高于采样率的一半,那么这个信号将与其他频率的信号无法区分
    • eg:若模数转换器的采样频率为Fs则f(f<Fs)将与Fs-f无法区分
    • 利用混频将带外信号转为带内信号
    • 加速度计的例子
  • 滤波:利用截止频率缺陷,注入带外信号,无法完全滤除

攻击检测:

  • 检测信号注入步骤
    • 额外换能器有针对性地检测带外信号
  • 检测测量构造步骤
    • 检测交调失真

攻击抵御:

  • 屏蔽
  • 滤波
  • 随机化???
  • 改进组件质量
  • 传感器融合

传感器隐私安全

分类:

  • 利用感知信息推测用户行为
    • 位置
    • 推测用户活动和场景
    • 窃取密码
    • 推测用户输入
  • 利用感知信息推测设备指纹
  • 利用感知信息推测用户身份

执行器安全★

执行器组成:执行机构控制机构

执行器安全定义★:执行器接受的控制信号是否是可信的,执行结果是否为预期结果

攻击方法

传统网络攻击:

  • 变频驱动器

物理攻击:

  • 固定翼飞机的电磁注入攻击
  • 汽车电机控制器攻击

第六章 芯片安全

概述

芯片生产链:设计、制造、封装、测试

主流技术:IP核技术等

  • 软IP、固IP、硬IP

芯片分类:

1578137749024

安全问题举例:

  • 边信道攻击安全事件:BranchScope
  • Meltdown熔毁&Spectre幽灵
    • Meltdown:低权限用户可以访问内核内容
      • 在乱序执行中,指令没有执行而只是加载到缓存中,不会执行安全检查
    • Spectre:账号、密码、邮箱等可能被泄露
      • 预测执行时预先加载到缓存中,可以利用缓存进行边信道攻击

芯片漏洞与攻击★

芯片后门

定义:芯片生产之初就被预留在芯片内部的恶意代码,是一种软件代码,常用来调试测试芯片。

硬件木马★★

定义:人为植入带有特定恶意的硬件电路

组成:触发器、有效载荷

触发器只有在极少的情况下被激活,因此有效载荷在大多数时间内保持不活跃的状态,使得硬件木马难以检测

示例:1578138820051

  • 攻击者获取了FSM‘的逻辑实现,可以通过B、C进入A
  • 攻击者获得了原始电路的FSM,可以通过D进入A

防护方法:

  • 硬件木马检测
    • 硅前木马检测技术(设计阶段)
    • 硅后木马检测技术(制造阶段之后)
      • 破坏性:逆向工程
      • 非破坏性:功能测试或边信道信号分析
  • 可信设计
    • 逻辑混淆:内置锁定机制
    • 伪装:阻止攻击者提取电路的正确门级网表
    • 功能填充单元:填充所有空白空间
    • 不可信组件上的可信计算
  • 分割生产

边信道攻击★

定义:通过时间信息、功率消耗、电磁泄漏等非侵入地获取一些重要信息。

  • 物理边信道:耗费时间、能量消耗、电磁场、噪声
    • CMOS芯片的功耗(反映指令变换)
    • CMOS芯片的电磁辐射(取决于数据)
    • 泄露模型
      • 汉明距离模型
    • 示例:使用移动设备(桌下)推断笔记本电脑上运行的应用程序
  • 缓存边信道:时间驱动、访问驱动
    • 通过访问时间的差异,推测cache中的信息

行锤攻击★

定义:行锤是DRAM中的意外和不良副作用。存储器单元的电荷泄露和单元之间的电气相互作用,可能泄露或改变附近存储器行的内容

防护方法:

  • 更频繁的内存刷新机制
  • 基于计数器对频繁访问的内存进行识别,并主动刷新其相邻行
  • 对被访问行相邻的存储器行实行附加的不频繁随机刷新,而不管它们的访问频率如何

芯片安全与防护

芯片保护技术:

  • 限制程序计数器
  • 随机时钟信号
  • 低频传感器
  • 多层电路设计
  • 顶层的传感器网
  • 自毁技术
  • 抗电磁探测密码技术
  • 锁存电路
  • 随机多线程

物理不可克隆函数PUF:

  • 定义:芯片制造过程中必然引入工艺参数偏差,从而导致激励信号与响应信号之间具有唯一对于的函数关系
  • 应用:加密密钥存储、设备认证、IP产权保护

第七章 软件安全

物联网固件及安全概述★

传统计算机分为软件、固件、硬件三个部分

固件:存在于硬件和软件之间的边界上

固件、软件和驱动的相同点:本质上都是二进制代码,实际由指令和数据组成,都是一种广义的“软件”或者“程序”

固件、软件和驱动的不同点:

  • 软件:不同开发商的具有特定功能的程序,运行必须依赖于特定的计算机系统环境,对硬件的依赖小。
  • 固件(为硬件提供服务):是担任着一个系统最基础最底层工作的软件,是固化在设备内部的软件或者驱动程序,在一部分物联网设备中,固件也包含应用软件。
  • 驱动(为软件提供服务):允许上层软件和底层硬件进行交互的程序。驱动存在的原因是因为操作系统多样

1578295233992

固件的组成部分★:

  • 固件头:二进制流的初始部分,包含处理器平台架构、内核版本、根文件系统格式
  • 引导程序部分bootloader:嵌入式中,初始化硬件设备、建立内存空间映射图,为操作系统准备好环境。
  • 可压缩内核部分:OS,能适应不同配置的硬件平台
  • 可压缩根文件系统部分
  • 其他应用文件

常见物联网操作系统:Android Things、Contiki、FreeRTOS、VxWorks

物联网固件的主要安全风险

对于用户:

  • 固件漏洞
  • 固件恶意代码
  • 固件后门

对于厂商:

  • 逆向工程

物联网软件及安全漏洞★★

不安全的认证和授权

弱口令登录:容易被猜到或被破解工具破解的口令均为弱口令

撞库攻击:用已有弱口令取暴力破解

  • 小样本空间下,中文容易被攻击
  • 大样本空间下,英文容易被攻击

不安全的Web接口

SQL注入:发生于应用程序与数据库层的安全漏洞

  • 设计不良的程序当中忽略了字符检查,恶意注入的指令被认为是SQL指令
1
select * from users where username = 'admin' and password = 'admin'

此时,若输入用户名为“admin’ or 1 = 1 #”,则:

1
select * from users where username = 'admin' or 1 = 1 #'and password = 'admin'

XSS攻击:攻击者在一个Web站点越过安全边界线将恶意代码注入有漏洞的Web站点中。被注入的恶意代码被认为是目标站点的代码。

  • 可能得到更高的权限
  • 在评论中嵌入js代码
1
这是我发表的评论<script>alert("哈哈你被攻击")</script>

不安全的系统和程序

缓冲区溢出漏洞:向程序输入缓冲区下入使之溢出的内容,从而破坏程序运行,乃至获得系统控制权

  • 栈缓冲区:由编译器自动分配和释放,类似于DS中的栈
  • 堆缓冲区:由程序员分配和释放,类似于DS中的链表
  • 通常是由于对输入数据的长度没有进行检查导致的。
  • 可以破坏栈上的其他变量,也可以覆盖返回地址劫持程序控制流
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void)
{
int modified;
char buffer[0];
modified = "0";

gets(buffer); //引发缓冲区溢出
if (modified == "1")
printf("Congratulations, you pwned it.\n");
else
printf("Please try again.\n")
return 0;
}

格式化字符串

1
2
3
4
5
6
7
8
#include <stdio.h>
int main(void)
{
char a[100];
scanf("%s", a);
printf(a);
return 0;
}
  • 在此例中输入AAAA%x,%x,%x会输出栈地址

空指针引用:对指向空地址的指针进行了引用,可能导致程序崩溃

释放后重用:释放了某一块内存后,仍然对该内存进行访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main(void)
{
char *p1;
p1 = (char *) malloc(sizeof(char)*10);
memcpy(p1, "hello", 10);
printf("p1 addr: %p, content: %s\n", p1,p1);
free(p1);

char *p2;
p2 = (char *) malloc(sizeof(char)*10);
memcpy(p1, "world", 10);
printf("use-after-free.\n");
printf("p1 addr: %p, content: %s\n", p2,p2);
printf("p2 addr: %p, content: %s\n", p1,p1);
return 0;
}
  • 此例中尽管p1被释放了,但释放后p1没有指向NULL,而p2分配到了之前p1的地址,因此可以用p1来修改p2指向的内存

条件竞争漏洞:指一个系统的运行结果依赖于不受控制的事件的先后顺序,最初来自于逻辑电路中两个电信号的相互竞争。

  • 目前的OS中大量采用并发编程,经常对资源进行共享,往往会产生条件竞争漏洞。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <thread.h>

int i = 1;
void *mythread1()
{
if(i == 1)
{
sleep(3);
if(i == 2)
printf("hack it!\n");
else
printf("you can try it again!\n");
}
}
void *mythread2()
{
sleep(1);
i = 2;
}

int main(void)
{
pthread_t id1, id2;
pthread_create(&id1, NULL, (void*)mythread1, NULL);
pthread_create(&id2, NULL, (void*)mythread2, NULL);
pthread_join(id1, NULL);
pthread_join(id2, NULL);
return 0;
}

物联网软件防护技术★

程序保护机制

定义:从程序角度加入一些保护机制,阻止漏洞攻击

CANARY:中文名“金丝雀”,又称栈溢出保护

  • 原理:函数开始时先往栈里插入canary值,函数返回前验证canary是否被篡改,如果发现被篡改就报错并退出程序。

FORTIFY:一种自动化代码静态分析工具

  • 作用:用于检查是否存在缓冲区溢出的错误。

基于深度学习的自动化漏洞挖掘:

  • 静态:不执行程序
    • 搜索空间爆炸
  • 动态:执行程序
    • 测试用例浅层,无法达到程序深层

NX/DEP:不可置信/数据执行保护

  • 将数据所在内存页属性标识为不可执行,当程序溢出转入shellcode时,CPU会抛出异常

PIE:位置独立可执行保护

  • 每次执行程序时,程序基址会被映射到随机地址

逆向防护技术

作用:为了保护自己开发的软件不被逆向破解

代码混淆:将程序代码转换为一种功能等价但是难于阅读和理解的形式的机制。

加壳保护:在二进制程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,以隐藏程序真正的入口点

虚拟机保护:将代码翻译为机器和人都无法识别的一串伪代码字节流,在具体执行时再对伪代码进行解释

软件缺陷检测:运行前或运行时

  • 恶意代码检测
    • 基于签名:检测完整性
    • 基于特征:检测恶意代码的
  • 后门程序检测
    • 简单手工检测、端口监听、MD5检测

第八章 物联网协议流量安全

物联网通讯协议

三要素:语法(如何讲)、语义(讲什么)、定时规则(何时讲)

功能:分段、重组、封装、连接控制

分类:

  • 传输通讯类:定义信息传输波段、数据帧结构、最高传输速率等内容1578455814648
  • 基础架构类:提供基础服务
    • IPv4/IPv6:用于分组交换网络互联的网络层协议
    • 6LoWPAN:简化IPv6包头来适应低功耗资源受限网络的要求
    • TCP&UDP
  • 消息数据类:
    • CoAP:面向资源受限设备的物联网应用层协议。简化版HTTP。使用UDP
    • MQTT:消息队列遥测传输提供一对多的消息发布
      • 有序、无损、双向连接
      • 传输层使用TCP

物联网通信安全风险★

物理层安全风险

data数据、message消息、datagram报文、frame帧

安全隐患:信道的开放广播特性使得节点间的数据转发收到干扰的影响

窃听攻击:发送者通过非法手段形成所谓的窃听链路接收获取有用信息

MAC层安全风险

MAC层(medium access control),属于数据链路层的一个子层

CSMA/CA,RTS/CTS,backoff

风险:

  • MAC地址欺骗与MAC身份盗用
  • 中间人攻击

网络层安全风险

隐患:

  • 真实性:IP可以随意修改
  • 完整性:仅对IP头实现校验和保护
  • 可用性:TCP拥塞控制,容易被攻击

攻击举例

  • IP欺骗
  • IP劫持:接管另一用户地址
  • Smurf攻击:网络层中的Dos,用IP广播向受害节点发送大量ICMP。

传输层安全风险

隐患:

  • 内部:针对因特网的攻击对于物联网传输层照样适用
  • 边界:一个网络传到另一个网络时,机密性与完整性受威胁

攻击举例:

  • UDP泛洪攻击:与TCP泛洪攻击不同,UDP通过发送大量UDP数据包来实现

攻击后果

了解mirai攻击

通信协议设计安全机制★

通信协议栈安全架构:IEEE802.15.4(e)通过安全域、安全等级和安全加密与认证三方面提供安全服务,CoAP应用层协议采用DTLS提供端到端安全传输,RPL网络层协议采用IPSec来保障安全。

1578465317262

攻击预防:访问控制

攻击规避:加密机制

IEEE802.15.4(e)

定义:定义了低速率无线个域网,并规定了LP-WPAN的物理层和媒体访问控制,是Zigbee、6LoWPAN基础。

在链路层提供了加密、认证以及重放保护

安全机制:

  • 附加安全域设置
  • 8个安全服务等级
  • 安全加密域认证:基于AES-128加密

RPL路由协议

定义:适用于低功耗及有损网络的距离实例路由协议

安全机制:

  • RPL的安全机制主要体现在控制消息格式中
  • 包括:ICMPv6头部、安全域、DIO/DAO消息格式和可选域。
  • RPL安全域可以设置安全算法、密钥模式和安全等级
  • 安全算法包括加密、完整性认证(AES/CCM)和数字签名算法(SHA256)
  • 1578466439551

IPSec★

定义:为保护Internet上传输的数据,建立的协议族。

安全机制:

  • 认证头(AH)协议:数据源验证、数据完整性校验和放报文重放攻击
  • 封装安全载荷(ESP)协议:保证完整性、真实性和私有性
  • 安全关联(SA)协议:提供AH、ESP所需的参数

传输模式:

  • 在IP报头和高层协议报头之间插入IPSec报头
  • 保护数据包的有效载荷、高层协议
  • 不会修改IP报头中的IP地址,只为高层协议提供安全服务
  • 1578467122506

隧道模式:

  • 保护数据和原IP地址,常用于私网域私网之间通过公网建立通信
  • 1578467139935

SSL★

定义:安全套接字层,位于TCP/IP与各种应用层协议如FTP、telnet等之间。为客户端和服务器之间建立安全的TCP连接,提供双向安全认证和数据机密性、完整性

后继:TLS,与SSL级别相同,但位于传输层上,与高层协议相互独立无耦合

流量安全:可以做防护也可以做攻击

安全机制:

  • 密钥交换:用非对称加密生成会话密钥。RSA、DH等。
  • 加密算法:对传输数据加密。DES64、AES128/256等
  • 会话校验(MAC)算法:防止握手消息本身被篡改。MD5、SHA等。
  • 伪随机数函数

SSL握手???考不考???

HTTPS

以SSL/TLS建立安全通道加密数据包。

基于流量侧信道的安全攻击/防护★

定义:核心是流量分析

目的:实现访问控制、合法拦截、入侵检测

过程:流量获取,特征提取,流量分类,安全分析

应用:

  • 说话人语种推测(即使已经加密)
  • 设备探测:无线摄像头与其他网络应用由不同为了特征,如数据包长度分布等
  • 无人机探测:捕获无人机飞线时与控制器之间通讯的信号特征信息和流量信息,分析无人机的飞行动作邻近度,以实现无人机飞行检测

软件视角的协议漏洞

基于静态代码分析:根据源代码进行分析

基于动态五点追踪:分析信息或控制流经历的所有可能路径,设置污点并追踪敏感信息的完整性与泄露路径

基于攻击推演:进行常见网络安全攻击

基于符号执行:讲协议执行的具体输入符号化,在给定的约束内,探索尽可能多的执行路径

基于模糊测试:大量输入非预期数据来检测异常结果

第九章 云安全

云安全需求:敏感信息泄露。由于事物所施加的计算能力有限,公钥密码不能应用于所有层

安全挑战:

  • 异构性:设备、OS、平台和服务广泛异构性和计算资源差异
  • 定制性:专有协议和应用程序中存在未被发现的零日漏洞
  • 可靠性:车联网
  • 大数据:数据安全

边信道攻击:针对云服务器的虚拟化环境中共享同一台物理机的不同租户,通过利用缓存争用或者CPU负载等边信道实现隐秘通讯和窃取其他用户的数据

  • 解决办法:单独使用物理主机

同态加密★:明文:arrow_right:操作f() == 明文:arrow_right:加密:arrow_right:操作f(\):arrow_right:解密

  • 优点:服务器端只需要存储数据的密文

第十章 业务安全

业务安全介绍

业务定义★:指物联网系统为了实现某一功能而完成的从感知、决策到控制等一系列工作流程规则

eg:电力物联网

1578470362259

业务于物联网安全的相关性:

  • 感知:不同业务背景决定传感器种类和传感器物理强度不同
  • 控制:不同业务场景和业务运作环境决定了执行器种类、数量、物理强度要求、部署位置的不同
  • 反馈:反馈设备兼具感知和控制设备的特点,其攻击和防御手段同样具有强业务相关性
  • AI算法:业务决定了其工作内容、工作逻辑和效果

业务和物联网的关系★:物联网的安全攻击和防护都需要从业务特征入手

电力物联网

如何理解泛在

电力物联网的安全问题和网络架构有直接相关性

电力物联网的技术架构

  • 终端层
  • 网络层
  • 平台层
  • 应用层
  • 网络安全
  • 运行维护

专题1 语音安全

语音基础知识

语谱图:语音信号的傅里叶分析的显示图形称为语谱图

共振峰:用来描述声学共振现象的一种概念,在语音科学及语音学中,描述的是人类声道中的共振情形,是区分元音的关键

FFT算法——动态时间规整DTW——隐马尔科夫模型HMM

智能语音系统的组成:

  • 语音获取:麦克风获取、放大、滤波、AD转换
  • 语音识别:将语音信号转换为文本数据
  • 语义理解:将文本数据转换为可理解的指令内容
  • 指令执行:执行指令内容
  • 执行反馈:

DTW:用于非特定人语音识别,解决了发音长短不一的模板匹配问题

MM:无记忆性

HMM:由做什么事情判断天气情况

语音脆弱性:

  • 非线性元件的作用
  • EMI耦合

语音攻击:

  • 语音认证
    • 不可听见指令攻击
    • 欺骗攻击
  • 分类★
    • Intelligible攻击
    • Unintelligible攻击
    • Impreceptible攻击
    • 不可听见指令攻击

海豚音攻击★

调制方式

AM调制:

1578555149504

FM调制和调相

智能语音系统框图:

1578555373417

海豚音攻击原理

1578555537078

1578556557005

1578556575453

语音活体检测

声纹特性:

  • 相对稳定性:成年后声纹级别不变
  • 特定性:无法模仿

声纹识别分类:

  • 按识别任务分类
    • 说话人辨认:多选一:是谁?的问题,多分类
    • 说话人确认:一对一:是不是你?的问题,二分类
  • 按是否文本相关分类
    • 文本相关
    • 文本无关

CaField:说话人确认,文本无关、位置限定

场纹:

  • 声源尺寸更大场纹更有方向性
  • 声源频率更高场纹更有方向性

1578557344123

场纹的一致性和区别性:

  • 一致性
    • 对同一个检测对象前后保持一致
    • 文本无关
  • 区别性
    • 区别人和扬声器
    • 区别不同的人

专题2 边缘计算

传统云的限制:

  • 实时性
  • 带宽
  • 数据隐私
  • 资源受限
  • 成本问题

边缘计算概述★

定义:边缘计算指在网络边缘执行计算的一种新型计算模式

作用:解决计算负载和数据传输带宽的问题

特点:

  • 计算任务部分或全部在边缘完成
  • 边缘设备既是数据生产者又是数据消费者

边缘计算相关模型

P2P模型:无中心服务器

  • 典型应用:BitComet、eDonkey、μTorrent、Skype

CDN内容分发网络:缓存服务器尽可能靠近用户端

  • 相关公司:Akami,Amazon,网宿科技、蓝汛

分布式数据库模型:

  • 挑战:数据的一致性技术

移动边缘计算:

  • 强调在云计算中心和边缘设备间的服务器上完成计算任务,终端几乎没有计算能力
  • 而边缘计算的终端有较强计算能力

分布式计算

定义:将单台计算机无法完成的计算任务分配到网络中的多个计算机执行

中间件技术:用于屏蔽分布环境中操作系统与网络协议的异构性(AI场景服务)

网络计算技术:(利用大量异构计算机)支持管理域计算的能力

  • 与云计算对比:云计算由网格计算发展而来
    • 网格重资源共享。云强调专有。
    • 网格侧重并行集中性计算。云侧重事务性应用。
    • 网格使用中间件,把困难留给中间件。而云计算对不同服务采用不同方法
  • P2P计算
  • 雾计算:雾计算设备通常是路由器、网关

边缘计算核心技术

计算迁移:将计算密集型任务迁移到资源充足的计算中心的设备执行

负载均衡:用来在多个计算机、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应事件、同时避免过载。

5G通信技术:eMBB、mMTC、uRLLC

新型存储系统:低延迟、大容量、高可靠性

边缘计算典型应用场景

智慧城市:视频监控系统

智能家居:

边缘计算安全

物理设备不安全,基础设施更容易受到攻击,攻击面更大(泛在电力物联网)

虚假边缘中心——伪基站

数据安全问题:多安全域共存,多种数据格式并存

拜占庭将军问题类比计算机

应用安全:多种安全域和接入网共存,如何对用户身份进行管理和实现资源的授权访问

  • 多租户环境下提供访问控制功能

主要安全技术:多方计算

  • 安全多方计算问题,即姚氏百万富翁问题

ContextIoT和Octopus

专题3 AI安全

攻击入口:

1578571033281

机器学习学到的函数用于新样本的能力,称为泛化能力,不能泛化则出现过拟合能力

1578571233111

机器学习分类:

  • 监督学习
  • 无监督学习
  • 强化学习

AI攻击相关知识

理想场景

  • 可靠:无污染的训练和测试过程
    • 实际可能被污染
  • 稳定:可以处理噪声输入
    • 实际加过噪声可能出错
  • 隐私:用户看不到模型
    • 不断尝试可能可以逆向

攻击者模型

  • 黑盒
  • 灰盒
  • 白盒

攻击类型

1578572048461

攻击防御

数据中毒防御:

  • 训练集消毒
  • 修改分类器训练目标函数,同时考虑离群值盒因中毒标记的离群值

对抗样本攻击防御:

  • 在学习器件使用经过修改的训练集(对抗训练)
  • 修改网络
  • 对于难分辨的示例,用外部模型
  • 新防御思路
    • 用新的干扰破坏原干扰
    • 用生成器把干扰还原(滤波)

逆向工程防御:

  • 减少或者修改输出信息

AI助力安全

安全认证:人脸识别

安全检测:网络入侵检测

增强加密算法