SFMIKE

 

Sfmike è l'utility di trasmissione del suono di Speak Freely.

Si può inviare audio alla macchina <hostname> su cui è in esecuzione il programma sfspeaker con:

           sfmike <hostname>

e in questo modo si invia audio in tempo reale, oppure:

           sfmike <hostname> <soundfile>

dove <soundfile> è uno (o più) file audio nel formato Sun (.au) o GSM compresso (.gsm).

L' <hostname> può essere sia un nome di un host locale o di Internet che un indirizzo IP numerico. Se la rete che si sta usando supporta l' IP multicasting, si può trasmettere a un gruppo multicast semplicemente fornendo il suo nome o l’indirizzo IP.

Se l’host con cui si sta comunicando sta usando un numero di porta diverso da quello di default configurato nel Makefile, è necessario specificare il numero di porta dopo il nome dell’host o l’indirizzo IP, separandolo con “:” (ad esempio 192.10.0.1:1234).

Gli utenti con un collegamento Internet dial-up che assegna un differente nome e un differente indirizzo IP ad ogni sessione, possono pubblicare i loro correnti indirizzi ad un server "Look Who’s Listening". (Un server Look Who’s Listening è disponibile al sito lwl.fourmilab.ch.)

Sfmike fornisce molti algoritmi di cifratura tra cui AES, Blowfish, IDEA, DES, e una chiave letta da un file. Se pgp o gpg è istallato, sfmike può invocarlo automaticamente per trasferire in sicurezza una chiave di sessione generata casualmente all’host con cui sta comunicando.

Uso:   con una forma di interazione push-to-talk , l’utente può:

punto elenco

inviare messaggi testuali premendo il tasto “.”,

punto elenco

inviare messaggi audio premendo la “bar space”,

punto elenco

ricevere messaggi audio  premendo la “bar space”,

punto elenco

terminare premendo il tasto “q”.

Sfmike fornisce una serie di opzioni di seguito elencate:

-bakey

La chiave specificata in key è usata per cifrare il suono trasmesso utilizzando l'algoritmo AES. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando. La chiave è una stringa di testo di lunghezza variabile. Se essa è formata da più parole deve essere specificata tra virgolette. La chiave AES di 128 bits è calcolata applicando l'algoritmo MD5 alla chiave data. Può essere utilizzata anche una chiave a 256 bits semplicemente specificando due frasi dopo il comando -ba separate dal segno "+".

-bfkey

La chiave specificata in key è usata per cifrare il suono trasmesso usando l'algoritmo Bowfish. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando. La chiave è una stringa di testo di lunghezza variabile. Se essa è formata da più parole deve essere specificata tra virgolette. La chiave Bowfish di 128 bits è calcolata applicando l'algoritmo MD5 alla chiave key.

-bxhexkey

La chiave specificata in hexkey è usata per criptare il suono trasmesso usando l'algoritmo AES. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando. La chiave è espressa in forma esadecimale e può avere lunghezza 128, 192 o 256 bits. Non è calcolato nessun hash. Se la lunghezza della chiave è inferiore viene eseguito il padding.

-c

Questa opzione abilita una seplice compressione del suono usata per la sua compatibilità con le prime versione di sfspeaker.

-e

Stampa la chiave di sessione sullo standard output. Successivamente la chiave può essere spedita all'altro utente tramite pacchetto pgp oppure con un qualsiasi algoritmo standard di cifratura.

-f

Comprime il suono utilizzando l'algoritmo ADPCM. Questa compressione riduce il volume dei dati trasmessi di un fattore di 2, inoltre ha una perdita di fedeltà inferiore a -c.

-ikey

La chiave specificata in key è usata per criptare il suono trasmesso usando l'algoritmo IDEA. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando. La chiave è una stringa di testo di lunghezza variabile. Se essa è formata da più parole deve essere specificata tra virgolette. La chiave IDEA di 128 bits è calcolata applicando l'algoritmo MD5 alla chiave key.

-kkey

La chiave specificata è usata per cifrare il suono usando una versione leggermente modificata dell'algoritmo DES. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando. La chiave è una stringa di testo di lunghezza variabile. Se essa è formata da più parole deve essere specificata tra virgolette. Al parametro key viene applicato l'algoritmo MD5 e dai 128 bits vengono estratti 56 bits con operazioni di XOR e AND utilizzati per la chiave DES.

-lpc

Comprime il suono utilizzando un algoritmo sperimentale per la codifica lineare preditiva, sviluppato da Ron Frederick di Xerox PARC. Questo algoritmo ha un fattore di compressione elevato, più 12 a 1 con una qualità del suono relativamente buona. Si consiglia di utilizzare quest'opzione col volume del microfono basso.

-lpc10[rn] Comprime il suono con LPC10. Come LPC anch'esso ha un fattore di compressione molto elevato, più di 26 a 1, con una qualità di suono adeguata alle comunicazioni vocali.
-n Disabilita la compressione del suono.
-ofilename

Il contenuto del file specificato in filename è usato come un "key file" per criptare il suono da trasmettere. Il file deve essere almeno di 8000 byte. L'utente ricevente (sfspeaker) per decifrare il messaggio deve utilizzare la stessa opzione sulla linea di comando.

-rtp

Trasmette i dati utilizzando il protocollo di trasporto RTP. Quando utilizziamo RTP si può utilizzare solo la cifratura DES (-k) e non possono essere utilizzate la compressione semplice (-c) e LPC10 (-lpc10[rn]).

-t

Comprime il suono utilizzando l'algoritmo GSM, questa è la compressione di default. Questo algoritmo ha un fattore di compressione di 5 a 1 con una perdita di fedeltà del suono molto bassa.

-vat

Trasmette i dati utilizzando il protocollo Visual Audio Tool (VAT). Quando utilizziamo VAT si può utilizzare solo la cifratura DES (-k) e non possono essere utilizzate la compressione semplice (-c) e LPC10 (-lpc10[rn]).

-zuser_list

Se pgp è istallato sulla macchina, genera una chiave di sessione casuale a 128 bits utilizzata da pgp, la  cifra con la chiave pubblica specificata nella user list e la trasmette agli utenti della lista.

 

La figura seguente mostra l'interazione tra sfspeaker e sfmike :