BLAKE3 Hash Algoritması ile JSON Web Token (JWT)

JSON Web Token (JWT) with BLAKE3 Hashing Algorithm


Abstract 
This paper studies the integration of BLAKE hash function, which currently has various versions, into JSON Web Token (JWT) structure and evaluates its performance analysis. JWT is used RFC7519 token standard for authentication and authorization in web-based applications(Jones, Bradley, and Sakimura 2015). In modern web developing JWT keys generally sign with hash algorithms such as SHA-256 and SHA-512, but with the integration of BLAKE3, faster and more efficient solutions can be provided. This study details the JWT structure working with BLAKE3, performs performance tests in various scenarios, and discusses its potential advantages.

Abstract 
Bu çalışma, günümüzde çeşitli versiyonları olan BLAKE hash fonksiyonun JSON Web Token (JWT) yapısına entegrasyonunu incelemekte ve performans analizini değerlendirmektedir. JWT, web tabanlı uygulamalarda kimlik doğrulama ve yetkilendirme için yaygın olarak kullanılan bir RFC7519 anahtar standarttır(Jones, Bradley, and Sakimura 2015). Günümüzde kullanılan JWT anahtarları genellikle SHA-256 ve SHA-512 gibi hash algoritmalarıyla çalışır ancak BLAKE3 entegrasyonu ile daha hızlı ve etkili çözümler sunabilir. Bu çalışma, BLAKE3’le çalışan JWT yapısını detaylandırır, çeşitli senaryolarda performans testleri gerçekleştirir ve potansiyel avantajlarını tartışr.



Giriş

Güncel teknoloji gelişmlerinde, durumsuz sistemler ve çok platformlu kullanılabilirlik sunarak birlikte çalışabilirlik sorunlarını çözmeyi hedefler. Bu tür sorunlar genellikle web servisleri kullanılarak ele alınır. Web servisi, ağ tabanlı servisler sağlayan ve servis odaklı mimari (Service-Oriented Architecture SOA) yaklaşımını temel alır. Bu servisler, istemci tabanlı uygulamaların çeşitli sunucu tabanlı programları kullanabileceği şekilde iyi tanımlanmış işlevler içerir. SOA modelleri arasında, REpresentational State Transfer (REST) modeli günümüzde yaygın olarak kullanılması ile öne çıkar. REST, istemci-sunucu arasında HTTP protokolünü kullanarak veri format kısıtlaması (HTML,XML,JSON,TEXT vb.) yapmadan veri aktarımı sağlayan bir mimaridir. REST mimarisine uygun olan servislere RESTful adı verilmektedir((OMANSAK) 2021).

REST, HTTP protokol standartlarına dayanarak veri iletişimi için standart bir web tabanlı servis mimarisi sunar. REST mimarisi stateless olup, herhangi bir durum bilgisi saklamaz. Dolayısıyla istemci-sunucu arasında taşınan verilerde istemciye ait herhangi bir veri bulunmaz. Bu yüzden, REST’in güvenlik tarafındaki zayıflıkları, gizliliği ve veri bütünlüğünü koruyarak istek-cevap yaklaşımını güvence altına almasını gerektirir.

RESTful servislerinde üzerinden yetkisiz erişimleri engellemek için istemci-sunucu arasında bir birini tanıma işlemini yapabilmek için Kimlik doğrulama yöntemleri kullanır(Rathod 2017). Günümüzde birçok farklı mimaride ve teknolojide Kimlik doğrulama yöntemleri vardır. Bunlar içerisinde en yaygın olan anahtar bazlı (token-based) kimlik doğrulama yöntemidir.

Token-based kimlik doğrulama, kullanıcının adı ve parolasının kimlik bilgilerinin, belirli kaynakları almalarına izin veren tokenları almasını sağlar. Bir token kullanılabilir olduktan sonra, kullanıcılar bir kullanıcı adı ve parolayı tekrar kullanmadan kaynaklara erişmek için aynı token tekrar kullanabilirler(Balaj 2017) (Sahoo et al. 2017). Verilen bu token, sunucu tarafından belirli bir algoritma ile üretilmiştir, bu şekilde tokenların mülkiyetini ve kullanıcıya ait erişim haklarını bilebiliriz.

JSON Web Token (JWT) token-based doğrulama yöntemlerinde kullanılan, temelinde JSON formatında imzalanan verilerin bir parçasıdır. JWT standartında HMAC, RSA, ECDSA kullanılarak genel ve özel anahtar çifti kullanılarak imzalanabilir(Jones, Bradley, and Sakimura 2015).

