DPP’ler için bir zaman makinesi

Elinizde bir ürün tuttuğunuzu ve üzerindeki QR kodunu taradığınızı hayal edin. Bir PDF dosyası yerine küçük bir uygulama açılır. Ürünü şu anda nasıl olduğunu görürsünüz: nelerden oluştuğunu, nereden geldiğini, nelere dikkat edilmesi gerektiğini. Bir kaydırma hareketiyle zamanda geriye gidebilirsiniz - şimdiye kadar yayınlanmış her sürümü inceleyebilirsiniz.

İşte bunu şimdi deneyebilirsiniz: Demo⁠, örnek veriler içeren eksiksiz bir ürün pasaportunu gösterir.

Bu, her Dijital Ürün Pasaportu için geliştirdiğimiz açık kaynaklı tüketici uygulamamız olan Transpareo Time Machine’dir. Kod, GPL v3 lisansı altında GitHub⁠ adresinde bulunmaktadır.

Bunu geliştiriyoruz çünkü AB’nin Dijital Ürün Pasaportu Yönetmeliği tüketiciler için, yani ürünü elinde tutan kişi için yazılmıştır. Çoğu sağlayıcı bunu, kimsenin iki kez taramayacağı bir uyum formu haline getiriyor. Biz ise tüketicinin gerçekten açıp kullanacağı bir uygulama haline getiriyoruz.

Uygulamanın işlevleri

Ürünü elinde tutan kişinin bakış açısından dört temas noktası. Giriş yapmaya gerek yok, uygulama yüklemeye gerek yok.

1

Tarama

Akıllı telefonunuzun kamerasıyla QR kodunu tarayın. Uygulama tarayıcıda açılır.

2

Güncel haberleri görüntüle

Ürün, “Şimdi”de karşımıza çıkıyor - bileşenler, malzemeler, menşe, bakım, geri dönüşüm.

3

Tarihi gözden geçirmek

Bir kaydırma hareketi ile zamanda geriye doğru ilerleyebilirsiniz. Her bir önceki sürümde, değişikliğin tarihi ve nedeni belirtilmiştir.

4

Paylaş

Her sürümün kendine ait bir bağlantısı vardır. Bir kişi, belirli bir sürümü arkadaşlarıyla veya resmi makamlarla paylaşır.

Neden ki?

AB’nin Dijital Ürün Pasaportu Yönetmeliği, son on yıllardır ürün şeffaflığı konusunda atılan en büyük adımdır. Temel metinleri dikkatle okuduğunuzda, bu yönetmeliğin açıkça tüketiciler için yazıldığı anlaşılır. Yetkili kurumlar, geri dönüşümcüleri ve tamirhaneler de bu sürece dahil oluyor; ancak yönetmeliğin birincil muhatabı, ürünü elinde tutan kişidir.

Rakamlar açısından durum oldukça net. Ortalama bir Avrupalı birey, on yılın sonunda yılda onlarca hatta yüzlerce ürün pasaportunu tarayabilecek. 200 milyon haneye göre hesaplandığında, bu yıllık milyarlarca tüketici etkileşimi anlamına gelir. Buna kıyasla, resmi kurumlar ve geri dönüşümcülerin dünyası sayısal olarak yok denecek kadar küçüktür.

Yönetmelik tüketicilere ulaşacaksa, tüketici tarafının iyi tasarlanmış olması gerekir - hızlı, güzel ve tutarlı. Aksi takdirde amacına ulaşamaz. Tek bir sağlayıcıya bağımlı olmaması için bu tüketici sayfasını açık kaynak olarak geliştirmeye karar verdik.

Kesintiye uğramadan sağlayıcı değişikliği

AB’nin Dijital Ürün Pasaportu Yönetmeliği, hizmetler ve sistemler arasında aktarılabilir ve tek bir sağlayıcıya bağlı olmayan, açık standartlara dayalı ve birbiriyle uyumlu ürün pasaportlarını zorunlu kılmaktadır. Dolayısıyla, hizmet sağlayıcısından bağımsızlık bir ek özellik değil, yönetmeliğin bir parçasıdır.

