Autore: stattent

  • Scegliere la password perfetta

    Non è possibile.

    Ma sceglierne una buona sì.

    Partiamo da una premessa che vedrai spesso in questo sito: la sicurezza informatica consiste nel mettere in atto tutte le misure di protezione e le buone pratiche possibili per ridurre il rischio di subire una breccia, di beccarsi un virus, ecc ecc… MA non si è mai al sicuro al 100%.

    E c’è sempre una fattore del tutto imprevedibile da considerare: ciò che sta tra la sedia e la tastiera il fattore umano.

    Ma allora possiamo comunque dormire sonni ragionevolmente tranquilli? Sì.

    Facciamo innanzitutto una valutazione dei rischi.

    Da dove arrivano i pericoli?

    Vediamo quali sono i possibili attacchi che potremmo ricevere.

    Attacco fatto a mano da qualcuno che mira a indovinare la nostra password:

    • esempio: qualcuno prova a inserire come password il nome del nostro cane seguito dai numeri che rappresentano il mese e l’anno in corso

    Attacco automatizzato fatto da programmi che:

    • provano le password più utilizzate
      • esempio: 123456, iloveyou, …
    • provano le password e le combinazioni di pezzi di password più utilizzate
      • esempio: qwerty56, TrottolinoAmoroso90, …
    • provano in sequenza combinazioni casuali di caratteri
      • esempio: aaaaaaaa, aaaaaaab, aaaaaaac e così via…

    Attacco che sfrutta credenziali (credenziale = utenza + password) sottratte dagli archivi di altri servizi online:

    • esempio: un forum sulla pesca sportiva subisce una breccia, ne viene scaricato l’elenco di utenze e password degli utenti registrati, con quel elenco in mano chi attacca tenta di accedere ai vari social usando le stesse email e password

    Attacco che sfrutta credenziali sottratte dai tuoi dispositivi:

    • esempio: tramite un virus riescono ad installare un programma che registra costantemente quello che scrivi (keylogger), dove lo scrivi e se lo copiano

    Attacco che sfruttando un momento di distrazione ti fa scrivere utenza e password in un sito simile a quello originale, ma che non lo è.

    Una password non deve…

    Dai pericoli elencati precedentemente deriva che:

    • la stessa password non deve essere utilizzata per più servizi
    • la tua password non deve essere facile da indovinare
    • la tua password non deve essere tra quelle ovvie, usate da tutti
    • la tua password è tua e tua soltanto, non deve essere condivisa

    Costruzione di una buona password

    Quanti caratteri?

    Una buona password più è lunga e meglio è. Ciò ti costringerà anche a utilizzare un testo che è poco ovvio.

    Ma stabilire una quantità di caratteri non è facile e dipende da molti fattori. Primo su tutti quale tipo di caratteri usi e se stai inserendo caratteri a caso oppure parole di senso compiuto.

    Poiché leggendo questo articolo scoprirai che a mio parere le password migliori sono quelle formate da almeno 4 parole di almeno 5 caratteri ciascuna (vedremo quali) e quelle generate dai programmi che gestiscono le password, secondo me oggi (2023) una password deve avere almeno (come minimo!) 20 caratteri.

    Quali caratteri?

    Tutti i tipi di caratteri che puoi usare.

    Scoprirai che alcuni servizi (siti o app) limitano il numero e il tipo di caratteri che si possono usare (già…). Tu però cerca sempre di usare tutti i tipi di carattere che trovi sulla tastiera:

    • lettere minuscole
    • lettere maiuscole
    • numeri
    • caratteri speciali, come !£$&?…

    Se il servizio ha qualche limitazione ti verrà chiesto di modificare la password scelta, quindi fai attenzione ai messaggi di errore che solitamente compaiono scritti in rosso o in riquadri evidenziati.

    La devo imparare a memoria: meglio cervellotica o facile da ricordare?

    Entrambe 🙂

    Personalmente per le password da imparare a memoria prediligo una combinazione di almeno 4 parole che può costituire una specie di frase abbastanza facile da ricordare. Utilizzo parole provenienti da diverse lingue e infine inserisco qua e là dei caratteri speciali e dei numeri.

    Queste saranno le password più importanti che vanno memorizzate, scritte (vedremo come in un altro articolo), conservate distintamente da tutte le altre e nel posto più sicuro o improbabile di casa vostra (scegliere il posto giusto è un po’ come scegliere una buona password…).

    Extra

    Infine aggiungi sempre elementi a caso.

    Ad esempio se hai deciso di utilizzare un insieme di 4 o 5 parole inserisci sempre almeno un carattere speciale nelle parole (sì, hai letto bene: all’interno delle parole, non tra le parole, che dai era troppo ovvio).

    Oppure una parola di tua invenzione che sai tu e tu soltanto.

    Un esempio?

    Partiamo da qualcosa che conosciamo, poi procediamo per variazioni successive e infine semplifichiamo:

    • Romeo er mejo gatto del colosseo
    • Paletto er mejo pezzo della torre eiffel
    • Paletto er mejo primo pezzo della Torre eiffel
    • Paletto er mejo 1o peZ*Zo de que$sta Teiffel
    • Paletto er mejo 1o peZ*Zo de que$sta Teiffel
    • Palettoer1opeZ*Zod|eiffel

    Nella mia esperienza 3 o 4 password simili se inserite molte volte si possono memorizzare, di più non ho mai provato. E sì, sono lunghe da digitare, ma ne vale la pena.

    Ok, però sono davvero tante le password da inventare, ricordare, annotare…

    Vero.

    Al netto delle password più importanti (email principale, banca, identità digitali, pc, password master) per tutte le altre password suggerisco di utilizzare un password manager, ossia un programma che vi permette di memorizzare le password per ogni servizio in modo sicuro.

    Personalmente quando sono al computer utilizzo un programma che le memorizza solo nel pc per tutte le password importanti (tranne quelle che so a memoria) e poi Bitwarden per sincronizzare le password che mi servono anche nel telefono. In molti casi non mi faccio scrupolo a resettarle tramite email se mi servono quando sono lontana dal mio pc e non riesco a recuperarle nel telefono.

    Misure extra da mettere in atto per ogni servizio a cui accedi

    O almeno per quelli più importanti:

    • prevedi una procedura di recupero delle credenziali di accesso
    • attiva l’autenticazione multi fattore, MFA (ne parleremo in un altro articolo), ma ricordati di conoscere fin da subito la procedura di recupero dell’accesso nel caso l’MFA ti desse problemi (spesso viene fornita la possibilità di copiare o stampare una lista breve di codici di recupero di backup)
    • se il servizio non lo prevede in automatico, ma lo consente, attiva il blocco dopo un certo numero di tentativi errati di inserimento della password
    • fai un backup delle credenziali, se usi un password manager sincronizzato online di solito vanno esportate e trattate in sicurezza, se ne usi uno in locale nel tuo pc di solito basta copiare un file

    In conclusione

    Rileggendo questo articolo ecco le riflessioni più importanti che ti invito a fare: “Quanto sono unici il processo e le parti che hai scelto per creare la tua password? Qualcun altro potrebbe fare lo stesso ragionamento e arrivare a scoprire la tua password? Se dimentico l’utente, la password o il secondo fattore di autenticazione non dovesse più funzionare, so cosa fare?“.


    Fonti.

    Nel corso degli anni ho letto vari articoli di fonti che reputo valide, ecco alcuni esempi recenti:

    Risorse col dono della sintesi

    • https://www.youtube.com/watch?v=pMPhBEoVulQ (questo video è ancora attuale, sintetico e fatto bene, sul suggerimento su LastPass lascerei passare un po’ di tempo: potrà essere nuovamente consigliato quando avrà risolto i suoi recenti problemi, 2023Q1)

    Risorse con alcuni dati importanti, ma che necessitano di ragionamenti supplementari su come scegliere una password:

  • Aggiornamenti WordPress bloccati

    Ti è mai capitato di ricevere il messaggio di errore: “Attualmente è in corso un altro aggiornamento.” durante un aggiornamento di WordPress?

    WordPress quando esegue un aggiornamento si segna l’informazione di “inizio dei lavori”.

    Se l’ultimo aggiornamento non è terminato correttamente oppure se ha impiegato molto tempo, l’informazione di conclusione dell’operazione, il “fine lavori”, non è stata registrata e WordPress impedisce qualsiasi nuovo aggiornamento.

    Se l’operazione ha impiegato molto tempo, ma il sistema è stato aggiornato possiamo registrare a mano il “fine lavori” in uno dei due modi seguenti.

    Tramite il plugin “Fix Another Update In Progress“:

    • installa e attiva il plugin
    • vai in Impostazioni > Fix Another Update In Progress
    • se il plugin segnala “WordPress Update is locked. Click the button below to fix it.” fai clic sul pulsante “Fix WordPress Update Lock”
    • attendi il messaggio “Success! You’ve successfully fix “another update in progress!” – “There is no Update lock issue. Continue with your WordPress Update”

    Oppure manualmente (per utenti esperti): rimuovendo dalla tabella wp_options (nb: il prefisso wp_ potrebbe essere stato personalizzato) del database le righe che contengono il valore core_update, ecco la query per individuarle:

    SELECT * FROM tuoPrefissoTabelle_options WHERE option_name LIKE '%core_update%'

    Ora puoi riprovare a eseguire il nuovo aggiornamento.

  • Fondamenti di programmazione WEB – appunti

    Appunti (-> APPUNTI <-) sulle risorse da leggere e gli scrittori del codice da imitare.

    ABC della programmazione

    Ogni volta che si studia un nuovo linguaggio di programmazione si deve capire:

    1. se si tratta di un linguaggio compilato, interpretato o JIT compiled (just in time, una modalità ibrida, avviene per esempio per il Java)
    2. se si tratta di un linguaggio procedurale od orientato agli oggetti
    3. se è un linguaggio case sensitive; come si termina ciascuna istruzione; come si racchiudono i blocchi di comandi
    4. come si dichiarano le variabili e di quali tipi di dati possono memorizzare, qual è il loro ambito di applicazione (lo scope)
    5. come si dichiarano le funzioni e di quali tipi possono essere
    6. se sono previsti, come si dichiarano gli oggetti, i loro metodi e le loro proprietà
    7. come si dichiarano i cicli
    8. come si dichiarano le strutture condizionali
    9. su quali sistemi l’applicazione che ne deriva potrà essere eseguita

    Cosa devi studiare per la programmazione web di base

    1. l’HTTP, il protocollo per parlarsi nel web
    2. l’HTML, la struttura di una pagina web e dei suoi contenuti, un linguaggio di markup
    3. il DOM, l’insieme di elementi HTML di una pagina web, così come la vede un browser
    4. i CSS, i fogli di stile, applicano degli stili agli elementi del DOM per la presentazione grafica
    5. il JavaScript, che interagisce con gli elementi del DOM: programmazione (scripting) client side; oggi estesa anche al server side
    6. un linguaggio di programmazione server side come il PHP
    7. salvare i dati negli archivi, i database e i DBMS, esempio: MySQL

    Quali strumenti servono?

    Code editor

    • Sublime Text
    • Microsoft VS Code

    Strumenti di sviluppo web presenti nei browser (in particolare per il debug)

    • Mozilla Firefox
    • Google Chrome

    Corsi free

    EDX – Corsi W3C – HTML, CSS, JavaScript

    EDX – percorso Microsoft front-end development

    Chi seguire online

    Sviluppo per siti realizzati con WordPress

    Persone da cui farsi ispirare

    The Amazing Rear Admiral Grace Hopper, senza la quale i computer erano destinati a svolgere solo operazioni aritmetiche o compiti specifici, mentre oggi possono essere programmati con linguaggi vicini a quello naturale (inglese) e che sono general-purpose.
    Tim Berns-Lee
    senza il quale il WEB non sarebbe come lo conosciamo.

    Livello successivo

    Come in tutte le attività dopo l’ABC ti aspetta un nuovo livello da affrontare, con entusiasmo 😉

    Andranno approfonditi:

    • le peculiarità dei browser più diffusi e importanti, infatti ogni agent web ha il suo motore di rendering per visualizzare le pagine web (engine)
    • i temi di accessibilità, ergonomicità e performance
    • le librerie e i framework maggiormente utilizzati nel web
    • competenze trasversali (SEO, grafica, …)
  • CLI: interfaccia e interprete a riga di comando

    Ti avviso subito: quando si entra nella selva oscura delle nomenclature informatiche se ne esce con più informazioni, certo, ma anche con uno spirito incline ad adattarsi e interpretare come le persone utilizzano questi termini a modo loro. Insomma, se non sei ingegnera/e/ə rasserenati, l’importante è averne un’idea buona anche se non esaustiva.

    CLI è l’acronimo sia di command line interface che di command line interpreter.

    Una command line interface è un’interfaccia a riga di comando (testuale) che rende disponibile all’utente un command line interpreter (o command line processor) in grado di interpretare ed eseguire i comandi ricevuti. Quest’ultimo è spesso chiamato shell, soprattutto se riferito alle command shell che interagiscono col sistema operativo.

    Le command line interface

    Alcuni facili esempi di interfaccia CLI sono la Windows Console di Windows e le console dei client FTP, Telnet o SSH (ad esempio l’emulatore di terminale PuTTY). Recentemente Microsoft ha sviluppato e rilasciato una nuova interfaccia CLI per Windows 10 e Windows 11: Windows Terminal. Quest’ultimo è in grado di gestire nella stessa finestra più tab, ognuna delle quali può eseguire un diverso interprete CLI (Command, PowerShell, Linux shell per un WSL, …).

    Le command line interface fanno parte dei cosiddetti emulatori di terminale (Konsole in KDE, Gnome Terminal in Gnome, xterm, Terminal in macOS, PuTTY, TN3270 Plus, …). Cosa emulano? I vecchi terminali, composti solamente da un video e una tastiera, con i quali si interagiva con un computer centrale al quale erano collegati. I terminali non avevano nessuna capacità di calcolo. Parliamo degli inizi dell’informatica, ma non degli albori, là la situazione era ancora più complicata tra schede e nastri perforati e rotoli di carta stampata 🙂

    Buffer

    Uno degli aspetti più utili di una interfaccia CLI moderna è il buffer che permette di vedere un certo numero di comandi dati in precedenza e il loro output.

    I command line interpreter

    Un interprete a linea o riga di comando è un programma in grado di interpretare ed eseguire i comandi ricevuti.

    Le shell

    Un interprete CLI può far parte della famiglia delle shell (interfacce per gestire il sistema operativo ed eseguire programmi), che per inciso possono essere testuali (come la bash shell di molte distribuzioni GNU/Linux o il command.com dell’MS-DOS, il Command Prompt di Windows o la più recente PowerShell) o grafiche (in Windows ad esempio c’è Windows Shell, prevalentemente rappresentata dal programma explorer.exe; in ambiente Linux ci sono X windows manager e Wayland compositor, …) o miste o ai giorni nostri probabilmente potrebbero essercene già di vocali.

    Tornando alle shell testuali, queste dispongono di una serie di comandi interni e della capacità di eseguire script scritti nel suo linguaggio, nonché di eseguire programmi adatti ad essa.

    Le shell infatti hanno due principali modalità operative: quella interattiva in cui i comandi vengono eseguiti subito dopo l’invio (in foreground o in background) e quella batch che esegue una serie di comandi contenuti in un file di script.

    I comandi disponibili in una shell sono detti comandi interni o built-in, inoltre di solito una shell è accompagnata da un corredo standard di programmi esterni di uso comune.

    Per conoscere l’elenco dei comandi interni si può di solito utilizzare il comando help di quella shell. Per il Prompt dei comandi di Windows è sufficiente digitare help dalla riga di comando stessa e premere invio. È da notare che con il comando help potrebbero essere elencati anche i comandi esterni standard.

    La shell command.com

    Il command line interpret di diversi sistemi operativi DOS e Microsoft Windows è stato command.com.

    Lo è stato per Microsoft MS-DOS dalla prima all’ultima versione (la 8 distribuita con Windows Me) e per Microsoft Windows da Windows 95 a Windows ME. In queste prime versioni di Windows (client) era un passaggio obbligato nel boot del sistema operativo.

    COMMAND.COM è una shell a 16 bit.

    La shell cmd.exe

    La shell di Windows a partire da Windows 2000 e Windows NT (lato server) è stata la Command shell (cmd.exe) detta anche “Command Prompt” o “Prompt dei comandi” (nelle versioni italiane di Windows) in base al titolo della finestra nella quale viene eseguita. È una shell a 32 bit.

    cmd.exe è stato anche l’interprete CLI di OS/2.

    In base al sistema operativo in cui viene eseguito l’interprete può godere di diverse funzionalità ed estensioni.

    La prima versione di cmd.exe per Windows NT fu sviluppata da una donna, Therese Stowell.

    La PowerShell

    Microsoft ha introdotto una nuova shell, la PowerShell, in grado di eseguire una nuova serie di comandi detti cmdlets. PowerShell oltre ad eseguire questi nuovi e più complessi comandi, può anche eseguire i comandi della Command shell.

    *ix shell

    In Unix, Linux, macOS e sistemi analoghi la CLI è detta “terminale” e permette di eseguire molte differenti shell (sh Shell, Bash, Z shell, Korn shell, C shell, …).

    La prima shell

    La prima shell nota (poiché riportata in una pubblicazione di un lavoro di ricerca) è stata ideata da Glenda Schroeder e da un suo collega, di cui è ignoto il nome, nel 1965 per il sistema operativo Multics presso il MIT.

    Origine del termine shell

    Il termine shell è stato coniato da Louis Pouzin.

    Definizione di Shell nel Jargon file

    Definizione di shell nel Jargon file: “

    1. [techspeak] The command interpreter used to pass commands to an operating system; so called because it is the part of the operating system that interfaces with the outside world.

    2. More generally, any interface program that mediates access to a special resource or server for convenience, efficiency, or security reasons; for this meaning, the usage is usually a shell around whatever. This sort of program is also called a wrapper.

    […] “

    Prompt

    Infine un accenno al prompt.

    Il prompt è l’invito da parte del command line interpreter ad impartire un comando e viene mostrato nella command line interface solo quando il sistema è pronto per ricevere un comando. Durante l’esecuzione di un comando o di un programma (in foreground) il prompt scompare fino al termine dell’esecuzione del comando.

    Solitamente è composto da una serie di informazioni (in base al sistema in uso), da un carattere speciale (ad esempio: $, #, >) e da un carattere lampeggiante o un trattino basso messo in evidenza e detto cursore (da non confondere con il puntatore del mouse); il carattere speciale e/o il cursore sono considerati l’invito vero e proprio.

    Console

    Il termine console arriva anch’esso da prima di tastiere e video, quando i quadri di controllo erano costituiti da levette e spie luminose.

    Uno degli utilizzi moderni di questo termine è ad esempio in ambienti Linux per definire la System Console interna al kernel o la shell che viene avviata per i computer che partono in modalità testuale.

    In ambiente Linux in questo caso ci sono altre curiosità come il fatto che ci sono 6 console disponibili per default a cui viene fatto corrispondere il nome dispositivo da TTY1 a TTY6 e TTY sta per teletypewriter… cioè una telescrivente. 🙂