Signal (軟件)

Signal是一款開源跨平臺加密即時通訊應用程序。其支持經由互聯網發送一對一和群組消息，消息類型包括文本、短語音、圖片、視頻及其他文件，同時提供語音或視頻通話功能。
Signal使用移動電話號碼註冊及管理賬戶，在2024年3月添加了可由用戶設置之用戶名，以允許用戶向其他用戶隱藏自己的電話號碼。並使用端到端加密來保護與其他Signal用戶的所有通訊。應用程序還帶有一些機制，給予用戶獨立驗證其聯繫人的身份和數據通道的完整性的能力。
Signal的所有軟件都是自由及開源的，由非營利組織Signal基金會和Signal Messenger有限公司開發。其用戶端和服務器端的程式碼均按AGPLv3授權發佈。Signal之Android正式版軟件通常使用了Google專營的Google Play服務（被預裝在大多數Android設備中），但它亦被設計為可在無Google Play服務的環境中運行。Signal還在iOS操作系統，以及Windows、macOS、Linux等桌面操作系統均有正式版的客戶端軟件。
非營利組織Signal基金會於2018年2月成立， WhatsApp聯合創始人布萊恩·艾克頓提供了初期5000萬美元之初始資金。自2025年1月，Signal已獲得超過2億2千萬之下載總量，並且該軟件擁有約7千萬月活躍用戶。自2025年1月，Signal已被安裝於超過1億臺Android設備上。

**歷史**

**2010年至2013年：起源**
Signal是RedPhone加密語音呼叫應用程序和TextSecure加密短信程序的後繼產品。RedPhone和TextSecure的測試版最初由Whisper Systems於2010年5月推出，Whisper Systems是一家由前twitter安全研究員馬克西·馬林史派克和機器人專家Stuart Anderson共同創立的創業公司

**2013年至2018年: Open Whisper Systems**
Open Whisper Systems的網站於2013年1月啟動。

**2018年至今：Signal技術基金會**
2018年2月21日，馬克西·馬林史派克和WhatsApp聯合創始人布萊恩·艾克頓宣佈成立Signal Technology Foundation，這是一個非營利組織，其使命是“支持、加速和擴大Signal進行私人通信的使命可訪問且無處不在”。阿克頓以5000萬美元的資金創立了基金會，並在2017年9月離開WhatsApp的母公司Facebook後成為基金會的執行主席。馬林斯派克繼續擔任Signal Messenger的第一任首席執行官。截至2020年，Signal完全依靠捐贈，作為非營利組織。
2022年1月10日，馬克西·馬林史派克宣佈辭去Signal Messenger首席執行官一職。他繼續留在Signal董事會，布萊恩·艾克頓自願在尋找新首席執行官期間擔任臨時首席執行官。

**功能**
Signal允許用戶與iOS、Android和桌面端的其他Signal用戶進行語音和視頻通話。由於其通話是通過Wi-Fi或運營商的數據連接進行，所有通話都是免費的（數據費除外），包括長途電話和國際長途電話。Signal還允許用戶向這些平臺的其他Signal用戶發送文本、文件、短語音、圖片、GIF和視頻消息。此外該應用程序還支持群組消息傳遞。
Signal用戶之間的所有通信會話都會自動進行端到端加密（加密密鑰在設備上生成及存儲，並非服務器）。Signal用戶可以通過比較密鑰指紋帶外數據（或掃描二維碼）驗證通信的對方符合其所聲稱的身份。該平臺採用Trust on first use機制，會在通信對方的密鑰發生變化時通知用戶。
2023年之前，Android用戶可以選擇將Signal作為默認的短信/彩信應用程序，從而除了標準的端到端加密Signal消息外，還可以發送和接收未加密的短信。於是用戶可以使用同一個應用程序與沒有Signal的聯繫人進行通信。截至2022年10月，由於安全和隱私問題，此功能已被棄用，並於2023年被移除。
TextSecure允許用戶設置一個密碼來加密本地消息數據庫以及用戶的加密密鑰。這不會加密用戶的聯繫人數據庫或消息時間戳。Android和iOS上的Signal應用程序可以使用手機的PIN碼、密碼或生物識別進行鎖定。用戶可以定義“屏幕鎖定超時”時間間隔，以便在手機丟失或被盜時提供額外的保護機制。
Signal具有定時發送消息的功能。此外，消息可以附加計時器，以便自動從發送方和接收方的設備中刪除消息。保留消息的時間段可以在5秒到4周之間，並且在每個接收者閱讀完他們的消息副本後開始計時。開發者們強調，這旨在作為一項協作功能，用於所有對話參與者都期望的少量數據清理自動化，而不是用於接收者是敵對方的情況。
Signal的應用程序圖標可以使用各種顏色主題進行自定義，應用程序名稱也可以自定義。消息可以帶有防劇透遮罩和斜體等效果，用戶可以通過二維碼互相添加。
對於雲備份，默認情況下Signal會將用戶的聊天記錄排除在外。密鑰保存在鑰匙串（Keychain）中。
Signal具有對已讀回執和鍵入指示符的支持，兩者均可禁用。
Signal允許用戶自動模糊照片中人物的臉部，以保護其身份。
Signal包含一個加密貨幣錢包功能，用於存儲、發送和接收應用內付款。除了某些地區和國家或地區外，該功能已於2021年11月在全球範圍內啟用。1，唯一支持的支付方式是MobileCoin。
2024年2月，Signal在其測試版應用程序中添加了用戶名功能。這是一項隱私功能，允許用戶在不共享電話號碼的情況下與他人通信。

