Zephyrnet Logosu

Kraken Cüzdan, mobil kripto güvenliğindeki zorlukları nasıl ele alıyor?

Tarih:

En güvenli mobil kripto cüzdanının, mobil işletim sisteminin doğasında var olan kısıtlamaların üstesinden gelen cüzdan olduğuna inanıyoruz. Örneğin, iOS'ta Apple'ın CryptoKit'i desteklemiyor secp256k1 eliptik eğriBitcoin, Ethereum ve diğer birçok blockchain için bir standarttır.

Bu sınırlama, geliştiricilerin anahtar depolama ve işlem imzalama için cihazların güvenli unsurunu kullanmasını kısıtlar. Sonuç olarak, mobil kripto cüzdanlar, hem internete bağlı olmaları hem de kriptografik algoritmaların bir yazılım uygulamasını kullanarak işlemleri güvenli bir unsurun dışında imzalamaları nedeniyle sıcak cüzdanlar olarak sınıflandırılmaktadır.

Bu, korumalı alan uygulama ortamının belleğinde özel anahtarların (en azından imzalama sırasında) açığa çıkması gerektiği anlamına gelir. Bu da onları, işlemleri imzalamak için güvenli bir öğe kullanan bir cüzdana kıyasla potansiyel tehditlere daha açık hale getiriyor.

Daha fazla koruma sağlayacak olan güvenli öğeler üzerinde imzalamanın doğrudan gerçekleştirilememesine rağmen, açık kaynak Güvenliği, şeffaflığı ve kullanıcı kontrolünü ön planda tutan mobil kripto cüzdanı.

Güvenlik mimarimiz aşağıdaki amaçlara yönelik olarak tasarlanmıştır:

  • Birden fazla blok zincirini destekleyin
  • Güvenliği artıran bir öngörülemezlik ölçüsü olan yüksek entropiye sahip özel anahtarlar oluşturun
  • Cep telefonlarının güvenlik donanımından ve işletim sistemi güvenlik özelliklerinden yararlanarak kullanıcıların özel anahtarlarını güvenli bir şekilde şifrelemek için savaşta test edilmiş kriptografiden yararlanın
  • Ek bir şifreleme düzeyi isteyen ileri düzey kullanıcılar için kullanıcı tarafından oluşturulan bir parolayla gelişmiş güvenlik sunun (şifre çözme anahtarı için işletim sistemi anahtarlık korumasına ek olarak)
  • Donanım cüzdanları ve MPC çekirdek tabanlı sistemler gibi yeni anahtar yönetimi türlerinin gelecekte dahil edilmesi için sağlam bir temel oluşturun

Açık kaynak avantajı

Temel güvenlik ilkelerinden biri olarak, Kraken Cüzdanı ücretsiz ve açık kaynaklı bir yazılımdıraltında dağıtılan MİT lisansı. Sıfırdan yeni bir cüzdan oluşturmak, açık kaynak ve dağıtılmış ekosistemi geliştirmeye yardımcı olmak bizim için önemliydi.

Açık kaynak kodu olmadan Kraken Cüzdan, şeffaflık olmadan büyük miktarda güven gerektirir. Bu, müşterilere daha az koruma sağlayacaktır; İsteseniz istemciyi kendiniz doğrulayamaz, değiştiremez veya çalıştıramazsınız. “Güvenme, doğrula!” sadece bir sektör ilkesi değil, aynı zamanda yol gösterici ilkelerimizden biridir.

Yazılımımızın açık kaynak kullanımı, bu ürün için başlangıçta belirlediğimiz iki temel hedefi yerine getirir: doğrulanabilir, denetlenebilir güven minimizasyonu:

  • Doğrulanabilirlik: Bu blog yazısında sunulan güvenlik varsayımlarının doğru olduğunu doğrulama yeteneği. Herkes yapabilir kaynak koduna bak Bu cüzdanda nelerin yapıldığını ve yapılmadığını özellikle anlamak için. 
  • Denetlenebilirlik: Güvenlik uygulamamızın çıktısının doğru olduğunu doğrulama ve yanlış olduğunda geri raporlama yeteneği. Yayınlanmadan önce birçok kez güvenlik denetimleri gerçekleştirmeleri için iç ve dış ekipleri görevlendirdik. Artık herkes kodu denetleyebilir ve bulguları hakkında bir rapor hazırlayabilir.

