保护锡罐免受重播/欺诈性陈述

Securing tincan course agains replay / fraudulent statements

我们的课程使用锡罐 api 向我们自己的学习记录库 (LRS) 报告课程进度。这些课程由第三方提供,在用户浏览器中 运行 作为 HTML 页。

由于可以操纵从课程发送的所有 tincan 语句(简单的 REST 接口),我们确定可以制作或重播 LRS 将接受的 "course success" 消息。

好问题!任何使用客户端代码(包括任何 SCORM 包)的应用程序都容易受到欺诈数据的攻击,因此这是一个需要考虑的重要问题。

根据您的具体情况以及安全对您的重要性,您可以在此处大致采用三种方法。

  1. 不关心:

在很多情况下,在线学习要么是自我导向的,因此学习者没有作弊的动机,要么不够重要,值得冒作弊影响您职业生涯的风险。如果陈述的模式看起来很奇怪,或者如果学习者的后续行为与成功完成课程的人的行为不匹配,那么人类可能会检测到作弊并采取行动。

可能还有比发送欺诈性陈述更简单的作弊方式,例如向同事或朋友询问答案,或者在代码中找到正确答案。安全性取决于最薄弱的点,如果那个点不是锡罐,你就没有必要把精力集中在那里:如果你的墙上有洞,就不要为你的门买一把更大的锁。

为了支持这种方法,Tin Can 语句有一个 authority property 来说明谁断言了事情的发生。这允许报告工具和查看数据的用户确定他们对该数据的信任程度。

对于任何客户端跟踪,该信任级别应该相对较低,但在许多情况下,这没关系。请记住,为了向他们提供工作而了解人员的两种主要方式是简历和面试,这两种方式都依赖于员工的自我主张。重要的是要知道数据的可靠性。

  1. 限制凭据

如果您必须使用客户端跟踪,您可以通过限制用于启动内容的凭据的权限和范围来稍微提高安全性。考虑您希望课程发送哪些数据,并将凭据限制为该数据集。这种方法不会阻止个别学习者声称已通过课程,但会阻止他们发表有关其他学习者或其他课程的声明。它是损害限制,而不是预防,但可以使客户端跟踪的安全性达到与 SCORM 相同或略高的水平。

  1. 服务器端跟踪

如果安全对您来说真的很重要,那么唯一的选择(在 SCORM 中不可用)就是在服务器端进行跟踪。许多主要的服务器端语言都有 free open source code libraries。跟踪服务器端允许您向学习者的计算机隐藏凭据,因此任何人获取这些凭据并发送欺诈性陈述的风险要低得多。

正如我上面提到的,您确实需要确保您也解决了链条的其余部分。如果问题在客户端被标记(学习者可以在代码中找到正确答案),或者如果无法验证被评估用户的身份(他们的朋友可以为他们参加测试),服务器端跟踪可能是一项毫无意义的投资).

如果您的课程已经使用客户端跟踪(可能是由创作工具创建的),则此选项可能是最昂贵的,因此您需要考虑安全性的重要性。一些采纳者采取了使用客户端跟踪学习体验的方法,然后是服务器端跟踪评估。

总而言之,如果操作得当,Tin Can 有可能比 SCORM 安全得多,但您确实需要端到端地考虑整个过程,而不仅仅是跟踪。

如果您对这三种方法中的任何一种有任何后续问题,请告诉我。