**侷限性**
Signal要求用戶提供電話號碼進行驗證，從而無需用戶名或密碼，並方便聯繫人查找（見下文）。號碼不必和設備SIM卡上的號碼一樣；它可以是VoIP號碼或座機號碼，關鍵在於用戶能夠接收驗證碼，並需要一臺設備來安裝軟件。一個號碼在同一時間只能註冊到一臺移動設備上。帳戶註冊需要iOS或Android設備。
這種與電話號碼的強制連接（Signal與WhatsApp、KakaoTalk等應用也採用該機制）一直受到注重隱私的用戶的批評，被認為是一個“主要爭議”，因為他們不願意透露自己的私人號碼。一種解決方法是使用輔助電話號碼。使用可更改的公開用戶名，而非共享電話號碼，則是一項備受期待的功能。這項功能已於2024年2月在Signal測試版中添加。使用電話號碼作為身份標識符也可能會造成安全風險，因為攻擊者可能會盜用電話號碼。一個類似的漏洞在2022年8月被發現用來攻擊至少一名用戶，儘管這次攻擊是通過Signal的短信服務提供商進行的，而非用戶的運營商。這類威脅風險可以通過啟用Signal的註冊鎖功能來降低，該功能以一種雙因素身份驗證的形式，要求用戶輸入PIN碼才能在新設備上註冊電話號碼。
即使Signal努力隱匿用戶元數據，但通過網絡提供者以及各地的網絡監控仍然可以探察到元數據，洩露例如在線時間、向某位聯繫人發送消息的頻率以及基於IP地址的地理位置等在內的用戶行為模式。如果設備被惡意軟件入侵或者被他人物理訪問，Signal的安全效果將不能如期體現。類似於飛馬這樣的間諜軟件不會破解加密，而是會完全繞過加密機制，使攻擊者能夠通過屏幕或內存訪問已解密的消息。此外，加密只是保護敏感或機密通信的一個方面，對於政府的機密通信而言還需要嚴格的保管鏈過程、專用硬件以及遵循機密處理框架，目前的Signal並不支持這些。

**實用性**
2016年7月，互聯網協會發布了一項用戶研究，評估了Signal用戶檢測和阻止中間人攻擊的能力。該研究得出結論，28名參與者中有21名未能正確比較公鑰指紋以驗證其他Signal用戶的身份，並且這些用戶中的大多數人認為他們已經成功了，而實際上他們失敗了。四個月後，Signal的用戶界面進行了更新，以簡化驗證其他Signal用戶身份的過程。

**架構**

