Protokol Bilgileri
Last updated
Last updated
TLV (Tag-Length-Value) protokolü, verileri yapılandırılmış bir şekilde depolamak ve taşımak için kullanılan bir veri kodlama şemasını ifade eder. Bu protokolde, veriler TLV paketleri adı verilen birimlere ayrılmıştır. Her TLV paketi üç bileşen içerir: Tür (Type), Uzunluk (Length) ve Değer (Value).
Type (Tag): Bu, değer alanında bulunan verinin türünü tanımlayan 2 baytlık bir tanımlayıcıdır.
Length: Bu, değer alanında bulunan verinin uzunluğunu tanımlayan 4 baytlık bir tanımlayıcıdır.
Value: Bu, değer alanında bulunan verinin kendisin tanımlayan boyutu değişebilen bir tanımlayıcıdır.
Protokolümüzde veri bütünlüğünü sağlamak amacı ile tüm TLV ile iletilen verilerde belirli bir şema kullandık. Bu şemaya göre veri akışın TLV Başlangıç Paketi - TLV Veri Paketi - TLV Bitiş Paketi şeklinde sağlıyoruz böylece aradaki bozulmaları engellemiş ve eksik paketleri tespit edebilmiş oluyoruz. Aynı zamanda her TLV paketinin sonunda bir checksum ile veri bütünlüğünü kontrol ediyoruz.
Paketlerin hepsi sıkıştırılmış ve şifrelenmiş halde gönderiliyor. Şifreleme PC tarafından handshake adımları bittikten sonra oluşan anahatar ile sağlanıyor. Handshake'in detayları aşağıda bulunmaktadır.
Protokolümüzde, cihaz güvenliği ve doğrulamasını sağlamak için bir yöntem uygulanmıştır. Süreç, PC'den ÖKC'ye bir mesaj gönderilmesiyle başlar. ÖKC, bu mesajı cihaz sertifikasıyla imzalar. İmzalama işleminden sonra, ÖKC cihaz sertifikasını PC ile paylaşır. PC, gönderilen mesajın sağlanan sertifika ile oluşturulabileceğini doğrulamak için sertifikanın açık anahtarını ve ECDSA (Eliptik Eğri Dijital İmza Algoritması) kullanır. Bu doğrulama adımı, cihazın geçerli olduğunu onaylar ve iletişime güvenle devam etmemize olanak tanır. Doğrulamada bir sorun varsa, iletişime devam edilmez.