Aiyori 保管的,是孩子的学习记录。
怎样保护,我们写出思路和机制的要点。可能被人利用的具体设置,有意不写。没有做到的事,也不会写成已经做到。
基本思路
- 少收集信息。学生不需要电子邮箱就能使用。出生日期只保管“年和月”。
- 限定能看的人。能看到学生信息的,只有本人、其家长和教室的老师。
- 不一直保留。照片、视频、语音等文件,365 天后自动删除。
- 不用于广告和追踪。用于分析或广告的组件,应用和网页版里都没有加入。
登录
- 老师、家长
- 用发送到电子邮箱的 6 位验证码登录。因为不设密码,不会发生因重复使用或泄露而被盗用的情况。
验证码在短时间内失效,发出新的验证码后,旧的即不能使用。 - 学生
- 用教室代码、ID、密码这 3 项登录。密码转换成无法还原的形式后保存。运营方和老师都无法读出密码。
- 防范暴力破解
- 连续出错时,会在一定时间内停止登录。验证码的发放次数也有上限。
无论教室、ID、密码中哪一项有误,返回的结果都相同,不给出线索。 - 不透露是否已注册
- 不会因为电子邮箱是否已注册,而改变画面的显示。
- 验证码的保存
- 验证码、邀请码,只保存转换后无法还原的值。即使看到数据库,也无法得知原来的验证码或邀请码。
登录之后的状态
- 登录的有效期
- 登录状态会在较短的间隔内重新确认。长时间不使用,会自动失效。
- 防范盗用
- 如果登录信息有被盗用的迹象,该设备上的登录全部失效。
- 画面锁定
- 老师和家长的画面,可以用 Face ID、Touch ID、设备密码保护(默认开启)。
- 防止冒名发送
- 进行写入操作时,会确认发送来源是 Aiyori 自身的画面(CSRF 防护)。
按教室隔离
许多教室使用同一套系统,所以我们最看重的,是教室之间的数据不会混在一起。
- 机制
- 按教室分隔数据的机制,放在程序的底层。不依赖每个画面或功能的写法,就碰不到其他教室的数据。
- 从其他教室看是什么样
- 即使指定了其他教室的学生或作业,返回的也是与“不存在”相同的结果。连有没有都无从知道。
- 确认方法
- 用于确认跨教室无法看到数据的自动测试,每次修改程序时都会运行。
谁能看到什么
| 身份 | 能看到的内容 | 不能做的事 |
|---|---|---|
| 学生 | 发给自己的作业、自己的提交内容和分数、与老师的对话 | 查看其他学生的信息(老师公开的单词卡昵称与用时除外)。没有与钱有关的画面。 |
| 家长 | 通过邀请码关联的孩子的作业、提交内容、分数、学习记录,以及与老师的对话 | 在对话中发言。 也不能查看其他孩子的信息。 |
| 教室的老师 | 本教室学生的作业、提交内容、对话和学费 | 查看其他教室的信息。 |
| 追加的老师 | 与教室的老师相同 | 教室的设置、关闭教室、 邀请老师、付款。 |
加密
- 通信
- 设备与 Aiyori 之间,全部用 HTTPS(TLS)加密。与数据库的通信、与文件存放处的通信也都加密,不接受未加密的连接。
- 存放
- 数据库和文件存放处,整体加密后保存。采用广泛使用的高强度加密方式。
- 姓名、电子邮箱
- 在存放处整体加密之外,姓名、电子邮箱等,还会在应用内逐条加密后再保存。只看数据库,是读不出来的。
文件与视频
- 发送与接收的方式
- 照片、PDF、语音、视频的传输,使用只有本人能用、有时限的通道。通道在短时间内失效。
- 每次打开都确认
- 每次打开文件时,都会确认此人现在是否可以查看。
- 存放处
- 设置为无法从外部直接查看。没有公开的 URL。
- 接受的文件
- 只接受规定格式和大小的文件。收到之后,服务器还会再次确认。
- 授课视频
- 每次播放时,都会确认此人是否可以观看该视频。没有许可,就无法取出视频本体。
- 授课视频只在 Aiyori 中
- 老师上传的视频不经过外部视频网站发布。没有广告,也没有推荐视频。只有在老师发放 YouTube 视频时,才以不使用 Cookie 的设置嵌入 YouTube 的播放框。
保存期限与清除
- 365 天后删除
- 照片、视频、语音、PDF 等文件,上传后 365 天自动删除。过了期限的文件,即使在删除处理之前也无法打开。
- 保留的内容
- 分数、评语、题目的回答、文字消息。老师设为“作为教材保留”的授课视频。
- 退出时
- 30 天后,清除提交内容、对话、学习记录和姓名。
- 关闭教室时
- 学生全部退出,30 天后连同教室一并清除。
- 自行删除
- 老师和家长,用发送到邮箱的验证码确认后,可以删除自己的账号。
保护孩子的机制
- 家长同意
- 未满 16 岁的学生,在家长同意之前,不能提交照片、视频、语音,也不能与老师一对一交流。同意会被记录,之后可以在网页版撤回。
- 对话家长可见
- 家长可以阅读孩子与老师的全部对话。也可以停止对话。
- 学生之间不相连
- 没有学生联系其他学生的功能。
- 前往外部时
- 通往其他网站的链接,打开之前会显示目的地并请对方确认。对未满 13 岁的孩子,会提示“请和家里的大人一起打开”。
- 直播课的链接
- 只接受 Zoom、Google Meet、Microsoft Teams、Whereby 的链接。
- 告知
- 有困难或不舒服的事,可以从画面上告知运营方。告知的内容,不会传给老师。
- 不显示与钱有关的内容
- 学生的画面上,不显示账单和付款。
- 通知的文字
- 为了让人看出是哪个孩子的什么事,通知里会写孩子的显示名称和作业的标题。消息的正文、分数、老师的评语、学费的金额,不会写入。家长和老师可以在设置中改为不显示名称和标题。催缴学费的通知里,不写名称。
广告与追踪
- 不显示广告。不出售数据。(老师发放的 YouTube 视频中,YouTube 可能会加入广告)
- 用于使用分析或广告的外部组件(SDK、标签),网页版和 iPhone、iPad 应用里都没有加入。iPhone 和 iPad 应用只用 Apple 的标准功能制作。
- 发送给外部公司的信息,只有用于发送邮件的电子邮箱(Amazon Web Services),以及用于生成单词卡朗读语音的单词文字(Google)。单词文字里不包含学生的信息。老师导入 Google 表单时,由老师的浏览器直接从 Google 读取表单。Google 账号的信息和表单的回答,都不会传到 Aiyori。
记录与监控
- 操作记录
- 批改、发还、学生的登记、暂停、退出、密码的重设、家长同意、付款记录等,都会记录“谁、何时、做了什么”。记录只追加,不改写。
- 运营方的操作
- 运营方对教室和数据进行的操作,也会附上理由,留在同样的记录里。
- 日志
- 运行日志里,不写正文、电子邮箱和验证码。
- 监控
- 持续监控系统的状态,有异常时通知运营方。
- 备份
- 数据库每天自动备份,并保管一定期间。设置为无法误删。
运行的场所
- 数据所在地
- 日本(Amazon Web Services 东京区域)。
- 数据库
- 放在无法从互联网直接连接的地方,只有 Aiyori 的程序可以连接。
- 程序
- 只赋予必要的权限来运行。不以管理员权限运行。
- 更新
- 新版本如有问题,会自动恢复到上一个版本。
- 每次修改时的检查
- 每次修改程序时,都会运行类型检查和自动测试(包括教室的隔离、同意、清除)。
付款信息
- Aiyori 不保存卡号。也没有保存它的地方。
- 银行卡付款时,卡片信息由支付公司(Stripe)直接保管,学费直接进入老师的账户。运营方不会代管学费。
万一发生问题时
- 信息泄露或有泄露之虞时的处理步骤,已经事先定好。
- 先制止原因,并在 24 小时内通知受影响教室的老师。
- 依照法律,向日本个人信息保护委员会报告,并通知本人和家长。
