Terminal pogryzł człowieka: ironclad

Zarządzanie bazą haseł i loginów nie jest czymś ekscytującym w czasach setek graficznych narzędzi przeznaczonych temu celowi. Niemniej miłośnicy minimalizmu brawami przywitają kolejne tekstowe rozwiązanie uwalniające nasze zmęczone komórki od natłoku informacji. Ironclad, bo to o nim mowa, jest nieziemsko prostym w obsłudze i intuicyjnym narzędziem umożliwiającym stworzenie i zarządzanie bazą z hasłami.

Ironclad – zgrabnie i schludnie
Co wyróżnia ironclad na tle innych podobnych projektów (np. pass)? Jest to programik popełniony w języku GO. Stawia też na łopatologiczną prostotę przechowywania naszych haseł – po prostu w pojedynczym pliku. Jeżeli ktoś uśmiechnął się właśnie z przekąsem to śpieszę nadmienić, że jest to plik szyfrowany. I to nie byle jak. Dane są przechowywane pod ochroną 256-bit AES w trybie CBC. Tekst podzielony na bloki z dopełnieniem nieistotnymi danymi. Na potrzeby odblokowania tak zabezpieczonej bazy używany jest protokół HMAC-SHA-256. A na koniec klucze szyfrujące są generowane za pomocą 10,000 iteracji klucza PBKDF2 z haszem SHA-256. Jeżeli komuś powyższe nic nie mówi, to krótką mówiąc: nasze dane są bezpieczne. Tak stworzony plik nie odróżnia się niczym od losowe ciągu znaków, nie posiada elementów kluczowych i innych możliwych do namierzenia powtórzeń, tagów, itp.

No dobrze, ale co nam daje powyższe? Ogromną uniwersalność, gdyż ironclad nie dość, że jest multiplatformowy, to baza z naszymi hasłami może wędrować po różnych lokalizacjach. W dobrym tego słowa znaczeniu i w ramach dostępności lokalizacji poprzez terminal. Oczywiście wymaga to nieco zachodu, bo należy pamiętać aby wskazać miejsce gdzie chcemy zapisać naszą bazę (ironclad init ~/.tajne/mojabazahasel) a/lub przy przenosinach wpisać odpowiednią ścieżkę do pliku konfiguracyjnego ~/.config/ironclad/goconfig.toml.

A jak się obsługuje hasła za pomocą ironclad? Nic skomplikowanego:

$ ./ironclad 
Usage: ironclad [FLAGS] [COMMAND]

  Ironclad is a command line password manager.

Flags:
  --help            Print the application's help text and exit.
  --version         Print the application's version number and exit.

Commands:
  add               Add a new entry to a database.
  config            Set or print a configuration option.
  decrypt           Decrypt a file.
  delete            Delete entries from a database.
  dump              Dump a database's internal JSON data store.
  edit              Edit an existing database entry.
  encrypt           Encrypt a file.
  export            Export entries from a database.
  gen               Generate a random password.
  import            Import entries into a database.
  init              Initialize a new password database.
  list              List database entries.
  pass              Copy a password to the clipboard.
  purge             Purge deleted entries from a database.
  tags              List database tags.
  user              Copy a username to the clipboard.

Command Help:
  help <command>    Print the specified command's help text and exit.

Niestety, program nie trafił jeszcze do żadnego repozytorium (ani PPA). Pozostaje nam zatem albo samodzielna kompilacja, albo pobranie gotowych binarek ze strony projektu. Po rozpakowaniu i umieszczeniu w odpowiednim miejscu możemy przystąpić do testów. A jeżeli komuś całość przypadnie do gustu, to może nawet wmontować ironclad na stałe do systemu.