532. SNMPv3 (사용자 기반 인증, 메시지 암호화)

핵심 인사이트: 평문으로 비밀번호를 날리던 v1, v2c의 끔찍한 보안 수준을 참지 못하고 등장한 녀석이다. "비밀번호 대신 사용자(ID)별로 인증하고(MD5/SHA), 데이터는 무조건 암호화(DES/AES)해서 보내자"며 보안에 몰빵한 SNMP의 최종 완성형이다.

Ⅰ. SNMPv3의 등장 배경

초창기 SNMPv1과 v2c는 오직 '커뮤니티 스트링(Community String)'이라는 공용 암호를 평문(Cleartext) 으로 주고받았습니다. 해커가 와이어샤크(Wireshark)로 패킷을 살짝만 들여다보면 암호가 털려서 라우터 전체가 장악되는 문제가 심각하여, 철저한 보안 통신을 위해 IETF에서 발표한 차세대 표준이 SNMPv3입니다.

Ⅱ. SNMPv3의 핵심 보안 기능 3가지

SNMPv3는 USM(User-Based Security Model)을 채택하여 다음 3가지를 완벽히 제공합니다.

보안 기능설명
1. 기밀성 (Confidentiality / Encryption)데이터를 평문으로 보내지 않고, DES나 AES(128/256) 알고리즘을 사용하여 패킷 내용 전체를 꽁꽁 암호화합니다. 중간에서 패킷을 가로채도 내용을 읽을 수 없습니다.
2. 무결성 (Integrity / Authentication)패킷이 전송되는 도중에 해커가 값을 몰래 바꾸지 않았는지, 그리고 정말 인가된 관리자가 보낸 패킷이 맞는지 HMAC-MD5, HMAC-SHA 알고리즘을 통해 인증(서명)합니다.
3. 재전송 공격 방지 (Anti-Replay)해커가 가로챈 정상 패킷을 나중에 다시 똑같이 날려서(Replay) 장비를 오작동시키는 것을 막기 위해, 패킷에 시간 정보(Time Window)와 일련번호를 넣어 과거 패킷은 무조건 버려지게 만듭니다.

Ⅲ. SNMPv3의 3가지 보안 레벨 (Security Level)

SNMPv3는 장비의 성능이나 관리 편의성에 따라 보안 강도를 3단계로 선택하여 설정할 수 있습니다.

  1. noAuthNoPriv (인증 X, 암호화 X)
    • 유저(ID) 이름만 맞으면 통과시켜 줍니다. 사실상 v2c와 다를 바 없는 최하위 보안 레벨입니다.
  2. authNoPriv (인증 O, 암호화 X)
    • 패킷이 위변조되지 않았는지(MD5/SHA)는 검사하지만, 패킷 내용은 암호화하지 않고 평문으로 보냅니다. (속도가 빠름)
  3. authPriv (인증 O, 암호화 O)
    • 🌟 SNMPv3의 핵심이자 가장 안전한 설정입니다. 무결성 인증도 하고, 패킷 내용도 AES로 완벽하게 암호화합니다.

Ⅳ. 실무에서의 딜레마

SNMPv3는 보안이 완벽하지만, 설정을 위해 각 장비마다 사용자(User), 암호화 키, 인증 키를 일일이 셋팅해줘야 하므로 구성이 매우 복잡합니다. 또한 1분 단위로 수천 대의 장비 데이터를 암복호화해야 하므로 라우터의 CPU 사용량(Overhead)이 극심해지는 단점이 있어, 아직도 내부 폐쇄망에서는 v2c를 쓰는 곳이 많습니다.

📢 섹션 요약 비유: 회사 입구에서 "나 영업부 직원이야(Community String)" 한마디면 통과시켜주던 허술한 보안(v2c)에서, 이제는 직원의 사원증 사진을 대조(인증)하고, 그 직원이 들고 가는 서류 가방에 튼튼한 자물쇠(암호화)까지 채워야만 출입시켜 주는 철통 보안 시스템(v3)으로 진화했습니다.