Si consiglia vivamente di guardare il Blog con una risoluzione di schermo non inferiore a 1024x768

Informazioni personali

Hai Bisogno di un aiuto con il pc?

sabato 5 dicembre 2009

Possibile Falla di sicurezza nella gestione di un Router



Creato per Mentedigitale.org


Vorrei spiegarvi una cosa interessante, su come si potrebbe attaccare un router configurato per riconoscere un pc tramite indirizzo MAC (indirizzo di rete), ma prima voglio fare una breve (si fa per dire) premessa sugli indirizzi MAC.

L'acronimo MAC, significa Media Access Control e viene utilizzato per l'accesso al mezzo fisico dal livello datalink secondo lo standard ISO/OSI.

Come a tutti è noto, ogni scheda di rete in commercio ha assegnato un identificativo univoco ad ogni scheda di rete ethernet prodotta al mondo, denominato 'MAC Address' (Indirizzo MAC).
L'indirizzo MAC si può trovare in qualsiasi interfaccia, sia Ethernet che Wi-Fi, pertanto viene chiamato anche indirizzo fisico, indirizzo ethernet o indirizzo LAN.
L'indirizzo MAC ha una lunghezza pari a 48 bit, pari a 6 byte (12 numeri in esadecimale).
L'indirizzo MAC, in pratica, rappresenta un nome per un particolare dispositivo di rete:

per esempio, avendo due schede di rete in due diversi computer, avranno due diversi nomi (e quindi diversi indirizzi MAC), così come avranno nomi diversi una scheda Ethernet ed una scheda wireless posizionate nel medesimo computer.
Nel modello ISO/OSI, che è uno standard definito nel 1978 che definisce una pila di protocolli di comunicazione, distribuiti in sette livelli, l'indirizzo MAC viene inserito tra i protocolli di rete che operano al livello 2;
la maggior parte dei protocolli di livello 2 usa uno dei tre spazi di numerazione regolati dall'IEEE: MAC-48, EUI-48, e EUI-64. Nelle reti di oggi, l'indirizzo MAC viene convertito in un indirizzo di protocollo di livello 3, il conosciuto indirizzo IP.
Nei sette Livelli del modello ISO/OSI troviamo il primo livello, che è quello 'fisico', mentre il settimo, quello più 'in alto', è quello 'applicativo',

Il compito della conversione dagli indirizzi di livello 3 come l'Internet Protocol agli indirizzi MAC di livello 2 è comunemente demandato all'ARP.
Nelle reti broadcast come l'Ethernet, il MAC address permette di identificare univocamente ciascun host e permette di contrassegnare i frame come destinati a specifici host. Esso costituisce perciò, all'interno del Livello datalink, la base su cui poggiano i protocolli superiori del modello OSI.

In origine, l'indirizzo MAC (adesso chiamato ufficialmente MAC-48), era chiamato Indirizzo MAC IEEE 802, quindi l'attuale MAC-48 deriva dalla specifica dell'Ethernet, in quanto, chi progettò inizialmente l'Ethernet, ebbe la previdenza di utilizzare uno spazio per gli indirizzi di 48 bit, quindi oggi è possibile disporre di ben 248 possibili indirizzi MAC, il che non è poco, considerando che i 48 bit sono suddivisi in 12 cifre esadecimali, un esempio di indirizzo MAC può essere 4C-6F-72-64-54-7A, quindi, 248 indirizzi MAC, sarebbero 281.474.976.710.656 combinazioni, quindi altrettante schede ethernet, un numero che è praticamente impossibile raggiungere prima che le schede ethernet cambino standard.

Vediamo in dettaglio che cosa sono quei numeri:
le prime 6 cifre individuano il produttore dell'interfaccia di rete, mentre le successive corrispondono al numero di serie della scheda stessa.
L'indirizzo MAC si scrive normalmente in 6 ottetti separati da un trattino, come abbiamo visto nel precedente esempio (4C-6F-72-64-54-7A) ed i primi 3 ottetti sono detti OUI (Organizationally Unique Identifier).
Questo tipo di indirizzi, solitamente, si preferisce identificarli in esadecimale per differenziarli dagli indirizzi IP che usano la notazione decimale.

Ogni scheda ha, quindi, un indirizzo unico perché i primi 24 bit sono identificativi della casa produttrice e i successivi della scheda.
In questo modo ogni casa produttrice ha a disposizione 224 indirizzi, quindi può produrre più di 16 milioni di schede;
se un produttore ne produce meno, gli indirizzi (a 48 bit) non assegnati vengono persi, non potendo essere utilizzati da altri costruttori.

