Szachy

W szachy nauczył mnie grać dziadek, gdy byłem małym dzieckiem. Grałem nieźle jak na swój wiek, ale jakoś specjalnie szachowego bakcyla nie połknąłem. Ani nie grałem później w klubach, ani nie czytałem zaawansowanych książek. Owszem, czytałem jakieś proste książki dla dzieci, gdzie były jakieś podstawy taktyki i wartości figur, ale nic więcej.

Potem zetknąłem się z ludźmi, którzy wiedzieli co to obrona sycylijska, znali otwarcia i umieli tę wiedzę wykorzystać. Czyli – patrząc z perspektywy – mieli dużą przewagę i tak też z tego co pamiętam przebiegały rozgrywki. Studiowanie książek tylko po to, by lepiej grać w grę, która miała być rozrywką jakoś nie wydawało mi się sensowne. Odpuściłem. Albo po prostu właśnie nie połknąłem bakcyla.

Fast forward. O szachach przypomniał mi serial Gambit królowej. Nakręcony na podstawie książki Waltera Tevisa. O samym serialu pisali Zuzanka i Boni, nieco udzielałem się w komentarzach w pierwszym linku, więc nie ma sensu powtarzać. Ważne jest to, że serial przypomniał mi – i nie tylko mi – o istnieniu szachów. I ogólnie wpłynął mocno na zainteresowanie nimi na świecie[1]. Postanowiłem odświeżyć temat.

Pierwszą rzeczą było zainstalowanie programu na smartfonie. Nawet dłuższą chwilę – pewnie około miesiąca – pograłem. I nawet jakieś efekty były. Tylko była to gra przeciwko komputerowi. I bez żadnych dodatków. Program został, czasem go włączałem i… tyle. W zasadzie bardziej był na telefonie, niż realnie używałem. Znaczy się kolejny raz nie połknąłem szachowego bakcyla.

Zupełnie niedawno zarejestrowałem się na chess.com i zainstalowałem ich aplikację. I był to strzał w dziesiątkę. Zadania, lekcje, przyjemne analizy. I mocna gamifikacja: ligi, zliczanie codziennego grania, zbieranie flag państw ludzi, z którymi się grało. Wciągnęło mnie. Gram regularnie. Dodatkowo można grać ze znajomymi, a okazało się, że w firmie są użytkownicy tej platformy.

Jest to podlewane elementami analizy i nauki (wszystko w appce!) i… widzę postępy. Zatem, jeśli ktoś chce się nauczyć grać w szachy – bezinteresownie polecam. Tym bardziej, że można korzystać za darmo. A dla chętnych jest krótki, zdaje się tygodniowy, trial dający dostęp do wszystkich funkcjonalności i usuwający niektóre limity typu ilość lekcji w tygodniu.

[1] Z tego co pamiętam. Linków ani danych nie mam, ale i trendy Google, i szybkie wyszukiwania zdają się potwierdzać.

Niesmart

Przeczytałem wpis o odejściu od smartwatcha i przypomniało mi się, że mam podobnie. Tyle tylko, że nigdy nie miałem smartwatcha. Czego zatem używam do pomiaru czasu? Korzystam albo z zegarka – mam tani kwarcowy ze wskazówkami Casio MQ-24. Plastikowo-gumowy. Mam go od 8 lat, wymieniony pasek i samodzielnie bateria dwa[1] razy. Pasek wymieniony na zastępczy, a bateria samodzielnie, bo oryginalny pasek czy wizyta u zegarmistrza to pewnie połowa ceny nowego zegarka. Albo po prostu coraz częściej do sprawdzania godziny korzystam ze smartfona. W sumie częściej korzystam z tej opcji, bo i datę podaje, i pogodę.

Ale wracając do tematu, o smartwatchu myślałem wielokrotnie. Albo nawet nie o smartwatchu, a smartbandzie. Bardziej pod kątem aktywności fizycznych typu jazda na rowerze czy bieganie. Obecnie po prostu rejestruję je na telefonie. Co oznacza jazdę z telefonem w kieszeni albo plecaku w przypadku roweru. I bieganie z telefonem w garści. Czemu w garści? Dość często zerkam na ekran, by sprawdzić dystans i tempo.