Anahtar oluşturma ve anahtar içe aktarma

React Native, güçlü bir araç olmasına rağmen yerleşik bir kripto modülüne sahip değildir. Bu soruna çözüm bulmak için NodeJS'nin kripto modülünün saf js uygulamasını (crypto-browserify) kullandık. Anahtar oluşturma sırasında ihtiyaç duyduğumuz gerçek rastgele baytları üreten crypto.randomBytes() yöntemi, tepki-yerli-rastgele-değerler al çoklu doldurma

React-native-get-random-values, rastgele sayılar oluşturmak amacıyla cihazda bulunan Kriptografik Olarak Güvenli Sahte Rastgele Sayı Oluşturucuyu (CSPRNG) kullanmak için yerel kodu kullanır. Pratik olarak tüm modern cihazlarda, bu rastgele sayı üreteci, güvenli bir donanım rastgele sayı üreteci tarafından desteklenir.

Cüzdanın başlatılması sırasında, CSPRNG'den entropi alıyoruz ve köklü npm paketlerini kullanarak onu anımsatıcı bir tohuma dönüştürüyoruz (BIP32, BIP39).

Anahtarlar, ekosistemdeki çoğu cüzdan için birlikte çalışabilirlik ile birlikte yedeklenmesi kolay bir anımsatıcı yöntem sunan BIP39 standardı kapsamında dönüştürülür, saklanır ve kullanıcıya sunulur. İçe aktarma özelliği, ekosistemde en iyi birlikte çalışabilirliği sağlayan BIP39 uyumlu tohumların kurtarılmasını destekler. 

Anahtar yönetimi 

Kraken Cüzdanı, tohum ve anımsatıcı olmak üzere iki gizli değeri ve cüzdan adresleri, cüzdan adları ve işlem açıklamaları gibi birden fazla gizli olmayan (ancak yine de özel) değeri tutar.

Özel anahtar malzemesi (tohum/anımsatıcı), Anahtarlık'ta (iOS'ta) ve Anahtar Deposu'nda (Android'de) saklanır. Genel anahtar materyali ve hassas olmayan veriler (genişletilmiş genel anahtarlar, adresler ve açıklamalar) uygulamanın şifrelenmiş veritabanında (kullanılarak) saklanır. Diyar).

Verileri koruyan birden fazla güvenlik kontrolü vardır:

  • Uygulama kilidi: Anahtar Zinciri veya Anahtar Deposunda saklanan, rastgele oluşturulmuş 64 baytlık bir dize. Sırra erişim, kullanıcının varlığı gereklilikleri (biyometrik veya parola kimlik doğrulaması) ile korunur.
  • Şifre: Kullanıcı tarafından sağlanır ve bir cihazda tutulmaz. Bunun yerine, uygulama tarafından istendiğinde kullanıcının şifreyi manuel olarak sağlaması gerekir. M-cüzdan, Anahtar Zinciri veya Anahtar Deposu'nda saklanan iki bayrağa (is_storage_encrypted ve is_seed_encrypted) başvurarak parolanın gerekli olup olmadığını belirler. Argon2 algoritması anahtar türetme fonksiyonu olarak kullanılır.
  • Veritabanı şifreleme: Veritabanı (Realm), gizli olmayan verileri depolamak için kullanılır. Veriler rastgele 64 baytlık bir anahtarla şifrelenir.
  • Kilitleme mekanizması: Yanlış şifre girilmesi, sonraki şifre denemelerinin yapılabilmesi için gecikmelere neden olur. Bu mekanizma kaba kuvvet şifre saldırılarını etkili bir şekilde caydırır. Deneme sayısı ve gecikme süresi gibi kilitleme parametrelerine ilişkin bilgiler Anahtar Zinciri veya Anahtar Deposunda güvenli bir şekilde saklanır.

