# Signal (yazılım)
Signal, özgür ve açık kaynaklı, çapraz platform şifreli mesajlaşma yazılımı. 
Signal Vakfı ve Signal Messenger LLC tarafından geliştirmektedir. İnternet üzerinden dosyaları, sesli mesajları, görselleri ve videoları içerebilen kişiler arası mesajları veya grup mesajlarını göndermek için kullanılır. Ayrıca bire bir sesli ve görüntülü arama yapabilir, Android sürümü SMS uygulaması olarak da işlev görebilir.
Signal, tanımlayıcı olarak standart cep telefon numaralarını kullanır ve diğer Signal kullanıcılarıyla tüm iletişimleri güvence altına almak için uçtan uca şifreleme yapar. Uygulama, kullanıcı kişilerinin kimliğini ve veri kanalının bütünlüğünü bağımsız olarak doğrulayabilecekleri mekanizmalar içerir.
Signal yazılımı ve suncuları tamamen özgür ve açık kaynaklıdır. İstemciler GPL s3 lisansı altında yayınlanırken, sunucu kodu AGPL s3 lisansı altında yayınlanmaktadır. Resmi Android uygulaması bildirimler için Google Play hizmetlerini kullansa da uygulama gerekli fonksiyonların açık kaynaklı alternatiflerine sahip olduğundan Google Play hizmetleri yüklü değilken de sorunsuz çalışabilir.
Kâr amacı gütmeyen Signal Vakfı, başlangıç finansmanı olarak Brian Acton tarafından bağışlanan 50 milyon dolar ile Şubat 2018'de çalışmalarına başladı.


## Tarihçe.
### 2010-2013: Kökenleri.
Signal, RedPhone şifreli sesli arama uygulamasının ve TextSecure şifreli manifatura programının halefidir. RedPhone ve TextSecure Beta sürümleri ilk olarak Mayıs 2010'da Whisper Systems (güvenlik araştırmacısı Moxie Marlinspike ve roboticist Stuart Anderson tarafından kurulmuştur) Whisper Systems ayrıca diğer veri türlerini şifrelemek için bir güvenlik duvarı ve araçlar üretti. Bunların hepsi özel mülk kurumsal mobil güvenlik yazılımı idi ve yalnızca Android için geliştirilmişti.
Kasım 2011'de Whisper Systems, Twitter tarafından alındığını duyurdu. Anlaşmanın finansal şartları her iki şirket tarafından açıklanmadı. Satın alma "öncelikle Marlinspike'nin o zamanki girişimin güvenliğini geliştirmesine yardımcı olabilmesi için" yapıldı. Satın alımdan kısa bir süre sonra Whisper Systems'ın RedPhone hizmeti kullanılamaz hale getirildi. Bazıları, yazılımın "baskıcı rejimler altındaki insanlara" yardım etmesi ve yazılımın kaldırma işleminin 2011 Mısır devriminin olayları sırasında Mısırlılar gibi insanları "tehlikeli bir konumda" bıraktığını iddia ederek yazılımı kaldırmayı eleştirdi.
Twitter, TextSecure'u Aralık 2011'de GPLv3 lisansı altında özgür ve açık kaynaklı yazılım olarak yayınladı. RedPhone aynı lisans kapsamında Temmuz 2012'de piyasaya sürüldü. Marlinspike daha sonra Twitter'dan ayrıldı ve TextSecure ve RedPhone'un sürekli gelişimi için ortak bir Açık Kaynak projesi olarak Open Whisper Systems'ı kurdu.


