作弊与反作弊的较量:分屏器真的安全吗?

论坛 期权论坛 金融     
js9f3   2022-6-26 02:36   13715   20
疫情当前,为了避免人群聚集,不少学校都把考试从线下搬到了线上。
不同于线下,线上监考由于增加了更多不可控因素,如何在尽可能少增加成本的前提下,保证考试的公平公正就成了亟待解决的问题。
近期,有几所学校的老师,相继联系我,希望可以得到相关技术支持。
我计划做一个系列,用尽可能通俗易懂的方式,向大家分享一些作弊与反作弊的知识。
古人云:“知己知彼,百战不殆”,我将站在攻守两方的角度,解释并验证双方的操作,但不会涉及非常详细的实现过程,以免被别有用心的人利用。
现场重现

某校期末考试为学生提供了两个套餐:
套餐一:申请缓考,疫情结束后,统一考试。
这个套餐的特点是,学生依然可以使用最熟悉的方式参加考试,监考也非常容易,不引入其他不确定性因素。但是,谁也不知道疫情持续多久,下学期还有下学期的课,十几门考试堆在一起,除非你记忆力超群,否则上学期的知识不知道还能记得多少。
套餐二:参加线上考试。
选择这个套餐的学生,需要保证在考前确认自己的设备符合监考要求。
学校会培训各班班长,协助学生配置好考试环境,比如安装软件、放置摄像头等等。
设备调试完成后,学生需要保证在完成考试前,考试环境不能改变。
如果设备调试无法通过检查,则只能参加线下考试。
一旦线上考试开始,任何自身原因造成的缺考,按0分处理。

学校会出两套难度基本一致的考卷,并随机分配给套餐一和套餐二,因此不需要担心考题难度和泄露考题的问题。
反作弊方的防范

为了防止作弊,学校制定了详细的设备安装要求。
▼设备安放图示


摄像头1安装于电脑屏幕上方,拍摄屏幕正前方,主要是拍摄学生的面部和身后的情况。
摄像头2安装于学生身体右侧,主要拍摄屏幕和学生双手的操作情况。
两个摄像头都集成有麦克风,需要确保麦克风工作正常。
摄像头1和2均由学校统一采购提供。
考试系统会录制学生答题时的电脑屏幕,并上传,同时记录键盘鼠标操作。
这就基本确保了学生不可能自己通过上网查资料,翻书等方式作弊。
要想作弊,只能通过其他人帮助。
反作弊方曾经想过阻断他人将答案告知考生的渠道,考生获得答案,要么靠眼睛,要么靠耳朵。
耳朵这个途径,尤其难以防御,现在的隐形耳机太多,摄像头无法清晰拍摄出这个细节,而且还有骨传导等骚操作。
于是,防范枪手获得考试题目就成了重点。
除了采购两个摄像头,学校还采购了一个叫防窥膜的东西,要求学生安装于屏幕上,并通过摄像头2,检查防窥膜的效果。
安装了防窥膜后,屏幕从侧面根本看不清,只有正面才能看到。


如果有人想帮助考生作弊,由于摄像头的视野覆盖了整个屏幕正前方,从正前方看题会被摄像头发现,从侧面摄像头盲区看题,防窥膜会让他看不到东西。
可能有人会问,学校采购这些设备的钱是哪儿来的呢?
大部分学生都不知道,你参加线下考试,其实是交过钱的。
因为考试是要花钱的,试卷印刷、场地、监考老师的补贴等等,只是这部分钱是摊入学费的,无需再次支付。
线上考试中,试卷印刷、场地这两项肯定没有了,省下的钱,正好可以采购设备用。
批量采购的成本是很低的,这些加一起都不超过100元/学生。
一定有人想说,不就是个期末考试嘛,用得着这么兴师动众?
在我的印象中,大学期末考试是通过性考试,过了也就过了,我是不是过了,并不影响其他人过不过,不会因为我过了,而有本来应该过的人不能过。
但是学校老师的一席话,让我有了新的认识。
大学也是存在竞争的,这个竞争中,学习成绩占了很大比重。
比如:

  • 保研:挂科不能保研,总成绩高的可以保研。
  • 考研:考研录取并不是你过线就会录取,在过线的基础上,很多教授更愿意要本科成绩高的人。
  • 留学:GPA有多重要,无需赘述。
  • 入党:成绩高者优先。
  • 奖学金:成绩高者优先。
  • 企业联合培养:大企业都会和学校有合作,由学校推荐优秀学生参加联合培养计划,这对日后的发展很有帮助,我当年就是参与了这类计划。
疫情期间涉及在线考试的课程,每个学生少的几门,多的十几门,作弊带来的成绩提升,以及随之而来的种种好处,是极其诱人的。
这也是学校为什么非常重视在线考试作弊问题的原因。
作弊者的阴谋

