2021第二届全国⼤学⽣⽹络安全精英赛赛事介绍
2021第二届全国⼤学⽣⽹络安全精英赛,指导单位为中国信息安全测评中⼼,主办⽅为国家⽹络空间安全⼈才培养基地。⼤赛以普及知识、挖掘⼈才为⼰任,⾯向全国⼤学⽣普及信息安全意识、传播信息安全知识、挖掘信息安全⼈才。
本次比赛分为3个阶段,参赛学员均已个人赛形式参加比赛。第一阶段为全国线上初赛,主要考察学生的信息安全知识水平;第二阶段为全国线上复赛,主要考察学生网络安全基础知识和基本技能;第三阶段为全国线下总决赛;具体如下:
1.1.全国初赛
初赛主要考察学生信息安全知识水平,资格赛为线上答题形式。
☑ 比赛时间:7月1日-9月10日报名,9月13日-17日全国初赛
☑ 参赛资格:全国各类高、中等院校在校学生
☑ 比赛形式:初赛由各个参赛院校组织学生至大赛官网自主报名,由当地承办机构组织安排初赛时间。
☑ 比赛题型:初赛为50道单选题。
☑ 比赛内容:内容包含:信息安全概述、信息安全法律法规、信息安全基础技术、网络安全防护技术、操作系统安全防护技术、应用安全、移动智能终端安全防护、信息安全管理。
☑ 通过条件:满分100分,竞赛成绩达到70分及以上。
1.2.全国复赛
全国复赛主要考察参赛选手网络安全基础知识和基本技能。
☑ 比赛时间:9月24日全国复赛
☑ 比赛形式:复赛为线上答题形式进行,参赛条件为初赛成绩达70分以上。
☑ 比赛题型:复赛为100道单选题,
☑ 比赛内容:信息安全支撑技术、物理与网络通信安全、计算机环境安全、软件安全开发。
☑ 通过条件:全国前100名通过参加线下总决赛
1.3.全国总决赛
全国总决赛为线下知识竞赛形式。
☑ 比赛时间:10月11日全国线下总决赛
☑ 比赛形式:决赛为线下知识答题赛,参赛条件为复赛全国成绩前100名。
☑ 比赛题型:总决赛为100道单选题,
☑ 比赛内容:信息安全支撑技术、物理与网络通信安全、计算机环境安全、软件安全开发等。
☑ 获奖条件:根据总决赛最终成绩排名,产生大学生网络安全竞赛金奖:10人;银奖:10人;铜奖:20人。
1.4.奖项设置
2021年第二届大学生网络安全竞赛共设奖金20万元。
金奖:10人,奖金10000元/人
银奖:10人,奖金5000元/人
铜奖:20人,奖金2500元/人
获得⼤赛⾦银铜牌的选⼿,可获得⼤赛协办单位腾讯安全、卓朗科技、 深信服等信息安全知名企业签约⼯作机会。
4. 大赛同期其他活动
本次大赛同期将进行一系列与相关的活动,主要活动如下:
1.1大学生网络安全知识精英赛校园大使招募
第二届全国大学生网络安全精英赛即将于2021年7月1日启动报名,9月网络安全周期间开赛。现在面向全国在校大学生招募校园大使。招募规则如下:
1.1.1.招募标准
具备⼀定的信息安全基础知识,擅长通过talkshow⼩段子、音乐创作、创意剪辑等各种才艺、方法传播信息安全知识、宣传网络安全精英赛的在校大学生。
1.1.2.招募平台
抖音APP
1.1.3.报名方式
1、开通抖音账号,并关注抖音官方号“网安精英赛”。
2、活动时间:2021年7月1日-2021年9月30日,10月11日公布获奖名单
3、拍摄与网络安全相关的短视频添加话题#网络安全精英赛#在抖音发布,并@网安精英赛 官方账号。
4、发动同学为自己的短视频点赞。
1.1.4.评选
大赛组委会邀请评委会评选作品,筛选出符合招募要求的作品,并按照点赞数排序,最终前十名入选的创作者将成为本届大学生网络安全精英赛校园大使。
1.1.5.公布
最终入选名单将在精英赛官网(https://www.nisp.org.cn/ds)公布。
1.1.6.表彰
成功当选校园大使的创作者,精英赛组委会将颁发聘书,并奖励华为 Mate 40E 手机一台(京东官方价4199元)。
1.2大学生网络安全知识精英赛答题接龙活动
校园大使招募活动同时,大赛组委会举办“网络安全精英赛·答题接龙”活动。
活动时间:2021年7月1日-2021年9月30日,10月11日公布获奖名单
参与在校大学生可登陆精英赛官网(https://www.nisp.org.cn/ds)学习网络安全辅导课程,并练习模拟题。
在抖音APP上传短视频,内容为回答一道网络安全模拟题,指定同学接龙。并以“大学生网络安全精英赛,你也来答题吧~”结尾。@网安精英赛 官方账号,参与抽奖。
奖品为华为WATCH GT 2 Pro 智能手表,共十个获奖名额(京东官网价2388元)。
1. 说明
本篇文章主要说一说应用系统测评时数据完整性相关的基础知识和内容,另外本片文章都是文字。
2. 测评项
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
3. 完整性
是指信息在传输、交换、存储和处理过程中,保持信息不被破坏或修改、不丢失和信息未经授权不能改变的特性,也是最基本的安全特征。
那么如果是传输过程中的完整性,也即当数据在传输过程中,接收方应该至少具备判断接收到的数据是否完整,如是否被篡改过,或是否因为网络等原因没有接收完整等。
4. 校验技术
校验技术我不怎么了解,实际测评中也没怎么遇到过,比如CRC循环校验等,这里就不多说了。
5. 密码技术
常用来实现数据的完整性判断的密码技术为“单向散列函数”,一般也叫Hash(哈希)算法、散列算法、杂凑算法,下文统称哈希算法。
实现数据完整性的判断,往往需要在原始数据里再附加一些额外数据,然后接收方接收到所有数据后,通过一些算法,实现完整性的判断。
那么为什么常用哈希算法来实现完整性判断呢?这里要先说说哈希算法。
哈希算法有一个输入与输出,输入任意长度的数据,会输出一个固定长度的值(哈希值)。且输入的数据不同,输出的哈希值也不同,哪怕只有1bit的不同,产生的哈希值也会完全不一样,且没有规律。
另外,这个算法是单向的,也就是说从哈希值无法推到出原文是什么。
用常用的哈希算法MD5算法举例来说,输入字符串1,则输出c4ca4238a0b923820dcc509a6f75849b,如果输入10,则输出d3d9446802a44259755d38e6d163e820。
当然,有一种方法可以反向推断出原文,但这不是算法本身的缺陷,比如你先把一些常见字符串的MD5值算出来,并将其和原文同时存储在数据库中,比如1的MD5是c4ca4238a0b923820dcc509a6f75849b,那么以后你碰见c4ca4238a0b923820dcc509a6f75849b这个MD5值时,你去数据库中搜索,就能得知MD5值对于的原文是1。
另外,由于输入的值的范围是无限的,而输出的值的范围确实固定的(长度固定了),所以一个MD5值实际上必然对应着无数的原文。
但一个合格的哈希算法中,会让这种情况出现的概率极低。
回到完整性来,利用哈希算法,比如MD5算法,可以轻松的实现一个基本的完整性校验方法。
当客户端向服务器端发送数据时,在数据原文后面附加上数据的MD5值,一并发送过去。
当服务器端收到数据后,使用MD5计算出数据原文的MD5值,再与附加的MD5值进行对比,即能得数据是否被篡改。
如别人修改了原文部分,则无法通过校验。或者修改了MD5值部分,那也无法通过校验。
不过这种简单的方法是还是有很大的漏洞的,因为你的输入值和输出值都是明文,别人经过尝试,可以很快的推断出你所使用的是哪一种哈希算法。
得知后,别人修改原文部分之后,再使用你约定使用的哈希算法,算出哈希值部分,这样就能够在篡改数据的情况下通过校验了。
所以可以再加上一些措施,对于原文A,计算出其哈希值B,然后使用某加密算法对哈希值B进行加密,得到C,最后传输“A+C”。
接收方收到数据后,对C进行解密,得到B,然后计算出A的哈希值D,对比B和D,即可得知结果。
这样情况下,别人就没办法得知你使用的哈希算法了,因为你对哈希值B进行了加密。一旦修改了A或者B部分,都无法通过校验。
当然,其实这还是有漏洞,因为没有使用随机值或者时间戳,每次传输原文A,最终传输的值都是“A+C”,对方重复几个流程,可得到“D+Z”、“V+M”等等数据。
然后,当传输A时,用“D+Z”整个替换“A+C”,也能通过校验,这叫做重放攻击。
6. 测评项a
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
实际测评过程中,极少有自己编程实现这整个过程的,因为一般情况下没有必要自己造一个轮子,水平不够造的轮子还容易有很多的漏洞。
对于B/S类型的应用系统来说,一般都是使用HTTPS协议,HTTPS协议同时实现了保密性和完整性。
而对于C/S类型的应用系统来说,如果是直接连接数据库的那种,要看数据库是否配置了SSL,在连接的时候是否使用了SSL。
或者是否使用了其他的密码技术来实现完整性,比如在“等保测评2.0:Oracle身份鉴别(下)”中,Oracle在进行参数上的配置后,即可保证数据传输过程中的完整性。而如果是使用中间件(也即客户端不直接和数据库打交道)的C/S类型的应用系统,要看是否使用了SSL。
实际测评过程中还是很简单的,甚至你都不需要了解相关的密码知识。
不过最好还是要懂一些,万一真有自己编程实现这个过程的,你也不至于完全不明白。
另外,如果连密码算法都是自己实现的,且不属于国家密码部门核准的密码算法,一般顶多给部分符合。
因为这种自己造的轮子(密码算法),根本没有得到验证,其安全性很值得怀疑。
7. MD5的安全性
MD5是大家最常用的密码算法,也有人说MD5不够安全,应该使用更安全的SHA256等哈希算法。
这其实要看MD5不安全在哪方面:
2005年山东大学的王小云教授发布算法可以轻易构造MD5碰撞实例,此后2007年,有国外学者在王小云教授算法的基础上,提出了更进一步的MD5前缀碰撞构造算法“chosen prefix collision”,此后还有专家提供了MD5碰撞构造的开源的库。
什么是碰撞实例呢?举个例子,比如原文A,其MD5值为B。当我们拿到B时,可以很快的构造出一个C(C可能是A也可能不是),这个C的散列值也是B。
在这种情况下,MD5在保证数据完整性或实现数字签名方面,确实有很大的问题。
8. 测评项b
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
这里要注意和传输过程分开区别,传输过程是一个短暂的、动态的、进行过程,而这里的存储则其实应该理解为长期的保存的过程。
当然,存储是否有短暂的、动态的、进行过程?当然是有的,比如你用记事本或者任何程序保存数据时,当你下指令保存数据后,程序就会将内存中的数据保存至硬盘当中,这个就是短暂的存储过程。
但明显的,测评项指的应该是长期的保存过程。
应用系统中,一般都会将重要的数据存储到数据库当中。那么在数据库中,如何使用密码技术保证数据库中的数据一旦被非法篡改,你就能发现呢?
在实际测评中,我没遇到过实现的相关例子,只是自己设想了一个简单的模型。比如存储用户的个人信息的表中,有姓名、性别、号码等字段,然后除了这个字段,再添加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(姓名+性别+号码)+SHA256(姓名) )。
然后算出哈希值。
这样,每次存储、更新数据的时候,都按照这个算法计算哈希值,存储到校验字段中。
每次读取数据的时候,也按照这个算法,再次计算出哈希值,看是否等于校验字段的值。
这样,一旦出现了非法篡改,就能够得知,不过这个不能抵御重放攻击,还需要再使用一些其他的措施,这里就不多说了。
虽然这一项基本没人实现,但是至少被测评方问你怎么实现的时候,你可以大概回答下,不至于说我也不知道。
另外,如果应用系统存储了一些重要文件(比如个人照片)等,也需用使用校验技术或密码技术保证其完整性。
这个理论上也可以实现,比如个人照片文件,一般来说,在数据库应该也会有一个表存储其相关属性,比如路径等,再增加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(个人照片)+SHA256(路径) )。
然后算出哈希值,存储到校验字段中。
每次使用的时候,进行校验。或者为了降低资源占用,可以写一个定时脚本、策略等,定时进行校验。
注意,测评项中强调了使用校验技术或密码技术来实现,所以通过数据库自身的完整性约束、安全审计、入侵防范等增加安全性的,和这个测评项都没有关系。
文章转自:FreeBuf.COM
1. 说明
本篇文章主要说一说应用系统测评时数据完整性相关的基础知识和内容,另外本片文章都是文字。
2. 测评项
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
3. 完整性
是指信息在传输、交换、存储和处理过程中,保持信息不被破坏或修改、不丢失和信息未经授权不能改变的特性,也是最基本的安全特征。
那么如果是传输过程中的完整性,也即当数据在传输过程中,接收方应该至少具备判断接收到的数据是否完整,如是否被篡改过,或是否因为网络等原因没有接收完整等。
4. 校验技术
校验技术我不怎么了解,实际测评中也没怎么遇到过,比如CRC循环校验等,这里就不多说了。
5. 密码技术
常用来实现数据的完整性判断的密码技术为“单向散列函数”,一般也叫Hash(哈希)算法、散列算法、杂凑算法,下文统称哈希算法。
实现数据完整性的判断,往往需要在原始数据里再附加一些额外数据,然后接收方接收到所有数据后,通过一些算法,实现完整性的判断。
那么为什么常用哈希算法来实现完整性判断呢?这里要先说说哈希算法。
哈希算法有一个输入与输出,输入任意长度的数据,会输出一个固定长度的值(哈希值)。且输入的数据不同,输出的哈希值也不同,哪怕只有1bit的不同,产生的哈希值也会完全不一样,且没有规律。
另外,这个算法是单向的,也就是说从哈希值无法推到出原文是什么。
用常用的哈希算法MD5算法举例来说,输入字符串1,则输出c4ca4238a0b923820dcc509a6f75849b,如果输入10,则输出d3d9446802a44259755d38e6d163e820。
当然,有一种方法可以反向推断出原文,但这不是算法本身的缺陷,比如你先把一些常见字符串的MD5值算出来,并将其和原文同时存储在数据库中,比如1的MD5是c4ca4238a0b923820dcc509a6f75849b,那么以后你碰见c4ca4238a0b923820dcc509a6f75849b这个MD5值时,你去数据库中搜索,就能得知MD5值对于的原文是1。
另外,由于输入的值的范围是无限的,而输出的值的范围确实固定的(长度固定了),所以一个MD5值实际上必然对应着无数的原文。
但一个合格的哈希算法中,会让这种情况出现的概率极低。
回到完整性来,利用哈希算法,比如MD5算法,可以轻松的实现一个基本的完整性校验方法。
当客户端向服务器端发送数据时,在数据原文后面附加上数据的MD5值,一并发送过去。
当服务器端收到数据后,使用MD5计算出数据原文的MD5值,再与附加的MD5值进行对比,即能得数据是否被篡改。
如别人修改了原文部分,则无法通过校验。或者修改了MD5值部分,那也无法通过校验。
不过这种简单的方法是还是有很大的漏洞的,因为你的输入值和输出值都是明文,别人经过尝试,可以很快的推断出你所使用的是哪一种哈希算法。
得知后,别人修改原文部分之后,再使用你约定使用的哈希算法,算出哈希值部分,这样就能够在篡改数据的情况下通过校验了。
所以可以再加上一些措施,对于原文A,计算出其哈希值B,然后使用某加密算法对哈希值B进行加密,得到C,最后传输“A+C”。
接收方收到数据后,对C进行解密,得到B,然后计算出A的哈希值D,对比B和D,即可得知结果。
这样情况下,别人就没办法得知你使用的哈希算法了,因为你对哈希值B进行了加密。一旦修改了A或者B部分,都无法通过校验。
当然,其实这还是有漏洞,因为没有使用随机值或者时间戳,每次传输原文A,最终传输的值都是“A+C”,对方重复几个流程,可得到“D+Z”、“V+M”等等数据。
然后,当传输A时,用“D+Z”整个替换“A+C”,也能通过校验,这叫做重放攻击。
6. 测评项a
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
实际测评过程中,极少有自己编程实现这整个过程的,因为一般情况下没有必要自己造一个轮子,水平不够造的轮子还容易有很多的漏洞。
对于B/S类型的应用系统来说,一般都是使用HTTPS协议,HTTPS协议同时实现了保密性和完整性。
而对于C/S类型的应用系统来说,如果是直接连接数据库的那种,要看数据库是否配置了SSL,在连接的时候是否使用了SSL。
或者是否使用了其他的密码技术来实现完整性,比如在“等保测评2.0:Oracle身份鉴别(下)”中,Oracle在进行参数上的配置后,即可保证数据传输过程中的完整性。而如果是使用中间件(也即客户端不直接和数据库打交道)的C/S类型的应用系统,要看是否使用了SSL。
实际测评过程中还是很简单的,甚至你都不需要了解相关的密码知识。
不过最好还是要懂一些,万一真有自己编程实现这个过程的,你也不至于完全不明白。
另外,如果连密码算法都是自己实现的,且不属于国家密码部门核准的密码算法,一般顶多给部分符合。
因为这种自己造的轮子(密码算法),根本没有得到验证,其安全性很值得怀疑。
7. MD5的安全性
MD5是大家最常用的密码算法,也有人说MD5不够安全,应该使用更安全的SHA256等哈希算法。
这其实要看MD5不安全在哪方面:
2005年山东大学的王小云教授发布算法可以轻易构造MD5碰撞实例,此后2007年,有国外学者在王小云教授算法的基础上,提出了更进一步的MD5前缀碰撞构造算法“chosen prefix collision”,此后还有专家提供了MD5碰撞构造的开源的库。
什么是碰撞实例呢?举个例子,比如原文A,其MD5值为B。当我们拿到B时,可以很快的构造出一个C(C可能是A也可能不是),这个C的散列值也是B。
在这种情况下,MD5在保证数据完整性或实现数字签名方面,确实有很大的问题。
8. 测评项b
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
这里要注意和传输过程分开区别,传输过程是一个短暂的、动态的、进行过程,而这里的存储则其实应该理解为长期的保存的过程。
当然,存储是否有短暂的、动态的、进行过程?当然是有的,比如你用记事本或者任何程序保存数据时,当你下指令保存数据后,程序就会将内存中的数据保存至硬盘当中,这个就是短暂的存储过程。
但明显的,测评项指的应该是长期的保存过程。
应用系统中,一般都会将重要的数据存储到数据库当中。那么在数据库中,如何使用密码技术保证数据库中的数据一旦被非法篡改,你就能发现呢?
在实际测评中,我没遇到过实现的相关例子,只是自己设想了一个简单的模型。比如存储用户的个人信息的表中,有姓名、性别、号码等字段,然后除了这个字段,再添加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(姓名+性别+号码)+SHA256(姓名) )。
然后算出哈希值。
这样,每次存储、更新数据的时候,都按照这个算法计算哈希值,存储到校验字段中。
每次读取数据的时候,也按照这个算法,再次计算出哈希值,看是否等于校验字段的值。
这样,一旦出现了非法篡改,就能够得知,不过这个不能抵御重放攻击,还需要再使用一些其他的措施,这里就不多说了。
虽然这一项基本没人实现,但是至少被测评方问你怎么实现的时候,你可以大概回答下,不至于说我也不知道。
另外,如果应用系统存储了一些重要文件(比如个人照片)等,也需用使用校验技术或密码技术保证其完整性。
这个理论上也可以实现,比如个人照片文件,一般来说,在数据库应该也会有一个表存储其相关属性,比如路径等,再增加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(个人照片)+SHA256(路径) )。
然后算出哈希值,存储到校验字段中。
每次使用的时候,进行校验。或者为了降低资源占用,可以写一个定时脚本、策略等,定时进行校验。
注意,测评项中强调了使用校验技术或密码技术来实现,所以通过数据库自身的完整性约束、安全审计、入侵防范等增加安全性的,和这个测评项都没有关系。
文章转自:FreeBuf.COM