Quindi, si comprende facilmente, come l'indirizzo MAC non cambi se si sposta una scheda di rete da una LAN ad un'altra, a differenza dell'indirizzo IP, che invece può cambiare nel caso che venga assegnato dal DHCP.

Bene, adesso, dopo aver scritto un mezzo romanzo sulle schede Ethernet, volevo farvi notare, come un computer, connesso ad un router, sia tramite cavi di rete, che con Wi-Fi, venga riconosciuto dal router, che è stato configurato per gestire l'indirizzo MAC, e come il router possa essere attaccato, facendogli credere che la connessione avvenga dal computer dell'amministratore...

In poche e semplici parole, supponiamo di conoscere o poter reperire l'indirizzo MAC della macchina administrator, (che non sto qui a spiegarvi come si fa perché esula dal contesto dell'articolo) possiamo modificare l'indirizzo MAC della nostra scheda Ethernet in modo che il router, dopo la nostra connessione, possa riconoscere la nostra macchina come macchina con permessi privilegiati, assegnare l'ip corretto tramite il DHCP e quindi darci accesso alla rete o a Internet!

In realtà, dopo la connessione ad un router, avendo un MAC Address uguale per entrambe le macchine, e supponendo che le politiche di gestione MAC del router, abbiano qualche falla, in quanto, generalmente i router non gestiscono i doppi MAC o l'amministratore non fa caso ad una possibilità di avere un doppio MAC Address, appunto per l'improbabilità di trovarne due uguali, la macchina che è già connessa al router, "cade", cedendo la rete alla macchina che ha causato il conflitto di indirizzo MAC sulla macchina connessa in precedenza...



L'operazione su linux è possibile tramite il comando ifconfig ...
praticamente il comando si utilizza nel seguente modo:


 sudo ifconfig hw                                      

 dove è eth0, è ether ed è l'indirizzo                  

 MAC che si vuole assegnare con forma XX:XX:XX:XX:XX:XX 

 es. sudo ifconfig eth0 hw ether 4C:6F:72:64:54:7A      

oppure utilizzando un software: GNU MAC Changer (se cercate su google trovate altre informazioni su tale software)