Web tabanlı uygulamalarda kimlik doğrulama ve yetkilendirme için kullanılan JSON Web Token (JWT), basit, güvenilir ve etkili bir yapı sunar. JWT’nin içerdikleri genellikle üç temel bileşene ayrılır: Header, Payload ve Signature. Bu bölümler birlikte token’ın bütünlüğünü ve kimliğini sağlar. Ancak, günümüzdeki hash algoritmalarının bazı performans sınırlamaları özellikle büyük veri setlerinde sorun yaratabilir. BLAKE3, modern donanım için optimize edilmiş yapısıyla bu sorunlara yenilikçi bir çözüm sunmaktadır.


Yöntem



JSON Web Token

JWT, kullanıcı bilgilerini veya iddiaları JSON formatında kodlayan ve bu bilgileri güvenli bir şekilde ileten bir standarttır. JWT’nin yapısı, Header, Payload ve Signature olmak üzere üç ana bölümden oluşur. Header, token’ın türü ve kullanılan imzalama algoritmasını belirtir JWT üç ana bölümden oluşur ve her bölüm "."(nokta) ile ayrılır;

  • Header, token’ın tipi (genellikle “JWT”) ve imzalama algoritması hakkında bilgi sağlar.
  • Payload, kullanıcı bilgileri, roller veya diğer iddiaları içerir. Bu bölüm genellikle Base64 ile kodlanır, ancak şifrelenmez.
  • Signature, token’ın bütünlüğünü ve kaynağını doğrulamak için kullanılan kriptografik imzadır.

Şekil 1 JSON Web Token Yaposo

Payload, JWT’nin bilgi taşıyan kısmıdır ve genellikle kullanıcıya ait iddialar, roller veya diğer meta-veriler burada yer alır. Payload’daki iddialar kayıtlı, genel ve özel iddialar olmak üzere üç kategoriye ayrılır. Bu bölümdeki veriler Base64 ile kodlandığı için şifrelenmiş değildir ve hassas bilgiler barındırmamalıdır.

Signature, JWT’nin güvenliğini sağlayan kriptografik imzadır. Header ve Payload birleştirilip bir gizli anahtar ve hash algoritması kullanılarak imzalanır. Bu imza, token’ın yetkisiz şekilde değiştirilmesini engeller. Bir JWT oluşturulurken Header ve Payload Base64 URL kodlamasıyla kodlanır, ardından bunlar birleştirilir ve hash algoritmasıyla imzalanır.

JWT’ler, genellikle kimlik doğrulama, yetkilendirme ve veri iletimi gibi işlemlerde kullanılır. Kullanıcı oturumlarını yönetmek, kullanıcı yetkilerini kontrol etmek ve istemci-sunucu arasında güvenli veri alışverişi sağlamak gibi önemli roller üstlenir(Mahindraka 2020). Ayrıca taşınabilirlikleri, hafif yapıları ve kolay doğrulanabilir olmaları sayesinde birçok uygulamada tercih edilir. Bununla birlikte, JWT’nin şifreleme eksikliği ve token boyutunun büyüklüğü gibi bazı sınırlamaları bulunmaktadır. Bu yüzden, özellikle hassas bilgiler içeren uygulamalarda dikkatli kullanılmalıdır.

JWT, yaygın olarak HMAC-SHA256 gibi hash algoritmalarını kullanır. Ancak bu algoritmaların performansı, paralel işlem desteği olmaması ve yüksek işlem sayısında performans kaygıları konularında endişeler oluşmaktadır(Rahmatulloh, Gunawan, and Nursuwars 2019). Bu yüzden bu çalışmada BLAKE3 hash algoritmasını JWT entegrasyonunu inceleyip performans analizini yapmaktadır.

BLAKE3

Aumasson, Henzen, Meier ve Phan tarafından tasarlanan BLAKE, SHA-3 ailesinin algoritmalarından biridir. BLAKE3, günümüzün yüksek performans ve güvenlik gereksinimlerini karşılamak üzere tasarlanmış bir kriptografik hash algoritmasıdır(Chang, Nandi, and Yung 2011a). BLAKE3, önceki nesil hash fonksiyonlarına kıyasla önemli avantajlar sunmaktadır. Algoritmanın temelinde, BLAKE2 ve BLAKE2b algoritmasına dayalı olarak geliştirilmiş bir yapı bulunmaktadır. Bu yapı, modern donanım için optimize edilmiştir ve paralel hesaplama desteği ile dikkat çeker. Özellikle Merkle ağacı tasarımı sayesinde, BLAKE3 büyük veri setlerinde dahi yüksek performans gösterebilir(Balaj 2017).