**加密協議**
Signal消息使用Signal協議（曾稱作TextSecure協議）進行加密。該協議結合了雙棘輪算法、預共享密鑰和擴展三元迪菲-赫爾曼 （X3DH）握手。它使用Curve25519、AES-256和HMAC-SHA256作為基元。該協議提供機密性、完整性、身份驗證、參與者一致性、目標驗證、前向保密、後向保密（又稱未來保密）、因果關係保留、消息不可鏈接性、消息否認、參與否認和異步性。它不提供匿名性保留，並且需要服務器來中繼消息和存儲公鑰材料。
Signal協議還支持端到端加密群聊。群聊協議是成對雙棘輪和Multicast encryption的組合。除了單對單協議提供的屬性外，群聊協議還提供發言者一致性、亂序彈性、丟棄消息彈性、計算平等、信任平等、子群消息傳遞，以及可收縮和可擴展的成員資格。
2014年10月，波鴻魯爾大學的研究人員發表了對Signal協議的分析。除其他發現外，他們還提出了對該協議的Unknown key-share attack，但總的來說，他們發現它是安全的。 2016年10月，來自英國牛津大學、澳大利亞昆士蘭科技大學和加拿大麥克馬斯特大學的研究人員發表了對該協議的正式分析。他們得出結論，該協議在密碼學上是可靠的。 2017年7月，波鴻魯爾大學的研究人員在對群組信使的另一項分析中發現了對Signal群組協議的純理論攻擊：知道群組秘密ID的用戶（由於以前是群組成員或從成員的設備中竊取了它）可以成為該群組的成員。由於無法猜測群組ID，並且此類成員更改會顯示給其餘成員，因此在不被發現的情況下很難執行此類攻擊。
，Signal協議已在WhatsApp、Facebook Messenger、Skype和Google Allo中實現，使得“全球超過10億人”的對話能夠進行端到端加密。在Google Allo、Skype和Facebook Messenger中，默認情況下不使用Signal協議加密對話；它們僅在可選模式下提供端到端加密。
直到2017年3月，Signal的語音通話都使用SRTP和ZRTP密鑰協商協議進行加密，該協議由菲爾·齊默爾曼開發。2017年3月，Signal過渡到新的基於WebRTC的呼叫系統，該系統引入了進行視頻通話的功能。Signal的語音和視頻通話功能使用Signal協議通道進行身份驗證，而不是ZRTP。

**身份驗證**
Signal用戶可以通過比較密鑰指紋帶外數據（或掃描二維碼）驗證通信的對方符合其所聲稱的身份。該平臺採用Trust on first use機制，以便在通信方的密鑰發生變化時通知用戶。

**本地存儲**
應用程序在接收和解密消息後，會將它們本地存儲在每個設備上的SQLite數據庫中，該數據庫使用SQLCipher加密。此數據庫的加密密鑰也存儲在本地，如果設備已解鎖，該密鑰則可被訪問。2020年12月，Cellebrite發表了一篇博文，宣佈他們的一款產品現在可以訪問此密鑰並使用它來“解密Signal應用程序”。科技記者後來發表文章，報道了Cellebrite如何聲稱有能力“侵入Signal應用程序”和“破解Signal的加密”。後一種解釋遭到了一些專家以及Signal的代表的反駁，他們表示Cellebrite最初的帖子是關於訪問“他們實際擁有的已解鎖的Android手機”上的數據，並且他們“可以打開應用程序查看消息”。類似的提取工具也存在於iOS設備和Signal桌面版上。

**伺服器**
Signal所採用的基礎設施來自遍及世界各地的大型供應商，如亞馬遜雲計算服務（AWS）、Google計算引擎（GCE）及Microsoft Azure等。除了路由Signal的消息外，服務器還有助於發現同時也是Signal用戶註冊的聯繫人以及自動交換用戶的公鑰。默認情況下，Signal的語音和視頻通話是雙方的點對點直接連接。如果呼叫者不在接收者的通訊簿中，則將呼叫路由通過服務器以隱藏用戶的IP地址。

