AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 903640
Accepted
Tono Nam
Tono Nam
Asked: 2018-03-21 09:57:59 +0800 CST2018-03-21 09:57:59 +0800 CST 2018-03-21 09:57:59 +0800 CST

使用星号进行安全呼叫 (SRTP) 时,为什么 SIP 设备需要客户端证书?

  • 772

我刚刚按照本教程为 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 仍然设法连接到星号并拨打电话。Phone X 在拨打电话时也会在屏幕上锁定,这意味着通话已被加密。Asterisk 显示呼叫正在通过 SRTP。我无法区分具有 CLIENT 证书的手机和手机 X。所以我的问题是为什么教程告诉您生成客户端证书?

security
  • 1 1 个回答
  • 2112 Views

1 个回答

  • Voted
  1. Best Answer
    Andrew
    2018-03-21T10:31:02+08:002018-03-21T10:31:02+08:00

    我之前在不需要客户端证书的情况下将 SRTP 与 Asterisk 一起使用,但正如所指出的,这允许您根据证书的颁发者控制访问并保证 SIP 请求的来源。

    这使您可以验证电话是否由您设置,而不仅仅是随机找到您的 SIP 服务器的人。就像使用 TLS 时提供证书的服务器一样,您可以确认服务器不只是一些随机的中间人攻击,因为很难生成有效的重复证书。如果您是唯一可以为您的 SIP 设备颁发证书的人,那么只有拥有您证书的设备才是真正的设备,那么其他一切都是骗局。

    从这里开始,沿着相互认证的道路前进:https ://en.wikipedia.org/wiki/Client_certificate还有这个:https://en.wikipedia.org/wiki/AAA_(computer_security)

    SRTP 只是一种加密机制,可让您在开放网络上使用 Wireshark 之类的东西时防止其他人监听对话。想想当地咖啡店的开放式无线网络。然而,仅 SRTP 本身并不足以保证安全性;仅仅因为通信是加密的,并不意味着源或目的地是有效的。

    • 3

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve