知识卡片

SNMP版本演进背后的安全与计数器缺陷

专业/工作 · 1220.a

内容

SNMP的版本迭代主要是在修补两类根本缺陷:v1(1988年)用明文的”社区字符串”当密码,且[[计数器与仪表两种指标的本质区别|计数器只有32位]]——对如今的高速链路而言,计数器可能在一次轮询间隔内就翻转好几次,导致算出的变化率严重失真;v2(1993年)把计数器扩到64位并支持批量请求,但它引入的用户安全模型不受欢迎,很快被弃用;v2c(1996年)干脆回退回明文社区字符串的安全模型,却因此成为实际中最广泛采用的版本;v3(2002年)才真正引入加密和用户级安全模型,但给设备带来更多负载,且至今仍有部分厂商不完全支持。发散:SNMP的历史是一个典型的”安全性和易用性/性能”反复拉锯的故事——业界最终大规模采用的v2c反而是安全性最弱的版本,这也是[[服务器上不该使用SNMP的具体理由|不该在服务器上使用SNMP]]的历史背景。

参考来源

《监控运维实践 原则与策略-2021》第9章《网络监控》