Transpareo Time Machine, bu şartı somut hale getiren unsurdur. Her ürün pasaportu açık standartlara göre sunulduğundan (çözücüden bağımsız tanımlama, kanonik serileştirme, kamuya açık anahtarlar) ve görüntüleyici GPL v3 lisansı altında açık kaynak kodlu olduğundan, bir pasaportun görüntülenmesi hiçbir zaman platformumuza bağlı değildir.

Bir ürün pasaportundan sorumlu olan, üretici, ithalatçı veya yetkili temsilci gibi bir piyasa aktörüdür. Bu aktör Transpareo’dan ayrılıp başka bir sağlayıcıya geçmeye karar verse bile, görüntüleme şekli değişmez: Aynı açık kaynaklı görüntüleyici, daha önce yayınlanmış sürümleri ve geçmişi olduğu gibi değiştirmeden göstermeye devam eder ve aynı açık standartları kullanan yeni bir sağlayıcı, tam olarak aynı uygulama tarafından görüntülenir. Veriler de birlikte taşınır, tüketiciler herhangi bir kesinti yaşamaz ve kimse bir geçiş sürecini beklemek zorunda kalmaz.

Tarayıcıda test edilmiştir, sunucumuzda değil

Her ürün sertifikasının üst kısmında bir rozet yer alır: Transpareo tarafından doğrulanmıştır. Bu rozet, sunucumuzda değil, ziyaretçinin tarayıcısında gerçekleştirilen bir doğrulama işleminin sonucunu gösterir; bu işlem, yüklenen baytlar ve sertifika sahibinin açık anahtarları temel alınarak yapılır.

Her DPP sürümünü birbirinden bağımsız iki taraf imzalar: ihraççı ve Transpareo. Rozetin yeşile dönmesi için her iki imzanın da doğrulanabilir olması gerekir. “Kendi Anahtarını Getir” (BYOK) ile yayıncı kendi imza uç noktasını işletir; Transpareo hiçbir zaman özel anahtarı elinde tutmaz ve yalnızca bağımsız karşı imzayı ekler. Böylece, Transpareo’nun kendisinin oluşturamayacağı bir yayıncı imzası ortaya çıkar. Güvenliği ihlal edilmiş bir sunucu, onay işaretini taklit edemez; çünkü doğrulama işlemi ziyaretçinin kendi cihazında gerçekleşir.

Ayrıntılı bilgi almak isteyenler rozete tıklayabilir. Burada imza zincirini, hash değerlerini ve zincirlenmiş sürüm geçmişini görebilirsiniz. Sadece bilgiyi almak isteyenler bunu görmezden gelip ürün pasaportunu okumaya devam edebilir.

Aynı doğrulama işlemi bağımsız bir sayfa olarak da mevcuttur: DPP Doğrulama sayfasında, herhangi bir ürün pasaportunun manifest URL’sini girerek, pasaportu açmanıza gerek kalmadan tam doğrulama sonucunu görebilirsiniz.

Kodu yayınlıyoruz

Transpareo Time Machine, GitHub’da GPL v3 lisansı altında⁠ yayınlanmaktadır. Klonlama, fork oluşturma, kendi sunucunuzda barındırma - hepsi serbesttir. Yayınlanan değişikliklerin de GPL v3 lisansı altında olması gerekir; böylece her türlü geliştirme kamu yararına olur.

Paketi entegre etmenin üç yolu:

  • Script etiketi ile: sayfaya bir <script> ve bir <transpareo-time-machine src="…"> ekleyin, hepsi bu kadar - derleme adımı gerekmez.
  • npm ile: Kendi uygulamanızda npm install transpareo-time-machine komutunu çalıştırın.
  • Kendi sunucunuzda barındırma: Paketi derleyin, kendi altyapınızı kullanın, çalışma zamanında üçüncü taraf bağımlılıkları sıfır.

Sadece imza doğrulamasına ihtiyaç duyan ve tam ürün görünümüne gerek duymayanlar, kardeş öğe <dpp-verifier>‘i içe aktarabilir - denetçi araçları için idealdir. DPP Doğrulama sayfasında canlı olarak görülebilir.