Kriptografik hash fonksiyonu olan BLAKE2; Atiku ve arkadaşlarının 2020 yılında yaptığı çalışmada MD5, SHA-1, SHA-2, SHA-3 algoritmalarına kıyasla daha hızlı performansa sahip olduğu ortaya çıkmıştır. Blake3 ise kendi ailesinden Blake2 ve Blake2b üstüne geliştirildiği için daha iyi performansa sahiptir.

BLAKE3’ün en önemli özelliklerinden biri, sabit uzunlukta 256-bit hash çıktısı üretmesidir. Bu çıktı, kriptografik güvenlik standartlarına uygundur ve geniş bir uygulama yelpazesinde kullanılabilir(Chang, Nandi, and Yung 2011b). Ayrıca, BLAKE3, CPU ve GPU gibi farklı donanımlarda yüksek performans sağlayacak şekilde tasarlanmıştır. Bu, BLAKE3’ü taşınabilirlik ve uyumluluk açısından öne çıkarır. Donanım fark etmeksizin düşük enerji tüketimi ve hızlı hesaplama yetenekleri ile farklı versiyonuna gerek kalmadan x86-64’te ve daha küçük mimarilerde hızlı bir şekilde çalışmaktadır.

BLAKE3’ün tasarımında hız ön planda tutulmuş olsa da güvenlikten ödün verilmemiştir. Algoritma, saldırılara karşı dayanıklı olacak şekilde geliştirilmiştir ve hem teorik hem de pratik saldırılara karşı güçlü bir koruma sağlar(Luykx, Mennink, and Neves 2016). BLAKE3’ün Merkle ağacı yapısı, verilerin bölünerek paralel işlem yapılmasına imkan tanır. Bu, özellikle büyük ölçekli veri işleme senaryolarında belirgin bir avantaj sağlar. BLAKE3, hızlı olması ve düşük kaynak tüketimi sayesinde, hem masaüstü hem de mobil ve IOT cihazları için ideal bir seçimdir.

Günümüzdeki diğer hash algoritmalarıyla karşılaştırıldığında, BLAKE3’ün performansı oldukça etkileyicidir. Aynı veri seti üzerinde yapılan testlerde BLAKE3, SHA-256’ya kıyasla daha hızlı sonuçlar üretebilmektedir(Atiku and Sajoh 2020).

Entegrasyon

BLAKE3’le JWT entegrasyonu, özellikle Signature bölümünde öne çıkıyor. Geleneksel JWT Signature oluşturma adımları aşağıdaki gibidir: Header ve Payload Base64 ile kodlanır, ardından birleştirilir ve HMAC algoritması ile imzalanır. Elde edilen Signature, Header ve Payload ile birleştirilerek JWT oluşturulur. BLAKE3 entegrasyonu ile HMAC adımı şu şekilde değiştirilebilir: Header ve Payload, BLAKE3 hash fonksiyonu kullanılarak imzalanır ve hash çıktısı Signature bölümü olarak kullanılır. Bu yöntem, geleneksel algoritmalara göre daha hızlı ve etkili bir işlem sağlar.

BLAKE3’ün kullanım kolaylığı, esnekliği ve perfomans katkıları onu farklı uygulama alanlarında tercih edilen bir algoritma haline getirmektedir. Bu yüzden JSON Web Token standartındaki algoritmalar yerine BLAKE3 ile imzalama süreçleri kullanıldığında büyük ekosistemlerdeki yüksek trafikli kimlik doğrulama işlemleride ciddi katkılar sağlayabilir.

Bu çalışma içerisinde JWT ve BLAKE3 entegrasyonu yaparken .NET ekosistemi üzerinden gerçekleştirildi ancak diğer programla dillerine veya çercevelerine kolayca entegre edilebilir. Bu entegrasyon aşağıdaki araçları kullanarak gerçekleştirilmiştir:

  • .NET 8.0.1124.51707 (x64)
  • JWT .NET Kütüphanesi
  • BLAKE3 .NET Kütüphanesi
  • BenchmarkDotNet .NET Kütüphanesi (Performans analizi için)

Bu entegrasyon .NET ailesine ait C# (csharp) programlama dili ile gerçekleştirmeyi ve performans testleri için kullanılabilecek fonksiyonları ve kodu EK-1’de [lst:script]gösterilmektedir.


