VoIP: SIP-over-TLS and sRTP: Flyingvoice

Flyingvoice likes to create phones a bit different; for example they include a Wi-Fi Hotspot, so every cubicle has its own access point. Whether such a device—without 5 GHz and therefore without MU-MIMO and IEEE 802.11ac—makes sense in the year 2019, has to be decided by the customers. Although the industry integrates DECT since 2007, to enable HD Voice handsets via CAT-iq in the All-IP area, there is no DECT solution from Flyingvoice.

Last tested firmware

3.20 (201711140510)
retested in May 2020 with 3.20 (201906060632)
The build number (or better the date 2017 Nov. 14th, 05:10 am) is important because a previous firmware had the same version but was from Feb. 24th.

Configuration

Password: User Admin: admin/admin
User Normal: user/user
User Basic: useradmin/admin
Web → Administration → Management
HTTPS: enabled on default
Update: Web → Administration → Firmware
Trust Anchors: Web → Administration → Certificates → Type: VoIP CA certificate: Base64
SIP-URI User: Web → SIP Account → Line → Phone Number
Web → SIP Account → Line → Account
SIP-URI Host: Web → SIP Account → Line → Proxy Server
SIP-over-TLS: Web → SIP Account → SIP Settings → Transport: TLS
Web → SIP Account → Line → Proxy Port: 5061
Web → SIP Account → Line → (SIP Advanced) Proxy DNS Type: A (required; DNS SRV supports only UDP)
Web → SIP Account → Line → (SIP Advanced) NAT Keep-alive Interval: 0 (otherwise CRLF are sent to port 5061 via UDP)
Web → Administration → Certificates → Type: VoIP Client Certificate: example
Web → Administration → Certificates → Type: VoIP Private Key: example
(the latter two are both required; even without TLS mutual authentication)
SDES-sRTP: Web → SIP Account → SIP Settings → SRTP
which is RTP/SAVP

Bad Defaults

These features are disabled on default, although they are automatically negotiated. Tests revealed they work. Therefore, no reason exists to disable those on default.

Session Timers: Web → SIP Account → Line → (SIP Advanced) Session Refresh Time: 1800
PRACK: Web → SIP Account → Line → (SIP Advanced) 100rel: Enable
Ringing Time: Web → Phone → Preferences → (Regional): 120

Software Bugs

SHA-2 Digest: does not pick MD5, continues without header Authorization, therefore is not able to register; therefore incompatible with Linphone
DNS-SRV: missing for TCP and TLS; therefore DNS-NAPTR missing, too
Audio: G.726-32 has the wrong endianness
Mitigation: set ‘g726nonstandard=yes’ in your Digium Asterisk
Audio DiffServ: not enabled on default
Mitigation: Web → SIP Account → VoIP QoS → RTP: 46 → (button) Reboot
Signaling DiffServ: works not for TCP (and TLS), only for UDP
IP Port Source: not the actual port but another ephemeral port in the SIP headers Via and Contact
Mitigation: unknown; service has to ignore it and re-use the TCP based connection instead

Security

Bugs: SDES-sRTP key with reduced entropy (keys observed were 00xxxxxx1234567890123456789012 where x is 0-9),
SIP-over-TLS without authentication,
missing TLS_ECDHE_[RSA|ECDSA]_WITH_AES_128_GCM_SHA256,
Cipher Suites include RC4, Single-DES, EXPORT (OpenSSL 1.0.1l or older), and
ECDHE curves with less than 224 bit (OpenSSL 1.0.1; ssl/t1_lib.c:pref_list)
Privacy: Webpage is hijacked fixed
device phones home to acs1.flyingvoice.net (not via HTTPs but HTTP)
Mitigation: Web → Administration → TR-069 → ACS URL: empty
(if you just disable this feature, the phone continues to send telemetry like on a warm reboot; therefore empty the URL)
device phones home to prv1.flyingvoice.net (not via HTTPs but HTTP)
Mitigation: Web → Administration → Provision (Configuration Profile): Disable
device phones home to log1.flyingvoice.net (not via HTTPs but HTTP)
Responsible Disclosure: not possible
Firmware Update: missing Automation
missing Newsletter

Miscellaneous

Model Range

Power Supply

5 V 1 A, Coaxial: 5.5 mm × 2.1 mm

back to the other phones.