**聯繫人發現**
服務器存儲註冊用戶的電話號碼、公鑰材料和推送令牌，這些都是建立呼叫和傳輸消息所必需的。為了確定哪些聯繫人也是Signal用戶，用戶聯繫電話號碼的密碼散列會定期傳輸到服務器。然後，服務器會檢查這些散列是否與任何註冊用戶的SHA256散列匹配，並在找到任何匹配項時通知客戶端。之後，散列的號碼將從服務器中丟棄。 2014年，馬克西·馬林史派克寫道，由於電話號碼的有限原像空間（所有可能散列輸入的集合），因此很容易計算出所有可能散列輸入到散列輸出的映射並反轉映射，並且“實用的隱私保護聯繫人發現仍然是一個未解決的問題”。 2017年9月，Signal的開發人員宣佈，他們正在研究一種方法，使Signal客戶端應用程序能夠“有效且可擴展地確定其地址簿中的聯繫人是否是Signal用戶，而無需向Signal服務透露其地址簿中的聯繫人”。

**元數據**
所有通信都受到TLS的保護。 Signal的開發人員斷言，他們的服務器不會保留有關誰在何時給誰打電話的日誌。 2016年6月，Marlinspike告訴《The Intercept》，“Signal服務器存儲的最接近元數據的信息是每個用戶最後一次連接到服務器的時間，並且此信息的精度降低到天，而不是小時、分鐘和秒”。
群組消息傳遞機制的設計使服務器無法訪問成員列表、群組標題或群組圖標。相反，群組的創建、更新、加入和離開由客戶端完成，客戶端以與傳遞一對一消息相同的方式將成對消息傳遞給參與者。

**互聯**
Signal的服務器架構在2013年12月至2016年2月期間是互聯（federation）的。2013年12月，宣佈Signal使用的消息傳遞協議已成功集成到基於Android的開源操作系統CyanogenMod中。從CyanogenMod 11.0開始，客戶端邏輯包含在一個名為WhisperPush的系統應用程序中。據Signal的開發人員稱，Cyanogen團隊為WhisperPush客戶端運行他們自己的Signal消息傳遞服務器，該服務器與主服務器聯合，以便兩個客戶端可以相互交換消息。 WhisperPush源代碼在GPLv3許可下可用。 2016年2月，CyanogenMod團隊停止了WhisperPush，並建議其用戶切換到Signal。 2016年5月，馬克西·馬林史派克寫道，與CyanogenMod服務器的聯合降低了用戶體驗並阻礙了開發，並且他們的服務器可能不會再次與其他服務器聯合。
2016年5月，馬克西·馬林史派克要求名為LibreSignal的第三方客戶端不要使用Signal服務或Signal名稱。結果，LibreSignal項目在2016年5月24日發佈公告稱該項目已“放棄”。 LibreSignal提供的功能隨後被Marlinspike整合到Signal中。

**代碼許可**
適用於Android、iOS和桌面的Signal客戶端的完整源代碼在GitHub上以自由軟件許可證的形式提供。這使得有興趣的人士可以檢查代碼並幫助開發人員驗證一切是否按預期運行。它還允許高級用戶編譯他們自己的應用程序副本，並將它們與Signal Messenger分發的版本進行比較。2016年3月，馬克西·馬林史派克寫道，除了由於缺乏Gradle NDK支持而未與項目構建一起編譯的一些共享庫外，Signal for Android是可重現的。 Signal的服務器是部分開源的，但由於安全原因，服務器軟件的反垃圾郵件組件是專有的並且是閉源的。

**反響**