Tohum, anımsatıcı ve veritabanı şifreleme anahtarı her zaman şifrelenmiş biçimde saklanır

  • Hiçbir koruma etkinleştirilmediğinde: Çekirdek, anımsatıcı ve Realm şifreleme anahtarı, kullanıcı varlığı erişim kontrolü olmadan doğrudan Anahtarlık veya Anahtar Deposunda saklanır.
  • Uygulama kilidi etkinleştirildiğinde: Anımsatıcı ve tohum önce uygulama kilidi sırrı ile şifrelenir ve ardından Anahtarlık veya Anahtar Deposunda güvenli bir şekilde saklanır. Bölge şifreleme anahtarı aynı zamanda doğrudan Anahtarlık veya Anahtar Deposunda da saklanır.
  • Parola koruması etkinleştirildiğinde: Anımsatıcı ve tohum parolayla şifrelenirken Realm şifreleme anahtarı yalnızca is_storage_encrypted true olarak ayarlanmışsa parolayla şifrelenir.
  • Hem uygulama kilidi hem de şifre koruması etkinleştirildiğinde: Anımsatıcı ve tohum hem şifre (ilk) hem de uygulama kilidi (ikinci) ile şifrelenir. Bölge şifreleme anahtarı yalnızca parolayla ve yalnızca is_storage_encrypted true olarak ayarlanmışsa şifrelenir.

Anahtar kullanım

Tohum/anımsatıcı, Anahtarlık veya Anahtar Deposunda saklanır ve kriptografik işlemlerde çok önemli bir rol oynar. Yeni bir cüzdan adresi oluşturulması gerektiğinde veya bir işlemin imzalanması gerektiğinde, özel anahtar gibi gerekli bilgileri bu tohumdan elde ederiz.

Ancak bu işlemler sırasında özel anahtarın belleğe yüklenmesi gerektiğine dikkat etmek önemlidir. Bu gereklilik, mobil cüzdanlarla ilgili daha önce bahsettiğimiz kısıtlamalardan ve işlem imzalama için güvenli öğeye doğrudan erişimin olmamasından kaynaklanmaktadır.

  • İşlem imzalama (belirteç gönderme)
  • WalletConnect veri imzalama (oturum isteklerini işleme)
  • Yeni bir cüzdan ekleme
  • Test ağı zincirlerini etkinleştirme (test ağı cüzdanları ekleme)
  • Anımsatıcının görüntülenmesi
  • Anımsatıcının doğrulanması
  • Uygulama kilidini etkinleştirme ve devre dışı bırakma
  • Şifreyi etkinleştirme ve devre dışı bırakma

Aşağıdaki işlevler için ek biyometrik kimlik doğrulama gerçekleştirilir:

  • Uygulama kilidini etkinleştirme
  • Tüm veriler siliniyor
  • Bir cüzdanın (hesabın) silinmesi
  • Bir şifreyi etkinleştirme veya devre dışı bırakma (uygulama kilidi alımına ek olarak)
  • Uygulamayı açma
  • Uygulamayı ön plana taşıma
  • Genişletilmiş ortak anahtarları görüntüleme
  • Merkezi olmayan bir uygulamaya (dApp) bağlanma

Ayrıca uygulamayı açmak için şifre gerekebilir. Anahtarlık ve Anahtar Deposu her zaman tepki-yerel-anahtarlık sarıcı:

  • Paketleyici, her öğe için Anahtarlık veya Anahtar Deposunda yeni bir anahtar oluşturur
  • Paketleyici, Anahtar Zinciri ve Anahtar Deposu için doğru yapılandırma bayraklarının iletilmesinden sorumludur.
  • M-cüzdan, paketleyiciden her zaman bayrakları, anahtara erişmek için cihazın kilidinin açılmasını sağlayacak şekilde yapılandırmasını ister
  • Kullanıcı varlığı (biyometrik) kontrolü zamana dayalı olacak şekilde yapılandırılmıştır ve kontrol 5 saniye boyunca geçerlidir; erişim başına kullanıcı varlığı kontrolü yapılmaz

