防拆传感器原理:微动开关、电容式触摸、光电传感器、霍尔效应传感器
大家好,我是老张。今天我们来聊聊防拆传感器的选型。说实话,这是POS机安全设计里最基础,但也最容易翻车的一环。我见过太多产品,算法写得天花乱坠,结果一个微动开关没选对,整机就被破解了。
防拆传感器说白了就是“哨兵”。它们负责检测外壳是否被打开,或者电路板是否被移走。一旦触发,系统就要立刻擦除密钥、清空敏感数据。嗯,这里有个关键点——传感器本身不能太容易被欺骗。
下面我把四种主流方案掰开揉碎了讲。每种我都踩过坑,你们听听看。
一、微动开关
这是最传统、最便宜的方式。一个机械开关,顶杆被按下时电路导通,弹起时断开。装在机壳接缝处,合上盖子就压住,一打开就弹开。
我个人习惯在PCB上预留两个微动开关的位置。一个装在螺丝孔旁边,另一个装在电池仓附近。为什么装两个?因为攻击者可能会先拆电池,再撬外壳。你想想看,如果只有一个开关,他先断电再拆机,你的检测电路就失效了。
电路设计很简单,一个上拉电阻到GPIO就行。但要注意去抖。我曾经遇到一个项目,开关抖动导致频繁误报,最后加了个RC滤波才解决。
// 微动开关检测示例(伪代码)
#define SWITCH_PIN GPIO_PIN_5
void check_tamper_switch(void) {
if (HAL_GPIO_ReadPin(SWITCH_PORT, SWITCH_PIN) == GPIO_PIN_RESET) {
// 开关被按下,正常状态
return;
}
// 开关弹起,触发防拆
erase_secret_key();
enter_tamper_mode();
}
二、电容式触摸
这个方案我特别喜欢。它没有机械触点,靠检测人体电容来工作。你把手指靠近感应电极,电容值变化,芯片就能感知到。
用在防拆上怎么玩?把感应电极做成一个金属片,贴在机壳内壁。正常使用时,机壳是闭合的,电极和地之间有个固定电容。一旦外壳被打开,电极暴露在空气中,电容值突变——触发报警。
说白了,这就是个“非接触式”检测。攻击者没法用胶带粘住它,因为没有物理触点可以短路。我在做一款高端支付终端时就用过,效果很好。
- 感应电极面积:建议 10mm x 10mm 以上
- 检测阈值:通常设定为基准电容的 ±20%
- 采样频率:10Hz 足够,太快反而容易误报
不过要注意环境温湿度的影响。我记得有一次在南方测试,湿度大,电容值漂了30%。后来加了自动校准算法,每10分钟重新学习一次基准值,才稳定下来。
三、光电传感器
光电传感器分两种:对射式和反射式。防拆场景里常用反射式。一个红外LED和一个光敏管并排放着。正常时,机壳内壁会反射红外光到光敏管。一旦外壳打开,反射面没了,光信号消失,触发报警。
这个方案的优点是隐蔽。你可以把传感器藏在PCB背面,攻击者很难找到。而且它不怕磁铁干扰——霍尔传感器就怕这个。
但有个坑:灰尘。我做过一个项目,用了半年后,光窗上积了一层灰,灵敏度下降了一半。后来我要求设计时加个防尘罩,或者用透镜聚焦光束。
// 光电传感器检测逻辑
uint8_t read_photo_sensor(void) {
// 先关闭LED,读取环境光
LED_OFF();
delay_ms(1);
uint16_t ambient = read_ADC();
// 打开LED,读取反射光
LED_ON();
delay_ms(1);
uint16_t reflected = read_ADC();
// 差值判断
if ((reflected - ambient) < REFLECT_THRESHOLD) {
return TAMPER_DETECTED; // 反射不足,可能被打开
}
return NORMAL;
}
四、霍尔效应传感器
霍尔传感器检测磁场变化。你在机壳上装个小磁铁,PCB上放霍尔芯片。合上盖子时,磁铁靠近霍尔,输出一个电平。打开时,磁场消失,电平翻转。
这个方案最大的优点是——没有物理接触。完全靠磁场耦合,寿命长,不怕振动。很多工业级POS机都用它。
但缺点也很明显:容易被磁铁欺骗。攻击者拿个强磁铁贴在机壳外面,霍尔传感器就一直输出“正常”信号,你拆机它都不报警。我见过一个案例,黑客用钕磁铁吸在螺丝孔旁边,轻松绕过了防拆。
选型时注意灵敏度。我常用的是线性霍尔,比如AH3503。它能输出模拟电压,你可以通过ADC读取,判断磁场大小。比开关型霍尔更灵活。
| 传感器类型 | 优点 | 缺点 | 典型应用场景 |
|---|---|---|---|
| 微动开关 | 成本低、电路简单 | 机械磨损、可被胶带粘住 | 低端POS机、键盘防拆 |
| 电容式触摸 | 无触点、隐蔽性好 | 受温湿度影响、需校准 | 高端支付终端、金融设备 |
| 光电传感器 | 不怕磁铁、可做光路迷宫 | 怕灰尘、功耗稍高 | 安全等级要求高的设备 |
| 霍尔效应 | 无接触、寿命长、抗振动 | 易被强磁铁欺骗 | 工业POS、自助终端 |
五、组合使用才是王道
说实话,单一传感器都不安全。我建议至少用两种不同类型的传感器组合。比如微动开关+霍尔,或者电容触摸+光电。这样攻击者要同时绕过两种物理原理,难度大很多。
另外,传感器检测不能只靠一次读取。要连续采样3-5次,确认状态稳定后再触发。防止误报。我习惯用“去抖计数器”——连续读到5次异常才报警。
好了,这四种传感器原理就讲到这里。下一章我们聊聊如何把这些传感器和主控芯片连接,以及怎么设计检测电路。到时候我会分享一个我实际用过的电路图,你们可以直接抄作业。
- 微动开关:便宜但机械寿命有限
- 电容触摸:无触点,但需环境校准
- 光电传感器:隐蔽性好,注意防尘
- 霍尔传感器:抗振动,小心磁铁攻击
- 组合使用两种以上传感器,提高安全性
公众号:蓝海资料掘金营,微信deep3321