Czemu się nie zdecydowałem na zakup smartwatcha czy smartbanda? Jakieś kulawe te urządzenia są. Po pierwsze, wymagają częstego ładowania. Może nie tak częstego jak telefon, ale w porównaniu z zegarkiem, który działa latami na jednej baterii jest to coś, o czym musiałbym pamiętać. Pewnie do przeżycia, ale trochę zniechęca. Nawiasem, żeby nie zmiana czasu, to zegarka bym nie regulował przez te dwa lata. Zegarki kwarcowe są dokładne.

Po drugie, smartwatche są drogie[2], a smartbandom brakuje funkcjonalności. No bo chciałbym sobie pójść biegać czy to z samym smartwatchem, czy mając smartfona głęboko schowanego i chciałbym, żeby rejestrował trasę (GPS), podawał na bieżąco dane. Oczywiście tętno, saturacja, tego typu rzeczy też powinny być rejestrowane i wyświetlane na bieżąco. Idealnie jakbym brał tylko zegarek, który ma GPS i wszystko poda na bieżąco, a w domu połączy się z siecią i ew. zgra dane.

Po trzecie, ekosystem jest słaby. Popularne – i całkiem niezłe IMHO – Xiaomi Mi bandy nie mają integracji ze Stravą. Istnieją sposoby na jednokierunkową integrację, ale mi się marzy, żeby działo się to na poziomie systemu operacyjnego, a opaska powinna być tylko działającym na bieżąco wyświetlaczem. Czyli chciałbym mieć na niej na bieżąco dane o aktualnym dystansie, tempie itp.

Oczywiście, można zrezygnować z zerkania na ekran i zamiast tego próbować używać powiadomień głosowych. Niestety bardzo słabo konfigurowalnych w Stravie. Można też zrezygnować ze Stravy i korzystać z innego oprogramowania. Być może wtedy będzie wsparcie dla Mi Bandów. Tyle, że nie chce mi się zmieniać przyzwyczajeń. Chociaż przyznaję, że coraz bliższy jestem złamania się i porzucenia Stravy[3]. Może od przyszłego roku, kto wie?

[1] W sumie już trzy, bo właśnie wymieniłem kolejny raz. Z tego co pamiętam ostatnia wymiana była nie na zalecane SR626SW, tylko LR626, która w dodatku trochę już leżała. Wady i zalety kupowania zestawów różnych baterii. Wytrzymała zauważalnie krócej.
[2] No dobrze, zależy jakie. Zakładając, że trzymałbym się uznanych marek i poszedł na lekki kompromis w postaci braku pulsoksymetru, to najniższe modele to 600 zł, więc bez dramatu. Z drugiej strony to więcej, niż cały mój sprzęt do biegania, od początku przygody.
[3] Testowałem w jednym biegu FitoTrack, łącznie ze Stravą. Czyli dwa pomiary naraz. Wrażenia nawet pozytywne, większa konfigurowalność powiadomień głosowych.

Google Authenticator ma backup

Piekło zamarzło. Przedwczoraj na blogu ogłoszono, że Google Authenticator dorobił się backupu kodów na koncie Google. Wersja oferująca tę funkcjonalność jest już do pobrania z Google Play. To duża i ważna zmiana i okazja do notki. Przy okazji zmieniła się niestety ikona programu.

Jak działa TOTP?

Zasada działania TOTP (Time-based One-Time Passwords) jest bardzo prosta, a implementacja w większości języków to kilka-kilkanaście linii kodu. W skrócie: najpierw, przy włączaniu tej metody uwierzytelniania, serwer generuje i zapisuje sekret. Dzieli się nim z użytkownikiem, zwykle przy pomocy QRcode.

Od tej pory kody są generowane na podstawie bieżącego czasu (unix timestamp), zaokrąglonego do 30 lub 60 sekund, oraz ww. sekretu. Najpierw są hashowane, następnie hash jest przekształcany na sześciocyfrowy kod. I już.

Jak widać, do generowania kodów dla danego użytkownika wystarczy poznać sekret. Natomiast z uwagi na użycie funkcji skrótu, odtworzenie sekretu z kodu jest bardzo trudne. Sprytne.

Znaczenie