Şifreleme algoritması tüm öğeler için aynıdır:

  • Anahtar, NFC ile normalleştirilmiş bir sırdan Argon2id ile türetilmiştir
  • Argon2id'nin tuzu cihazın benzersiz kimliğidir
  • Şifreleme modu AES-GCM'dir
  • AES için başlatma vektörü (IV) 16 rastgele bayttır
  • AES için kimlik doğrulama etiketinin 16 bayt uzunluğunda olması gerekir

İşlem imzalama

Anahtar depolama, biyometri ve parola korumasıyla ilgili daha önce bahsedilen önlemlere ek olarak, işlem imzalama, sürekli iyileştirme açısından kritik bir odak noktası olmayı sürdürüyor. İlk adım olarak, bu alanda aşağıdakiler de dahil olmak üzere birçok dikkate değer önlemi uygulamaya koyduk:

İşlem simülasyonu

Harici API hizmetlerini kullanıyoruz (örneğin Blowfish ve diğerleri) bir işlemin kullanıcıya getirebileceği olası "ciddilik" düzeylerini (bir risk puanı) kontrol etmek için kullanılır. Bu, olası kötü amaçlı işlemlere (veya mesaj imzalamaya) yönelik tam blok ekranından, kullanıcının bir işlemi imzalamadan veya onaylamadan önce sahip olması gereken farklı dikkat düzeylerine ilişkin uyarılara kadar uzanır. 

Diğer önlemler şunları içerir:

  • Yanlış bir adrese gönderim yapmadığınızdan emin olmak için adres doğrulama
  • Kullanıcının adres kompozisyonunu çevreleyen belirli saldırılara hedef olmadığından emin olmak için her zaman bütünüyle görünür olan adresler
  • Kullanıcının yanlış ağa gönderim yapmadığından emin olmak için ağ doğrulama ve uyarılar
  • Kullanıcının bir işlem için fazla ödeme yapmadığından emin olmak için ücret sağlığı kontrolleri

Ağ gizliliği

Kullanıcıların gizliliğini ve kişisel verilerini, bu verilerin ağ isteklerinde (özellikle üçüncü taraf hizmetlere) sızdırılmamasını sağlayacak şekilde korumak için, proxy isteklerine yönelik bir API ağ geçidi geliştirdik. Bu proxy, kullanıcı isteklerini üçüncü taraf hizmetlere aktarmamamıza olanak tanır ve müşterinin IP'sini harici veya genel sağlayıcılara açıklamaz. 

Bu arka uç hizmeti temel olarak halka açık blockchain verilerini sorgulamaya yönelik bir API'dir. Cüzdan güvenlik mimarisi içerisinde amacı, bu işlevselliği tüm blok zincirlerinde ortak bir API'nin arkasında kapsüllemektir, böylece Kraken Cüzdan'ın veri sorgulama için blok zincirine özgü davranışlar uygulamasına gerek kalmaz.

Bu arka uç hizmeti, bu ortak API'yi tanımlar. Sonuçta istekleri, gerçek verileri aldığı diğer taraflara vekalet eder. Blok zincirlerinin kendisini indekslemez ve durumunu korumaz.

Güvenlik varsayımları

Güvenlik mimarimiz, optimum koruma için birkaç temel varsayıma göre çalışır. Biz şunu varsayıyoruz:

  • Kullanıcının cihazı köklü değil, işletim sistemi güncel değil ve bir saldırganın cihaz belleğine erişmesine olanak tanıyabilecek kritik güvenlik açıklarına açık değil
  • Anahtarlık veya Anahtar Deposu paketi yeterince güçlü koruma sağlar
  • Mobil işletim sistemi, uygulamaların işlemleri arasında sağlam bir koruma alanı sunarak tohumlar gibi hassas verileri içeren belleğin düzgün bir şekilde yönetilmesini sağlar