su Windows XP, invece, si può cambiare MAC Address, ricercando e modificando una chiave nel registro di sistema, che comunque non si trova sempre nello stesso posto, per ovvie ragioni. per essere però sicuri di cambiare il MAC Address possiamo farlo tramite software, in questo caso, servendosi di una semplice utility freeware chiamata Macshift, basata su riga di comando. (http://devices.natetrue.com/macshift/macshift.zip)


Spero di non essere stato troppo noioso e di avervi fatto capire qualche cosa sulla sicurezza...
che non è mai troppa :P






martedì 1 dicembre 2009

Windows 7 su Chiavetta USB Avviabile

Creato per MenteDigitale.org



Come rendere una chiavetta USB avviabile per poter ospitare il sistema operativo Windows 7 e quindi installarlo su un netbook o su un computer che permette il boot da USB

Premessa.
Oramai, i netbook stanno prendendo piede, avere un computer di dimensioni ridotte, a poco prezzo e con la possibilità di sfruttare appieno le potenzialità della rete, è quasi divenuto una "moda", se non una necessità, quindi perché non scrivere una bella guida su come si installa il nuovo Sistema Operativo della Microsoft, Windows 7, e introdurre anche alcune informazioni interessanti sulle chiavette USB e sui file system?

░ Comincio col dire che le chiavette USB sono formattate in FAT ░

Informazioni tecniche su FAT
FAT, acronimo di File Allocation Table, è un file system sviluppato inizialmente da Bill Gates e Marc McDonald. È il file system primario per diversi sistemi operativi DOS e Microsoft Windows fino alla versione Windows ME.
Windows NT e le successive versioni hanno introdotto l'NTFS e mantenuto la compatibilità con la FAT così come molti altri sistemi operativi moderni (Unix, Linux, Mac, ecc.).
La FAT è relativamente semplice ed è supportata da moltissimi sistemi operativi. Queste caratteristiche la rendono adatta ad esempio per i Floppy Disk, le Chiavette USB e le Memory Stick, come ad esempio le SD.
Può anche essere utilizzata per condividere dati tra due sistemi operativi diversi.
Il più grande problema del file system FAT è la frammentazione. Quando i file vengono eliminati, creati o spostati, le loro varie parti si disperdono sull'unità, rallentandone progressivamente la lettura e la scrittura. Una soluzione a questo inconveniente è la deframmentazione, un processo che riordina i file sull'unità. Questa può durare anche diverse ore e deve essere eseguita regolarmente per mantenere le prestazioni dell'unità.
Esistono varie versioni di questo file system, in base a quanti bit sono allocati per numerare i cluster del disco: FAT12, FAT16, FAT32.
Il VFAT è una versione del FAT16, ma virtuale cioè non registrato fisicamente sull'hard disk, ma gestito da un software specifico.

Chiavette USB
la diffusione di questa tipologia di dispositivi è stato determinato dal supporto diretto offerto da Windows XP, che ha spinto fette sempre più ampie d'utenza all'utilizzo. Oramai anche i prezzi sono diventati davvero irrisori.
Una chiave USB, o penna USB, o pendrive, è una memoria di massa portatile di dimensioni molto contenute (qualche centimetro in lunghezza e intorno al centimetro in larghezza) che si collega al computer mediante la comune porta USB.
Nella chiave USB i dati sono memorizzati in una memoria flash, tipicamente di tipo NAND, contenuta al suo interno. Attualmente la capacità di memoria delle chiavi USB va da 1 Gigabyte in su. La capacità è limitata unicamente dalla densità delle memorie flash impiegate, con il costo per megabyte che aumenta rapidamente per alte capacità.

Funzionamento (Fonte: Wikipedia)
Il protocollo per il trasferimento dei dati dal computer alla chiavetta, e viceversa, è un protocollo standard denominato USB Mass Storage-protocol. Tale standardizzazione ha incoraggiato l'inclusione dei driver di supporto e di inclusione nel file system locale da parte dei produttori di sistemi operativi quali Windows, Mac OS X e Linux.
Inizialmente la velocità di lettura/scrittura della memoria flash contenuta nella chiavette era molto bassa, "frenata" proprio dalla ridotta banda passante dell'interfaccia USB, che nella sua versione originale, la 1.1, è di 12 Mbit/s. Recentemente invece quasi tutte le chiavette di nuova costruzione utilizzano la più veloce versione 2.0, perfettamente retro-compatibile con la versione 1.1, e dotata di una banda passante di 480 Mbit/s.
È da precisare però che la velocità di scrittura non dipende solo dall'interfaccia utilizzata, ma anche dal tipo di memoria flash utilizzata, e dalla eventuale presenza di microchip dedicati all'interno della chiavetta stessa. Esistono a questo proposito in commercio alcune chiavette che contengono un piccolo microprocessore dedicato ad ottimizzare il processo di lettura/scrittura sulla memoria flash.
Ovviamente la maggiore complessità di queste soluzioni relegano per il momento questi "bolidi" ad un mercato professionale di fascia alta con esigenze specifiche.
Grazie alle dimensioni ridotte, all'assenza di meccanismi mobili (al contrario degli hard disk comuni) che lo rende molto resistente, alle sempre crescenti dimensioni della memoria e alla sua interoperabilità la chiavetta si sta configurando, accanto ai CD e ai DVD come unità preferita da un crescente numero di consumatori per il trasporto fisico di dati. Si tenga inoltre in considerazione il fatto che il numero di scritture che una memoria flash può supportare non è illimitato, seppur molto alto (oltre 100.000 cicli di scrittura).

Pro e contro
Nello scaricamento e caricamento di dati la chiavetta USB è il supporto con il minore ingombro (sta in tasca) più veloce: supera in velocità di lettura e scrittura i CD-ROM e DVD-ROM, ma è più lento delle componenti interne del computer (memoria cache, RAM e Hard Disk).
Attualmente sono in commercio chiavette USB da 64 GB e ne sono state testate altre da 128 GB.
Altro vantaggio è la sua versatilità, tutti i sistemi operativi moderni infatti non richiedono l'installazione di driver per riconoscere le chiavi USB.
Un aspetto negativo è il fatto che dopo un lungo periodo di utilizzo, la memoria presente nella chiavetta potrebbe perdere dati. Questo dipende dalla specifica memoria e dal suo grado di data retention. In questo caso basta formattare la chiavetta per riavere l'affidabilità originaria.
Un'altro aspetto negativo è che, il file system FAT gestisce dischi di dimensioni massime di 4Gb, quindi se ho una chiavetta USB che supera questa grandezza????      
 Lo spiego dopo

Il file System NTFS (Fonte: Wikipedia)
NTFS (acronimo per New Technology File System), file system dei sistemi operativi basati su kernel NT.
Questo file system nasce negli anni novanta, quando Microsoft abbandonò lo sviluppo congiunto con IBM del sistema operativo OS/2 e decise di sviluppare in proprio Windows NT (che significa New Technology). Proprio per questo alcuni degli aspetti presenti nel file system HPFS di OS/2 sono presenti anche in NTFS.

NTFS è un notevole passo avanti rispetto a FAT, l'altro file system di Microsoft. Queste le sue principali caratteristiche:
Affidabilità - NTFS è un sistema transazionale (o "Journaled" come si dice nei sistemi operativi Apple come Mac OS X); questo vuol dire che se un'operazione è interrotta a metà (ad esempio per un blackout) viene persa solo quell'operazione ma non è compromessa l'integrità del file system il quale resta comunque leggibile dal computer.
Permessi e Controllo d'Accesso - a ciascun file o cartella è possibile assegnare dei diritti di accesso (lettura, scrittura, modifica, cancellazione e altri).
Nomi lunghi e Unicode - i nomi dei file e delle cartelle possono essere lunghi fino a 255 caratteri e possono contenere caratteri di tutte le lingue del mondo grazie alla codifica Unicode.
Dimensioni e Flessibilità - La dimensione dei volumi e il massimo numero di file sono praticamente illimitati; la dimensione del volume può raggiungere al massimo i 256 Terabytes, il numero limite di file è invece di circa 4,3 miliardi. La dimensione massima di un singolo file è di 16 Terabytes, contro i 4 GigaBytes di FAT e FAT32. Sono supportati nativamente i volumi sparsi e il mirroring. Sono finalmente disponibili gli hardlink.
La performance di NTFS è nettamente superiore a quella di FAT e di FAT32. A partire da Windows 2000, è inoltre possibile montare un volume NTFS come sottodirectory di un altro volume NTFS.
NTFS permette inoltre di utilizzare in modo trasparente delle opzioni di compressione (la compressione è mediocre, meno di ZIP, ma permette l'accesso immediato a qualunque punto del file) e di crittografia (chiamato anche EFS).
In NTFS sono stati aggiunti i cosiddetti punti di reparse, ovvero dei meccanismi che consentono le giunzioni (junctions) tra directory, altrimenti impossibili per la struttura del file system.

Struttura
NTFS sfrutta un'indicizzazione a 64 bit, sebbene la sua implementazione sia basata soltanto su 32 bit.
La struttura principale di un file system NTFS è la Master File Table (MFT), una tabella strutturata in blocchi (solitamente in record di 1KB) che contiene gli attributi di tutti i file del volume, inclusi i meta-dati. Tali attributi possono essere attributi residenti quando sono presenti in MFT, oppure, se non memorizzabili a causa del poco spazio, vengono salvati in qualche altra posizione del file system e prendono il nome di attributi non residenti.
Le directory sono memorizzate come file: in ogni file-directory sono presenti degli attributi speciali, memorizzati in ordine lessicografico, che si riferiscono ai file contenuti in tale directory.
I dati veri e propri dei file sono memorizzati in flussi puntati da appositi attributi Data.

Possibili inconvenienti
Il più grosso inconveniente di NTFS è che è più complesso da amministrare di FAT e di FAT32. Gli utenti dei sistemi operativi Microsoft infatti erano abituati a poter accedere alle partizioni FAT anche con un semplice dischetto di boot DOS. Questa in realtà non è una vera limitazione di NTFS, quanto piuttosto il risultato del fatto che NTFS è un file system più moderno, completo e complesso. Il vero limite, invece, è legato al fatto che Microsoft non ha reso pubbliche le specifiche di NTFS, e quindi NTFS è un file system di fatto chiuso e proprietario. Anche per questo, nonostante le sue qualità, non ha conosciuto fortuna al di fuori dei sistemi operativi Microsoft.
Sono tuttavia in corso progetti di reverse engineering che mirano a rendere accessibili le partizioni NTFS anche da altri sistemi operativi.
Quindi se formattiamo un dispositivo USB con NTFS vedremmo calare un po' le prestazioni del dispositivo stesso, nel senso che lo scambio di dati avviene un po' più lentamente, ma a confronto ai benefici che questo file system porta, la velocità è un parametro trascurabile.

Curiosità
Se inseriamo una chiavetta USB in un connettore USB del PC, il Windows XP (O successivi), riconoscono il dispositivo installandone i driver, rendendo di fatto il dispositivo immediatamente utilizzabile.
Il sistema operativo imposta la cache di scrittura delle chiavette USB in modo da essere ottimizzata per la rimozione rapida, cioè, questa ottimizzazione disabilita la cache di scrittura su disco e in windows, in modo da consentire la disconnessione della periferica senza l'utilizzo dell'icona Rimozione sicura.
Se andiamo nell'utilità di formattazione della chiavetta USB, solitamente, nel combo box vicino l'etichetta "file system" possiamo notare come esista solamente una voce... "FAT", quindi formattando la chiavetta USB applicheremo i criteri di formattazione per un file system FAT, ma se vorremmo formattare in NTFS???
SEMPLICE!
dovreste andare in gestione periferiche, passando attraverso la finestra delle proprietà del sistema.
Più specificatamente procediamo nel seguente modo:

tenere premuti i tasti+, si apre la finestra delle proprietà del sistema, andiamo sulla linguetta Hardware e premiamo sul pulsante "Gestione periferiche" aperta la finestra della gestione periferiche, individuare la voce "Unità disco", premere sul + a sinistra della voce stessa, si apre la lista dei dischi che si trovano sul computer, individuare la dicitura della propria chiavetta USB e cliccare con il pulsante destro su di essa, comparso il menù contestuale cliccare su proprietà, nella finestra delle proprietà della chiavetta andare nella linguetta "Criteri", da li spuntare l'opzione "Ottimizza prestazioni", premere su ok e chiudere le altre finestre aperte in precedenza.
A questo punto andiamo a formattare la nostra chiavetta, adesso nelle opzioni di file system notiamo due voci "NTFS" e "FAT32", noi scegliamo NTFS, Formattiamo.

Adesso la chiavetta USB è pronta x essere resa avviabile.

Molti siti suggeriscono la seguente procedura
si procede montando l'immagine ISO del sistema operativo in un drive virtuale
(con qualsiasi applicazione che ne possa creare uno, io preferisco daemon tools lite)

dopo aver montato la ISO di Windows 7

andate su Start ==> esegui

digitate cmd e premete invio, adesso siete nel prompt dei comandi

digitate la lettera del vostro drive virtuale, quello dove avete montato l'immagine ISO, ad esempio se l'immagine è montata su D, digitare:

 D:    



siete dentro il drive virtuale

a questo punto dovete cambiare directory (o cartella :P) quindi procedete digitando




siete nella directory "boot", quindi visualizzando il contenuto vi trovate alcuni file, tra questi, c'è il file eseguibile Bootsect.exe.
Utilizzando il comando dir vedrete i file e le eventuali cartelle che sono dentro la directory boot




Ricordando che K per me è la chiavetta USB

digitate il seguente comando:





a questo punto vi apparirà un messaggio simile al seguente:

  Target volumes will be updated with BOOTMGR compatible bootcode. 
  K: (\\?\Volume{eefe109b-a1ce-11de-aef4-000fea08e7bd})            
  Successfully updated NTFS filesystem bootcode.                   
  Bootcode was successfully updated on all targeted volumes.       

ok, fatto, copiate il contenuto del drive virtuale (quello con l'immagine windows 7) nella chiavetta USB!!!

Però potrebbe succedere che la chiavetta non diventi avviabile con il metodo descritto sopra, o addirittura può anche accadere che quando diamo il comando bootsect dia un errore, e quindi il BootCode non venga aggiornato... E allora? direte voi! Beh, esiste un metodo molto più semplice e che funziona al 100%, testato personalmente.
Serve solamente un software, il nome è 1UltraISO.


Come si procede
1) Avviare UlraISO

2) Cliccare su FILE

3) Poi su APRI