设备安装要求公布之后,作弊者很快找到了漏洞:双屏。
你不让我看屏幕,好办,我再接一个屏幕不就得了?
基本上电脑都支持连接多个屏幕,现在枪手可以看到题目了。


反作弊方的对策:

由于考试系统是一个客户端软件,我们可以从容使用Windows提供的API来检测电脑究竟连接了多少个屏幕。
学校用的考试系统是C#开发的,我们可以利用ManagementObjectSearcher来检测显示器的数量。
var monitorCount = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor").Get().Count
一行搞定,非常清爽,直接做成考试系统的插件,在考试系统启动前做一次检测,并在考试过程中,持续检测上传。
作弊者的反制

反作弊方检测显示器数量的方法,其实是检测电脑连接了几个显示器,如果可以把某种装置连接到电脑上,用它把信号复制一份的话,是不是就可以绕过了呢?
因为电脑上只连接了一根视频线,电脑会以为自己只连接了一个显示器,并把信号送给这个装置,可以在这个装置的内部完成视频信号的复制工作,这真是神不知鬼不觉。
事实上,这种装置是真实存在的,叫分屏器,原来是用于会议室和卖场电视设备展示的。
▼考生用分屏器,复制屏幕内容给枪手。


▼为了证明这种作弊方法确实可行,并寻找检测方法,我专门买来了一个分屏器。


▼它的使用效果是这样的,确实能复制屏幕并绕过检测。


反作弊方的思考

其实反作弊方识别作弊行为的方法,本质上是在找特征。
要寻找有区分度的特征,比如作弊必须要用到,正常考试不必用到的行为。
为了弄清分屏器的工作机制,我拆开了它。
▼这个分屏器掂量着挺重的,拆开一看,原来重量都在铁壳子上,板子很小。


▼核心芯片就一个,IT6661FN。


芯片型号都知道了,果断去官网查资料。
文档里发现了一句话:
An EDID RAM is embedded in IT6661 to save the cost of the external EDID ROMs.
翻译一下就是:IT6661集成了EDID RAM,可以节省外部ROM的成本。
看起来IT6661FN内部存了些东西,也许就可以用来识别分屏器,灵感来了。
EDID是什么东西

EDID是Extended Display Identification Data的缩写,中文名称扩展显示器识别数据。
说白了,就是一些用于描述显示器的数据,比如显示器的厂商、型号、支持的分辨率等等。
大家有没有注意到,当你把显示器连接到电脑的时候,电脑会自动识别显示器支持的分辨率,就是这个EDID在起作用。
▼赶紧查查HDMI的引脚图,第15和16两只引脚,就是用来读取EDID的。


▼通过这两只引脚,尝试读取了下分屏器的EDID,果然有HDMI Splitte字样。


▼按照EDID的格式,解析下,果然,分屏器的显示器名称部分的内容是HDMI Splitte,其实应该是HDMI Splitter,也就是HDMI分屏器的意思。


我想会有人问,为什么Splitter少了个r,其实是因为EDID规范中,显示器名称最多只能容纳13字节,最后一个字节必须是0,标记字符串结束,所以有效字符只有12个,“HDMI Splitte”算上中间的空格正好12个字符。
▼顺手也读取了下陪伴我多年的显示器的EDID,居然5年前的东西就支持4k啦,很爽啊,哈哈哈。


反作弊方的的对策

既然已经找到了合适的特征,下一步就是撸代码了。
我实在太懒,读取和解析用的都是别人的轮子,用到了WindowsDisplayAPI和EDIDParser两个开源项目。
foreach (var display in Display.GetDisplays())
{
        byte[] edidData;
        using (var key = display.OpenDevicePnPKey())
        {
            using (var subkey = key.OpenSubKey("Device Parameters"))
            {
                edidData = (byte[])subkey.GetValue("EDID", null);
            }
        }
    if (edidData != null)
    {
        var edid = new EDID(edidData);
        foreach (var descriptor in edid.Descriptors)
        {
            if (descriptor is StringDescriptor)
            {
                Console.WriteLine(((StringDescriptor)descriptor).Value);
            }
        }
    }
}
代码不复杂,先逐个遍历显示器,读取每个显示器的EDID,解析其中的显示器名称,其实上面检测显示器数量也可以用这段代码。
这个模块同样是作为考试系统的插件,不断把显示器的EDID上传到服务器,配合分屏器名称黑名单即可判断是否使用分屏器,并根据EDID中的信息,识别分屏器的厂商、型号、甚至是序列号。
后记

就在本文写作的几天中,学校陆续组织了几次考试,成功抓获十余位使用分屏器的考生,当老师直接说出他们使用的是什么型号的分屏器时,他们都大惊失色,最终承认了作弊行为。
而我么,功成身退,上知乎,写文章,享受分享知识的乐趣。


作弊与反作弊,就像一枚硬币的两面,必将相伴始终。
我希望所有学生都可以诚信考试,不要铤而走险。
不过嘛,好奇心还是驱使着我,继续探索各种可能的漏洞以及防御方法。