Ek işlevsellik

  • Uygulama, cüzdanı çalıştırmak için yalnızca ihtiyaç duyulan minimum veriyi depolama prensibiyle çalışır.
  • İstemcide hiçbir üçüncü taraf analitiği veya kilitlenme raporlama yazılımı geliştirme kiti (SDK) kullanılmamaktadır
    • Herhangi bir veriyi üçüncü taraflara sızdırmamaya yönelik çabalarımız nedeniyle, fazladan veri takibi eklemek mantıklı olmayacaktır; bu, istemcide herhangi bir analiz veya kilitlenme raporu yazılımı bulamayacağınız anlamına gelir
  • Kod tabanında hiçbir kablosuz güncellemeye (normal AppStore/Play Store güncelleme akışının dışında) izin verilmez veya uygulanmaz
    • Kullanıcı, kendi rızası olmadan güncellenemeyecek derlenmiş bir yazılım parçası bekleyebilir
  • Jeton listesi ve itibar sistemi
    • Kullanıcıların tokenlerini yönetmelerine yardımcı olmak amacıyla Kraken ve diğer üçüncü taraflarca sağlanan varlıklara dayalı bir liste ve itibar sistemi uyguladık.
  • NFT spam'ı
    • Geliştirmeye devam etmeyi planladığımız ilk çaba, spam'in kullanıcının klasöründe otomatik olarak arşivlendiği spam ve spam ile ilgili saldırı tespitidir.

Dış güvenlik denetimi

Kişisel saklama cüzdanımızın güvenliği, sektörde saygın bir güvenlik denetim firması olan Trail of Bits tarafından gerçekleştirilen bir denetim aracılığıyla titizlikle değerlendirildi. Bu denetim, potansiyel güvenlik açıklarını belirlemeyi ve gidermeyi amaçlayan kod tabanımızın ve istemci mimarimizin ayrıntılı bir incelemesini içeriyordu.

Şeffaflığı sağlamak ve platformumuzun güvenliğine ilişkin bilgi sağlamak için bu denetimin sonuçları kamuya açıktır. Bu açık erişim, kullanıcıların ve ilgili tarafların Trail of Bits tarafından yürütülen güvenlik analizinin bulgularını incelemesine olanak tanır. Rapor, uyguladığımız güvenlik önlemlerini ve kullanıcılarımız için güvenli bir ortam sağlama taahhüdümüzü anlamamız açısından önemli bir kaynak görevi görüyor.

Güvenliğe, şeffaflığa ve kullanıcı kontrolüne öncelik vermek

Kraken Cüzdan, platformun doğasında olan kısıtlamalar karşısında kolaylık ve sağlam koruma arasında hassas bir denge kurar. Yaklaşımımız her zaman geniş çapta tanınan, birlikte çalışabilen bir cüzdan yapısıyla başlamak olmuştur. Bu sağlam temel, kullanıcılarımıza kripto varlıklarını kendi saklamaları için sürekli gelişen, üst düzey bir güvenlik çözümü sunma hedefiyle yenilik yapmamıza ve yeni yetenekler eklememize zemin hazırlıyor.

Bu materyaller yalnızca genel bilgilendirme amaçlıdır ve yatırım tavsiyesi veya herhangi bir kripto varlığın satın alınması, satılması, hisselendirilmesi veya tutulması veya herhangi bir özel ticaret stratejisiyle meşgul olunması yönünde bir öneri veya talep değildir. Kraken, kullanıma sunduğu herhangi bir kripto varlığın fiyatını artırmak veya azaltmak için çalışmaz ve çalışmayacaktır. Bazı kripto ürünleri ve pazarları düzenlemeye tabi değildir ve devlet tazminatları ve/veya düzenleyici koruma programları tarafından korunmayabilirsiniz. Kripto varlık piyasalarının öngörülemez doğası fon kaybına yol açabilir. Vergi, kripto varlıklarınızın değerindeki herhangi bir getiri ve/veya artışta ödenebilir ve vergilendirme pozisyonunuz konusunda bağımsız tavsiye almalısınız. Coğrafi kısıtlamalar geçerli olabilir.

spot_img

En Son İstihbarat

spot_img