Cuando se realizan llamadas seguras con asterisco (SRTP), ¿por qué se necesitan certificados de cliente para dispositivos SIP?

Cuando se realizan llamadas seguras con asterisco (SRTP), ¿por qué se necesitan certificados de cliente para dispositivos SIP?

Acabo de agregar seguridad a Asterisk siguiendo este tutorial:

https://wiki.asterisk.org/wiki/display/AST/Secure+Calling+Tutorial#SecureCallingTutorial-Keys

Tenga en cuenta que asterisk no se instala de forma predeterminada con srtp de forma predeterminada. Para poder seguir ese tutorial debes instalar asterisk con libsrtp y pjsip. Así es como instalé asterisco para admitir srtp:

# (1) make sure everything is up to date
apt-get update
apt-get upgrade

# (2) Install dependencies that will be needed in order to install asterisk pjproject etc...
apt-get install aptitude -y
aptitude install build-essential -y
aptitude install git -y
aptitude install libssl-dev -y
aptitude install zlib1g-dev -y
aptitude install openssl  -y
aptitude install libxml2-dev -y
aptitude install libncurses5-dev -y
aptitude install uuid-dev -y
aptitude install sqlite3 -y
aptitude install libsqlite3-dev -y
aptitude install pkg-config -y
aptitude install libjansson-dev -y

# (3) make sure everything is up to date again
apt-get update
apt-get upgrade

# (4) Install libsrtp  (library used to encrypt rtp)
cd /root    
wget https://github.com/cisco/libsrtp/archive/v1.6.0.tar.gz
tar -xzf v1.6.0.tar.gz
cd libsrtp-1.6.0

./configure CFLAGS=-fPIC --prefix=/usr
make
make runtest
make install
cd ..

# (5) install pjproject 

git clone https://github.com/asterisk/pjproject pjproject
cd pjproject
 ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --with-external-srtp
make dep
make

make install
cd ..


# (6) Install Asterisk  WITH SRTP AND PJPROJECT

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvf asterisk-13-current.tar.gz
cd  asterisk-13.19.2
./configure --with-pjproject --with-ssl --with-srtp

make
make install
make samples
make config

De todos modos eso no es parte de la pregunta.

Entonces seguí el tutorial y pude realizar llamadas cifradas.

Mientras repetía los pasos para conectar todos los teléfonos.No entendí porque tenía que generar un certificado para cada dispositivo sip. El servidor ya tiene un certificado, ¿por qué los teléfonos necesitan otro certificado? En otras palabras no entendí porque tenía que realizar el paso del tutorial que dice:

"generamos un certificado de cliente para nuestro dispositivo SIP"

./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C phone1.mycompany.com -O "My Super Company" -d /etc/asterisk/keys -o malcolm

Así que con uno de los teléfonos decidí saltarme ese paso sólo por curiosidad. No generé un certificado de cliente para el teléfono X y, por alguna razón, el teléfono X aún logró conectarse al asterisco y realizar llamadas. Phone X también bloqueó la pantalla al realizar llamadas, lo que significa que la llamada estaba encriptada. Asterisk mostró que la llamada estaba pasando por SRTP.No pude distinguir entre los teléfonos que tenían un certificado de CLIENTE y el teléfono X. Entonces mi pregunta es ¿por qué el tutorial te dice que generes un certificado de cliente?

Respuesta1

He usado SRTP con Asterisk antes sin requerir un certificado de cliente, pero como se señaló, esto le permite controlar el acceso según el emisor del certificado y garantizar el origen de la solicitud SIP.

Esto le permite validar que el teléfono lo configuró usted y no solo alguien que encontró su servidor SIP al azar. Al igual que un servidor que presenta un certificado cuando utiliza TLS, usted puede confirmar que el servidor no es simplemente un ataque aleatorio de intermediario debido a la dificultad de producir un certificado duplicado válido. Si usted es el único que puede emitir certificados para sus dispositivos SIP, entonces solo aquellos dispositivos con su certificado son los dispositivos reales, todo lo demás es solo una estafa.

Comience aquí y siga el camino hacia la autenticación mutua:https://en.wikipedia.org/wiki/Client_certificateTambién esto:https://en.wikipedia.org/wiki/AAA_(seguridad_informática)

SRTP es solo un mecanismo de cifrado que le permite evitar que otros escuchen la conversación cuando usa algo como Wireshark en una red abierta. Piense en wifi abierto en su cafetería local. Sin embargo, el SRTP por sí solo no es suficiente para garantizar la seguridad; El hecho de que la comunicación esté cifrada no significa que el origen o el destino estén cifrados.válido.

información relacionada