@mecenas
Minimalne dozwolone hasło do szyfrowania seeda w HODLER'ze to 8 znaków, wielkie i małe litery + cyfry. Szyfrowanie seeda zostało zmienione na SPECK w wersji 0.2.6 aplikacji. Key stretching jest zbudowany poprzez wielokrotne iterowanie po mieszance różnych SHA encSeed = SpeckEncrypt(TCA(pass),Seed)
Podczas testów łamania na serwerze Intel(R) Xeon(R) CPU E3-1240 v6 @ 3.70GHz, 8 cores 16GB RAM udało się osiągnąć 4 próby / sekundę. Przy tych parametrach ilość czasu potrzebna do złamania hasła jest astronomiczna, teoretycznie więc, aby uniemożliwić skuteczny atak bruteforce wystarczyłby PIN. Wzięliśmy jednak pod uwagę łamanie przy użyciu GPU, zestawów GPU czy nawet wielkich botnetów. Ilość kombinacji dla podanego hasła można sprawdzić np. tutaj:
https://www.dobrehaslo.pl/
Planowaliśmy również dodanie key stretching'u przy tworzeniu klucza prywatnego z seed'a, jednak zrezygnowaliśmy z tego w celu implementacji keypoola, który jest wymagany przez bitcoin.org (aplikujemy do umieszczenia tam naszego portfela). Tak czy inaczej, po uwzględnieniu rzadko spotykanego w portfelach rozwiązania "true random" do zwiększania entropii (zbieraniu dużej ilości losowych danych z czujników urządzenia) podczas generowania seeda, pozytywnie wyróżniamy się spośród innych portfeli aktualnie istniejących na rynku.
Bardzo poważnie traktujemy kwestie bezpieczeństwa portfela, zdając sobie sprawę z faktu, że nie można sobie pozwolić na zbyt daleko idące kompromisy, nawet kosztem maksymalnej wygody użytkownika. W kryptowalutach pojęcie chargeback'u nie istnieje, nie można nigdzie zadzwonić by "ktoś" odzyskał nasze środki ponieważ zostały skradzione. Nie wprowadziliśmy kilku rozwiązań które są wprawdzie wygodne, ale bardzo kontrowersyjne w kwestii bezpieczeństwa:
1. Odblokowanie portfela przy starcie - uwrażliwiłoby portfel na przechwycenie niezaszyfrowanych kluczy prywatnych
2. Osłabienie entropii które przyśpieszyłoby tworzenie portfela i generowanie adresów - naszym zdaniem entropia w portfelu to jeden z najważniejszych elementów a jest bardzo często pomijana (Atomic Wallet tworzy adresy 70 monet w sekundę, bez spojrzenia w ich kod, możemy się tylko domyślać na jakie ustępstwa musieli pójść by to osiągnąć).
3. Nie zdecydowaliśmy się na domyślny sposób tworzenia podstawowego backupu w formie przesłania niezaszyfrowanego seeda na email, co bez wstydu prezentuje duży portfel Trust Wallet przejęty jakiś czas temu przez Binance. Sami opracowaliśmy swoją wersję szyfrowanego seeda w postaci Encrypted QR Code Backup oraz HODLER Secure Backup (zaszyfrowany plik z danymi portfela).
Podczas projektowania i wdrażania kolejnych funkcji, mamy na względzie fakt, że darmowe aplikacje są odzwierciedleniem docelowego produktu, czyli portfela z własnym systemem operacyjnym HODLER OS, którego aspiracją jest porównanie poziomu jego zabezpieczeń do portfeli sprzętowych, czyli najwyższej półki w kategorii "bezpieczeństwo".