]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
devguide/transactions: update & refine diagrams
authorJuliana Fajardini <jufajardini@gmail.com>
Tue, 31 Aug 2021 10:04:53 +0000 (11:04 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 29 Sep 2021 12:51:59 +0000 (14:51 +0200)
- DNS sequence diagram was incorrect (transactions should be
unidirectional). After changing it, it made sense to rename the file.
Adjusted spacing, too. Updated transactions.rst accordingly.
- TLS sequence diagram was refined to illustrate how Suricata actually
implements the protocol.

doc/devguide/extending/app-layer/img/DnsUnidirectionalTransactions.msc [moved from doc/devguide/extending/app-layer/img/DnsRequestUnidirectionalTransaction.msc with 75% similarity]
doc/devguide/extending/app-layer/img/TlsHandshake.msc
doc/devguide/extending/app-layer/transactions.rst

similarity index 75%
rename from doc/devguide/extending/app-layer/img/DnsRequestUnidirectionalTransaction.msc
rename to doc/devguide/extending/app-layer/img/DnsUnidirectionalTransactions.msc
index 6f978ef267745af6b34b12a26d1f3a6bd652b289..f5bd588f685ddc0585d99de8f0c3b24e51dda08e 100644 (file)
@@ -9,7 +9,8 @@ msc {
 
     # Message Flow
     a =>> b [ label = "DNS Request" ];
-    b =>> a [ label = "DNS Response" ];
+    --- [ label = "Transaction 1 Completed" ];
     |||;
-    --- [ label = "Transaction Completed" ];
+    b =>> a [ label = "DNS Response" ];
+    --- [ label = "Transaction 2 Completed" ];
 }
index 7f13bc93dbac38e267aa0d64443707fc1602edf0..e21ee9be6b3d1de093c881bc0cf546bce30adccd 100644 (file)
@@ -5,17 +5,27 @@ msc {
     arcgradient = "10";
 
     # Entities
-    a [ label = "Client" ], b [ label = "Server"];
+    a [ label = "Client" ], b [ label = "Server" ];
 
     # Message Flow
-    a =>> b [ label = "ClientHello"];
-    b =>> a [ label = "ServerHello"];
-    b =>> a [ label = "ServerCertificate"];
-    b =>> a [ label = "ServerHello Done"];
-    a =>> b [ label = "ClientCertificate"];
-    a =>> b [ label = "ClientKeyExchange"];
+    # TLS_STATE_IN_PROGRESS = 0,
+    a abox b [ label = "TLS_STATE_IN_PROGRESS" ];
+    a =>> b [ label = "ClientHello" ];
+    b =>> a [ label = "ServerHello" ];
+    b =>> a [ label = "ServerCertificate" ];
+    b =>> a [ label = "ServerHello Done" ];
+
+    a =>> b [ label = "ClientCertificate" ];
+    # TLS_STATE_CERT_READY = 1,
+    a abox b [ label = "TLS_STATE_CERT_READY" ];
+    a =>> b [ label = "ClientKeyExchange" ];
+
     a =>> b [ label = "Finished" ];
     b =>> a [ label = "Finished" ];
-
+    # TLS_HANDSHAKE_DONE = 2,
+    a abox b [ label = "TLS_HANDSHAKE_DONE" ];
+    ...;
+    # TLS_STATE_FINISHED = 3
+    a abox b [ label = "TLS_STATE_FINISHED" ];
     --- [ label = "Transaction Completed" ];
 }
index e30cb965ad892f0f5701269d9766f270b4c9fecf..6d823a163b7fa46a848a9e29db026fab392c5ab0 100644 (file)
@@ -216,7 +216,7 @@ Sequence Diagrams
 
 A DNS transaction in Suricata can be considered unidirectional:
 
-.. image:: img/DnsRequestUnidirectionalTransaction.png
+.. image:: img/DnsUnidirectionalTransactions.png
   :width: 600
   :alt: A sequence diagram with two entities, Client and Server, with an arrow going from the Client to the Server, labeled "DNS Request". After that, there is a dotted line labeled "Transaction Completed".