Uygulamayı akıllıca kullananlar

Uygulama öncelikle tüketiciler için geliştirilmiştir. Ancak ürün verilerini bağımsız olarak incelemek veya doğrulamak isteyen herkes için de kullanılabilir.

  • Son tüketiciler tarar, inceler, sayfaları gezer, paylaşır. Giriş gerektirmez, izleme araçları yoktur.
  • Piyasa denetim kurumları ve resmi makamlar, kaynak kodu kamuya açık olarak denetlenebilen bir yazılımda ürün pasaportunu görebilir.
  • Tamirhaneler ve geri dönüşümcüleri, malzeme bileşimini ve sökme talimatlarını doğrudan ürün üzerinde görebilir.
  • Markalar ve Fork işletmecileri, paketi kendi markalarına göre özelleştirebilir - CSS belirteçleri, kendi bileşenleri, kendi sunucularında barındırma.

Transpareo artık olmazsa ne olur?

AB, kayıtlı bir ürün pasaportunun, düzenleyicinin iflası veya tasfiyesi sonrasında bile en az on yıl boyunca erişilebilir kalmasını şart koşmaktadır. Bir SaaS sağlayıcısının faaliyet süresi nadiren bu kadar uzun sürer. Bu nedenle platformu, en başından itibaren ürün pasaportlarının bizden bağımsız olarak kullanılabilir kalacağı şekilde tasarlıyoruz:

  • İmzalanmış her DPP sürümü, herkese açık bir depolama alanında bulunur. Baytlar ve yayınlanan açık anahtarlar, daha sonraki doğrulama işlemleri için yeterlidir.
  • Ürün pasaportları AB Sicili’ne kaydedilir kaydedilmez, yazma korumalı ikinci bir depolama alanı her DPP sürümünü ve olay günlüğünü on yıl boyunca yedekler. Hiç kimse - biz dahil - bu yedek kopyaları sonradan değiştiremez.
  • Sözleşmenin feshedilmesinden sonra, kısa ürün pasaportu URL’leri bir yönlendirme yoluyla Transpareo platformunda erişilebilir olmaya devam eder.
  • Transpareo Time Machine, arşivlenmiş veriler üzerinde de aynı şekilde çalışır. Paket, çalışma sırasında bize geri dönmez; sadece baytlara ve anahtarlara ihtiyaç duyar.

Transpareo platformu yarın ortadan kaybolsa bile, DPP sürümleri ve açık kaynaklı renderer kalır.

Teknolojiye meraklılar için

İşte arka planda neler oluyor. Ayrıntılara gerek duymayanlar bu bölümü atlayabilir - uygulama yine de çalışır.

  • GS1 Digital Link (ISO/IEC 18975): Ürün pasaportu URL’si, ürün kimliğini standart bir biçimde taşır - çözümleyiciden bağımsızdır ve sağlayıcılar arasında değiştirilebilir.
  • JSON Canonicalization Scheme (RFC 8785): Deterministik bir serileştirme. Böylece hash, alan sırasından veya boşluklardan bağımsız olarak tekrarlanabilir hale gelir; herkes bunu kendisi hesaplayabilir.
  • W3C Veri Bütünlüğü Kanıtları (eddsa-jcs-2022): Kanonikleştirilmiş biçim (JCS) üzerinden Ed25519 imzası.
  • /.well-known/dpp-keys/ (RFC 8615): İhraççıların açık anahtarları standart bir yol altında bulunur - Transpareo’ya başvurmaya gerek yoktur, her doğrulayıcı bunları kendi başına bulabilir.

Her şey GitHub’daki README dosyasında⁠ belgelenmiştir - ön uç mimarisi (kendi reaktif çekirdeği, harici çerçeve yok) ve kendi sunucunuzda barındırma için derleme kılavuzu da dahil.

GitHub'da kodu görüntüle

Kaynağın tamamını, tüm sürümleri ve sorunla ilgili tartışmayı halka açık depoda bulabilirsiniz.