Signal Messenger - How to deal with untrusted identities?

I’ve been successfully running the signal messenger add-on on my homeassistant installalation until the fateful day I switched phones. Since then every attempt at sending messages to my phone has failed as the number is now an “untrusted identity”, according to the log-file. I assume this has to do with the security number changing due to the phone-switch.

This problem, along with a solution, is described here: can't send messages anymore due to dbus-system trust not implemented · Issue #382 · AsamK/signal-cli · GitHub

Unfortunately, I am a non-technical person and can’t find where it might be possible for me to issue signal-cli commands (can’t find it via the terminal anyway). Does this need to be implemented via the add-on? Am I missing something?

Kind regards,

mindolluin

Hi,

Make sure your (recipient) phone number is still TRUSTED. After Signal App reinstallation, or a phone change that requires registration of the same number again, recipient’s number becomes UNTRUSTED for some reason. Open Terminal of your Home Assistant installation, issue a below command to verify if your (recipient’s) number is still TRUSTED. In the below example it is not:

COMMAND:

curl -X GET -H “Content-Type: application/json” ‘http://127.0.0.1:8080/v1/identities/SIGNAL_REGISTERED_PHONE_NUMBER

RESPONSE:

[{“number”:“SIGNAL_REGISTERED_PHONE_NUMBER”,“status”:“TRUSTED_VERIFIED”,“fingerprint”:“05 54 c4 bd bd 0d 3c dc 93 9f ef f9 1f a8 55 66 36 47 67 6c 0f fd 66 ec 4c db f4 78 19 9c 85 41 58”,“added”:“1684078013664 (2023-05-14T15:26:53.664Z)”,“safety_number”:“98621 60714 73762 32007 60028 03542 98624 60714 73762 32007 60028 04321”},{“number”:“RECIPIENT’S_NUMBER”,“status”:" UNTRUSTED ",“fingerprint”:“05 be b9 3c 60 ee 54 a4 94 9a 36 8d 57 55 ca 1c f2 4b 8a 03 9c ee 1d 56 9d 8a 83 d4 96 92 52 cf 0f”,“added”:“1703851032862 (2023-12-29T11:57:12.862Z)”,“safety_number”:“33531 91133 26546 32824 65167 24476 98624 60714 73762 32007 60028 01234”}]

COMMAND TO GET THE RECIPIENT’S NUMBER TRUSTED:

curl -X PUT -H “Content-Type: application/json” -d ‘{“verified_safety_number”: “RECIPIENT’S_NUMBER_SAFETY_NUMBER_STRING”}’ 'http://127.0.0.1:8080/v1/identities/SIGNAL_REGISTERED_PHONE_NUMBER/trust/RECIPIENT’S_NUMBER’

STATUS CHECK COMMAND:

curl -X GET -H “Content-Type: application/json” ‘http://127.0.0.1:8080/v1/identities/SIGNAL_REGISTERED_PHONE_NUMBER

RESPONSE:

[{“number”:“SIGNAL_REGISTERED_PHONE_NUMBER”,“status”:“TRUSTED_VERIFIED”,“fingerprint”:“05 54 c4 bd bd 0d 3c dc 93 9f ef f9 1f a8 55 66 36 47 67 6c 0f fd 66 ec 4c db f4 78 19 9c 85 41 58”,“added”:“1684078013664 (2023-05-14T15:26:53.664Z)”,“safety_number”:“98621 60714 73762 32007 60028 03542 98624 60714 73762 32007 60028 04321”},{“number”:“RECIPIENT’S_NUMBER”,“status”:“TRUSTED_VERIFIED”,“fingerprint”:“05 be b9 3c 60 ee 54 a4 94 9a 36 8d 57 55 ca 1c f2 4b 8a 03 9c ee 1d 56 9d 8a 83 d4 96 92 52 cf 0f”,“added”:“1703851032862 (2023-12-29T11:57:12.862Z)”,“safety_number”:“33531 91133 26546 32824 65167 24476 98624 60714 73762 32007 60028 01234”}]

SIGNAL_REGISTERED_PHONE_NUMBER - the phone number, +431212131491291 for example, that is registered to Signal, from which you send messages
RECIPIENT’S_NUMBER - your phone number, +436512131496734 for example
RECIPIENT’S_NUMBER_SAFETY_NUMBER_STRING - in the given example: 33531 91133 26546 32824 65167 24476 98624 60714 73762 32007 60028 01234

http://127.0.0.1:8080 is just an example. Change to your installation address, for example http://10.0.0.1:8080, or http://192.168.1.10:8080, you need to check it.

I hope it helps

Thank you! That worked perfectly!

@paulos unfortunately I need further assistance. :frowning:

curl -X GET -H "Content-Type: application/json" 'http://127.0.0.1:8080/v1/ident
ities/SIGNAL_REGISTERED_PHONE_NUMBER'

leads to

[{"number":"SIGNAL_REGISTERED_PHONE_NUMBER","status":"TRUSTED_VERIFIED","fingerprint":"A_FINGERPRINT","added":"A_NUMBER","safety_number":"A_SAFETY_NUMBER"},{"number":"RECIPIENT’S_NUMBER","status":"UNTRUSTED","fingerprint":"A_FINGERPRINT","added":"A_NUMBER","safety_number":"A_SAFETY_NUMBER"}]

When I try to execude:

curl -X PUT -H 'Content-Type: application/json' -d '{'verified_safety_number': 'RECIPIENT’S_NUMBER_SAFETY_NUMBER_STRING'}' 'http://127.0.0.1:8080/v1/identities/SIGNAL_REGISTERED_PHONE_NUMBER/trust/RECIPIENT’S_NUMBER' 

this happens after a while:

curl: (28) Failed to connect to 0.0.182.202 port 80 after 132574 ms: Couldn't connect to server

Thanks for the upcoming help. :slight_smile:

See here: