← Teknoloji Radarı

Araçlar

Dosya göndermenin iki akıllı yolu: croc ve ışıkla aktarım

Bir dosyayı başka bir bilgisayara göndermek hâlâ can sıkıcı olabiliyor. croc bunu tek bir komut ve şifreli bağlantıyla çözüyor. Decimen ise ağ olmadan, sadece ekran ve kamerayla, QR kodlarını yakıp söndürerek dosya taşıyor.

Bu neden önemli?

İki araç da basit bir işin arkasındaki ilginç bilgisayar bilimini gösteriyor: Parola yerine anahtar üretmek ve kaybolan parçalara aldırmayan kodlama. Bunları bilmek, hangi aracın neye güvendiğini anlamanı sağlar.

I Tested a File Transfer Tool With No Network At All (decimen) · Better Stack, YouTube (İngilizce). Tıklayınca video yüklenir.

Neden hâlâ zor?

Arkadaşına büyük bir dosya göndermek istiyorsun. AirDrop sadece Apple cihazlarda çalışıyor. E-postaya sığmıyor. Paylaşım linkinin süresi doluyor. SSH ya da FTP hızlı ve güvenli ama bir tarafta sunucu kurmayı gerektiriyor.

Better Stack’in iki videosu bu soruna iki farklı açıdan bakıyor.

croc: Tek komut, uçtan uca şifreli

croc, Zack Scholl’un Go diliyle yazdığı açık kaynak bir komut satırı aracı. Kullanımı şöyle:

  1. Gönderen croc send dosya.zip yazıyor. Araç rastgele bir kod ifadesi üretiyor.
  2. Alan kişi croc yazıp bu ifadeyi giriyor, onaylıyor. Bitti.

Hesap yok, sunucu kurmak yok, modem ayarı (port yönlendirme) yok.

Güvenlik tarafı: croc, kod ifadesini doğrudan şifre olarak kullanmıyor. PAKE (parola ile doğrulanan anahtar değişimi) denen bir yöntemle iki taraf, bu kısa ifadeden yola çıkıp çok daha güçlü, tek kullanımlık bir anahtar üretiyor. Araya giren biri yanlış ifadeyle bağlanmaya çalışırsa değişim başarısız oluyor ve hiçbir veri gitmiyor.

Hız tarafı: Link tabanlı servislerde önce dosyanın tamamını yüklersin, karşı taraf sonra indirir. croc ise bir aktarma sunucusu (relay) üzerinden iki bilgisayarı aynı anda konuşturuyor. İki makine aynı yerel ağdaysa bunu fark edip doğrudan aktarıyor. Yarıda kesilen aktarımlar da kaldığı yerden devam edebiliyor.

Bilmen gereken: Varsayılan aktarma sunucusunu croc’un yazarı işletiyor. Dosya şifreli gittiği için içeriği göremiyor, ama bağlantı bilgisi yine de oradan geçiyor. Şirket kuralları buna izin vermiyorsa croc relay ile kendi sunucunu açabilirsin.

Decimen: Ağ yok, sadece ışık

Decimen daha sıra dışı bir fikir: Bir cihazın ekranı dosyayı arka arkaya yanıp sönen QR kodlarına dönüştürüyor, diğer cihazın kamerası bunları okuyup dosyayı yeniden birleştiriyor. Wi-Fi yok, Bluetooth yok, kablo yok. İnternete hiç bağlanmayan (air-gapped) bir makineye dosya taşımak için ilginç bir yol.

Buradaki zorluk şu: Ekran ve kamera tam senkron çalışmıyor. Bazı kareler kaçıyor, bazıları bulanık çıkıyor. Decimen bunu çeşme kodlaması (fountain coding) ile çözüyor. Dosyayı “1. parça, 2. parça” diye sırayla göndermek yerine, her karede parçaların matematiksel bir karışımını gönderiyor. Alıcının belirli bir kareye ihtiyacı yok. Yeterince kare toplaması yetiyor, hangileri olduğu fark etmez.

Videodaki test, işin pratik sınırlarını da gösteriyor. Dizüstü ekrandan telefona aktarım saniyede sadece birkaç kilobayta düştü. Sebepler: Ekran saniyede 60 kare gösterirken telefon kamerası 30 kare çekiyor ve iki kod birbirine karışıyor. QR kodlar da uzaktan okunamayacak kadar yoğun. Telefondan telefona, yakın mesafede ise çok daha iyi sonuç çıktı. Kare hızını ve kod yoğunluğunu düşürünce dizüstü senaryosu da düzeldi.

Önemli: Decimen’in kendi belgelerine göre aktarım şifreli değil. Ekrana bakan her kamera veriyi okuyabilir. Sağladığı şey gizlilik değil, ağsız aktarım.

Düşün

  • Bir dosya gönderirken hızlı, güvenli ve basit olmanın üçünü birden sağlayan kaç araç biliyorsun?
  • Çeşme kodlaması fikri, kayıpların sık olduğu başka hangi durumlarda işe yarayabilir? (İpucu: uzay araçları, canlı yayınlar.)

Bu yazıdaki araçlar Araç Kutusu'nda: croc, Decimen