Czemu to takie ważne? Brak jasnego, prostego sposobu backupów był dla mnie ogromnym argumentem przeciw korzystaniu z TOTP. Stosunkowo łatwo było stracić dostęp do kodów, czyli odciąć się od serwisu. A dostępność jest przecież składową bezpieczeństwa. Dlatego wolałem jako 2FA wykorzystywać kody SMS. Mocno niedoskonałe: drogie, niewygodne, zawodne, podatne na ataki. Oczywiście koszt jest po stronie serwisu, który musi wysyłać kody. Wygoda to rzecz dyskusyjna, niektórzy dostawcy nawet nie mieli dużego opóźnienia w dostarczaniu SMSów. Awarie operatorów nie zdarzały się często, a SIM swap nie jest tanim czy łatwym atakiem.

Oczywiście istniały alternatywne aplikacje, które oferowały backup sekretów. Tylko jakoś bardziej ufam dostawcy systemu operacyjnego na moje urządzenie, niż losowej appce. Podejrzewam, że ludzi takich jak ja było więcej.

Jak było wcześniej?

Wcześniej było… słabo. Z backupem Google Authenticator można było sobie radzić na kilka sposobów. Pierwszym było zdjęcie/screenshot QRcode przy włączaniu TOTP. Średnio wygodne w przechowywaniu (bitmapa/wydruk), zajmujące dużo miejsca, żeby wyszukiwać trzeba dobrze opisać.

Kolejny sposób to zapisanie kodów ratunkowych. Większość serwisów w momencie generowania sekretu TOTP podaje kody ratunkowe do wydrukowania/zapisania. Niezłe, o ile ktoś korzysta z managera haseł.

Ostatni sposób to… drugie urządzenie z Google Authenticator i utrzymywanie kodów na obu urządzeniach. Dość drogie z uwagi na koszt kolejnego urządzenia, niezbyt wygodne z uwagi na konieczność ręcznej synchronizacji.

Jak widać, powyższe sposoby są niezbyt wygodne, albo działają dla osób, które mają dobrze poukładane backupy. Dla osób, które po prostu chcą mieć zabezpieczone konta przez 2FA, a niekoniecznie chcą projektować system backupów, uwzględniając jego dostępność – bardzo średnie. Bo właśnie, fajnie, że masz wydrukowane QRcode’y czy kody ratunkowe przechowywane w sejfie. Ale co jesteś właśnie na wakacjach i tracisz telefon, wraz z dostępem do wszystkich serwisów?

Wady

Obecne rozwiązanie nie jest idealne. Nadal będziemy uzależnieni od Google w kwestii backupu kodów i ich odzyskania. Dla większości ludzi będzie to zapewne akceptowalne ryzyko, tym bardziej, że ma znaczenie wyłącznie przy odzyskiwaniu, czyli bardzo rzadko.

Kolejną wadą jest trzymanie wszystkich jajek w jednym miejscu. Konto Google staje się SPOF. Szczególnie, jeśli ktoś korzysta także z zapamiętywania haseł przy pomocy Google.

Jeszcze osobną sprawą jest kwestia zaufania do samego Google. Nie napisałem tego pierwotnie i wprost, ale uznałem, że jeśli mamy OS od Google, zintegrowany z ich sklepem i konto w ich serwisie, to z jakiegoś powodu ufamy Google. Zależy oczywiście od modelu zagrożeń.

Zaufanie do Google jest tym istotniejsze, że backup kodów trafia do Google w postaci niezaszyfrowanej. Czy Google udostępni np. służbom kody 2FA? Nie wiem, ale się domyślam. Po raz kolejny, kwestia modelu zagrożeń. Szczęśliwie Google zapowiedziało dodanie szyfrowania.

Podsumowanie

Uważam tę zmianę za bardzo dobrą, z punktu widzenia przeciętnego użytkownika i mam nadzieję, że przyczyni się do popularyzacji 2FA. W ogóle ostatnio mamy dobry klimat dla 2FA opartych o TOTP. Najpierw wyłączenie 2FA przy pomocy SMSów w Twitterze, teraz backupy w Google Authenticator.

Paradoksalnie jednak, po tej zmianie może się okazać, że… lepiej zmienić dostawcę appki do 2FA, niż włączać backup do chmury Google w Google Authenticator. W sugerowanych pojawiły się FreeOTP, FreeOTP+, 2FAS.

UPDATE: Dodane info o zaufaniu do Google. Dodane info o braku szyfrowania i zapowiedź dodania. Zaktualizowane podsumowanie.