Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:snmp_usm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
contiki:snmp_usm [2013/02/21 08:32] admincontiki:snmp_usm [2017/01/24 18:49] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 143: Zeile 143:
 ===== Korrektur zur Überprüfung der msgAuthoritativeEngineTime des Timliness Moduls ===== ===== Korrektur zur Überprüfung der msgAuthoritativeEngineTime des Timliness Moduls =====
  
-Innerhalb des USM Moduls befindet sich das Timeliness Modul, dieses dient zur Überprüfung der Authentizität der Nachricht. Dazu muss laut RFC3414 die ankommende msgAuthoritativeEngineTime mit der lokalen AuthoritativeEngineTime des Agenten verglichen werden. Der Unterschied zwischen beiden Zeiten darf 150 Sekunden nicht überschreiten. Dies wurde im original Contiki SNMP mit der folgenden if-Abfrage umgesetzt.+Innerhalb des USM Moduls befindet sich das Timeliness Modul, dieses dient zur Überprüfung der Authentizität der Nachricht. Dazu muss laut RFC3414 die ankommende ''msgAuthoritativeEngineTime'' mit der lokalen ''AuthoritativeEngineTime'' des Agenten verglichen werden.  
 +Der Unterschied zwischen beiden Zeiten darf 150 Sekunden nicht überschreiten.  
 +Dies wurde im original Contiki SNMP mit der folgenden if-Abfrage umgesetzt.
 <code c> <code c>
 if(request->msgAuthor i tat iveEngineBoots != getMsgAuthoritativeEngineBoots()|| abs(request->msgAuthoritativeEngineTime - getSysUpTime() ) < TIME_WINDOW) { if(request->msgAuthor i tat iveEngineBoots != getMsgAuthoritativeEngineBoots()|| abs(request->msgAuthoritativeEngineTime - getSysUpTime() ) < TIME_WINDOW) {
Zeile 152: Zeile 154:
  
  
-Es wird also eine Absolutwertbildung der Subtraktion der msgAuthoritativeEngineTime der ankommenden Nachricht und der Funktion getSysUpTime() durchgeführt. Der Wert der Variablen msgAuthoritativeEngineTime der eingehenden Nachricht ist in Sekunden angegeben. Und die Funktion getSysUpTime() liefert die Zeit seit dem letzten Systemstart in Millisekunden zurück. Dies führt natürlich grundsätzlich zu einem Problem, sodass dieser Wert scheinbar immer größer als 150 Sekunden ist. Dies hat zur Folge, dass die Überprüfung innerhalb der if-Abfrage also immer null ist. Es wird also immer angenommen dass der Wert von msgAuthoritativeEngineTime der eingehenden Nachricht innerhalb des Zeitfensters liegt. Dies wurde durch die folgende Quellcodeänderung korrigiert.+Es wird also eine Absolutwertbildung der Subtraktion der ''msgAuthoritativeEngineTime''  
 +der ankommenden Nachricht und der Funktion ''getSysUpTime()'' durchgeführt.  
 +Der Wert der Variablen msgAuthoritativeEngineTime der eingehenden Nachricht ist in Sekunden angegeben.  
 +Und die Funktion ''getSysUpTime()'' liefert die Zeit seit dem letzten Systemstart in Millisekunden zurück.  
 +Dies führt natürlich grundsätzlich zu einem Problem, sodass dieser Wert scheinbar immer größer als 150 Sekunden ist. Dies hat zur Folge, dass die Überprüfung innerhalb der if-Abfrage also immer null ist. Es wird also immer angenommen dass der Wert von ''msgAuthoritativeEngineTime'' der eingehenden Nachricht innerhalb des Zeitfensters liegt. Dies wurde durch die folgende Quellcodeänderung korrigiert.
  
 <code c> <code c>
Zeile 204: Zeile 210:
  
 Hier kann der komplette Quellcode des geänderten Contiki SNMP heruntergeladen werden: Hier kann der komplette Quellcode des geänderten Contiki SNMP heruntergeladen werden:
-{{:contiki:snmpd.zip|}}+{{:contiki:snmpd13.zip|}}
contiki/snmp_usm.1361435552.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)