4) Aprire l'immagine ISO del Windows che si vuole mettere nella Chiavetta USB

5) Cliccare sulla lettera dell'unità corrispondente alla vostra Chiavetta USB nella lista di drive che trovate in basso a sinistra

6) Cliccare nel menu in alto la voce AVVIO

7) poi su SCRIVI FILE IMMAGINE DISCO

8) siete nella finestra di scrittura, premete sul pulsante in basso SCRIVI

9) attendere che sia finita la scrittura sulla Chiavetta USB

10) adesso la chiavetta è avviabile e con dentro il windows
_________________________________________________________________________________

1 UltraISO non è un software free, ma la versione trial è più che sufficiente per l'utilizzo che ne dobbiamo fare!
_________________________________________________________________________________

domenica 29 novembre 2009

Codici a Barre e la loro evoluzione

Creato per MenteDigitale.org - 2009
Informazioni reperite sulla rete


É da un po' che penso di scrivere una guida su un argomento che molti potrebbero trovare interessante, l'argomento di cui vorrei trattare, fa, oramai, parte della nostra vita quotidiana, sto parlando dei codici a barre, si proprio codici a barre, oggi come oggi questi codici vengono riportati su qualsiasi oggetto messo in vendita, come ad esempio sul cibo, giornali e comunque su oggetti di varia natura.
Però, anche rischiando di annoiarvi più del dovuto, vorrei prima introdurre questo argomento parlandovi di quando fu inventato il codice a barre e chi fu l'ideatore.
Ci troviamo nel 1948, in quel tempo il presidente di un'azienda del settore alimentare aveva l'esigenza di automatizzare le operazioni di cassa, il problema fu ascoltato da Norman Joseph Woodland e Bernard Silver, all'epoca studenti di ingegneria dell'Università di Drexel, i due ragazzi presero sul serio questa esigenza e da li nacque una prima idea, i codici a barre, e subito fu sviluppata. Questa prima idea consisteva nell'utilizzare il Codice Morse stampato ed esteso in senso verticale, realizzando così barre strette e barre larghe. In seguito utilizzarono dei codici a barre ovali e brevettarono la loro invenzione.
I primi tentativi di riconoscere i codici a barre con un fotomoltiplicatore originariamente utilizzato per la lettura ottica delle bande audio dei film non ebbero successo: l'eccessivo rumore dei dispositivi termoionici, il calore generato dalla lampada utilizzata per l'illuminazione e il peso risultante dall'insieme erano ostacoli insormontabili.
L'idea risultava irriproducibile per le condizioni spiegate in precedenza, ma con l'avvento dei laser, si permise di costruire lettori a prezzi più accessibili e lo sviluppo dei circuiti integrati permise la decodifica vera e propria dei codici. Silver morì nel 1963 a soli 38 anni, prima di vedere le numerose applicazioni pratiche del suo brevetto.
Nel 1972, un grande magazzino di Cincinnati fece degli esperimenti con un lettore con l'aiuto della RCA, ma i codici a barre ovali si macchiavano facilmente o si producevano delle sbavature durante la stampa, per cui l'esperimento fu un insuccesso. Nel frattempo, Woodland sviluppò presso IBM i codici a barre lineari, che furono adottati il 3 aprile 1973 con il nome UPC (Universal Product Code). Il 26 Giugno 1974 presso un supermarket a Troy, nell'Ohio, il primo prodotto (un pacchetto di gomme americane) veniva venduto utilizzando un lettore di codici a barre.

