Uçtan uca şifreleme
Uçtan uca şifrelemede bildirimin title, message, url ve url_title alanları senin sisteminde şifrelenir ve sadece anahtarı bilen cihazlarında çözülür. PushBell bu alanları göremez; kuyruk, teslim ve gelen kutusu şifreli metinle çalışır.
1. Anahtarı oluştur
Bölüm başlığı “1. Anahtarı oluştur”PushBell uygulamasında Ayarlar → Uçtan uca şifreleme → Yeni anahtar oluştur. 64 karakterlik (256 bit, onaltılık) anahtarı kopyala ve:
- gönderen sistemine (sunucu, betik) koy,
- diğer cihazlarına Anahtarı gir ile aynı anahtarı gir.
Anahtar sadece cihazlarında durur. Kaybedersen şifreli bildirimler okunamaz.
2. Alanları şifrele
Bölüm başlığı “2. Alanları şifrele”Her alan ayrı şifrelenir:
- Metni GZIP ile sıkıştır.
- Rastgele 16 baytlık IV üret.
- AES-256-CBC (PKCS7 dolgu) ile anahtar ve IV kullanarak şifrele.
- IV ‖ şifreli metin üzerinden aynı anahtarla HMAC-SHA256 hesapla.
- IV ‖ şifreli metin ‖ HMAC’i Base64 yap; alanın değeri budur.
Bu biçim Pushover’ınkiyle aynıdır: Pushover için yazdığın kod değişmeden çalışır.
#!/bin/shKEY="64-karakterlik-anahtarin"encrypt() { IV=$(openssl rand -hex 16) CT=$(printf '%s' "$1" | gzip -9 | openssl enc -aes-256-cbc -K "$KEY" -iv "$IV" | xxd -p | tr -d '\n') HMAC=$(printf '%s' "${IV}${CT}" | xxd -r -p | openssl dgst -sha256 -mac HMAC -macopt hexkey:"$KEY" | awk '{print $NF}') printf '%s' "${IV}${CT}${HMAC}" | xxd -r -p | openssl base64 -A}
curl https://api.pushbell.app/v1/messages \ -H "Authorization: Bearer pb_live_…" \ -H "Content-Type: application/json" \ -d "{\"title\":\"$(encrypt 'Yeni sipariş')\",\"message\":\"$(encrypt '1.250 TL, Ayşe K.')\",\"encrypted\":true}"3. Gönder
Bölüm başlığı “3. Gönder”encrypted: true ile gönder. Pushover uyumlu uçta encrypted=1.
messagezorunludur; bildirim tipinin başlık / metin şablonları şifreli bildirimde uygulanmaz.- Şifreli alanların uzunluk sınırı şifreli metne göredir (başlık 1.024, metin 8.000 karakter).
- Metin 4 KB’lık bildirim paketine sığmazsa bildirimde gösterilmez; uygulamada açılınca tamamı çözülür.
- Anahtarı olmayan cihazda bildirim 🔒 Şifreli bildirim olarak görünür; anahtar girilince gelen kutusundaki eski bildirimler de açılır.