**安全**
2014年10月，電子前哨基金會（EFF）在其更新的監視自衛指南中收錄了Signal。2014年11月，Signal在EFF的安全消息評分卡上獲得了滿分；因由以下方面加分：通信在傳輸過程中加密、通信使用提供商無法訪問的密鑰進行加密（端到端加密）、使用戶能夠獨立驗證其通信對象的身份、若密鑰被盜過去通信仍然安全（前向保密）、代碼開放可供獨立審查（開源）、安全設計文檔完善以及近期進行過獨立的安全性審計。彼時，“ChatSecure + Orbot”、Pidgin（配以OTR)、Silent Phone和Telegram的可選“秘密聊天”也在評分卡上獲得了七分（滿分）。
前美國國家安全局（NSA）技術員愛德華·斯諾登在多個場合認可了Signal。在他2014年3月在SXSW的主題演講中，他稱讚Signal的前身，TextSecure和RedPhone，易於使用。2014年12月，lang|de|明鏡週刊洩露了NSA一份日期為2012年6月的內部演示文稿幻燈片，其中NSA認為Signal的加密語音通話組件（RedPhone）本身就是對其訪問用戶私人數據任務的“重大威脅”，並且當與Cspace、Tor、Tails和TrueCrypt等其他隱私工具結合使用時，被評為“災難性”（catastrophic）的，並導致“幾乎完全喪失或缺乏對目標通信（及其）存在的洞察能力”。
在2016年民主黨全國委員會電子郵件洩露事件之後，《名利場》報道稱，Marc_Elias（希拉里·克林頓總統競選的總法律顧問）已指示DNC工作人員在說任何關於共和黨總統候選人唐納德·特朗普的負面言論時，必須專門使用Signal。
2017年3月，Signal獲得美國參議院軍械主管批准，供參議員及其工作人員使用。
2019年9月27日，在Google的Project Zero漏洞研究團隊工作的安全工程師Natalie Silvanovich披露了Android Signal客戶端中的一個漏洞，該漏洞可能讓攻擊者在用戶不知情的情況下監聽用戶。該項漏洞可使攻擊者向目標設備去電，並將其靜音。通話會建立連接並保持音頻通道開啟，然而設備持有者不會察覺音頻仍在被傳輸（不過設備持有者仍可能注意到來電伊始的鈴聲或震動）。該漏洞在報告的當天得到修復，並在Android應用程序的4.47.7版本中進行了修補。
2020年2月，歐盟委員會建議其工作人員使用Signal。在始於2020年5月的喬治·弗洛伊德抗議活動之後，5月25日至6月4日期間，Signal在美國被下載了121,000次。2020年7月，在香港國安法通過後，Signal成為香港在蘋果App Store和Google Play商店中下載次數最多的應用程序。
，Signal是向主流新聞媒體（如《華盛頓郵報》、《衛報》、《紐約時報》和《華爾街日報》）安全提供線索的聯繫方式。
間諜軟件公司Candiru_(spyware_company)與FinFisher聲稱若將其間諜軟件安裝到手機上的話，有能力從Signal提取消息。Signal的一些分支項目嘗試通過加密靜態數據來對抗這些問題。
2022年8月9日，馬來西亞首相伊斯梅爾·薩布里稱，他的Signal帳戶被“黑客入侵”且被第三者滲透，發送消息以冒充這位政治家。然尚未透露有關獲取賬戶訪問權的方法的任何細節。

**應用內支付**
2021年4月，Signal宣佈增加加密貨幣錢包功能，該功能允許用戶發送和接收MobileCoin付款。這受到了安全專家布魯斯·施奈爾的批評，他之前曾稱讚過該軟件。施奈爾表示，這將使客戶端膨脹，並引起有關當局的不必要注意。錢包功能最初僅在某些國家可用，但後來於2021年11月在全球範圍內啟用。

**部分受眾**

**活動人士使用**
在2020年，這款應用程序被喬治·弗洛伊德抗議期間的抗議者用於協調和溝通，因為他們依賴該應用程序的端到端加密來安全地共享信息。
在2021年3月，聯合國建議緬甸居民使用Signal和ProtonMail來傳遞和保存2021年政變期間侵犯人權行為的證據。

**爭議性使用**
Signal的服務條款聲明，該產品不得用於違反法律。據一位前僱員稱，Signal當時的領導層告訴他，他們會“在人們開始濫用Signal或做我們認為可怕的事情時”發聲。在2021年1月，Signal領導層的立場是對內容審核採取“不干預的態度”，因為該公司的員工無法讀取用戶消息，而Signal基金會也“不想成為一家媒體公司”。
2016年，印度當局逮捕了一個涉嫌與伊斯蘭國有關聯的恐怖組織成員，該組織通過Signal進行通信。
美國激進右翼民兵和白人民族主義者使用Signal來組織他們的行動，包括2018年的Unite_the_Right_2集會。
聲稱Signal被用於資助恐怖主義或犯罪活動是土耳其將該應用程序定為普通民眾犯罪行為的理由，Abdullah_Bozkurt稱這是“政府濫用其反恐法來懲罰批評者、反對者和異議人士”的一種方式。