Lettura dei codici a barre
La tipologia dei lettori di codice a barre è andata ampliandosi con l'avvento di nuove tecnologie e con la miniaturizzazione della componentistica elettronica.

Questo è un lettore di codice a barre moderno












Tipo di collegamento
Oltre ai lettori collegati ad un personal computer o ad un registratore di cassa, troviamo dei lettori dotati di memoria e quindi in grado di immagazzinare un certo numero di letture prima che vi sia la necessità di scaricarle utilizzando un'unità base (detta calamaio nel caso delle penne ottiche). Altri lettori sono dotati di un trasmettitore di piccola potenza per comunicare in tempo reale ad un'unità ricevente i dati che vengono letti.

Tecnologia di lettura
La tecnologia prevalente e più affidabile impiega uno o più raggi laser, abbinato di solito ad una testina oscillante e in taluni casi ad un sistema di specchi, al fine di moltiplicare le probabilità che qualsiasi codice stampato su un oggetto venga letto al primo tentativo. Esistono anche dei lettori più economici che utilizzano una barra di LED per illuminare i codici a barre e un sensore CCD (Charged Coupled Device). Si ottengono così dispositivi più leggeri e più resistenti, adatti per scanner da impugnare, che però devono essere portati quasi a contatto con i codici a barre da leggere. Inoltre, in ambito industriale, le ultime tecnologie permettono la lettura del codice a barre tramite l'acquisizione di un'immagine fornita da un sistema video. Questo, tramite l'apposito software, permettono di "fotografare" l'oggetto, riconoscere nella fotografia il codice a barre da leggere e successivamente interpretarlo.

