Δωρεάν εργαλείο απορρήτου

Κρυπτογραφήστε ένα αρχείο στο πρόγραμμα περιήγησής σας

Διαλέξτε ένα αρχείο, επιλέξτε μια συνθηματική φράση και κατεβάστε ένα κρυπτογραφημένο αντίγραφο. AES-256-GCM, με το κλειδί να παράγεται στο πρόγραμμα περιήγησής σας. Τίποτα δεν ανεβαίνει, και λειτουργεί εκτός σύνδεσης μόλις φορτώσει. Η μορφή είναι τεκμηριωμένη byte προς byte παρακάτω, ώστε να μη χρειάζεται να μας πιστέψετε για τίποτα.

Τρέχει εξ ολοκλήρου σε αυτή την καρτέλα. Τίποτα δεν ανεβαίνει, και λειτουργεί εκτός σύνδεσης μόλις φορτώσει.

Οποιοδήποτε αρχείο. Τα μεγάλα αρχεία χρειάζονται μνήμη. Δείτε τα ειλικρινή όρια παρακάτω.

Δεν υπάρχει ανάκτηση. Μια ξεχασμένη συνθηματική φράση σημαίνει ένα αρχείο που κανείς, ούτε εμείς, δεν θα μπορέσει ποτέ να ανοίξει.

Κάθε παράμετρος, δηλωμένη

Κρυπτοαλγόριθμος
AES-256-GCM (WebCrypto), ετικέτα 128 bit
Παραγωγή κλειδιού
PBKDF2-HMAC-SHA-256, 600.000 επαναλήψεις
Αλάτι KDF
16 byte, CSPRNG, νέο ανά αρχείο
Nonce GCM
12 byte, CSPRNG, νέο ανά αρχείο
Αυθεντικοποιημένα δεδομένα
ολόκληρη η κεφαλίδα των 42 byte, οπότε η παραποίηση οποιασδήποτε δηλωμένης παραμέτρου χαλάει την αποκρυπτογράφηση
Κωδικοποίηση συνθηματικής φράσης
UTF-8, κανονικοποίηση NFC (ώστε η ίδια φράση, πληκτρολογημένη σε οποιαδήποτε συσκευή, να παράγει το ίδιο κλειδί)

Ειλικρινή όρια

Αυτή δεν είναι η μορφή θησαυροφυλακίου της εφαρμογής Sealby. Η εφαρμογή παράγει κλειδιά με Argon2id βαθμονομημένο ανά συσκευή, τα τυλίγει στο Secure Enclave και αποθηκεύει περιεχόμενο σε αρνήσιμα κατατμημένα κοντέινερ. Μια ιστοσελίδα δεν μπορεί να κάνει τίποτα από αυτά. Αυτή η σελίδα είναι ένα αυτόνομο βοηθητικό εργαλείο, χτισμένο πάνω σε ό,τι προσφέρουν εγγενώς τα προγράμματα περιήγησης.

Το PBKDF2 δεν έχει υψηλές απαιτήσεις μνήμης. Είναι η μόνη συνάρτηση παραγωγής κλειδιού που τα προγράμματα περιήγησης προσφέρουν εγγενώς, και οι 600.000 επαναλήψεις κάνουν κάθε μαντεψιά αργή, αλλά ένα μηχάνημα με GPU το σπάει ακόμη πολύ ταχύτερα απ’ ό,τι το Argon2id. Έτσι, η προστασία βρίσκεται στη συνθηματική σας φράση: τέσσερις τυχαίες λέξεις ή περισσότερες, όχι ένας κωδικός.

Η WebCrypto κρυπτογραφεί μονομιάς. Δεν υπάρχει ροή, οπότε ολόκληρο το αρχείο κάθεται στη μνήμη δύο έως τρεις φορές κατά την επεξεργασία. Εκατοντάδες megabyte είναι μια χαρά στις περισσότερες συσκευές. Για αρχεία πολλών gigabyte, χρησιμοποιήστε εργαλείο υπολογιστή. Η κρυπτογραφημένη έξοδος αποκαλύπτει επίσης το κατά προσέγγιση μέγεθος του αρχείου. Το όνομα είναι κρυπτογραφημένο μέσα, αλλά το μέγεθος δεν κρύβεται.

Η μορφή, byte προς byte

Ό,τι χρειάζεται ένας τεχνικός αναγνώστης για να επαληθεύσει ανεξάρτητα την έξοδο αυτής της σελίδας, ή να την αποκρυπτογραφήσει σε είκοσι γραμμές Python:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8έκδοση0x01
9αλγόριθμος0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13επαναλήψειςuint32, big-endian (600.000)
14–29αλάτι16 byte
30–41nonce12 byte
42–τέλοςκρυπτοκείμενοAES-256-GCM του ωφέλιμου φορτίου, AAD = byte 0–41· τα τελευταία 16 byte είναι η ετικέτα GCM

Ωφέλιμο φορτίο πριν την κρυπτογράφηση: [μήκος ονόματος 2 byte, big-endian][όνομα αρχείου, UTF-8][byte αρχείου]. Το αρχικό όνομα ταξιδεύει κρυπτογραφημένο· κατά την αποκρυπτογράφηση αποκαθίσταται.

Αποκρυπτογραφητής αναφοράς (Python, βιβλιοθήκη cryptography)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0]          # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42])     # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)

Αυτό είναι η επίδειξη. Το προϊόν είναι το θησαυροφυλάκιο.

Ένα αρχείο, μία συνθηματική φράση, μία σελίδα. Αυτό μπορεί να κάνει ένα πρόγραμμα περιήγησης. Το Sealby το κάνει σωστά: Argon2id βαθμονομημένο στη συσκευή σας, κλειδιά στο Secure Enclave και κρυφά θησαυροφυλάκια χωρίς αποθηκευμένη λίστα ή καταμέτρηση.

Λήψη από το App Store

iPhone και iPad · iOS 17+ · Δωρεάν