Bulgular


2 Bu bölümde BLAKE3 hash algoritması ile SHA-256 performans analizini ve HMACSHA ile imzanlanmış JWT ile BLAKE3 ile imzalanmış JWT oluşturma/doğrulama adımlarının performans analizini karşılaştıracağız. Bu karşılaştırmayı yaparken .NET 8.0.11 (8.0.1124.51707), X64 mimariye sahip 13th Gen Intel(R) Core(TM) i7-13700T işlemciye sahip bir bilgisayar kullanarak oluşturulmuştur, bu işlemci Intel SHA özelliğine sahip olduğu için SHA algoritması çalışmasında daha iyi performanslara sahiptir.

Intel SHA Extensions, hash algoritmalarını daha hızlı, verimli ve güvenli hale getirmek için modern Intel işlemcilerde bulunan bir özelliktir. Özellikle performans gerektiren kriptografik uygulamalarda büyük bir avantaj sağlar. Eğer yoğun hash hesaplama gerektiren bir uygulamanız varsa ve modern Intel donanımı kullanıyorsanız, bu uzantılardan yararlanabilirsiniz. Bu komut seti, SHA-1 ve SHA-256 gibi hash algoritmalarının işlemlerini hızlandırmak için kullanılır. Özellikle kriptografi, veri bütünlüğü kontrolü ve dijital imzalar gibi uygulamalarda kullanılır.

SHA256 vs. BLAKE3

SHA256 ve BLAKE3 algoritmalarını farklı veri boyutları için performans sonuçları aşağıdaki şekillerde gösterilmektedir. Buradaki sonuçlar nano-saniye (ns) olarak gösterilmektedir.


Şekil 2 SHA256 vs. BLAKE3 (1Kb)




Şekil 3 SHA256 vs. BLAKE3 (10Kb)

BLAKE3 hash performansı SHA256 algortimasına göre Şekil 2 ve Şekil 3 gösterildiği gibi 1 Kb bir veri seti için yaklaşık 4.5 kat daha hızlı performansa sahipken 10kb veri seti için yaklaşık 2 katı hıza sahiptir. Diğer veri setlerine göre karşılaştırmak gerekirse;


Şekil 4 SHA256 vs. BLAKE3

Şekil 4, Blake3 ve SHA256 algoritmalarının farklı giriş boyutlarına karşı byte olarak ortalama nona-saniye sürelerini logaritmik ölçekle göstermektedir. Blake3, özellikle büyük veri boyutlarında SHA256’ya göre oldukça hızlıdır.

JWT Perfomansı

Her iki algoritmanın farklı veri boyutları için performans karşılaştırılmasında BLAKE3 algoritmasının hız gücünün üstünlüğü görmüş olduk. Bu performans farkını JWT oluşturma (encode)/doğrulama (decode) adımları ile analizleri aynı şekilde gerçekleştirebiliriz. Öncelikle bu analiz gerçek uygulamalar için elde etmek istersek ilk önce JSON Web Token anahtarı için kullanılacak Payload bölümünün ortalama kaç byte’lık bir boyut olarak seçmemiz gerektiğini analiz etmemiz gerekir. Günümüzde bilinen ve yaygın olarak kullanılan büyük web uygulamalarının JWT boyutlarının ortalamasını alarak bir sonuç elde edebiliriz. Günümüzde yaygın ve teknoloji öncüsü olabilecek; Youtube, Reddite, StackOverflow, Twitch, IMDB, Amazon web uygulamaları içerisinde kullanılan JWT ortalama boyutları ortalama 400 byte -1200 byte arasında değiştmektedir. Bu verilere göre analiz ortalama 800 byte (0.8KB) olarak gerçekleştirildi.


Şekil 5 JWT Oluşturma: SHA256 vs. BLAKE3

Şekil 5, 800byte bir Payload’a sahip JWT anahtarının oluşturulması için SHA256 ve BLAKE3 algoritmaları için hız karşılaştırılması nano-saniye olarakgösterilmektedir. Şekil 5 göre BLAKE3 yaklaşık %50 olarak daha hızlı bir performansa sahip olduğu anlaşılmaktadır.


Şekil 6 JWT Doğrulama: SHA256 vs. BLAKE3

Şekil 6, aynı veri seti ile oluşturulmuş bir JWT anahtarının doğrulama sonucunun performans karşılaştırmasını göstermektedir. Şekile BLAKE3 yaklaşık %30 olarak daha hızlı bir JWT doğrulama performansına sahiptir.