Tipi di codici a barre
Tra i tipi più diffusi in Italia, senz'altro troviamo il codice EAN (European Article Number) che viene utilizzato nella grande distribuzione, seguito dal Farmacode o codice 32 (una rielaborazione matematica del Codice 39), adottato per l'identificazione dei Farmaci e delle specialità vendibili al banco nelle farmacie. Nell'ambito industriale hanno trovato grande diffusione il codice 128, il codice 39 (alfanumerico) e il 2/5 (si legge 2 di 5) interleaved.

La maggior parte dei codici ha un codice di controllo (check digit) che l'unità di lettura è in grado di ricalcolare e verificare per assicurare la corretta lettura e l'integrità dei dati.

Vediamo in dettaglio uno di questi codici a barre.


Prendiamo in considerazione il farmacode (o codice 32), come detto in precedenza, è un codice di identificazione a barre attualmente usato dal Ministero della Sanità italiano per identificare i medicinali.

Esso fa parte della famiglia dei codici a barre ed è composto da un carattere (asterisco *) di start e di stop, ovvero di delimitazione del codice stesso, e da 9 caratteri in base 32 codificati in modo binario. I 9 caratteri in base 32 corrispondono ad altrettanti caratteri in base 10, dei quali il primo carattere è 0 poi seguono 7 caratteri che identificano il prodotto ed infine l'ultimo carattere che rappresenta il codice di controllo (check-digit).

