Δωρεάν εργαλείο απορρήτου
Σφραγίστε ένα αρχείο
Κρυπτογραφήστε ένα αρχείο με ένα φρέσκο κλειδί μιας χρήσης και στείλτε το από όποιο κανάλι θέλετε. Όποιος έχει το κλειδί το ανοίγει εδώ ακριβώς, σε αυτή τη σελίδα. Τίποτα δεν ανεβαίνει ποτέ, δεν υπάρχει συνθηματική φράση προς σπάσιμο, και βλέπετε το περιεχόμενο πριν αποθηκευτεί οτιδήποτε.
Τρέχει εξ ολοκλήρου σε αυτή την καρτέλα. Αυτή η σελίδα δεν μπορεί να επικοινωνήσει με κανέναν διακομιστή.
Γίνεται σφράγιση…
Σφραγίστηκε.
Αυτό είναι το κρυπτογραφημένο σας αρχείο. Χωρίς το κλειδί, κανείς δεν μπορεί να το διαβάσει. Ούτε εμείς, ούτε κανένας.
Το κλειδί — εμφανίζεται μόνο τώρα
Αυτό το κλειδί υπάρχει μόνο σε αυτή τη σελίδα, αυτή τη στιγμή. Δεν αποθηκεύεται και δεν στέλνεται πουθενά. Αν το χάσετε, κανείς δεν μπορεί να ανοίξει το αρχείο, ούτε εμείς. Αποθηκεύστε το πριν φύγετε.
Ή μοιραστείτε το κλειδί ως σύνδεσμο
Το κλειδί βρίσκεται μετά το # μέσα στον σύνδεσμο. Τα προγράμματα περιήγησης δεν στέλνουν ποτέ αυτό το κομμάτι σε κανέναν διακομιστή. Ο σύνδεσμος ανοίγει αυτή τη σελίδα με την καρτέλα Άνοιγμα έτοιμη και το κλειδί συμπληρωμένο, και μετά αφαιρεί το κλειδί από τη γραμμή διευθύνσεων.
Στείλτε το αρχείο και το κλειδί χωριστά.
Όποιος έχει και το σφραγισμένο αρχείο και το κλειδί μπορεί να το ανοίξει. Στείλτε τα από διαφορετικά κανάλια, για παράδειγμα το αρχείο με email και τον σύνδεσμο του κλειδιού με μήνυμα. Έτσι κανένα μεμονωμένο γραμματοκιβώτιο δεν έχει ποτέ και τα δύο.
Το κλειδί διαβάστηκε από τον σύνδεσμό σας και αφαιρέθηκε από τη γραμμή διευθύνσεων, ώστε να μείνει εκτός του ιστορικού σας.
Γίνεται έλεγχος…
Μέσα σε αυτό το σφραγισμένο αρχείο
Δεν έχει αποθηκευτεί τίποτα ακόμη. Αυτά δηλώνει ότι περιέχει το σφραγισμένο αρχείο:
- Όνομα
- Μέγεθος
- Τύπος
Προσοχή — αυτός ο τύπος αρχείου μπορεί να εκτελέσει κώδικα στη συσκευή σας
Αποκρυπτογραφήθηκε.
Το αρχείο αποκρυπτογραφήθηκε στη συσκευή σας και προσφέρθηκε ως λήψη. Τίποτα σχετικό με αυτό δεν έφυγε ποτέ από αυτή τη σελίδα.
Από τους δημιουργούς του Sealby — του κρυπτογραφημένου θησαυροφυλακίου για iPhone
Το Sealby κρατά φωτογραφίες, αρχεία και σημειώσεις σε κρυπτογραφημένα θησαυροφυλάκια στο iPhone σας. Χωρίς λογαριασμό, χωρίς διακομιστές, αναγνώσιμα από κανέναν εκτός από εσάς.
Κάθε παράμετρος, δηλωμένη
- Κρυπτοαλγόριθμος
- AES-256-GCM (WebCrypto), ετικέτα 128 bit ανά τμήμα
- Κλειδί
- 256 bit από το CSPRNG του προγράμματος περιήγησης, νέο σε κάθε σφράγιση, μίας χρήσης, χωρίς να παράγεται από τίποτα
- Κατάτμηση
- ένα κρυπτογραφημένο μανιφέστο (όνομα αρχείου, μέγεθος, τύπος) και μετά το αρχείο σε τμήματα του 1 MiB — καθένα αυθεντικοποιημένο χωριστά
- Nonce
- τυχαίο αλάτι σφράγισης 32 bit ‖ μετρητής τμήματος 64 bit — δεν επαναλαμβάνεται ποτέ μέσα σε ένα αρχείο, και το κλειδί είναι ούτως ή άλλως μίας χρήσης
- Αυθεντικοποιημένα δεδομένα
- ολόκληρη η κεφαλίδα των 16 byte, συν ο δείκτης κάθε τμήματος και το συνολικό πλήθος τμημάτων — η αναδιάταξη, η περικοπή ή η συρραφή τμημάτων χαλάει την αποκρυπτογράφηση
- Συμβολοσειρά κλειδιού
- base64url, 47 χαρακτήρες: το κλειδί των 32 byte συν ένα άθροισμα ελέγχου SHA-256 των 3 byte, ώστε ένα τυπογραφικό λάθος να αποτυγχάνει καθαρά αντί να παράγει σκουπίδια
Ειλικρινείς απαντήσεις για το τι κάνει αυτό
Όλα συμβαίνουν στο πρόγραμμα περιήγησής σας.
Τόσο η σφράγιση όσο και το άνοιγμα διαβάζουν το αρχείο στη μνήμη αυτής της σελίδας, εκτελούν εκεί AES-256-GCM με την ενσωματωμένη μηχανή WebCrypto του προγράμματος περιήγησής σας και επιστρέφουν το αποτέλεσμα ως λήψη. Τίποτα δεν ανεβαίνει. Δεν υπάρχει λογαριασμός ούτε επεξεργασία στην πλευρά του διακομιστή. Σε αντίθεση με τον υπόλοιπο ιστότοπο, αυτή η σελίδα δεν φορτώνει ούτε καν τον μετρητή επισκέψεων χωρίς cookies. Κανένα αναλυτικό εργαλείο οποιουδήποτε είδους.
Αυτό δεν είναι απλώς μια υπόσχεση. Η σελίδα σερβίρεται με Content-Security-Policy που επιτρέπει στο πρόγραμμα περιήγησης να ανακτά μόνο τα στατικά αρχεία του ίδιου του ιστότοπου. Δεν έχει κανέναν τρόπο να στείλει το αρχείο σας, το κλειδί σας ή οτιδήποτε άλλο σε οποιονδήποτε διακομιστή, ούτε στους δικούς μας. Ανοίξτε τα εργαλεία προγραμματιστή του προγράμματος περιήγησής σας ενώ σφραγίζετε και θα δείτε μηδέν αιτήματα. Για την πιο ωμή απόδειξη, εγκαταστήστε την Εργαλειοθήκη και σφραγίστε σε λειτουργία πτήσης. Με το δίκτυο κλειστό, τίποτα δεν μπορεί να φύγει.
Το κλειδί είναι τα πάντα — και εμείς δεν το έχουμε ποτέ.
Κάθε σφράγιση δημιουργεί ένα φρέσκο τυχαίο κλειδί 256 bit στο πρόγραμμα περιήγησής σας. Σας εμφανίζεται μία φορά και δεν φυλάσσεται πουθενά: ούτε στα συστήματά μας (δεν εμπλέκεται κανένα), ούτε στον χώρο αποθήκευσης του προγράμματος περιήγησής σας, ούτε μέσα στο σφραγισμένο αρχείο. Δεν υπάρχει συνθηματική φράση προς μάντεμα και τίποτα που να σπάει με ωμή βία. Όποιος έχει το κλειδί και το αρχείο μπορεί να το ανοίξει. Όποιος δεν τα έχει, δεν μπορεί.
Αυτό έχει μια σκληρή συνέπεια: αν χαθεί το κλειδί, χάθηκε το αρχείο. Δεν υπάρχει επαναφορά, ούτε αίτημα υποστήριξης, ούτε ανάκτηση. Δεν πρόκειται για ιδιοτροπία μας. Ένα αντίγραφο που θα μπορούσαμε να ανακτήσουμε θα ήταν αντίγραφο που κάποιος θα μπορούσε να κλέψει ή να απαιτήσει.
Ο σύνδεσμος του κλειδιού δεν φτάνει ποτέ σε διακομιστή.
Ο σύνδεσμος κοινοποίησης βάζει το κλειδί μετά το # μέσα στη διεύθυνση. Αυτό το κομμάτι, το τμήμα κατακερματισμού, μένει στο πρόγραμμα περιήγησης. Δεν περιλαμβάνεται ποτέ σε ό,τι στέλνει το πρόγραμμα περιήγησης σε οποιονδήποτε διακομιστή, δικό μας ή οποιουδήποτε άλλου. Όταν αυτή η σελίδα φορτώνει με κλειδί μέσα στον σύνδεσμο, διαβάζει το κλειδί, μεταβαίνει στην καρτέλα Άνοιγμα και αφαιρεί αμέσως το κλειδί από τη γραμμή διευθύνσεων. Έτσι δεν μένει στην ορατή διεύθυνση ή στο ιστορικό του προγράμματος περιήγησης.
Παρ’ όλα αυτά, όποιος έχει και τον σύνδεσμο και το σφραγισμένο αρχείο μπορεί να το ανοίξει. Γι’ αυτό αυτή η σελίδα σας λέει να στέλνετε το αρχείο και το κλειδί από διαφορετικά κανάλια.
Βλέπετε τι υπάρχει μέσα πριν αποθηκευτεί οτιδήποτε.
Το άνοιγμα γίνεται σε δύο βήματα. Πρώτα η σελίδα αποκρυπτογραφεί μόνο ένα μικρό μανιφέστο: το αρχικό όνομα, μέγεθος και τύπο του αρχείου. Σας το δείχνει, με ηχηρή προειδοποίηση για τύπους αρχείων που μπορούν να εκτελέσουν κώδικα (προγράμματα, σενάρια, προγράμματα εγκατάστασης, έγγραφα με μακροεντολές, HTML) και για ονόματα μεταμφιεσμένα με διπλή επέκταση, όπως invoice.pdf.exe. Τίποτα δεν γράφεται μέχρι να πατήσετε για αποκρυπτογράφηση. Η σελίδα δεν ανοίγει ούτε αποδίδει ποτέ η ίδια το αποκρυπτογραφημένο περιεχόμενο. Απλώς προσφέρει το αρχείο για λήψη.
Ας είμαστε σαφείς για το τι αποδεικνύει και τι δεν αποδεικνύει η κρυπτογράφηση. Ένα σφραγισμένο αρχείο είναι εμπιστευτικό στη διαδρομή. Η σφράγιση δεν λέει τίποτα για το ποιος το έστειλε ή για το αν το περιεχόμενό του είναι ασφαλές. Αντιμετωπίστε ένα απροσδόκητο σφραγισμένο αρχείο με την ίδια δυσπιστία που θα δείχνατε σε ένα απροσδόκητο συνημμένο.
Πού βρίσκεται πραγματικά το όριο εμπιστοσύνης.
Εκτελείτε κώδικα που σας σέρβιρε αυτός ο ιστότοπος. Αν το sealby.app ή η σύνδεσή σας με αυτό παραβιάζονταν, μια κακόβουλη σελίδα θα μπορούσε να διαβάσει ό,τι βάζετε μέσα. Αυτό ισχύει για κάθε εργαλείο κρυπτογράφησης που τρέχει στον ιστό, και προτιμούμε να το πούμε παρά να κάνουμε πως δεν ισχύει. Τι κάνουμε γι’ αυτό: η σελίδα είναι στατικό αρχείο και την κρατάμε ελεύθερη από κώδικα τρίτων. Η εγκατεστημένη Εργαλειοθήκη σας επιτρέπει να συνεχίσετε να χρησιμοποιείτε μια έκδοση που έχετε ήδη φορτώσει. Και η μορφή είναι τεκμηριωμένη παρακάτω, ώστε να μπορούν να φτιαχτούν ανεξάρτητα εργαλεία πάνω της.
Και η δική σας συσκευή βρίσκεται μέσα στο όριο. Επεκτάσεις προγράμματος περιήγησης με πρόσβαση στη σελίδα, ή κακόβουλο λογισμικό στο μηχάνημα, μπορούν να διαβάσουν ό,τι μπορεί να διαβάσει οποιαδήποτε σελίδα. Το σφραγισμένο αρχείο κρύβει το περιεχόμενό του, αλλά όχι τα πάντα. Όποιος το κρατά βλέπει το μέγεθός του (περίπου το μέγεθος του πρωτοτύπου) και ότι είναι αρχείο σφραγισμένο από το Sealby.
Όρια με απλά λόγια
- Χαμένο κλειδί = χαμένο αρχείο. Καμία εξαίρεση, εκ σχεδιασμού.
- Δεν μπορούμε να δούμε τα αρχεία ή τα κλειδιά σας, οπότε δεν μπορούμε ούτε να τα σαρώσουμε για κακόβουλο λογισμικό. Η προειδοποίηση για τον τύπο αρχείου βασίζεται μόνο στο όνομα του αρχείου. Δεν είναι εγγύηση ασφάλειας.
- Όποιος έχει και το σφραγισμένο αρχείο και το κλειδί μπορεί να το ανοίξει. Το εργαλείο δεν ξέρει και δεν ελέγχει ποιος είναι.
- Το μέγεθος του σφραγισμένου αρχείου αποκαλύπτει κατά προσέγγιση το μέγεθος του πρωτοτύπου.
- Ένα αρχείο, έως 100 MB, ανά σφράγιση. Συμπιέστε πρώτα τα πολλαπλά αρχεία.
Η μορφή, byte προς byte
Ό,τι χρειάζεται ένας τεχνικός αναγνώστης για να επαληθεύσει ανεξάρτητα την έξοδο αυτής της σελίδας, ή για να ανοίξει ένα αρχείο .sealed σε τριάντα γραμμές Python:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SEALBY-W" |
| 8 | έκδοση | 0x01 — οτιδήποτε άλλο απορρίπτεται ως «φτιαγμένο με νεότερη έκδοση» |
| 9 | αλγόριθμος | 0x01 = AES-256-GCM |
| 10–13 | αλάτι σφράγισης | 4 byte, CSPRNG, νέο ανά σφράγιση |
| 14–15 | δεσμευμένα | πρέπει να είναι μηδέν |
| 16–τέλος | πλαίσια τμημάτων | καθένα: uint32 BE μήκος κρυπτοκειμένου και μετά το κρυπτοκείμενο AES-GCM + ετικέτα 16 byte |
Το τμήμα 0 είναι το μανιφέστο: JSON σε UTF-8 {"name":…,"size":…,"type":…}. Τα τμήματα 1…N−1 είναι το αρχείο σε κομμάτια του 1 MiB. Για κάθε τμήμα i από N: nonce = αλάτι ‖ uint64 BE i· αυθεντικοποιημένα δεδομένα = κεφαλίδα ‖ uint64 BE i ‖ uint64 BE N. Έτσι η παραποίηση, η περικοπή, η αναδιάταξη, η μετατόπιση και η συρραφή μεταξύ αρχείων αποτυγχάνουν όλες στην αυθεντικοποίηση. Κάθε περίπτωση αποδεικνύεται από ένα κατατεθειμένο αρνητικό τεστ.
Συμβολοσειρά κλειδιού: base64url (χωρίς γέμισμα) του κλειδιού των 32 byte, ακολουθούμενο από τα πρώτα 3 byte του SHA-256 του, 47 χαρακτήρες συνολικά. Ένα τυπογραφικό λάθος αποτυγχάνει στο άθροισμα ελέγχου αντί να παράγει σκουπίδια.
Πλήρης προδιαγραφή με ακρίβεια byte (FORMAT-WEB-v1) ·Διανύσματα δοκιμής γνωστής απάντησης (JSON)
Πρόγραμμα ανοίγματος αναφοράς (Python, βιβλιοθήκη cryptography)
import base64, hashlib, json, struct, sys
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SEALBY-W" and raw[8] == 1 and raw[9] == 1
assert raw[14:16] == b"\x00\x00"
header, salt = raw[:16], raw[10:14]
frames, off = [], 16
while off < len(raw):
(n,) = struct.unpack(">I", raw[off:off + 4]); off += 4
frames.append(raw[off:off + n]); off += n
assert off == len(raw)
kb = base64.urlsafe_b64decode(sys.argv[2] + "=") # 47-char key string
key, check = kb[:32], kb[32:35]
assert hashlib.sha256(key).digest()[:3] == check # typo check
N = len(frames)
def chunk(i):
nonce = salt + struct.pack(">Q", i)
aad = header + struct.pack(">QQ", i, N)
return AESGCM(key).decrypt(nonce, frames[i], aad)
manifest = json.loads(chunk(0))
data = b"".join(chunk(i) for i in range(1, N))
assert len(data) == manifest["size"]
open(manifest["name"], "wb").write(data)
print("decrypted ->", manifest["name"])Αυτό είναι για αρχεία εν κινήσει. Το θησαυροφυλάκιο είναι για αρχεία σε ηρεμία.
Η σφράγιση προστατεύει ένα αρχείο στον δρόμο του κάπου. Το Sealby προστατεύει όλα όσα μένουν: φωτογραφίες, αρχεία και σημειώσεις σε κρυπτογραφημένα θησαυροφυλάκια στο iPhone σας. Χωρίς λογαριασμό, χωρίς διακομιστές, αναγνώσιμα από κανέναν εκτός από εσάς.
iPhone και iPad · iOS 17+ · Δωρεάν