Ao fazer chamadas seguras com asterisco (SRTP), por que são necessários certificados de cliente para dispositivos SIP?

Ao fazer chamadas seguras com asterisco (SRTP), por que são necessários certificados de cliente para dispositivos SIP?

Acabei de adicionar segurança ao Asterisk seguindo este tutorial:

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

Observe que o asterisk não é instalado por padrão com o srtp por padrão. Para poder seguir esse tutorial você deve instalar o asterisk com libsrtp e pjsip. Aqui está como instalei o asterisk para oferecer suporte ao 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 qualquer forma, isso não faz parte da questão.

Então segui o tutorial e consegui fazer chamadas criptografadas.

Enquanto repetia os passos para conectar todos os telefonesNão entendi porque tive que gerar um certificado para cada dispositivo sip. O servidor já possui um certificado, por que os telefones precisam de outro certificado? Em outras palavras, não entendi porque tive que realizar a etapa do tutorial que diz:

"geramos um certificado de cliente para nosso 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

Então, com um dos telefones resolvi pular essa etapa só por curiosidade. Não gerei um certificado de cliente para o telefone X e, por algum motivo, o telefone X ainda conseguiu se conectar ao asterisk e fazer chamadas. O Phone X também bloqueou a tela ao fazer chamadas, o que significa que a chamada foi criptografada. O Asterisk mostrou que a chamada estava passando pelo SRTP.Não consegui perceber a diferença entre os telefones que tinham um certificado de CLIENTE e o telefone X. Então, minha pergunta é: por que o tutorial diz para você gerar um certificado de cliente?

Responder1

Já usei SRTP com Asterisk antes sem exigir certificado de cliente, mas como apontado, isso permite controlar o acesso com base no emissor do certificado e garantir a origem da solicitação SIP.

Isso permite que você valide se o telefone foi configurado por você, e não apenas por alguém aleatório que encontrou seu servidor SIP. Assim como um servidor apresentando um certificado ao usar TLS, você pode confirmar que o servidor não é apenas um ataque aleatório do tipo Man-in-the-Middle devido à dificuldade de produzir um certificado válido e duplicado. Se você é o único que pode emitir certificados para seus dispositivos SIP, então apenas os dispositivos com seu certificado são os dispositivos reais, todo o resto é apenas uma farsa.

Comece aqui e siga a trilha para autenticação mútua:https://en.wikipedia.org/wiki/Client_certificateTambém isto:https://en.wikipedia.org/wiki/AAA_(computer_security)

SRTP é apenas um mecanismo de criptografia que permite impedir que outras pessoas ouçam a conversa ao usar algo como o Wireshark em uma rede aberta. Pense em wi-fi aberto em sua cafeteria local. Porém, apenas o SRTP em si não é suficiente para garantir a segurança; só porque a comunicação é criptografada, não significa que a origem ou o destino sejaválido.

informação relacionada