在本次讲座中,张健毅老师就Web安全与内容安全主题分了三大部分进行了讲解。分别为网络应用安全、信息安全问题、隐私安全问题。网络应用安全主要指SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等;信息安全问题主要讲因为当前信息化发展进入了新的阶段而产生的攻防非对称问题;隐私安全问题指许多企业和公司对用户轨迹分析。课下正好参加了CTF比赛,比赛中涉及了一些机器学习在web安全方面的应用。主要在漏洞分析与挖掘、恶意代码分析、垃圾邮件检测等安全问题中,经过机器学习算法创建攻防模型。javascript
因为程序中对用户输入检查不严格,用户能够提交一段数据库查询代码,根据程序返回的结果,得到某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。html
XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。跨站脚本的重点不在‘跨站’上,而在于‘脚本’上。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码。其实是在目标网站的做用域下执行了这段js代码。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。主要分为反射型XSS、存储型XSS。前端
SRF(Cross-site request forgery)跨站请求伪造 。
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF可以 作的事情包括:以你名义发送邮件,发消息,盗取你的帐号, 甚至于购买商品,虚拟货币转帐......形成的问题包括:我的隐私 泄露以及财产安全。java
在本次讲座中,孙莹老师就量子密码基础知识和最新相关的研究进展作了详尽的讲解。老师先从公钥密码体制、混合密码体制两种密码体制引出量子密码的研究背景。接着就量子基本概念,量子、量子态、量子比特的测量、量子密钥分配作了讲解。最后讲解了典型协议和基本模型介绍。web
量子(quantum)是现代物理的重要概念。最先是由德国物理学家M·普朗克在1900年提出的。他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位的整数倍,从而很好地解释了黑体辐射的实验现象。
后来的研究代表,不但能量表现出这种不连续的分离化性质,其余物理量诸如角动量、自旋、电荷等也都表现出这种不连续的量子化现象。这同以牛顿力学为表明的经典物理有根本的区别。量子化现象主要表如今微观物理世界。描写微观物理世界的物理理论是量子力学。
一个物理量若是存在最小的不可分割的基本单位,则这个物理量是量子化的。量子是能表现出某物质或物理量特性的最小单元。算法
量子密钥分发能够创建安全的通讯密码, 经过一次一密的加密方式能够实现点对点方式的安全经典通讯. 这里的安全性是在数学上已经得到严格证实的安全性, 这是经典通讯迄今为止作不到的。现有的量子密钥分发技术能够实现百千米量级的量子密钥分发, 辅以光开关等技术, 还能够实现量子密钥分发网络。 量子态隐形传输是基于量子纠缠态的分发与量子联合测量, 实现量子态(量子信息) 的空间转移而又不移动量子态的物理载体, 这如同将密封信件内容从一个信封内转移到另外一个信封内而又不移动任何信息载体自身. 这在经典通讯中是没法想象的事. 基于量子态隐形传输技术和量子存储技术的量子中继器能够实现任意远距离的量子密钥分发及网络。sql
BB84量子秘钥分配协议数据库
1:量子通讯编程
2:经典通讯后端
在本次讲座中,金鑫老师经过密码分析与机器学习、深度学习简介与现状、深度学习与密码分析、深度学习与密码设计四个方面讲解基于深度学习的密码分析与设计初探。在深度学习与密码设计重点讲解了GAN原理与密码算法的结合。
密码设计主要借用GAN的思路。
生成式对抗网络(GAN, Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型经过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生至关好的输出。
密码组件通过生成对抗网络中的算法生成器,获得设计出来的密码算法,同时密码破解器将对此密码算法进行破解,算法生成器和密码破解器就这样在相互博弈中学习产生出好的算法和好的破解方法。
在本次讲座中,夏超老师讲解了信息隐藏的四个方面,分别为鲁棒水印、可视密码、隐写、隐写分析四个方面。
信息隐藏是指将特定用途的信息隐蔽地藏于其余载体(Cover)中,使得它们难以被发现或者消除,经过可靠提取隐藏的信息,实现隐蔽通讯、内容认证或内容保护功能。
鲁棒水印是重要的数字产权管理与安全标识技术之一,指将与数字媒体版权或者购买者有关的信息嵌入数字媒体中,使攻击者难以在载体不遭到显著破坏状况下消除水印,而受权者能够经过检测水印实现对安全全部者或者内容购买者等信息的认定。
可视密码技术使Naor和Shamir于1994年首次提出的,其主要特色是恢复秘密图像时不须要任何复杂的密码学计算,而是以人的视觉便可将秘密图像辨别出来。其作法是产生n张不具备任何意义的胶片,任取其中t张胶片叠合在一块儿便可还原出隐藏在其中的秘密信息。
在本次讲座中,张健毅老师讲解了区块链的概念、技术和将来。
狭义来说,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式帐本。广义来说,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操做数据的一种全新的分布式基础架构与计算方式。
区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各种共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各种脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各类应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具表明性的创新点。
比特币由区块链完成,用数字加密算法、全网抵御51%算力攻击保证资产与交易的安全。交易记录以被全体网络计算机收录维护,每笔交易的有效性都必须通过区块链检验确认。区块回报每产出21万个区块减半一次,大约4年,最近一次减半在2016年7月9日,而此种收敛等比数列的和必然是有限的,到2140年时,将再也不有新的比特币产生,最终流通中的比特币将老是略低于2100万个。截至2018年3月,比特币供应量约1700万个,实际的流通量还会由于私钥丢失等因素更加减小。
机制:每一位全部者(A)利用他的私钥对前一次交易T1和下一位全部者(B)的公钥(俗称:地址)签署一个随机散列的数字签名,A将此数据签名制做为交易单T2并将其(交易单T2)广播全网,电子货币就发送给了下一位全部者。
Block
生产Block的过程,被形象的称为“挖矿”,生产工也被称为“矿工”。
挖矿过程实际上就是反复去尝试寻找一个随机数(又称“幸运数”),使得将最后一个Block的hash值、当前世界中还没有被加入到任何Block的交易单、随机数三部分组织起来送入SHA256算法计算出散列值X(256位),若是X知足必定条件(好比前20位均为0),那么该节点初步得到建立Block的权利。
对于每一个Block存在一个难度系数,此系数能够转换为一个256位的整数,挖矿计算出的Hash值X必须小于该整数,此条件做为寻找随机数的附加条件。
当某时刻网络检测到新Block的产生速度不符合约10分钟一个时,将调解该系数(加大或者缩小),从而使下一个Block的产生速度符合预期。
每当节点(矿工)计算出了一个符合条件的随机数时,它仅仅得到了建立临时Block的权利,它当即将相关数据打包好做为一个临时Block并广播全网。
每10分钟内全网不止一个节点能计算出幸运数字,即十分钟内会有多个节点在网络中广播它们各自打包好的临时Block(都是合法的)。经过谁先计算出谁后计算出来决定接受谁的临时Block转正显然很难作到,由于全部节点的时间不可能严格一致(并且能够任意被调节),并且网络传输有快有慢。
某一节点若收到多个针对同一前续Block的后续临时Block,则该节点会在本地Block链上创建分支,多个临时Block对应多个分支。
从block hash算法咱们知道,合理的block并非惟一的,同一高度存在多个block的可能性。那么,当同一个高度出现多个时,主链即出现分叉(Fork)。遇到分叉时,网络会根据下列原则选举出Best Chain:
咱们假设全部的节点都是理性的,追求收益最大化;都是不诚实的,且不惜任何手段获取利益;全部节点均独自挖矿不理会其余节点,并将所得收益放入本身口袋,现象就是一个节点挖一个分支。因为机器的配置老是有差异的,那么算力最强的节点挖得的分支必然是最长的,若是一个节点的分支不是最长的,意味其收益存在不被承认的风险(即零收益)。为了下降、逃避此风险,一些节点确定会联合起来一块儿挖某个分支,试图成为最长的分支或保持最长分支优点。
一旦出现有少许的节点联合,那么其余节点必然会效仿,不然他们收益为零的风险会更大。因而,分支迅速合并聚集,全部节点都会选择算力更强的分支,只有这样才能保持收益风险最小。最终,只会存在一个这样的分支,就是主干分支(Best/Main Chain)。
对于不诚实节点来讲,结局是无奈的:能且只能加入主干挖矿。不加入即意味被抛弃,零收益;加入就是老实干活,按占比分红。
区块链将来主要起着货币、合约、治理做用。
在货币方面会涉及货币的发行机制、货币的分配机制、货币的币值调节机制。
在合约方面会涉及股权、债权、证券与金融合约、互助保险、权利的登记、转让、博彩、防伪、物联网、智能合约。
在治理方面会涉及身份认证、公证、见证、司法仲裁、投票、健康管理、人工智能、去中心化自治组织。
在本次讲座中,王志强老师从安全漏洞利用与挖掘角度来说解。首先讲了安全漏洞的定义以及最近一些安全漏洞引起的重大事件。接着讲了不一样类型的漏洞挖掘技术。最后结合实例路由器协议漏洞挖掘,并在课堂展现了NFC打开手电筒的漏洞。
常见漏洞挖掘技术以下:手工测试、补丁比对、程序分析、二进制审核、模糊测试
绝大多数Android恶意软件都是从新打包的应用程序,通过观察结果也代表,恶意从新打包的应用程序是Android恶意软件的支柱。
本文提出了一个市场或跨市场上检测从新包装的Android恶意软件MassVet,框架检测的范围包括
整个MassVet框架图:
MassVet首先处理全部的应用程序,包括用于查看结构的数据库和用于数据库的数据库。两个数据库都通过排序以支持二进制搜索,并用于审核提交到市场的新应用程序。考虑一个从新包装的AngryBird。一旦上载到市场,它首先在预处理阶段自动拆解成一个小型表示,从中能够识别其接口结构和方法。它们的功能(用于视图,用户界面,小部件和事件的类型,以及方法,控制流程和代码)经过计算映射到v核和m核分别是视图和控制流的几何中心。应用程序的v-cores首先用于经过二进制搜索查询数据库。一旦匹配知足,当存在具备相似的AngryBird用户界面结构的另外一个应用程序时,将从新打包的应用程序与方法级别的市场上的应用程序进行比较以识别它们的差别。而后自动分析这些不一样的方法(简称差别)以确保它们不是广告库而且确实是可疑的,若是是,则向市场报告。当没有任何东西2时,MassVet继续寻找方法数据库中的AngryBird的m核心。若是找到了相似的方法,咱们的方法会尝试确认包含方法的app确实与提交的AngryBird无关,而且它不是合法的代码重用。在这种状况下,MassVet报告认为是使人感到满意的。全部这些步骤都是彻底彻底自动化,无需人工干预。
特征提取,将UI结构建模为视图,这个视图是一个有向加权图,包括应用程序中的全部视图以及它们之间的导航关系。在这样的图上,每一个节点都是一个视图,其活动小部件的数量做为其权重,而且链接节点的网络描述了由它们之间的关系。根据其类型的事件,边缘能够彼此区分,这样的视图能够有效的描述具备至关复杂的UI结构的APP。视图的几何中心,称为v-core.
DiffCom分析
对于经过批量审查流程的应用程序,视图分析首先肯定它是否与市场上已有的应用程序相关。若是是这样,将进一步比较这两个应用程序,以肯定其恶意软件分析的差别。不然,将在方法级别针对整个市场检查应用程序,以尝试找到与其余应用程序共享的程序组件。进一步检查差别和公共组件以删除公共代码重用(库,示例代码等)并收集其安全风险的证据。这种“差别 - 共性”分析由DiffCom模块执行。 咱们还提供了有效的代码类似性分析器的实体,并讨论了DiffCom的规避。
一般,处理器不知道程序的将来指令流。例如,当无序执行执行条件分支指令时,会发生这种状况,该条件分支指令的方向取决于其执行还没有完成的先前指令。在这种状况下,处理器能够保存包含其当前寄存器状态的检查点,对程序将遵循的路径进行预测,并沿路径推测性地执行指令。若是预测结果是正确的,则不须要检查点,而且在程序执行顺序中退出指令。不然,当处理器肯定它遵循错误的路径时,它经过从检查点从新加载其状态并沿着正确的路径继续执行来放弃沿路径的全部待处理指令。执行放弃指令,以便程序执行路径外的指令所作的更改不会对程序可见。所以,推测执行维护程序的逻辑状态,就好像执行遵循正确的路径同样。
幽灵攻击涉及诱使受害者推测性地执行在正确的程序执行期间不会发生的操做,而且经过旁路分支将受害者的机密信息泄露给攻击者。论文中的幽灵攻击结合了侧信道攻击,故障攻击和面向返回编程的方法,能够从受害者的进程中读取任意内存。更普遍地说,论文说明了推测性执行实施违反了许多软件安全机制所依据的安全假设,包括操做系统进程分离,静态分析,容器化,即时(JIT)编译以及缓存时序/侧通道的对策攻击。因为在数十亿设备中使用的Intel,AMD和ARM微处理器中存在易受攻击的推测执行能力,这些攻击对实际系统构成严重威胁。
下面这段代码中,攻击者首先使用有效的x调用相关代码,训练分支预测器判断该if为真。 而后,攻击者设置x值在array1_size以外。 CPU推测边界检查将为真,推测性地使用这个恶意x读取array2 [array1 [x] * 256]。 读取array2使用恶意x将数据加载到依赖于array1 [x]的地址的高速缓存中。当处理器发现这个if判断应该为假时,从新选择执行路径,但缓存状态的变化不会被恢复,而且能够被攻击者检测到,从而找到受害者的存储器的一个字节。
运行结果:
道路导航系统进行隐身操纵攻击的可行性。目标是触发假转向导航,引导受害者到达错误的目的地而不被察觉。
略微改变GPS位置,以便假冒的导航路线与实际道路的形状相匹配并触发实际可能的指示。
本篇论文共作出三点贡献:
左图为source image,中图为加过扰动的对抗样本,右图为其要误分类成的target image。
下表提供了每一个基准测试的allocas数量(表示局部变量的数量,偶尔的参数副本或动态分配)的详细信息。 该表还提供了(剥离的)二进制大小; 在许多状况下,初始化的影响对最终的二进制大小没有任何影响,而且在最坏的状况下它是最小的。#INITS是现有编译器优化以后剩余的大量初始化数量,而且咱们的优化器已经分别运行。
理想世界:学习过程包括执行数据清理和标准化的数据预处理阶段,以后能够表示训练数据;
测试阶段:模型在预处理后应用于新数据,并使用在训练中学习的回归模型生成数值预测值;
对抗性世界:在中毒攻击中,攻击者在训练回归模型以前将中毒点注入训练集。
这篇论文主要研究用于句子分类的卷积神经网络(CNN)的实验,这些实验是在预先训练过的单词向量的基础上训练的。一个简单的CNN具备不多的超参数调整和静态向量,在多个基准点上都能达到很好的效果。经过微调学习特定于任务的向量能够进一步提升性能。