##language:it '''Tutto quello che occorre sapere sulla cancellazione''' '''Indice''' [[TableOfContents]] = Il problema della cancellazione su Usenet = A tutti capita prima o poi di mandare un Articolo su Usenet per poi pentirsene subito dopo. Che fare allora? Lo si può cancellare prima che qualcuno lo veda? La risposta è '''sì''', esiste un comando di cancellazione da distribuire ai vari server. Anzi ne esistono due. Uno si chiama ''Cancel'' e l'altro ''Supersedes'', e come si intuisce dal nome è chiaro che il primo cancella e il secondo sovrascrive. Ma al tempo stesso la risposta è anche '''no''', di fatto non si può eliminare l'articolo da __tutta__ Usenet. == In cosa consiste la cancellazione di un articolo == Occorre innanzitutto distinguere il caso in cui si voglia rimuovere un articolo da un singolo server, oppure dal proprio archivio personale di articoli, dalla cancellazione globale su tutta la Usenet-sfera. === Cancellazione locale === Sebbene gli hard disk siano ormai molto economici, essi non sono illimitati; occorre pertanto sia ai newsreader che ai server news avere un qualche meccanismo di rimozione automatica degli articoli dal proprio archivio. Un meccanismo ovvio è quello per il software di tenere conto della data di ricezione e rimuovere quindi tutti gli articoli più vecchi di un determinato limite temporale. A questo scopo è possibile per l'autore di un articolo anche "suggerire" una data di estinzione del messaggio usenet impostando l'header "Expires: ", ovviamente tale suggerimento può anche non venire accolto dai server news che si distribuiranno l'articolo. Per esempio, alcuni server basano l'archivio degli articoli su una struttura dati [[FootNote(Si parla di "buffer ciclici" quando gli articoli sono salvati in un unico file di dimensione già prefissata piuttosto che in file separati per ogni articolo. Ogni nuovo articolo viene aggiunto in coda all'ultimo articolo salvato, quando un nuovo articolo supera tale limite si inizia un nuovo ciclo in cui i nuovi articoli verranno salvati rimpiazzando sequenzialmente quelli presenti all'inizio del file. In pratica l'estinzione degli articoli è così automaticamente dettata dall'occupazione di memoria sul supporto di archiviazione.)]]che non permette la cancellazione dei post secondo un dato criterio temporale. Un'altra esigenza comune è quella per un gestore di un server news o anche di un semplice lettore delle News di rimuovere un certo articolo dallo ''spool''[[FootNote(Lo spool è l'insieme di articoli che sono stati archiviati.)]] locale. Per fare questo verrà ovviamente usato un comando che non ha la necessità di essere distribuito, ma che agirà localmente solo sul proprio archivio. === Cancellazione globale === Per conseguire lo scopo di rimuovere un articolo da tutta Usenet occorre inviare un comando a '''tutti''' i Server news che abbiano ricevuto l'articolo da cancellare. Per fare questo si crea (a mano oppure mediante una funzione del proprio newsreader) un articolo di cancellazione che teoricamente dovrebbe propagarsi su tutti i server news nei quali è presente, o arriverà, l'articolo da cancellare. I server, una volta ricevuto il ''Cancel'', dovrebbero onorare il comando eliminando l'articolo dal proprio archivio locale e propagare il comando di cancellazione ai ''peer'' ovvero agli altri server news con cui essi scambiano le informazioni, secondo la comune via di propagazione a cascata che è alla base di Usenet. I server però possono essere configurati in modo da non onorare i ''Cancel'' e/o da non propagarli. Il problema quindi è che una volta immesso un articolo, questo si propaga con estrema velocità ed efficienza e in maniera più capillare dell'eventuale comando di cancellazione seguente, che non solo è svantaggiato perché arriva in un secondo tempo e quindi nel mentre qualcuno potrebbe scaricare l'articolo e leggerlo, ma, a meno che non venga inviato __immediatamente__ dopo in modo da cancellare l'articolo sul server prima che si propaghi, esso viaggerà con meno efficienza e profondità perché a causa degli abusi molti amministratori news hanno deciso di non accettare i ''Cancel''. Tanto per fare un esempio tra i più rilevanti, [http://groups.google.com Google] non onora i ''Cancel'', e quello che è peggio, archivia l'articolo da eliminare. È poi scontato dire che il ''Cancel'' non ha il minimo effetto sugli archivi di chi ha già scaricato l'articolo in locale. Questi continueranno a vederlo finché non decideranno autonomamente di eliminarlo sulla propria macchina, ed ovviamente se è passato molto tempo tra l'articolo e il successivo comando di cancellazione è lecito pensare che numerose persone ormai avranno scaricato il post. Quindi inviare un ''Cancel'' o un ''Supersedes'' non fa certo male, ma è tremendamente inadeguato. Allora non serve a nulla mandare il ''Cancel''? Proprio a nulla direi di no, probabilmente la cosa migliore da fare è mandarlo ugualmente, ma richiedere almeno a google l'eliminazione dell'articolo dal proprio archivio (esiste una procedura precisa per fare questo ed è documentata nelle [http://groups.google.it/support/bin/answer.py?answer=8380 faq]) e soprattutto accettare l'idea che ormai la frittata è fatta. = Come cancellare un articolo da tutta Usenet = Si può fare la cosa a mano oppure utilizzare un programma che lo faccia per noi. Molti newsreader offrono questa possibilità (vedi poi). Per procedere '''manualmente''' all'invio di un ''Control Cancel'' occorre usare un programma che offra il controllo completo sul contenuto degli header dell'articolo di cancellazione (che alla fine è un articolo come un altro), cosa che non tutti i newsreader consentono. Inoltre per far la cosa per bene bisogna sapere quali siano le convenzioni e dove mettere le mani, altrimenti si rischia di mandare un comando abusivo. Una cosa è certa: '''si possono cancellare solo i propri articoli'''. In altre parole '''solo''' chi ha immesso l'articolo su Usenet, ovvero il suo autore riportato nel campo 'From: ' o 'Sender: ' dell'header, e/o il gestore del server news utilizzato per l'invio [[FootNote(Attualmente per stabilire la paternità di un articolo si considera l'indirizzo adoperato dal mittente, perciò se utilizzate un indirizzo alterato o inesistente non potete rivendicare alcuna paternità, chiunque potrà cancellare i vostri messaggi. Allo stesso modo se qualcuno si sta divertendo ad inviare articoli con il vostro indirizzo reale potete cancellare tali post, oltre che segnalare il fatto all'abuse competente. Questo è uno dei tanti, ottimi, motivi per adoperare una mailbox valida.)]] può legittimamente preparale un ''Control Cancel''. Esistono due eccezioni a questa norma: una riguarda lo spam, come vedremo nell'apposito paragrafo, mentre l'altra concerne la retromoderazione[[FootNote(Solitamente un moderatore visiona i messaggi da approvare sul newsgroup moderato prima della loro diffusione su Usenet. Alle volte però occorre intervenire a posteriori cancellando l'articolo, di solito perché approvato in maniera fraudolenta.)]] in un newsgroup moderato da parte del suo moderatore. /!\ '''Attenzione:''' ||Con l'eccezione dello spam, non potete mai cancellare articoli altrui senza commettere un ''net-abuse'', punto. Questo '''anche''' nel caso in cui riteniate che il contenuto dell'articolo che volete cancellare sia offensivo, oppure esso contiene i vostri dati personali, o anche sono presenti elementi che a vostro parere possono giustificare un'ipotesi reato. Ripeto, se lo fate direttamente voi, ovvero senza rivolgervi all'autore o al gestore del server che ha immesso l'articolo su Usenet o eventualmente al moderatore del gruppo sul quale esso è stato inviato, commettete un ''net-abuse''. Ovviamente tutto ciò riguarda la cancellazione su tutta Usenet, localmente invece potrete sempre legittimamente chiedere la cancellazione di un articolo al gestore del particolare Server news e/o archivio. Resta comunque valida, se lo ritenete opportuno, l'opzione di rivolgersi alle autorità.|| Per non combinare pasticci è bene quindi utilizzare le funzionalità del proprio newsreader, dopo averne studiato adeguatamente la documentazione. Ogni newsreader decente infatti ha il comando per preparare '''automaticamente''' un articolo di cancellazione (che di fatto è come un qualsiasi altro post, solo ha delle righe particolari negli header). Cerca nella documentazione del tuo newsreader, oppure con google sul web e nell'archivio Usenet e se non riesci allora chiedi consiglio su it.comp.software.newsreader. Qui di seguito riportiamo le istruzioni per i principali newsreader. == Istruzioni per cancellare i propri articoli con i principali newsreader == Occorre fare attenzione perché probabilmente il vostro newsreader ha due comandi simili, uno per inviare il comando di cancellazione e l'altro per cancellare l'articolo dal proprio ''spool'' locale, ovvero dall'archivio mantenuto dal proprio lettore news. Di seguito vengono descritti solamente i comandi per far preparare dal proprio newsreader un articolo di cancellazione da distribuire automaticamente a tutta usenet. === Outlook Express === "Annulla messaggio" dal menù Messaggio === Free Agent e Forté Agent === Versione 3.x/4.x: "Rescind Usenet Post" dal menù "Action"[[BR]] Versioni 1.x/2.x inglese: "Cancel Usenet Message" dal menù "Post"[[BR]] Versioni 1.x/2.x italiana: "Cancella dal server un tuo messaggio Usenet" dal menù "Invia" === XNews === Versione inglese: "Cancel Message" dal menù "Article"[[BR]] Versione italiana: "Cancella messaggio" dal menù "Articolo" === Mozilla/Netscape/Thunderbird === Cliccare l'articolo con il tasto destro e selezionare "Cancel Message" o "Elimina messaggio". === Dialog === Versione inglese: [[BR]]Cancellare un articolo: "Cancel Usenet Message" dal menù "Post". [[BR]]Sovrascrivere un articolo: "Supersedes Usenet Message" dal menù "Post". Versione italiana: [[BR]]Cancellare un articolo: "Cancella un tuo messaggio Usenet (Cancel)" dal menù "Invio". [[BR]]Sovrascrivere un articolo: "Sovrascrivi un tuo messaggio Usenet (Supersedes)" dal menù "Invio". === Pan === Cancellare un articolo: "Cancel" dal menù "Article".[[BR]] Sovrascrivere un articolo: "Supersede" dal menù "Article". == Cancellazione di un articolo inviato su un gruppo moderato == I ''Cancel'' per poter funzionare su un gruppo moderato devono essere approvati dal moderatore. Quando è il moderatore ad avere necessità di cancellare un articolo sul gruppo da lui moderato, è opportuno che utilizzi un tool idoneo alla creazione di un ''Cancel'', utilizzando ad esempio il software scritto da Davide Veneziano chiedere direttamente a lui maggiori info: [mailto:vene@vene.ws Davide Veneziano]. Si tenga tuttavia presente come, i ''Cancel'' inviati su di un newsgroup moderato soffrano dei problemi comuni a tutti questi comandi. È anche per questo che non viene considerato utile ''Retromoderare'' un newsgroup, permettere cioè la pubblicazione di '''ogni''' articolo salvo poi cancellare quelli ritenuti non aderenti al manifesto del newsgroup. Non è ammessa la cancellazione di un articolo di servizio (RFD o CFV o annunci) inviato dal GCN in applicazione delle regole della gerarchia ''it.*''. == Assicurarsi che l'articolo sia stato effettivamente cancellato == Per assicurarsi che il ''Cancel'' abbia effettivamente funzionato, la procedura è molto semplice. [[BR]]Si può cancellare l'articolo incriminato dal proprio newsreader e scaricarlo di nuovo (quasi tutti i programmi permettono di scaricare unicamente un articolo particolare, basta conoscerne il Message-ID, ossia l'identificativo univoco presente tra gli header), oppure collegarsi al server tramite telnet e recuperarlo con il comando ''Article'' seguito dal Message-ID. Per Windows un piccolo programma gratuito per collegarsi tramite telnet è [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTy]. [[BR]]L'operazione è molto semplice, una volta avviato il programma si deve inserire il nome del server nel campo "''Host Name''" e "119" sotto "''Port''", quindi cliccare su "''Open''". A questo punto dovrebbe apparire la finestra con il messaggio di benvenuto del server. Ora digitando "''help''" otterremo la lista dei comandi disponibili su quel determinato newsserver, tra cui quelli eventualmente necessari per autenticarci. A questo punto basterà dare il comando "''Article ''" (senza virgolette, ovviamente), ove "" è il Message-ID dell'articolo che vogliamo recuperare completo di parentesi angolari. Se l'articolo non è stato cancellato, lo vedremo apparire. [[BR]]Piccolo suggerimento: non è necessario riscrivere tutto il M-ID, si può incollarlo nella finestra, cliccando col tasto destro del mouse, dopo averlo copiato negli appunti. = Abusi = I comandi di cancellazione (''Cancel'' e ''Supersedes'') sono nati con lo scopo di offrire la possibilità ai frequentatori di Usenet di poter cambiare idea e rimuovere nei limiti del possibile un proprio articolo dalla Rete. Questo è un uso perfettamente legittimo a cui si è affiancato nel tempo quello della cancellazione, nei limiti delle convenzioni, dello spam (definito secondo dei criteri quantitativi, vedi paragrafo successivo) e della retromoderazione. Tutto il resto è net-abuse e come tale viene considerato inaccettabile dai gestori dei server news che si affacciano su Usenet. Chiunque cancelli un articolo non proprio oppure cancelli spam al di fuori delle modalità accettate vedrà che accadranno due cose: 1. l'articolo impropriamente cancellato verrà immediatamente rispedito con una procedura automatica o semi-automatica; 2. l'abuso verrà segnalato al fornitore di servizi di colui che ha inviato il cancel impropriamente. I comandi di cancellazione sono stati abusati pesantemente nel passato e questo è il motivo principale per cui molti server oggi non li onorano più, vanificando di fatto questa utilissima funzionalità. == E se qualcuno ti cancella gli articoli? == Prima di tutto occorre precisare che se non vedete più il vostro articolo è molto improbabile che esso sia stato cancellato da qualcuno. Piuttosto è stato rimosso localmente dal vostro ''newsreader'' oppure dal vostro server a causa della sua scadenza. In ogni caso, l' unico modo per essere certi che qualcuno abbia cancellato abusivamente un articolo è quello di reperire il ''cancel''. Come fare? La cosa è semplice, ma non alla portata di tutti. Per capire bene il problema occorre sapere che i ''cancel'' vengono passati col ''feed'' assieme agli articoli "normali", ma questi '''non''' vengono conservati nel gruppo dell' articolo da loro cancellato, piuttosto vengono depositati in un gruppo "gestionale" chiamato ''control.cancel'', che per il fatto di non essere un gruppo canonico viene categorizzato come "pseudogruppo". Tutti i news server hanno quel gruppo, ma molti amministratori decidono di non renderlo visibile ai propri clienti. Tornando a noi, per recuperare un ''cancel'' occorre quindi andare a cercare il Message-ID tra tutti gli articoli conservati in ''control.cancel''. Questa operazione presenta però due problemi: 1. occorre trovare un server che consenta l' accesso allo pseudogruppo; 1. ''control.cancel'' contiene '''tutti''' i cancel di '''tutti''' i gruppi. Può essere pertanto molto grande e quindi richiedere molto tempo per essere scaricato. In ogni caso occorre cercare con Message-ID dell' articolo che sospettate essere stato cancellato tra gli ''header'', in particolare in: {{{ Control: Cancel Message-ID }}} Un volta trovato, avete pescato il colpevole. A questo punto occorre investigate la provenienza dell'articolo (come fare esula dagli scopi di questo documento) e fare una bella segnalazione sia su it.news.net-abuse (così qualcuno provvederà a fare il ''repost'' del vostro articolo indebitamente eliminato) sia al provider dell'incauto cancellatore per chiederne la sospensione del suo ''account''. Se andare a trovare l'articolo di cancellazione è troppo complicato, la cosa più semplice da fare è quella di chiedere su it.news.net-abuse che qualcuno faccia il lavoro investigativo per voi, ovviamente occorre fornire sempre il Message-ID. = Cancellazione dello spam = Nel corso degli anni si è raggiunto un consenso ampio sul fatto che certi articoli inviati in copie multiple sostanzialmente uguali possano essere cancellati. La procedura funziona su criteri quantitativi e automatizzati. Esistono dei robot che funzionano praticamente su tutte le gerarchie (e quindi non solo it.*) che emettono dei cancel sullo spam dei newsgroup. Questo viene definito secondo dei criteri oggettivi e non legati quindi al contenuto dei post; in pratica gli articoli identici in crosspost e/o multipost, identificati esaminando una finestra di 45 giorni, vengono cancellati se l'Indice di Breidbart (BI) è maggiore di 20. Questo indice si calcola sommando la radice quadrata del numero di gruppi nei quali viene spedito un articolo in crosspost. Per esempio, se una articolo viene spedito in crosspost su 2 gruppi e in un secondo crosspost su altri 9 abbiamo un BI pari a 4 (sqrt(2) + sqrt(9), cioè (1 + 3). Un altro esempio rilevante è quello del multipost senza crosspost, che per attivare i robot dovrebbe essere spedito su almeno 20 newsgroup. C'è un'eccezione, anzi due contando quello che accade specificamente su it.* . La prima è che se un articolo ha già raggiunto il BI di 20 da quel momento in poi può essere sempre cancellato. Questo spiega perché gli articoli di MMF (quelli per intenderci delle catene di sant'antonio alla "Rasmus Lino") possono essere cancellati a vista, hanno infatti superato da anni il BI di 20. L'altra eccezione che riguarda it.* è che alcuni spammer particolarmente ostinati, tipo quelli che hanno infestato la gerarchia it.sesso.*, vengono cancellati a vista. In generale comunque su it.* il BI minimo è un po' più restrittivo di quello che ho descritto prima, anche se di solito non si usa un robot specifico oltre a quello che controlla i crosspost ma si cancella lo spam in accordo con le situazioni individuali. == I Cancel-Lock e NoCem == I comandi ''Cancel'' e ''Supersedes'' sono nati con lo scopo di fornire all'utilizzatore delle news l'opportunità di cancellare o modificare i propri articoli. Il fiorire dello Spam da un lato e l'uso abusivo che se ne è fatto dall'altro hanno di fatto invalidato l'uso per il quale questi comandi distribuiti erano stati pensati. Per ripristinare quindi la funzionalità originale sono stati quindi ideati i Cancel-Lock e No''''''Cem, vediamo che cosa sono. === Cancel-Lock === In pratica si tratta di un sistema che mediante sistemi crittografici abbastanza sicuri permette la cancellazione di un articolo __solo__ al suo autore. In fase di pubblicazione su Usenet, per ogni articolo si genera al volo una stringa di caratteri segreta e la si crittografa con un algoritmo di hashing asimmetrico [[FootNote(L'hashing è la trasformazione di una stringa di caratteri a lunghezza variabile in un'altra stringa a lunghezza fissa. Le due avranno una corrispondenza asimmetrica in quanto si può trasformare la stringa A nel suo hash B, ma non è possibile ricalcolare dall'hash la corrispondente stringa originaria.)]]. A questo punto si invia l'articolo con un header Cancel-Lock: che includa l'hash in questione. Quando si decide di spedire un Control: cancel, questo includerà l'header Cancel-Key con la stringa originale, il server news a questo punto verificherà che le due stringhe coincidano e se questo è il caso provvederà alla rimozione dello stesso. Per un newsreader è semplice generare chiavi segrete al volo senza così dover gestire un database usando una stringa costituita da una parte variabile (per esempio il Message-ID dell'articolo da inviare) e una parte costante che può essere una password scelta dall'utente, il tutto a sua volta crittografato. Il Cancel-Lock, sebbene sia immediatamente utilizzabile ed esista anche molto codice già scritto, non è stato adottato da nessun server news e per ora è difficile prevedere che un giorno verrà ad essere usato. === NoCem === È vero che una diffusione generale del Cancel-Lock impedirebbe l'uso dei cancel per eliminare lo spam, uso che comunque ha di per sè vari problemi strutturali, ma è anche vero che ormai tutti i cancellatori di spam inviano in contemporanea anche le segnalazioni No''''''Cem da dietro i server che comunque utilizzano a monte dei filtri sullo spool, in questo modo viene cancellato solo quello che passa la barriera dei filtri. No''''''Cem (si legge "No see them", ovvero "non li vedi") è una validissima alternativa all'uso degli articoli di cancellazione ed è ormai ampiamente sperimentata. È stato progettato proprio per sopperire ai problemi architetturali dei Cancel nel rendere Usenet leggibile. In pratica si tratta di un software a se stante che rimuove dallo spool (teoricamente anche quello di un semplice newsreader, ma più comunemente di un server) tutti post segnalati da entità ritenute degne di fiducia, questo mediante degli speciali avvisi di cancellazione firmati. Gli avvisi No''''''Cem pur essendo simili ai ''Cancel'' superano quindi i due maggiori limiti strutturali che hanno reso inadatto il "Control: Cancel" come mezzo a posteriori[[FootNote(Il controllo a priori dello spam viene fatto con dei filtri che agiscono durante il transito degli articoli, prima che questi vengano salvati nello spool.)]] di eliminazione dello spam. Infatti prima di tutto un singolo articolo può contenere una intera lista di Message-ID di articoli da cancellare, al contrario del ''Control: cancel'' che può cancellare un solo articolo alla volta. Inoltre gli avvisi No''''''Cem sono autenticati, con loro è quindi possibile onorare gli avvisi di alcune specifiche fonti piuttosto che altre. = Bibliografia = * Questo documento fornisce tutti i dettagli sulla cancellazione dal punto di vista tecnico, come funziona, come farla con i principali newsreader, come farla a mano: [http://www.xs4all.nl/~rosalind/faq-care.html]; * questo documento di Tim Skirvin descrive la cancellazione dal punto di vista delle politiche di gestione di Usenet: [http://www.killfile.org/~tskirvin/faqs/cancel.html]; * descrizione formale del Cancel Lock [http://www.landfield.com/usefor/drafts/draft-ietf-usefor-cancel-lock-01.txt]; * un articolo sul Cancel Lock e le sue eventuali alternative, nessuna è stata mai messa in pratica: [http://www.templetons.com/usenet-format/howcancel.html]; * la cancellazione dello spam va fatta con criterio. Una delle cose importanti da tenere conto è la convenzione $alz secondo la quale il Message-ID di un articolo di cancellazione deve essere fatto in modo tale che chiunque cancelli un certo articolo generi sempre un ''Cancel'' con il Message-ID corrispondente identico, in modo da prevenire la distribuzione su Usenet di articoli di cancellazione multipli e ridondanti (infatti se il Message-ID è sempre lo stesso un server accetterà il primo e rifiuterà tutti i successivi). Il fatto di poter prevedere il Message-ID però consente agli spammer di proteggere la loro spazzatura dalla cancellazione inviando in parallelo dei finti ''Cancel'' che verranno distribuiti prima dei veri ''Cancel'' prevenendo così la cancellazione da parte dei vari cancelbot antispam. A questo proposito i cancellatori di spam hanno cambiato l'algoritmo abbandonando la convenzione $alz. Questo è l'articolo che lo annuncia: [http://groups-beta.google.com/group/news.admin.net-abuse.policy/msg/efb4e8d940484b70]; * il sito ufficiale del No''''''Cem: [http://www.cm.org/]; * l'archivio dei cancellatori di spam che si servono del No''''''Cem: [http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html]; * due pagine che descrivono il comando di cancellazione in vari newsreader: * [http://web.presby.edu/~nnqadmin/nnq/cancel.html] * [http://kb.indiana.edu/data/aewv.html]. = Autori = * Carlo Fusco, CarloFusco * [wiki:Self:MassimoPetracci Gesu`] * Mario Benvenuti = Ringraziamenti = In ordine assolutamente casuale: * Marco d'Itri = Storia delle revisioni = {{{#!CSV -3 Versione e data;Commento;HIDDEN! V 1.0 06/2003; Prima versione completa del documento }}}