Почему при безопасном вызове с помощью звездочки (SRTP) для SIP-устройств требуются сертификаты клиентов?

Я только что добавил безопасность в Asterisk следуя этому руководству:

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

Обратите внимание, что звездочка не устанавливается по умолчанию с srtp по умолчанию. Чтобы иметь возможность следовать этому руководству, вы должны установить звездочку с помощью libsrtp и pjsip. Вот как я установил звездочку для поддержки 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

В любом случае это не является частью вопроса.

Итак, я выполнил инструкции и смог совершать зашифрованные вызовы.

Повторяя шаги по подключению всех телефонов , я не понимал, почему мне нужно было генерировать сертификат для каждого sip-устройства . На сервере уже есть один сертификат, зачем телефонам другой сертификат? Другими словами, я не понимал, почему мне пришлось выполнить шаг из руководства, который гласит:

«мы генерируем сертификат клиента для нашего 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

Поэтому с одним из телефонов я решил пропустить этот шаг, просто для любопытства. Я не сгенерировал клиентский сертификат для телефона X, и по какой-то причине телефон X все же смог подключиться к asterisk и совершать звонки. Телефон X также установил блокировку экрана при совершении звонков, что означает, что звонок был зашифрован. Asterisk показал, что вызов проходил через SRTP. Я не мог определить разницу между телефонами с сертификатом КЛИЕНТА и телефоном X. Итак, мой вопрос: почему в учебнике говорится о создании сертификата клиента?

0
задан 20 March 2018 в 19:57
1 ответ

Раньше я использовал SRTP с Asterisk, не требуя сертификата клиента, но, как уже указывалось, это позволяет вам контролировать доступ на основе поставщик сертификата и гарантирует источник SIP-запроса.

Это позволяет вам подтвердить, что телефон настроен вами, а не просто случайным образом, обнаружившим ваш SIP-сервер. Так же, как сервер, представляющий сертификат при использовании TLS, вы можете подтвердить, что сервер - это не просто случайная атака Man-in-the-Middle из-за сложности создания действительного дубликата сертификата. Если вы единственный, кто может выдавать сертификат для ваших SIP-устройств, то настоящими устройствами являются только те устройства с вашим сертификатом, все остальное - просто мошенничество.

Начните здесь и следуйте по следу для взаимной аутентификации: https://en.wikipedia.org/wiki/Client_certificate Также это: https://en.wikipedia.org/wiki/AAA_ (computer_security)

SRTP - это просто механизм шифрования, который позволяет вы, чтобы другие не могли подслушивать разговор при использовании чего-то вроде Wireshark в открытой сети. Подумайте об открытии Wi-Fi в местном кафе. Однако самого SRTP недостаточно для гарантии безопасности; только потому, что соединение зашифровано, это не означает, что источник или пункт назначения действительный .

1
ответ дан 4 December 2019 в 16:00

Теги

Похожие вопросы