È un codice bidimensionale, ovvero esistono solo 2 spessori (stretto, largo) di barre/spazi. Lo spessore del modulo (ovvero del più piccolo spazio o barra presente nel codice) può essere di 0,250 o 0,254 mm

La codifica in base 32 usa le lettere dell'alfabeto anglosassone (meno A,E,I,O) più 10 numeri decimali (da 0 a 9), ottenendo la corrispondenza con la base 10 tramite una tabella.

Il codice di controllo (check-digit) viene calcolato nel modo seguente:

si usano le prime 8 cifre (in base 10) che chiameremo c1,c2,c3,...,c8

si calcolano i seguenti prodotti:

z1=2*c2

z2=2*c4

z3=2*c6

z4=2*c8

si calcola la somma S1 dei quozienti e dei resti di z1,z2,z3,z4 diviso 10

si calcola la somma S2 delle cifre c1,c3,c5,c7 del codice

si calcola la somma S=S1+S2

si divide S per 10

il codice di controllo (e quindi la nona cifra in base 10 del codice) è il resto della divisione di S per 10

Codice QR



Un Codice QR (in inglese, QR Code) è un codice a matrice (o codice a barre bidimensionale) creato dalla corporation giapponese Denso-Wave nel 1994. Il "QR" deriva da "Quick Response" (Risposta Rapida), poiché il creatore pensava ad un codice che consentisse una rapida decodifica del suo contenuto. I codici QR sono maggiormente comuni in Giappone e sono attualmente il più popolare tipo di codice bidimensionale in quel paese.





Sebbene inizialmente utilizzato per tracciare molti pezzi nella costruzioni di veicoli, i codici QR sono ora utilizzati per la gestione delle scorte in un'ampia varietà di industrie. Più recentemente, sono state sviluppate applicazioni orientate verso la comodità, finalizzate a sollevare l'utente dal noioso compito di inserire dati nel proprio telefono cellulare. Stanno diventando sempre più comuni in magazzini e pubblicità nel Giappone, i codici QR che memorizzano indirizzi e URL. Anche l'aggiunta di codici QR sui biglietti da visita sta diventando comune, semplificando notevolmente il compito di inserire i dettagli personali di una nuova conoscenza nella rubrica del proprio cellulare.

L'immagine del QR di destra, se ripreso con un Telefono dotato di lettore di codici QR, vi porterà alla pagina http://www.mentedigitale.org. Il codice è stato creato con una capacità di correzione errori di livello H (spiegato tra qualche paragrafo).
Beh, se andate sul sito http://www.janones.com.br/portal/index/qrcode/, potete creare i vostri QRCode, ci sono varie opzioni, tra cui quella di creare QRCode come testo, sms, url ecc.
Vi ricordo che quando si immette l'URL si deve omettere la parte dell' HTTP://, cioè nell'indirizzo http://www.mentedigitale.org, quando viene immesso nel campo, si deve solamente scrivere www.mentedigitale.org, il motivo è semplice, al momento della codifica verrà automaticamente aggiunto Http://, infatti se andate nella sezione lettura codice, quando si decodifica, vedrete che l'URL è comprensivo di http://

Poi potete creare anche delle Vcard, prorpio dei biglietti da visita da utilizzare con i cellulari, per permettere alla persona che effettua lo shot di memorizzare i vostri dati nella rublica, i campi comprendono varie informazioni, ad esempio, teniamo in considerazione i seguenti dati:



Nome: LordTzeentch
Occupazione: Programmatore
Impresa:                                  il risultato è il seguente ===>
Indirizzo:
Telefono: 3471234567
Email: Virtualprogram@hotmail.com
Web: www.mentedigitale.org





eh si, è tutto dentro questo piccolo codice... l'indirizzo per la creazione delle Vcard è il seguente:


Comunque torniamo a noi...

Lo standard giapponese per i codici QR, JIS X 0510, è stato rilasciato nel gennaio del 1999 e un corrispondente Standard Internazionale ISO, ISO/IEC 18004, è stato approvato nel giugno del 2000.

"Il codice QR è aperto nel senso che è rivelata la sua specifica e che il diritto di brevetto posseduto da Denso Wave non è esercitato." — dal sito di Denso-Wave.

Capacità dati del codice QR
Solo Numerico Max 7.089 caratteri
Alfanumerico Max 4.296 caratteri
Binario (8 bit) Max 2.953 byte
Kanji/Kana Max 1.817 caratteri

