Signal 是由 Signal 技術基金會和 Signal Messenger LLC 開發的跨平臺加密訊息服務。Signal 經網際網路傳送一對一及群組訊息，訊息可包含影像及影片，它還可以用來經網際網路作一對一及群組語音通話。 Signal 使用標準的流動電話號碼作為識別符號，並使用端到端加密來保護與其他 Signal 使用者的所有通訊。這些應用程式包括一些機制，透過這些機制，使用者可以獨立驗證其聯絡人的身份和資料通道的完整性。 所有 Signal 軟體都是自由及開源的。使用者端是按 GPLv3 授權的自由及開放原始碼軟體，而服器端的程式碼則按 AGPLv3 釋出。Signal 之正式版軟體通常使用了 Google 專營的 Google Play 服務（被預裝在大多數 Android 裝置中），但它亦被設計為可在無 Google Play 服務的環境中執行。Signal 在 Android、iOS 作業系統，和 Windows、macOS、Linux 等桌面作業系統均有正式版的客戶端軟體。 非營利組織 Signal 基金會於 2018 年 2 月成立， Brian Acton 提供了初期 5000 萬美元之初始資金。自 2021 年 1 月，Signal 已獲得超過 1 億 5 百萬之下載總量，並且該軟體擁有約 4 千萬月活躍使用者。目前（2021214），Signal 已被安裝於超過 5 千萬臺 Android 裝置上。 歷史 20102013 年：起源 Signal 是 RedPhone 加密語音呼叫應用程式和 TextSecure 加密簡訊程式的後繼產品。RedPhone 和 TextSecure 的測試版最初由 Whisper Systems 於 2010 年 5 月推出，Whisper Systems 是一家由前 twitter 安全研究員 Moxie Marlinspike 和機器人專家 Stuart Anderson 共同創立的創業公司 20132018 Open Whisper Systems Open Whisper Systems 的網站於 2013 年 1 月啟動。 2018 至今：Signal 技術基金會 2018 年 2 月 21 日，Moxie Marlinspike 和 WhatsApp 聯合創始人 Brian Acton 宣佈成立 Signal Technology Foundation，這是一個非營利組織，其使命是 支援、加速和擴大 Signal 進行私人通訊的使命可訪問且無處不在。阿克頓以 5000 萬美元的資金創立了基金會，並在 2017 年 9 月離開 WhatsApp 的母公司 Facebook 後成為基金會的執行主席。馬林斯派克繼續擔任 Signal Messenger 的第一任執行長。截至 2020 年，Signal 完全依靠捐贈，作為非營利組織。 2022 年 1 月 10 日，Moxie Marlinspike 宣佈辭去 Signal Messenger 執行長一職。他繼續留在 Signal 董事會，Brian Acton 自願在尋找新執行長期間擔任臨時執行長。 功能 Signal 允許使用者與 iOS 和 Android 上的其他 Signal 使用者進行語音和視訊通話。所有通話都是透過 WiFi 或資料連線進行的（資料費除外）是免費的，包括長途電話和國際長途電話。Signal 還允許使用者透過 WiFi 或資料連線向 iOS，Android 和桌面應用程式上的其他 Signal 使用者傳送文字訊息，檔案，語音註釋，圖片，GIF 和影片訊息。該應用程式還支援群組訊息傳遞。 Signal 使用者之間的所有通訊會話都會自動進行端到端加密（加密金鑰在裝置上生成和儲存，而不是在伺服器上）。為了驗證通訊對方確實是他們聲稱的人，Signal 使用者可以比較金鑰指紋（或掃描二維碼）。該平臺採用機制，在通訊對方的金鑰發生變化時通知使用者。 直到 2023 年，Android 使用者可以選擇將 Signal 作為預設的簡訊 彩信應用程式，從而除了標準的端到端加密 Signal 訊息外，還可以傳送和接收未加密的簡訊。 然後，使用者可以使用相同的應用程式與沒有 Signal 的聯絡人進行通訊。 截至 2022 年 10 月，由於安全和隱私問題，此功能已被棄用，並於 2023 年被移除。 TextSecure 允許使用者設定一個密碼來加密本地訊息資料庫和使用者的加密金鑰。這不會加密使用者的聯絡人資料庫或訊息時間戳。 Android 和 iOS 上的 Signal 應用程式可以使用手機的 PIN 碼、密碼或生物識別進行鎖定。 使用者可以定義 螢幕鎖定超時 時間間隔，以便在手機丟失或被盜時提供額外的保護機制。 Signal 具有定時傳送訊息的功能。 此外，訊息可以附加計時器，以便自動從傳送方和接收方的裝置中刪除訊息。 保留訊息的時間段可以在 5 秒到 1 周之間， 並且在每個接收者閱讀完他們的訊息副本後開始計時。 開發人員強調，這旨在成為 所有參與者都希望自動執行最小資料清理的對話的協作功能，而不是接收者是對手的情況。 Signal 的應用程式圖示可以使用各種顏色主題進行自定義，應用程式名稱也可以自定義。即將推出的功能包括隱藏劇透 以及透過二維碼新增其他使用者。 預設情況下，Signal 會將使用者的聊天記錄排除在未加密的雲備份之外。 Signal 具有對已讀回執和鍵入指示符的支援，兩者均可停用。 Signal 允許使用者自動模糊照片中人物的臉部，以保護其身份。 Signal 包含一個加密貨幣錢包功能，用於儲存、傳送和接收應用內付款。除了某些地區和國家 地區外，該功能已於 2021 年 11 月在全球範圍內啟用。 ，唯一支援的支付方式是。 2024 年 2 月，Signal 在其測試版應用程式中添加了使用者名稱功能。這是一項隱私功能，允許使用者在不共享電話號碼的情況下與他人通訊。 侷限性 Signal 要求使用者提供電話號碼進行驗證，從而無需使用者名稱或密碼，並方便聯絡人查詢（見下文）。 該號碼不必與裝置 SIM 卡上的號碼相同；它也可以是 VoIP 號碼 或固定電話號碼，只要使用者能夠接收驗證碼並擁有單獨的裝置來設定軟體即可。一個號碼一次只能在一個移動裝置上註冊。 帳戶註冊需要 iOS 或 Android 裝置。 這種與電話號碼的強制連線（Signal 與 WhatsApp、KakaoTalk 等共享的功能）被批評為注重隱私的使用者的一個 主要問題，因為他們不願意透露自己的私人號碼。 一種解決方法是使用輔助電話號碼。選擇一個可公開更改的使用者名稱而不是共享自己的電話號碼是使用者廣泛要求的功能。此功能已於 2024 年 2 月新增到 Signal 的測試版中。 使用電話號碼作為識別符號也可能會造成安全風險，因為攻擊者可能會盜用電話號碼。2022 年 8 月，至少有一名使用者遭到攻擊，攻擊方式與此類似，但攻擊是透過 Signal 簡訊服務提供商執行的，而不是任何使用者的提供商。可以透過啟用 Signal 的註冊鎖功能來降低這種攻擊的威脅，該功能是一種雙因素身份驗證形式，要求使用者輸入 PIN 碼才能在新裝置上註冊電話號碼。 將 Signal 桌面版連結到移動裝置時，對話歷史記錄不會同步；Signal 桌面版上只會顯示新訊息。 實用性 2016 年 7 月，網際網路協會發布了一項使用者研究，評估了 Signal 使用者檢測和阻止中間人攻擊的能力。 該研究得出結論，28 名參與者中有 21 名未能正確比較公鑰指紋以驗證其他 Signal 使用者的身份，並且這些使用者中的大多數人認為他們已經成功了，而實際上他們失敗了。 四個月後，Signal 的使用者介面進行了更新，以簡化驗證其他 Signal 使用者身份的過程。 2023 年，法國政府正在推動採用名為 Olvid 的歐洲加密訊息傳遞應用程式來替代 Signal 和 WhatsApp，作為其安全的通訊平臺。 架構 加密協議 Signal 訊息使用 Signal 協議（曾稱作 TextSecure 協議）進行加密。該協議結合了雙棘輪演算法、預共享金鑰和擴充套件三元迪菲 赫爾曼 X3DH 握手。它使用 Curve25519、AES256 和 HMACSHA256 作為。 該協議提供機密性、完整性、身份驗證、參與者一致性、目標驗證、前向保密、後向保密（又稱未來保密）、因果關係保留、訊息不可連結性、、參與否認和非同步性。它不提供匿名性保留，並且需要伺服器來中繼訊息和儲存公鑰材料。 Signal 協議還支援端到端加密群聊。群聊協議是成對雙棘輪和的組合。 除了單對單協議提供的屬性外，群聊協議還提供發言者一致性、亂序彈性、丟棄訊息彈性、計算平等、信任平等、子群訊息傳遞，以及可收縮和可擴充套件的成員資格。 2014 年 10 月，波鴻魯爾大學 的研究人員發表了對 Signal 協議的分析。除其他發現外，他們還提出了對該協議的，但總的來說，他們發現它是安全的。 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 和金鑰協商協議進行加密，該協議由菲爾齊默爾曼開發。 2017 年 3 月，Signal 過渡到新的基於 WebRTC 的呼叫系統，該系統引入了進行視訊通話的功能。Signal 的語音和視訊通話功能使用 Signal 協議通道進行身份驗證，而不是 ZRTP。 身份驗證 為了驗證通訊方確實是他們聲稱的人，Signal 使用者可以比較金鑰指紋（或掃描二維碼）。該平臺採用機制，以便在通訊方的金鑰發生變化時通知使用者。 本地儲存 應用程式在接收和解密訊息後，會將它們本地儲存在每個裝置上的 SQLite 資料庫中，該資料庫使用 SQLCipher 加密。此資料庫的加密金鑰也儲存在本地，如果裝置已解鎖，則可以訪問該金鑰。2020 年 12 月，發表了一篇博文，宣佈他們的一款產品現在可以訪問此金鑰並使用它來 解密 Signal 應用程式。 科技記者後來發表文章，報道了 Cellebrite 如何聲稱有能力 侵入 Signal 應用程式 和 破解 Signal 的加密。後一種解釋遭到了一些專家的反駁， 以及 Signal 的代表，他們表示 Cellebrite 最初的帖子是關於訪問 他們實際擁有的已解鎖 Android 手機 上的資料，並且他們 可以開啟應用程式檢視訊息。類似的提取工具也存在於 iOS 裝置和 Signal 桌面版上。 伺服器 Signal 依賴於由 Signal Messenger 維護的集中式伺服器。 除了路由 Signal 的訊息外，伺服器還有助於發現同時也是 Signal 使用者註冊的聯絡人以及自動交換使用者的公鑰。 預設情況下，Signal 的語音和視訊通話是雙方的點對點直接連線。如果呼叫者不在接收者的通訊簿中，則將呼叫路由透過伺服器以隱藏使用者的 IP 地址。 聯絡人發現 伺服器儲存註冊使用者的電話號碼、公鑰材料和推送令牌，這些都是建立呼叫和傳輸訊息所必需的。 為了確定哪些聯絡人也是 Signal 使用者，使用者聯絡電話號碼的密碼雜湊會定期傳輸到伺服器。 然後，伺服器會檢查這些雜湊是否與任何註冊使用者的 SHA256 雜湊匹配，並在找到任何匹配項時通知客戶端。 之後，雜湊的號碼將從伺服器中丟棄。 2014 年，Moxie Marlinspike 寫道，由於電話號碼的有限原像空間（所有可能雜湊輸入的集合），因此很容易計算出所有可能雜湊輸入到雜湊輸出的對映並反轉對映，並且 實用的隱私保護聯絡人發現仍然是一個未解決的問題。 2017 年 9 月，Signal 的開發人員宣佈，他們正在研究一種方法，使 Signal 客戶端應用程式能夠 有效且可擴充套件地確定其地址簿中的聯絡人是否是 Signal 使用者，而無需向 Signal 服務透露其地址簿中的聯絡人。 元資料 所有客戶端 伺服器通訊都受到 TLS 的保護。 Signal 的開發人員斷言，他們的伺服器不會保留有關誰在何時給誰打電話的日誌。 2016 年 6 月，Marlinspike 告訴《The Intercept》，Signal 伺服器儲存的最接近元資料的資訊是每個使用者最後一次連線到伺服器的時間，並且此資訊的精度降低到天，而不是小時、分鐘和秒。 群組訊息傳遞機制的設計使伺服器無法訪問成員列表、群組標題或群組圖示。 相反，群組的建立、更新、加入和離開由客戶端完成，客戶端以與傳遞一對一訊息相同的方式將成對訊息傳遞給參與者。 互聯 Signal 的伺服器架構在 2013 年 12 月至 2016 年 2 月期間是互聯的。2013 年 12 月，宣佈 Signal 使用的訊息傳遞協議已成功整合到基於 Android 的開源作業系統 CyanogenMod 中。 從 CyanogenMod 110 開始，客戶端邏輯包含在一個名為 WhisperPush 的系統應用程式中。據 Signal 的開發人員稱，Cyanogen 團隊為 WhisperPush 客戶端執行他們自己的 Signal 訊息傳遞伺服器，該伺服器與主伺服器聯合，以便兩個客戶端可以相互交換訊息。 WhisperPush 原始碼在 GPLv3 許可下可用。 2016 年 2 月，CyanogenMod 團隊停止了 WhisperPush，並建議其使用者切換到 Signal。 2016 年 5 月，Moxie Marlinspike 寫道，與 CyanogenMod 伺服器的聯合降低了使用者體驗並阻礙了開發，並且他們的伺服器可能不會再次與其他伺服器聯合。 2016 年 5 月，Moxie Marlinspike 要求名為 LibreSignal 的第三方客戶端不要使用 Signal 服務或 Signal 名稱。 結果，LibreSignal 專案在 2016 年 5 月 24 日釋出公告稱該專案已 放棄。 LibreSignal 提供的功能隨後被 Marlinspike 整合到 Signal 中。 許可 適用於 Android、iOS 和桌面的 Signal 客戶端的完整 原始碼 在 GitHub 上以 自由軟體許可證 的形式提供。 這使得有興趣的人士可以檢查程式碼並幫助開發人員驗證一切是否按預期執行。它還允許高階使用者編譯他們自己的應用程式副本，並將它們與 Signal Messenger 分發的版本進行比較。2016 年 3 月，Moxie Marlinspike 寫道，除了由於缺乏 Gradle NDK 支援而未與專案構建一起編譯的一些共享庫外，Signal for Android 是可重現的。 Signal 的伺服器是部分開源的，但由於安全原因，伺服器軟體的反垃圾郵件元件是專有的並且是閉源的。 事件 由於 Facebook 在 2021 年 1 月 7 日更新了 WhatsApp 的隱私條款，新的隱私協議規定（除歐盟外）WhatsApp 將在 2021 年 2 月 8 日與 Facebook 共享包括但不限 IP 地址，手機號等使用者資料，這導致 Signal 的排名在不少國家的 Google Play 和 App Store 的應用排行榜急劇上升。 爭議 Signal 應對伊朗政府封殺提出了 TLS 代理方案，此方案在 2021 年 2 月 7 日被被曝出重大漏洞，會洩漏 DNS 和 API 請求，隨後其 TLS 代理在 Github 的 問題 功能被關閉，引起批評。 地區限制 2016 年 12 月，埃及遮蔽了對 Signal 的訪問。 作為回應，Signal 的開發人員在其服務中添加了域名偽裝。 這使得特定國家 地區的 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。科技媒體 TechCrunch 發現，中國使用者在 2021 年 3 月 15 日晚上起，如不使用虛擬私人網路 VPN 便無法使用 Signal，專門追蹤中華人民共和國網路審查的 GreatFire 亦發現無法在中國境內瀏覽 Signal 的官方網站，可能受到防火長城的限制而無法正常使用。 Signal 隨後於 2024 年 4 月 19 日從中國 App Store 中下架。 參見 即時通訊軟體比較 VoIP 軟體的比較 Signal 協議 來源 參考 外部連結 How to Use Signal for Android by the Electronic Frontier Foundation How to Use Signal on iOS by the Electronic Frontier Foundation CategoryIOS 軟體 Category 保密通訊 Category 加密軟體 Category 網際網路隱私軟體 Category 自由安全軟體 CategoryAndroid 軟體 Category 被防火長城封鎖的網站