Method Mean Error StdDev
Blake3 2.030 μ\mus 0.0400 μ\mus 0.0771 μ\mus
SHA256 3.032 μ\mus 0.0833 μ\mus 0.2180 μ\mus

Tablo 1 JWT Oluşturma Sonuçları

Method Mean Error StdDev
Blake3 2.482 μ\mus 0.0416 μ\mus 0.1103 μ\mus
SHA256 3.183 μ\mus 0.0654 μ\mus 0.1055 μ\mus

Tablo 2 JWT Doğrulama Sonuçları

Tablo 1 ve 2 karşılaştırma sonuçlarını detaylıca gösterilmektedir. Burada ki; Mean (Ortalama) tüm ölçümlerin aritmetik ortalamasıdır, Error (Hata) %99,9 güven aralığının yarısını ifade eder, StdDev (Standard Deviation) tüm ölçümlerin standart sapmasını belirtir, Median (Medyan) tüm ölçümlerin üst yarısını alt yarısından ayıran, 50. yüzdelik dilime denk gelen değerdir ve 1 μ\mus 1 nanosaniyeye yani 0.000000001 saniyeye denk gelmektedir.


Sonuç


Bu çalışmada, modern bir hash algoritması olan BLAKE3’ün JSON Web Token (JWT) yapısına entegrasyonu incelenmiş ve performans avantajları değerlendirilmiştir. BLAKE3’ün JWT Signature oluşturma sürecine entegrasyonu, yalnızca işlem hızını artırmakla kalmamış, aynı zamanda enerji tüketimi ve kaynak verimliliği gibi alanlarda da önemli kazanımlar sağlamıştır. Geleneksel SHA256 hash algoritması ile yapılan karşılaştırmalar, özellikle büyük veri setleri ve yoğun işlem gerektiren uygulamalarda BLAKE3’ün belirgin bir üstünlük sergilediğini göstermiştir.

BLAKE3’ün paralel işlem kapasitesi ve düşük kaynak tüketimi, modern web uygulamalarında yüksek performanslı ve güvenilir çözümler sunmaktadır. Bunun yanı sıra, taşınabilirlik ve esneklik özellikleri, BLAKE3’ü geniş bir uygulama yelpazesi için uygun hale getirmiştir. Özellikle mobil cihazlar ve IoT uygulamaları gibi kısıtlı kaynaklara sahip platformlarda, BLAKE3’ün sunduğu avantajlar kritik bir rol oynayabilir.

Sonuç olarak, BLAKE3 ile JWT entegrasyonu, modern web uygulamaları kimlik doğrulama ve diğer süreçlerde kullanılan JWT anahtarları için daha iyi performansa sahipr bir çözüm sunmaktadır. Bu entegrasyonun sunduğu performans avantajları, gelecekte daha geniş bir kullanım alanına sahip olabileceğini göstermektedir. İlerleyen çalışmalarda, farklı kullanım senaryoları ve büyük ölçekli uygulamalardaki performans testleriyle BLAKE3 algoritmasının daha kapsamlı bir şekilde değerlendirilmesi önerilmektedir.

Osman Şakir Kapar
İstanbul Üniversitesi-Cerrahpaşa
Lisansüstü Eğitim Enstitüsü
Bilgisayar Mühendisliği Ana Bilim Dalı
omansak.com
Ocak 2025

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using Blake3;
using JWT.Algorithms;
using JWT.Builder;
using System.Security.Cryptography;
using JWT;

namespace Blake.JWT
{
    internal class Program
    {
        static void Main(string[] args)
        {
            BenchmarkRunner.Run<BenchmarkEncoderJwt>();
            BenchmarkRunner.Run<BenchmarkDecoderJwt>();
        }
    }

    [RPlotExporter]
    public class BenchmarkEncoderJwt
    {
        public byte[] Key;
        public byte[] Payload;

        [Params(4, 100, 1000, 10000, 100000, 1000000)]
        public int N;

        [GlobalSetup]
        public void Setup()
        {
            Key = new byte[32];
            new Random(32).NextBytes(Key);

            var p = new byte[N];
            new Random(42).NextBytes(p);
            Payload = p;
        }

        [Benchmark]
        public void Blake3()
        {
            Encode(new Blake3Jwt());
        }

        [Benchmark]
        public void SHA256()
        {
            Encode(new HMACSHA256Algorithm());
        }