如果你对这方面的知识感兴趣,就点个关注吧,这样就不会错过后续的更新咯。
本系列其他文章:
分享到 :
0 人收藏

20 个回复

正序浏览
21#
jqd5d  1级新秀 | 2022-6-26 02:51:09 发帖IP地址来自 中国
原来这样,不过我不用作弊,我已经上班了,我工作会接触到这些知识,就提出来问一下[飙泪笑]
20#
g5xwx  1级新秀 | 2022-6-26 02:50:09 发帖IP地址来自 中国
识别桌面共享的一个重要方法,就是检查有没有特定的驱动,你这不是隐藏,是主动暴露。
hdmi转网线的那个东西,也有edid,和分屏器差不多。
19#
_labw  1级新秀 | 2022-6-26 02:49:25 发帖IP地址来自 北京
驱动级别的屏幕监控软件呢?或者hdmi转网线接口再一分二呢[飙泪笑]这个能不能扰过?
18#
vebgx  1级新秀 | 2022-6-26 02:48:39 发帖IP地址来自 北京
发现了一个方案可以覆盖edid
https://docs.microsoft.com/en-us/windows-hardware/drivers/display/overriding-monitor-edids
17#
k_m4v  1级新秀 | 2022-6-26 02:47:52 发帖IP地址来自 北京
这个狠……
16#
t3z1n  1级新秀 | 2022-6-26 02:47:11 发帖IP地址来自 北京
那你也要保证摄像头能看清屏幕啊。防窥膜本来就降低了屏幕亮度,稍稍不正对亮度就更低,想伪装,镜头大小必然不能大了,通光量肯定很小,民用设备达不到这个要求。
15#
xsy5  1级新秀 | 2022-6-26 02:47:06 发帖IP地址来自 北京
检测的难度基本上等同于你在线下考场大声喊我在作弊。
14#
wcssc  1级新秀 | 2022-6-26 02:46:28 发帖IP地址来自 中国
作弊取消学位证书
13#
吴宇  管理员  伦敦金丝雀码头交易员 | 2022-6-26 02:45:53 发帖IP地址来自 北京
简单,把针孔摄像头伪装一下,直接放在后面墙上。伪装成插排就行,摄像头监控根本看不清
12#
权王训练营  2级吧友 | 2022-6-26 02:45:06 发帖IP地址来自 北京
那如果在电脑上开着直播考试软件可以检测到么[好奇][好奇][好奇]
11#
as246791  1级新秀 | 2022-6-26 02:44:13 发帖IP地址来自 北京
我们学校基本没有什么防作弊的措施[飙泪笑]
10#
bu7b  1级新秀 | 2022-6-26 02:43:19 发帖IP地址来自 中国
应该不重吧,小考试,不触犯刑法,最多校规校纪处理。
要是高考这种国家考试,就要抓了。
9#
l9br9  1级新秀 | 2022-6-26 02:42:50 发帖IP地址来自 北京
根据我买的这么多分屏器,壳子不一样,内部的板子相似或者完全一样,估计都是oem代工的,至于芯片嘛,全都是一样的,1分2是一种,1分4是另一种,都是ITE家的。
电子产品,要的就是走量,一般一种芯片只会有一两家供应商占大头,剩下的小厂山寨兼容芯片,既然是兼容芯片,行为就是一致的。
8#
guomumu  1级新秀 | 2022-6-26 02:42:13 发帖IP地址来自 中国
那如果换一个型号的分屏器,比如不是绿联的,内部芯片型号不一样的话,是不是就不能检测出来作弊了?[好奇]
7#
8bbqc  1级新秀 | 2022-6-26 02:41:38 发帖IP地址来自 中国
我很好奇作弊被抓的学生怎么处理的。
6#
5hb  1级新秀 | 2022-6-26 02:40:41 发帖IP地址来自 四川成都
哈哈哈,不是我自己的学校,其实维护考试纪律,是对每一个学生的保护。对好学生来说,不会因为作弊者影响他们的利益,对差学生来说,至少也督促他们学点儿东西,大学学费白花了,不合适。
5#
rxwwp  1级新秀 | 2022-6-26 02:40:00 发帖IP地址来自 北京
李老师最近的文章可以弄个合集,就叫“奇奇怪怪的知识又增加了系列”吧。

[欢呼]
4#
3zr71_  1级新秀 | 2022-6-26 02:39:07 发帖IP地址来自 中国
明白了,这就去飞线改线路[赞同]
3#
g_d  1级新秀 | 2022-6-26 02:38:12 发帖IP地址来自 中国
你的学弟学妹真是捡到宝了。
2#
pataow  1级新秀 | 2022-6-26 02:37:36 发帖IP地址来自 北京
我还以为分屏器查不出来呢,果然厉害。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP