forked from Yakifo/amqtt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnotes.txt
83 lines (47 loc) · 3.77 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
daha sonrasında encapsulation gerekecek, encapsulate edeceğimiz kısımı kullanılmayan bir flag kodunu encapsulatei açmak için setleyebiliriz
daha sonra bir pakette encapsulate olup olmadığını anlamak için bu flag kodu var mı diye konrtol edilebilir
eğer yoksa normal paket gibi davranılabilir
diğer bir seçenek her şeyi encapsulate etmek
encapsulate gerekmeyen packetler için de dummy bytelar yazılabilir striplenecek kısıma
https://scapy.readthedocs.io/en/latest/introduction.html -can be used for encapsulation?
https://www.techtarget.com/searchnetworking/tip/Intro-to-encapsulation-and-decapsulation-in-networking#:~:text=What%20is%20encapsulation%3F,referred%20to%20as%20the%20payload.
-some definitions, might be used later on
https://github.com/reverseame/chiton -this repo can be used for encapsulation maybe
https://gchq.github.io/CyberChef/#recipe=Parse_X.509_certificate('PEM') -parse x509 certificate, we can use to double check if the certificates are in ocrrect form
client_id subscriptions tablosu lazım ?????
broker.py 2333: brker starts to listen for connections
broker.py 459 log added
mqtt protocol handler 192de publish ediyor
key establishment bittikten sonra alakalı subscriptionu silinmeli gereksiz yer kaplamamak için (client_id ve authenticationTopice olan subscriptionlar)
(bu gerekli mi?)
light/# şeklinde gelirse bütün subtopiclerin choiceTokenları return edilmeli
sublar için aynı token bütük sıkıntı yaratır, sibling topiclere erişim sağlar
------YAPILACAKLAR------
- sesionda receive edilen mesajların databasede tutulması
- encapsulation en sonra kalıyor
- # a subscribe olursa ne oluyor dene
- sıkıntı yoksa topic_name/# a subscribe olursa önce liste hazırlanmalı var olan topic isimlerinden - bu nereden alınacak????? nerede tutulduğunu bul
- topic içinde "#" kabul edilmiyor, bu check nerede yapılıyor bulmak lazım.
deneme4.py "#"a subs oluyor, ama "deneme#deneme" olmadı
var olan topicler nereden geliyor o zaman? eski topicler duuyor mu broker celose open olduktan sonr abu broker sessionında publish edilen ya da önceden subs olunun topicler mi var sadece kontol edilmeli
brokerın içindeki default subscribe receive mekanizmasına bakılmalı özellikle # nasıl davranıyor diye default halinde
amqtt #i desteklemiyor da olabilir implementationun içine bakılmalı.
bizim versiyonda "deneme#deneme" çalıştı, encrypt edilip hexlenince sorun olmadığı için olabilir
bizim versiyon "#"a da subs oluyor ama herhangi bir topic gibi davranıyor, ayrıca bir filtre ya da kontol mekanizması eklenmeli ct istemeden ve maclenip encryptenleden önce
********************************************************************
ENCAPSULATION
sadece ackler için lazım
en sonuna zaten mac eklenmeli ama en başına da 0 ya da 1 şeklinde encapsulation olup olmadığını anlamak için bir identifier flag gerekli
çünkü default halinde bu mac kısmı bulunmayacak, iki taraf da default halide mac ile uğraşmamalı error alır
0 -> mac yok
encapsulated packet: 0 | ack_paketi
1 -> mac var
encapsulated packet: 1 | ack_paketi | mac_signature
broker tarafında daha tricky olabilir işlemler
1 -> mac var
encapsulated packet: 1 | ack_paketi | mac_signature
broker tarafında ackler için direkt class methodu olarak build var, ya classa field eklenecek ya da variable headerın başına ilk byte olarak 1 byte eklenecek 0 ya da 1 olarak mac var/yoku göstermek için
ayrıca mac dite bir field da gerekebilir, normal paketler için boş bırakılır ama yine de orada bulunması gerkiyor
çok fazla yerde değişiklik gerekebilir, ack paketi classının geçtiği he ryeri kontol etmek lazım emin olmak için
broker tarafında daha tricky olabilir işlemler
********************************************************************