Reti e Protocolli
Uno dei temi più importanti che l'aspirante hacker deve studiare è quello dell'architettura e dei protocolli di rete. I computer possono essere collegati in rete con diverse configurazioni e dimensioni e con diverse tecnologie che regolano la loro interconnessione. Dal filo di rame, alle fibre ottiche, alle connessioni wireless e satellitari, nonché la combinazione di tutti questi supporti; abbiamo creato una vasta rete informatica in tutto il mondo: questa rete può essere compresa su larga scala nella sua interezza e vista come una connessione di reti autonome più piccole.
In termini di dimensioni, le reti di computer sono state tradizionalmente classificate come reti locali (LAN) e reti geografiche (WAN). Le WAN in genere collegano un certo numero di LAN. Esistono molte altre designazioni per reti di dimensioni diverse e la terminologia cambia continuamente man mano che si sviluppano nuove tecnologie e conduttività. Tenere il passo con questi cambiamenti è uno dei compiti continui di un hacker.
Le reti hanno anche architetture diverse. L'architettura è determinata non solo dalla configurazione dei diversi nodi, ma anche dal supporto che li collega. Inizialmente i computer in rete erano sempre collegati tramite filo di rame. I cavi di rete in rame comunemente usati, spesso noti come cavi Ethernet, sono costituiti da coppie intrecciate di filo di rame. Sebbene il più comune di questi cavi sia il cavo di categoria cinque, o CAT-5, sta cominciando a lasciare il posto a un nuovo standard, CAT-6, che ha una maggiore capacità di trasmissione del segnale. Per applicazioni ad altissima velocità e distanze più lunghe, vengono solitamente scelti cavi in fibra ottica. Le fibre ottiche utilizzano la luce anziché l'elettricità e hanno una capacità di trasporto delle informazioni molto elevata. Sono utilizzati per trasportare la più moderna televisione via cavo e servizi Internet ad alta velocità. La fibra ottica funge da spina dorsale per Internet. All'interno di spazi ristretti, le reti wireless sono molto comuni. Attraverso l’impiego di un protocollo Wireless Fidelity (Wi-Fi), le reti wireless esistono in molte LAN personali, private e commerciali. Gli hacker sono spesso particolarmente interessati alla violazione delle reti Wi-Fi, e ciò ha provocato il conseguente sviluppo degli standard di sicurezza Wi-Fi. Indipendentemente dall'architettura o dal mezzo di trasmissione, quando due terminali comunicano attraverso una rete devono farlo utilizzando un insieme comune di regole noto come protocollo. I protocolli di rete si sono evoluti da quando sono state create le prime reti informatiche, ma hanno mantenuto lo stesso approccio stratificato di base. In generale, una rete è progettata in termini di livelli diversi che svolgono funzioni diverse. Ciò è anche noto come stack. I protocolli di comunicazione più comuni utilizzati oggi sono Internet Protocol (IP) e Transmission Control Protocol (TCP). Nel loro insieme, questi sono comunemente noti come TCP/IP. Questi protocolli cambiano e a volte sono standardizzati. È fondamentale per l'hacker apprendere questi protocolli e come si relazionano alla comunicazione tra i diversi strati dello stack. Ecco come gli hacker possono ottenere livelli sempre più elevati di accesso a un sistema.
Linguaggi di Programmazione
Può sembrare scoraggiante imparare un linguaggio di programmazione da zero senza averlo mai fatto prima, ma molte persone scoprono che una volta acquisita conoscenza di un linguaggio di programmazione, è molto più facile e veloce imparare gli altri. Gli hacker non devono solo comprendere i linguaggi di programmazione per poter sfruttare le vulnerabilità del software, ma molti devono anche scrivere il proprio codice per poter eseguire un determinato attacco. Leggere, comprendere e scrivere codici è fondamentale nell'hackeraggio.
I linguaggi di programmazione vanno da codici macchina molto difficili da decifrare, che sono in formato binario ed esadecimale e vengono utilizzati per comunicare direttamente con un processore, ai linguaggi orientati ad obiettivi di alto livello che vengono utilizzati per lo sviluppo di software. I linguaggi comuni orientati ad obiettivi di alto livello sono C++ e Java. Il codice scritto in linguaggi di alto livello viene compilato nel codice macchina adatto per un particolare processore, il che rende i linguaggi di alto livello molto intercambiabili tra i diversi tipi di macchine. Un'altra categoria è il linguaggio con script, dove i comandi vengono eseguiti riga per riga anziché essere compilati nel codice macchina. Imparare i linguaggi di programmazione richiede tempo e pratica - non c'è altro modo per diventare competenti. Le lunghe serate e le maratone notturne a occuparsi di scrittura, debug e ricompilazione del codice sono un rito di passaggio comune tra gli hacker principianti.