Capacità di correzione degli errori
Livello L 7% delle parole in codice può essere ripristinato.
Livello M 15% delle parole in codice può essere ripristinato.
Livello Q 25% delle parole in codice può essere ripristinato.
Livello H 30% delle parole in codice può essere ripristinato.

I codici QR usano la correzione degli errori Reed-Solomon.

Micro QR Code
Il Micro QR Code è una versione ridotta dello standard codice QR per applicazioni con minore abilità di gestire grandi scansioni.

Ci sono anche diverse forme di Micro QR Code. La più alta di queste può contenere 25 caratteri.

Grafica QR
un'interessante opzione è quella della grafica, la grafica QR rende possibile incorporare immagini appariscenti di loghi, caratteri e foto all'interno del codice QR durante il calcolo e senza perdere alcuna informazione del codice.
Di seguito qualche esempio...





per riprodurre un QRCode come il secondo e il terzo esempio, potete scaricare liberamente un file java da questo indirizzo:
con il software potrete creare molti tipi di Codici a barre sia a barre lineari che bidimensionali.

PM Codes

I QR code non sono però l’ultima frontiera in quanto a codici grafici, la ricerca da questo punto di vista sta tirando fuori altri codici con molta più capacità di immagazzinamento dati.
Accanto possiamo vedere un esempio di codice PM:

funziona come un codice QR che però utilizza altri colori oltre al bianco e nero, permettendo quindi di immagazzinare moltissime più informazioni. Mentre un codice QR di norma può immagazzinare circa 78KB di dati, un codice PM delle stesse dimensioni a 24 colori può immagazzinare 1.8MB, all’incirca come se fosse un floppy disk stampabile su carta. Mentre uno un po’ più grande a 256 colori può contenere 1.256GB!!

Ma non finisce qui, continuate a leggere perché le cose si fanno interessanti.

HCCB

Gli High Capacity Color Barcode (HCCB) sviluppati dalla Microsoft:


Anche qui si usano i colori ma invece dei puntini ci sono dei triangoli senza nessuno spazio tra loro, il codice funziona tramite la letture delle sequenze di colori ed ha il vantaggio di poter essere letto facilmente anche se l’immagine ad esempio non è messa perfettamente a fuoco dal vostro cellulare, in più può essere molto più piccolo degli altri, permettendo quindi di contenere più informazioni nello stesso spazio di un codice QR.
La ricerca in questo campo comunque va avanti, le possibilità sono infinite, i dati sono dati, quindi è possibile immagazzinare qualsiasi cosa con questi sistemi, pensate ad un film stampato su un pezzo di carta. O il backup del vostro Hard Disk su un immagine A4.

Rainbow Technology
A questo proposito Sainul Abideen, uno studente della Muslim Educational Society Engineering College a Kuttipuram, ha sviluppato la Rainbow Technology:



Un sistema che utilizza forme geometriche e colori e che dichiara di poter immagazzinare (udite udite!) 256GB di dati su un singolo foglio A4, inoltre tali dati sarebbero leggibili da un qualsiasi scanner casalingo. Questa tecnologia è ancora in via di sviluppo, ma Sainul prevede anche di creare dei Rainbow Versatile Disks (RVDs) con una capacità da 90 a 450GB.

L'RVD (Rainbow Versatile Disc) permette di immagazzinare, quindi, fino a 450GB di dati codificati su un foglio di carta in formato A4. Sembra incredibile, ma è la pura verità. Per l'evento, Sainul, ha presentato la sua idea tramite un esperimento durato circa 45 secondi che ha dimostrato la possibilità di codificare un film su un foglio di carta, utilizza per tale scopo una speciale procedura di scansione e stampa e permette di salvare su un pezzo cartaceo una quantità di dati enorme. La trovata, oltre che essere suggestiva, si dimostra interessante in primo luogo per la sua praticità (estendendo il progetto ad altre applicazioni potrebbe divenire possibile contenere un numero infinito di informazioni in uno spazio ridottissimo) ma anche e soprattutto per la sua economicità, nel momento che i costi di produzione di questa soluzione si aggirano intorno a un decimo di quelli necessari per i tradizionali CD e DVD. Una cosa del genere, se portata dunque a termine, significherebbe una rivoluzione globale del mondo dell’informatica e dell’intrattenimento generale, e potrebbe tranquillamente spazzare via qualunque tipo di supporto di lettura attualmente qualificato. In attesa di avere altre informazioni, incrociamo le dita perchè una così bella idea non resti appunto tale e venga presto progettata su vasta scala.