**美國聯邦政府**
據美國中央情報局（CIA）第9任局長約翰·拉特克利夫稱自2025年起，Signal已默認安裝於大多數CIA員工的設備上，其使用已納入標準入職培訓。

**事件**

**2021年社交移民潮**
由於Facebook在2021年1月7日更新了WhatsApp的隱私條款，新的隱私協議規定（除歐盟外）WhatsApp將在2021年2月8日與Facebook共享包括但不限IP地址，手機號等用戶數據，這導致Signal的排名在不少國家的Google Play和App Store的應用排行榜急劇上升。

**TLS代理漏洞爭議**
Signal為應對伊朗政府封殺提出了TLS代理（Signal TLS Proxy）方案，此方案在2021年2月7日被曝出重大漏洞，會洩漏DNS和API請求，隨後其TLS代理Github倉庫中的相關議題（issue）被關閉，引起批評。

**美國總統內閣成員使用失誤**
2025年3月，特朗普政府的高級官員（包括副總統JD·萬斯、國務卿馬可·魯比奧和國防部長皮特·赫格塞斯）使用Signal討論機密信息，包括在也門的軍事攻擊計劃細節。《大西洋月刊》編輯傑弗裡·戈德堡披露了該聊天室的存在，他此前被意外加入到該群組中。國家安全委員會布萊恩·休斯（Brian Hughes）後來有證實戈德堡的說法。

**地區限制**
border=1px #555 solid

**歷史**
2016年12月，埃及屏蔽了對Signal的訪問。作為回應，Signal的開發人員在其服務中添加了域前置（域名偽裝）功能，該功能在一些國家默認啟用。
，Signal在伊朗被屏蔽。Signal的域名偽裝功能依賴於Google App Engine （GAE）服務。但這在伊朗不起作用，因為Google為了遵守美國製裁，屏蔽了伊朗對GAE的訪問。
2018年初，Google App Engine進行了一項內部更改，停止了所有國家或地區的域名偽裝。由於此問題，Signal進行了一項公開更改，使用Amazon CloudFront進行域名偽裝。但是，AWS也宣佈他們將對其服務進行更改以防止域名偽裝。因此，Signal表示他們將開始研究新的方法或途徑。Signal在2019年4月從AWS切換回Google。
2021年1月，伊朗從應用商店中移除了該應用程序，並屏蔽了Signal。有媒體發現，中國用戶在2021年3月15日晚上起，如不接入虛擬私人網絡（VPN）便無法使用Signal，專門追蹤中華人民共和國網路審查的GreatFire亦發現無法在中國境內瀏覽Signal的官方網站，可能受到防火長城的限制而無法正常使用。Signal隨後於2024年4月19日從中國App Store中下架。
2024年8月9日，Signal在俄羅斯被封鎖。俄羅斯聯邦通信監督局（Roskomnadzor）聲稱，這是由於“違反了有關打擊恐怖主義和極端主義的法律”。對此，Signal官方稱若連接受影響，可嘗試啟用其內置的審查規避功能（域前置）。幾乎同一時間，在委內瑞拉存在爭議的2024年總統選舉以及隨之而來的抗議活動過後，Signal在委內瑞拉被封鎖。

**緩解**
Signal官方提供瞭如下規避封鎖的方法：域前置（域名偽裝）和TLS代理。
域前置功能可以使得特定國家或地區的Signal流量顯得是在連接著其他互聯網服務（如google.com）以規避審查。12，Signal的域前置在埃及、阿聯酋、阿曼、卡塔爾、伊朗、古巴、烏茲別克斯坦、烏克蘭和巴基斯坦默認啟用。域前置功能還可以在連接異常時在應用內啟用“審查規避”設置項以手動開啟。
使用TLS代理功能則需要獲得提供該服務的服務器鏈接。或自行部署TLS代理服務器，自行部署則需要配有TCP 80和443端口的服務器以及指向該服務器IP地址的域名。

**參見**
即時通訊軟件比較
*VoIP軟體的比較
*Signal協議

**註解**

**參考**

**引用**

**文獻**

**外部連結**
  How to: Use Signal for Androiddate=20170124042804  by the Electronic Frontier Foundation-  How to: Use Signal on iOSdate=20170124042717  by the Electronic Frontier Foundation