### 2013-2018: Open Whisper Systems.
Open Whisper Systems'ın web sitesi Ocak 2013'te yayınlanmaya başladı.
Şubat 2014'te Open Whisper Systems, TextSecure Protokollerinin ikinci sürümünü (şimdi Signal Protokolü) tanıttı ki bu protokolle TextSecure'a uçtan uca şifreli grup sohbeti ve anlık mesajlaşma yetenekleri ekledi. Temmuz 2014'ün sonuna doğru, RedPhone ve TextSecure uygulamalarını Signal olarak birleştirme planları açıklandı. Bu sürüm, Signal'ın iOS için RedPhone muadili olarak ilk sürümüyle çakıştı. Geliştiriciler, sonraki adımlarının iOS için TextSecure anlık mesajlaşma yetenekleri sağlamak, Android'deki RedPhone ve TextSecure uygulamalarını birleştirmek ve bir web istemcisi başlatmak olacağını söyledi. Signal, kolay ve güçlü bir şekilde şifrelenmiş sesli aramaları ücretsiz olarak sağlayan ilk iOS uygulamasıydı. TextSecure uyumluluğu, Mart 2015'te iOS uygulamasına eklendi. 
Mayıs 2010'daki lansmanından Mart 2015'e kadar Signal (daha sonra TextSecure olarak adlandırılan) Android sürümü şifreli SMS / MMS mesajlaşma desteği içeriyordu. 2.7.0 sürümünden itibaren, Android uygulaması sadece veri kanalı üzerinden şifrelenmiş mesajların gönderilmesini ve alınmasını destekledi. Bunun nedenleri SMS / MMS güvenlik kusurları ve anahtar değişimi ile ilgili sorunları içeriyor olmasıydı. Open Whisper Systems'ın SMS / MMS şifrelemesini terk etmesi, bazı kullanıcıların şifrelenmiş SMS ve MMS mesajlarının değişimini içeren Silence (başlangıçta SMSSecure olarak isimlendirilen) adlı bir çatal oluşturmalarına yol açmıştır.
Kasım 2015'te Android'deki TextSecure ve RedPhone uygulamaları Android sistemlerde Signal olarak birleştirildi. Bir ay sonra Open Whisper Systems, Signal mobil istemcisiyle bağlantı kurabilen bir Chrome uygulaması olan Signal Desktop'ı duyurdu. Lansman sırasında uygulama yalnızca Signal'ın Android sürümüne bağlanabiliyordu. 26 Eylül 2016'da Open Whisper Systems, Signal Desktop'ın artık Signal'ın iOS sürümüyle de bağlanabileceğini duyurdu. 31 Ekim 2017'de Open Whisper Systems, Chrome uygulamasının kullanımdan kaldırıldığını duyurdu. Aynı zamanda, Windows, MacOS ve belirli Linux dağıtımları için bağımsız bir masaüstü istemcisinin (Electron'a dayalı) yayınlandığını duyurdular.
4 Ekim 2016 ilk yarısında American Civil Liberties Union (ACLU) ve Open Whisper Systems, büyük federal jürisinin OWS'nin soruşturma için iki telefon numarasıyla ilgili bilgi vermesini gerektiren bir mahkeme celbi aldığını gösteren bir dizi belge yayınladı. İki telefon numarasından yalnızca biri Signal'da kayıtlı idi ve servisin tasarlanma şeklinden dolayı, OWS yalnızca "kullanıcının hesabının oluşturulduğu zamanı ve servise en son bağlandığı zamanı" sağlayabiliyordu. Mahkeme celbi ile birlikte, OWS, mahkeme celbi hakkında bir yıl boyunca kimseye söylememesini gerektiren bir sessizlik emri aldı. OWS ACLU ile yakınlaşma göstererek mahkemeye itiraz etti ve sessizlik emrini kısmi olarak kaldırabildi. OWS, ilk kez mahkeme celbi aldıklarını ve "gelecekteki tüm talepleri aynı şekilde" ele almaya karar verdiklerini söyledi.
Mart 2017'de Open Whisper Systems, Signal'ın çağrı sistemini RedPhone'dan WebRTC'ye geçirdi ve video görüşmeleri yapma yeteneği de ekledi.


### 2018 ve Sonrası: Signal Messenger.
21 Şubat 2018'de Moxie Marlinspike ve WhatsApp kurucu ortağı Brian Acton, Signal Foundation'ın kurulduğunu açıkladı. Signal: misyonu, özel iletişimi mümkün, erişilebilir ve her yerde bulunabilir kılmak, "desteklemek, hızlandırmak ve genişletmek" olan 501 (c) (3) kâr amacı gütmeyen bir kuruluş olup erişilebilir bir kuruluştur. Vakıf, Eylül 2017'de WhatsApp'ın ana şirketi Facebook'tan ayrılan Acton'dan gelen 50 milyon dolarlık fonla çalışmalarına başladı. Açıklamaya göre, Acton vakfın Yönetim Kurulu Başkanı ve Marlinspike Signal Messenger'ın CEO'su olarak devam etmektedir.
Kasım 2019 ve Şubat 2020 arasında Signal, iPad'ler için tek seferlik görüntüler ve videolar, çıkartmalar ve reaksiyonlar için destek ekledi. Ayrıca yeni bir grup mesajlaşma sistemi ve "şifrelenmiş kişileri bulutta saklamak için deneysel bir yöntem" üzerine planlarını açıkladılar.


## Özellikler.
Signal, kullanıcıların iOS ve Android'de diğer Signal kullanıcılarına sesli ve görüntülü arama yapmalarına olanak tanır. Tüm aramalar bir Wi-Fi veya veri bağlantısı üzerinden yapılır ve (veri ücretleri hariç) şehirlerarası ve uluslararası dahil ücretsizdir. Signal ayrıca kullanıcıların bir Wi-Fi veya iOS, Android ve bir masaüstü uygulamasındaki diğer Signal kullanıcılarına veri bağlantısı üzerinden metin mesajları, dosyalar, sesli notlar, resimler, GIF ve video mesajları göndermelerine olanak tanır. Bu uygulama aynı zamanda grup mesajlaşmasını da destekler.
Signal kullanıcılarıyla yapılan tüm iletişim otomatik olarak uçtan uca şifrelenir. Kullanıcının iletişimini şifrelemek için kullanılan anahtarlar uç noktalarda oluşturulur ve saklanır (örn. Sunucular tarafından değil, kullanıcılar tarafından). Bir kişinin gerçekten iddia ettikleri kişi olduğunu doğrulamak için, Signal kullanıcıları önemli parmak izlerini (veya QR kodlarını tarayarak) harici kanallardan karşılaştırabilir. Uygulama, bir kişinin anahtarı değişirse kullanıcıyı bilgilendirmek için ilk kullanımda güven mekanizması kullanır.
Android'de, kullanıcılar Signal'ı varsayılan SMS / MMS uygulaması haline getirmeyi seçebilir ve standart uçtan uca şifreli Signal mesajlarına ek olarak şifrelenmemiş SMS mesajları gönderme ve almalarını sağlar. Kullanıcılar daha sonra Signal içermeyen kişilerle iletişim kurmak için aynı uygulamayı kullanabilir. Şifrelenmemiş bir mesaj göndermek, Signal kullanıcıları arasında da kullanılabilir.
TextSecure, kullanıcının yerel ileti veritabanını ve kullanıcının şifreleme anahtarlarını şifreleyen bir parola oluşturlamalarını sağlamaktadır. Bu, kullanıcının iletişim veritabanını veya ileti zaman damgalarını şifrelemedi. Android ve iOS'taki Signal uygulamaları; telefonun pin, parola veya biyometrik kimlik doğrulaması ile kilitlenebilir. Kullanıcı, telefonun kaybolması veya çalınması durumunda ek bir koruma mekanizması sağlayarak bir "ekran kilidi zaman aşımı" aralığı tanımlayabilir.
Signal ayrıca kullanıcıların mesajlara zamanlayıcı koymalarına izin verir. Belirli bir zaman aralığından sonra, iletiler hem gönderenin hem de alıcıların cihazlarından silinecektir. Zaman aralığı beş saniye ile bir hafta arasında olabilir ve zamanlayıcı her alıcı için mesajın kopyasını okuduktan sonra başlar. Geliştiriciler bunun "tüm katılımcıların temasınızın düşmanca olduğu durumlar için değil, minimalist veri sağlığını korumak istediği konuşmalar için ortak bir özellik" olduğunu vurguladılar.
Signal, varsayılan olarak kullanıcıların mesajlarını, şifrelenmemiş bulut yedekleme işleminin dışında tutar.
Signal, okuma ve yazma bildirimlerini devre dışı bırakma özelliğine sahiptir.


### Kısıtlamalar.
Signal, kullanıcının doğrulama için bir telefon numarası vermesini gerektirir, kullanıcı adı veya parola ihtiyacını ortadan kaldırır ve kişilerin bulunmasını kolaylaştırır. Numaranın, cihazın SIM kartındaki ile aynı olması gerekmez; kullanıcı doğrulama kodunu alabildiği ve yazılımı kurmak için ayrı bir cihaza sahip olduğu sürece VoIP numarası veya sabit hat da olabilir. Bir numara aynı anda yalnızca bir mobil cihaza kaydedilebilir.
Bir telefon numarasına yapılan bu zorunlu bağlantı (Signal'ın WhatsApp, KakaoTalk ve diğerleriyle paylaştığı bir özellik), özel telefon numaralarını vermek konusunda rahat olmayan gizlilik konusunda bilinçli kullanıcılar için "büyük bir sorun" olarak eleştirildi. Çözüm, ikincil bir telefon numarası kullanmaktır. Bir telefon numarası yerine bir e-posta adresiyle kaydolma seçeneği, 2018'in başından beri çokça talep edilen fakat henüz uygulanmayan bir özelliktir.
Telefon numaralarını tanımlayıcı olarak kullanmak, bir saldırganın bir telefon numarasını devralma olasılığından kaynaklanan güvenlik riskleri de oluşturabilir. Bu, Signal'nın gizlilik ayarlarında isteğe bağlı bir Kayıt Kilidi PIN'i etkinleştirilerek azaltılabilir.


### Android'e özel.
Şubat 2014'ten Şubat 2017'ye kadar, Signal'nın resmi Android istemcisi, Google'ın GCM push-messaging framework'üne bağlı olduğu için tescilli Google Play Hizmetleri gereli kılındı. Mart 2015'te Signal, uygulamanın ileti dağıtımını kendilerinin yaptığı ve yalnızca bir uyandırma etkinliği için GCM'yi kullanan bir modele geçti. Şubat 2017'de Signal geliştiricileri, WebSocket desteğini istemciye uygulayarak Google Play Hizmetleri olmadan kullanılmasını mümkün kıldı.


### Masaüstü'ne özgü.
Signal'ın masaüstü uygulamasını kurmak için kullanıcının önce Internet bağlantısı olan Android veya iOS tabanlı bir akıllı telefona Signal yüklemesi gerekir. Masaüstü uygulaması kullanıcının hesabına bağlandıktan sonra bağımsız bir istemci olarak işlev görür; mobil uygulamanın bu aşamadan sonra kurulu veya çevrimiçi olması gerekmez. Kullanıcılar hesapları ile en fazla 5 masaüstü uygulamasında oturum oluşturabilirler. (2019 Mart (2019 Mart) itibarıyla), Signal'in masaüstü uygulaması sesli veya görüntülü arama desteğini kaldırmıştır. Signal masaüstü uygulaması NAT64 / DNS64 olsa bile IPv6 ortamında iyi çalışmıyor. 2016 yılında GIF desteğinin "yakında" ekleneceğini duyurmasına rağmen, masaüstü uygulaması animasyonlu GIF'lerin gönderilmesine izin vermiyor.


## Kullanılabilirlik.
Temmuz 2016'da, İnternet Topluluğu (Internet Society), Signal kullanıcılarının man-in-the-middle ataklarını tespit etme ve caydırma yeteneklerini değerlendiren bir kullanıcı çalışması yayınladı. Çalışma, 28 katılımcıdan 21'inin diğer Signal kullanıcılarının kimliğini doğrulamak için ortak anahtar parmak izlerini (fingerprint) doğru bir şekilde karşılaştıramadığı ortaya çıktı ve gerçekte başarısız oldukları halde kullanıcıların çoğu başarılı olduklarına inanmaktadırlar. Dört ay sonra, Signal'ın kullanıcı arayüzü, diğer Signal kullanıcılarının kimliğini doğrulamayı kolaylaştırmak için güncellendi.
4.17 sürümünden önce, Signal Android istemci uygulaması mesaj geçmişinin yalnızca salt metin salt yedeklemelerini, yani medya mesajları olmadan yapabiliyordu. 26 Şubat 2018'de Signal, "SD karta tam yedekleme / geri yükleme", desteği ekledi ve 4.17 sürümünden itibaren, kullanıcılar yeni bir Android telefona geçerken tüm mesaj geçmişlerini geri yükleyebilir hale geldiler. Signal iOS istemcisi, kullanıcının mesajlaşma geçmişini dışa aktarmayı veya içe aktarmayı desteklememektedir.


## Mimari.
### Şifreleme protokolleri.
Signal mesajları, (daha önce TextSecure Protokolü olarak bilinen) Signal Protokolü ile şifrelenmektedir. Protokol, Çift Cırcır Algoritması (Double Ratchet Algorithm), ön anahtarlar ve Üçlü Diffie-Hellman (3XDH) el sıkışmasını bir arada kullanır. Öncülü olarak Curve25519, AES-256 ve HMAC-SHA256 kullanmaktadır. Protokol gizlilik, bütünlük, kimlik doğrulama, katılımcı tutarlılığı, hedef doğrulama, ileri gizlilik, geriye dönük gizlilik (gelecekteki gizlilik olarak da bilinir), nedensellik koruması, mesaj bağlantısızlığı, mesaj reddi, katılımcı reddi ve asenkron çalışma sağlar. Anonimlik koruması sağlamaz ve iletilerin iletilmesi ve ortak anahtar malzemenin depolanması için sunucular gerektirir.
Signal Protokolü ayrıca uçtan uca şifreli grup sohbetlerini de destekler. Grup sohbeti protokolü, ikili çift kilit ve çok noktaya yayın şifrelemesinin birleşimidir. Bire bir (one-to-one) protokolün sağladığı özelliklere ek olarak, grup sohbet protokolü konuşmacı tutarlılığı, sıra dışı esneklik, silinmiş mesaj esnekliği, hesaplamalı eşitlik, güven eşitliği, alt grup mesajlaşmasının yanı sıra sözleşmeli ve genişletilebilir üyelik sağlar.
Ekim 2014'te Ruhr Üniversitesi Bochum'dan araştırmacılar Signal Protokolü'nün bir analizini yayınladılar. Diğer bulguların yanı sıra, protokolde bilinmeyen bir anahtar paylaşım saldırısını sundular, ancak genel olarak güvenli olduğunu gösterdiler. Ekim 2016'da, İngiltere Oxford Üniversitesi, Avustralya'daki Queensland Teknoloji Üniversitesi ve Kanada McMaster Üniversitesi'ndeki araştırmacılar, protokolün resmi bir analizini yayınladılar. Protokolün kriptografik olarak sağlam olduğu sonucuna vardılar. Temmuz 2017'de Ruhr Üniversitesi Bochum'dan araştırmacılar, grup habercilerinin başka bir analizi sırasında, Signal'in grup protokolüne karşı tamamen teorik bir saldırı buldu: Bir grubun gizli grup kimliğini (ID) bilen bir kullanıcı (daha önce bir grup üyesi olması veya birinin kimliğini çalması ile) grubun üyesi olabilir. Grup kimliği (ID) tahmin edilemediğinden ve bu tür üye değişiklikleri geri kalan üyelere gösterildiğinden, bu saldırının pratik etkisi hemen hemen yoktur.
(2018 Ağustos (2018 Ağustos) itibarıyla), Signal Protokolü WhatsApp, Facebook Messenger, Skype, ve Google Allo içinde kullanılmaktadır ve dünya genelinde bir milyarın üzerinde kişinin uçtan uca şifreleme ile iletişim kurlamarını sağlamaktadır. Google Allo, Skype ve Facebook Messenger'da konuşmalar varsayılan olarak Signal Protokolü ile şifrelenirken diğer uçtan uca şifreleme yöntemlerini de birer seçenek olarak sunmaktadırlar.
Mart 2017'ye kadar Signal'ın sesli çağrıları SRTP ve Phil Zimmermann tarafından geliştirilen ZRTP anahtar anlaşması protokolü ile şifrelenmiştir. (2017 (2017-) itibarıyla), Signal'ın sesli ve görüntülü arama işlevleri, kimlik doğrulama için ZRTP yerine uygulamanın Signal Protokölü kanalını kullanır.


#### Kimlik doğrulama.
Bir kişinin gerçekten iddia ettikleri kişi olduğunu doğrulamak için, Signal kullanıcıları önemli parmak izlerini (veya QR kodlarını tarayarak) haribi bir kanaldan karşılaştırabilirler. Uygulama, bir kişiinin anahtarı değişirse kullanıcıyı bilgilendirmek için ilk kullanımda güven mekanizmasını devreye sokar.


### Sunucular.
Signal, Signal Messenger tarafından sağlanan merkezi sunuculara dayanır. Signal mesajlarının yönlendirilmesine ek olarak, sunucular aynı zamanda Signal kullanıcıları olarak kayıtlı olan kişilerin bulunmasını ve kullanıcıların ortak anahtarlarının otomatik olarak değiştirilmesini de kolaylaştırır. Varsayılan olarak, Signal'ın sesli ve görüntülü görüşmeleri eşler(peer-to-peer) arasıdır. Arayan, kullanıcının adres defterinde değilse, arama, kullanıcıların IP adreslerini gizlemek için bir sunucu üzerinden yönlendirilir.


### Lisans.
Android, iOS ve masaüstü için Signal istemcilerinin tam kaynak kodu GitHub'da özgür yazılım lisansı altında bulunmaktadır. Bu, ilgili tarafların kodu incelemesine ve geliştiricilerin her şeyin beklendiği gibi davrandığını doğrulamasına yardımcı olur. Ayrıca, ileri kullanıcıların kendi uygulamalarının kopyalarını derlemelerini ve Signal Messenger tarafından dağıtılan sürümlerle karşılaştırmasını sağlar. Mart 2016'da, Moxie Marlinspike, Gradle NDK desteği eksikliği nedeniyle proje derlemesiyle derlenmeyen bazı paylaşılan kütüphanelerin yazdı ve Android için Signal yeniden üretilebilir hale geldi. Signal sunucuları da açık kaynak kodludurlar.


### Dağıtım.
Signal resmi olarak Google Play mağazası, Apple'ın App Store'u ve resmi web sitesi aracılığıyla dağıtılır. Google Play aracılığıyla dağıtılan uygulamalar, uygulamanın geliştiricisi tarafından imzalanır ve Android işletim sistemi, güncellemelerin aynı anahtarla imzalandığını denetler ve başkalarının geliştiricinin imzalamadığı güncelleştirmeleri dağıtmasını önler. Aynı şey Apple App Store üzerinden dağıtılan iOS uygulamaları için de geçerlidir. Mart 2017 itibarıyla, Signal'ın Android sürümü, Signal Messenger'ın web sitesinden ayrı bir APK paketi ikili dosyası olarak da indirilebilir.