        public string Encode(IJwtAlgorithm algorithm)
        {
            return JwtBuilder.Create()
                .WithAlgorithm(algorithm)
                .WithSecret(Key)
                .Encode(Payload);
        }
    }

    [RPlotExporter]
    public class BenchmarkDecoderJwt
    {
        public byte[] Key;
        public object Payload;
        public string Blake3Token;
        public string SHA256Token;

        [Params(4, 100, 1000, 10000, 100000, 1000000)]
        public int N;

        [GlobalSetup]
        public void Setup()
        {
            Key = new byte[32];
            new Random(32).NextBytes(Key);

            var p = new byte[N];
            new Random(42).NextBytes(p);
            Payload = new { Obj = new JwtBase64UrlEncoder().Encode(p) };

            Blake3Token = Encode(new Blake3Jwt());
            SHA256Token = Encode(new HMACSHA256Algorithm());
        }

        [Benchmark]
        public void Blake3()
        {
            Decode(new Blake3Jwt(), Blake3Token);
        }

        [Benchmark]
        public void SHA256()
        {
            Decode(new HMACSHA256Algorithm(), SHA256Token);
        }

        private string Decode(IJwtAlgorithm algorithm, string token)
        {
            return JwtBuilder.Create()
                .WithAlgorithm(algorithm)
                .WithSecret(Key)
                .Decode(token);
        }

        private string Encode(IJwtAlgorithm algorithm)
        {
            return JwtBuilder.Create()
                .WithAlgorithm(algorithm)
                .WithSecret(Key)
                .Encode(Payload);
        }
    }

    public sealed class Blake3Jwt : IJwtAlgorithm
    {
        public byte[] Sign(byte[] key, byte[] bytesToSign)
        {
            using var blake3 = Hasher.NewKeyed(key);
            blake3.UpdateWithJoin(bytesToSign);
            var tag = blake3.Finalize();
            return tag.AsSpan().ToArray();

            /* return Hasher.Hash(bytesToSign.AsSpan()).AsSpan().ToArray(); */
        }

        public string Name => "blake3";
        public HashAlgorithmName HashAlgorithmName { get; } = new("BLAKE3");
    }
}
  1. Atiku, Ahmed, and D. I. Sajoh. 2020. Signal with Blake2, Chacha20 and Poly1305.” Advances in Multidisciplinary & Scientific Research Journal Publication, 37–48.
  2. Balaj, Yjvesa. 2017. Token-based vs session-based authentication: A survey.” No. September, 1–6.
  3. Chang, Donghoon, Mridul Nandi, and Moti Yung. 2011b. “Indifferentiability of the Hash Algorithm BLAKE.” Cryptology ePrint Archive, Paper 2011/623. https://eprint.iacr.org/2011/623.
  4. ———. 2011a. “Indifferentiability of the Hash Algorithm BLAKE.” Cryptology ePrint Archive.
  5. Jones, Michael, John Bradley, and Nat Sakimura. 2015. JSON Web Token (JWT).” RFC 7519. RFC Editor. https://datatracker.ietf.org/doc/html/rfc7519.
  6. Luykx, Atul, Bart Mennink, and Samuel Neves. 2016. “Security Analysis of BLAKE2’s Modes of Operation.” IACR Transactions on Symmetric Cryptology, December, 158–76. https://doi.org/10.46586/tosc.v2016.i1.158-176.
  7. Mahindraka, P. 2020. “Insights of JSON Web Token.” International International Journal of Recent Technology and Engineering (IJRTE) ISSN, 2277–3878.
  8. (OMANSAK), Osman Şakir Kapar. 2021. Web Servis ve Kimlik Doğrulama (Authentication) Yöntemleri.” https://www.omansak.com/2021/01/servislerde-guvenlik-web-servis-nedir.html.
  9. Rahmatulloh, A, R Gunawan, and FMS Nursuwars. 2019. “Performance Comparison of Signed Algorithms on JSON Web Token.” In IOP Conference Series: Materials Science and Engineering, 550:012023. 1. IOP Publishing.
  10. Rathod, Digvijaysinh. 2017. “Performance Evaluation of Restful Web Services and Soap/Wsdl Web Services.” International Journal of Advanced Research in Computer Science 8 (7): 415–20.
  11. Sahoo, P, NK Janghel, D Samanta, and S Engineer. 2017. “Securing WEB API Based on Token Authentication.” International Journal on Advanced Electrical and Computer Engineering (IJAECE) 4 (2).