アスタリスク (SRTP) を使用して安全に通話する場合、SIP デバイスにクライアント証明書が必要なのはなぜですか?

アスタリスク (SRTP) を使用して安全に通話する場合、SIP デバイスにクライアント証明書が必要なのはなぜですか?

次のチュートリアルに従って、Asterisk にセキュリティを追加しました。

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

デフォルトでは、asterisk は srtp と一緒にインストールされないことに注意してください。このチュートリアルに従うには、asterisk を libsrtp と pjsip と一緒にインストールする必要があります。srtp をサポートするために asterisk をインストールした方法は次のとおりです。

# (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デバイスごとに証明書を生成する必要がある理由がわかりませんサーバーにはすでに証明書が 1 つあるのに、なぜ電話機に別の証明書が必要なのでしょうか。言い換えると、チュートリアルの次の手順を実行する必要がある理由がわかりません。

「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

そこで、好奇心から、電話機の 1 つではその手順を省略することにしました。電話機 X のクライアント証明書を生成しなかったのですが、何らかの理由で電話機 X は asterisk に接続して電話をかけることができました。電話機 X は電話をかけるときに画面にロックを表示し、通話が暗号化されていることを示唆しました。Asterisk は通話が SRTP 経由で行われていることを示しました。クライアント証明書を持つ電話と電話 X の違いがわかりません。チュートリアルでクライアント証明書を生成するように指示されているのはなぜでしょうか。

答え1

以前、クライアント証明書を必要とせずに Asterisk で SRTP を使用したことがありますが、指摘されているように、これにより、証明書の発行元に基づいてアクセスを制御し、SIP 要求のソースを保証することができます。

これにより、電話が自分でセットアップされたものであり、SIP サーバーを見つけたランダムな誰かによるものではないことを検証できます。TLS 使用時にサーバーが証明書を提示するのと同様に、有効な複製証明書の作成が困難なため、サーバーがランダムな中間者攻撃ではないことを確認できます。SIP デバイスの証明書を発行できるのが自分だけである場合、証明書を持つデバイスだけが本物のデバイスであり、それ以外はすべて詐欺です。

ここから始めて、相互認証の道を進んでください:https://en.wikipedia.org/wiki/クライアント証明書これも:https://en.wikipedia.org/wiki/AAA_(コンピュータセキュリティ)

SRTPは、オープンネットワークでWiresharkなどを使用する際に、他人が会話を盗聴するのを防ぐための暗号化メカニズムです。近所のコーヒーショップのオープンWi-Fiを想像してみてください。しかし、SRTPだけではセキュリティを保証するのに十分ではありません。通信が暗号化されているからといって、送信元や送信先が安全であるとは限りません。有効

関連情報