Mesajlaşma ve uygulamalarİleriMesajlaşma

Android için Signal veri tabanı (signal.db)

Signal Android signal.db: message, thread, recipient ve attachment tablolu SQLCipher şifreli depo; anahtar Android Keystore ile mühürlenir.

01Konum

  • /data/data/org.thoughtcrime.securesms/databases/signal.db

02Yanıtladığı sorular

  • Signal yüklü mü ve cihazda şifreli bir mesaj deposu var mı?
  • Uygun bir süreçle yasal olarak çözüldüyse hangi konuşmalar ve alıcılar mevcut?
  • Mesajlar kaybolacak veya bir kez görüntülenecek şekilde ayarlanmış ya da uzaktan silinmiş mi?

03Biçim ve sürümler

BiçimSQLCipher ile şifrelenmiş SQLite (net.zetetic SQLCipher kitaplığı). Veri tabanı sırrı 32 rastgele bayttır; güncel derlemelerde Android Keystore'da tutulan bir AES-GCM anahtarıyla (SignalSecret) mühürlenir ve yalnız mühürlü hâlde saklanır. Tablolar arasında message (date_sent, date_received, date_server, type, thread_id, from_recipient_id, to_recipient_id, body, read, expires_in, expire_started, view_once, deleted_by), thread, recipient ve attachment (message_id, content_type, data_file, file_name) bulunur.
Geçerli olduğu sürümlerGüncel açık kaynak Signal-Android kodundan tanımlanmıştır; eski kurulumlar, kodun mühürlü sırdan önce okuduğu eski şifrelenmemiş bir sırrı hâlâ tutabilir. Tablo ve sütun adları sürümler arasında değişir.

04Temel alanlar

AlanNe anlatır
message.date_sent / date_received / date_serverGönderen zamanı, yerel alınma zamanı ve sunucu zamanı.
message.thread_id → threadMesajın ait olduğu konuşma.
message.from_recipient_id / to_recipient_id → recipientGönderen ve alıcı başvuruları.
message.expires_in / expire_startedKaybolan mesaj zamanlayıcısı ve başlama zamanı.
message.view_once / deleted_byBir kez görüntüleme bayrağı ve uzaktan silme işareti.
attachment.data_file / content_typeBir ekin yerel dosya başvurusu ve MIME türü.

05Zaman damgaları

AlanKodlamaNot
message.date_receivedUnix epoch, millisecondsAlındığında System.currentTimeMillis() değerinden atanır.
message.expires_inMilliseconds (duration)Alıcının saniye cinsinden zamanlayıcısının milisaniyeye çevrilmesiyle türetilir.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. signal.db ve ilgili dosyaların varlığını, boyutunu ve zaman damgalarını değiştirmeden belgeleyin.
  2. Şema ve anahtar yönetimi buna bağlı olduğundan uygulama sürümünü kaydedin.
  3. İçeriği yalnız yasal ve doğrulanmış bir süreçle analiz edin; ardından message → thread → recipient eşlemesini yapın.
  4. Süre alanlarını yapılandırma olarak değerlendirin; eksik mesajların süresi dolmuş olabilir.

07Yorum tuzakları

  • Veri tabanı sırrı olmadan signal.db içeriği okunamaz; bu kayıt anahtar kurtarmayı kapsamaz.
  • Kaybolan mesajlar süre dolunca uygulama tarafından silinir; bu nedenle yoklukları beklenen davranıştır.
  • Şema ayrıntıları güncel kaynak ağacından gelir; yüklü sürüm için doğrulayın.

09Kaynaklar

  1. Signal-Android — SignalDatabase.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
  2. Signal-Android — DatabaseSecretProvider.java Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
  3. Signal-Android — KeyStoreHelper.java Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
  4. Signal-Android — MessageTable.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
  5. Signal-Android — AttachmentTable.kt Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14
  6. Signal-Android — app/build.gradle.kts (namespace) Signal (signalapp/Signal-Android on GitHub) · erişim 2026-10-14