Оны тек сіз және өзіңіз жазатын адамдар оқи алады

Cryptico — веб, Android және iPhone үшін жасалған анонимді мессенджер: телефон нөмірі де, электрондық пошта да, шын есім де қажет емес. Әр хабарлама ұштан-ұшқа шифрланады, ал сервер коды оны, тіпті қаласақ та, аша алмайды.

Тіркелудің де, телефон нөмірінің де қажеті жоқ — браузерде бірден ашылады.

Кең браузер терезесіндегі веб-клиент: сол жақта чаттар тізімі, оң жақта ашылған топтық әңгіме.

Аккаунт дегеніміз — адам емес, тіркес

Тіркелу үшін ештеңе бермейсіз. Cryptico кездейсоқ бірегейлік пен он екі сөзден тұратын қалпына келтіру тіркесін жасайды, әрі сол тіркестің өзі — аккаунт: барлық кілтіңіз содан шығарылады. Растайтын нөмір де, құптайтын мекенжай да, сізбен байланыстыратын профиль де жоқ. Пайдаланушы аты — қалауыңызша: табылғыңыз келсе аласыз, келмесе — алмайсыз.

01

Біз шынымен жауап бере алатын төрт нәрсе

  • 01

    Сервер хабарламаларыңызды оқи алмайды

    Бұл — саясат емес, құрастырманың қасиеті. Сервер бинарлы файлы хабарлама денесінің анықтамасын мүлде компиляцияламайды, сондықтан онда оны ашатын код жолы жоқ. Егер бұл бір күні бұзылса, құбырымыздағы тексеру құрастыруды құлатады.

    check-proto-content-boundary.mjs
  • 02

    Нақты өмірдегі сәйкестендіргіштер — ешқашан

    Телефон нөмірлері де, email мекенжайлары да, шын есімдер де жоқ — қосымшада да, дерекқорда да, протоколда да. Автоматты тексеру мұндайды қосатын кез келген өзгерісті кері қайтарады. Бірде байланыс картасының нобайына телефон нөмірінің өрісі еніп кеткен; ол алынып тасталды, ал орны біржола жабылды.

    check-forbidden-columns.mjs
  • 03

    Signal Protocol және кванттан кейінгі кілт келісімі

    Қол алысу үшін PQXDH, хабарламалар үшін Double Ratchet, топтар үшін Sender Keys. Әр сеанс классикалық алмасудың үстіне кванттан кейінгі Kyber-1024 алмасуын қосады — опция ретінде емес, әр қол алысуда — сондықтан бүгін жазып алынған трафик болашақтағы кванттық компьютер үшін оқылатын болмайды. Қол алысудан кейінгісі — әдеттегі криптография, сол себепті біз мұны ұштан-ұшқа деп емес, кванттан кейінгі кілт келісімі деп атаймыз.

    libsignal · PQXDH · Kyber-1024
  • 04

    Өз серверлеріміз тыңдай алмайтын қоңыраулар

    Екеуара қоңыраулар құрылғылар арасында тікелей жүреді; медиаға ешбір сервер тимейді. Топтық қоңыраулар біздің медиасерверіміз арқылы өтеді, бірақ әр кадр оған жеткенге дейін шифрланады, ал ол сервер кілтті ешқашан алмайды. Құрастыру тексеруі қоңырау медиасының кілттерін сервер кодынан мүлдем аулақ ұстайды.

    check-call-media-key-boundary.mjs
02

Онымен нақты не істей аласыз

Бұл — көрсетілім емес, мессенджер. Тізімдегінің бәрі өнімде бар және мағынасы бар әр платформада жұмыс істейді.

  • Чат сияқты жұмыс істейтін чаттар

    Мәтін, оның ішінде атап өтулер, жауаптар, өңдеу, бәрі үшін жою, реакциялар, қайта жіберу, бірнешеуін таңдау және жеке бетбелгілер. Жеткізу мен оқу туралы белгілер, теру индикаторлары, нобайлар, бір чаттың ішінен және барлығының арасынан іздеу. Жай мәтін жетпегенде — сауалнамалар, бақылау тізімдері, картадағы нүкте және байланыс картасы.

  • 128 қатысушыға дейінгі топтар

    Топ құрыңыз, адамдарды қосыңыз және шығарыңыз, мерзімі мен қолдану шегі бар сілтемемен шақырыңыз, бір адамды не бәрін атап өтіңіз. Сервер хабарламаларды таратады, бірақ топтың атын да, сипаттамасын да, оны кімнің құрметіне атағаныңызды да білмейді.

  • Файлдар, фотосуреттер және дауыс

    Сегіз түрлі тіркеме, әрқайсысы 100 MiB дейін — фото, бейне, дауыстық хабарлама, бейнежазба, файл, GIF, стикер, аудио — альбомдар мен спойлерлерімен. Әр файл құрылғыңызда өзінің бір реттік кілтімен жабылады және ашылмас бұрын өзгертілмегеніне тексеріледі.

  • Мессенджер ішіндегі мини-қосымшалар

    Каталог, бір рет түртіп орнату және оқшауланған орындалу ортасы, сонымен қатар әзірлеуші консолі мен анонимді шағым түймесі. Бақылау сомасы манифесіне сәйкес келмейтін қосымша мүлдем іске қосылмайды.

  • Шынымен бөгейтін бөгеу

    Бөгелген жіберушінің хабарламасы жеке чатта сізге ешқашан жетпейді, ал ол оның жетпегенін білмейді. Бөгеу 180 күн бойы жұмыс істейді, әрі жазуға жасалған әр әрекет оны ұзартады.

  • Бір аккаунтта он құрылғыға дейін

    Жаңа құрылғыны тіркеспен байланыстырыңыз, толық тізімді көріңіз, кез келгенін ажыратыңыз — тіпті жұмыс істеп тұрған сеансыңыз қалмаған кезде де. Контактілер, қалталар, чат тізімі, бөгеулер мен параметрлер шифрланған күйде көшеді. Хабарлама мұрағатыңыз көбіне көшпейді; ол «біз нені уәде етпейміз» бөлімінде.

03

Қоңыраулар: екеуара және топпен

Дауыс пен бейне, алдыңғы және артқы камера, бір мезгілде сегіз бейне тақтасына дейін, қол көтеру, экранды бөлісу, әр тақтада микрофон мен камера индикаторлары. Медиа әдепкіде реле арқылы жүреді, сондықтан екінші жақ мекенжайыңызды көрмейді.

Төрт қатысушысы бар топтық қоңырау; біреуінің қолы көтерулі.Телефондағы топтық қоңырау.
04

Қалталар, бекітілген және тыныш чаттар

Ережеге негізделген қалталар, бекітілген чаттар, дыбысы өшірілген чаттар, ортақ медиа көрінісі және байланысыңыз туралы шындықты айтатын қосылым баннері. Атап өту дыбысы өшірілген чат арқылы да жетеді — бұл әдейі жасалған.

Қалта редакторы және оған қандай чаттар түсетінін шешетін сүзу ережелері.Телефондағы чаттар тізімі және жаңа топ құру экраны.
05

Ол шын мәнінде қалай жұмыс істейді

Сенгеннен гөрі тексергісі келетіндерге арналған қысқаша нұсқа.

Құпиялық параметрлері: оқу туралы белгілер, PIN-код және автоқұлыптау таймері.Телефондағы құпиялық параметрлері: биометриялық ашу, автоқұлыптау және контактіні растауға арналған қауіпсіздік нөмірі.
Қол алысу
PQXDH: Curve25519 және Kyber-1024 алдын ала кілті, әр сеанста, сондықтан кілт келісімі бірінші хабарламадан бастап кванттық шабуылға төзімді.
Хабарламалар
Double Ratchet: әр хабарлама кілттерді алға жылжытады, сондықтан кейін қолға түскен кілт бұрынғысын ашпайды.
Топтар
Sender Keys, 128 қатысушыға дейін. Сервер қатысушылар тізімін біледі, өйткені хабарламаларды таратуы керек; бірақ топтың атын білмейді.
Топтық қоңыраулар
Кадрлар біздің медиасерверімізге жеткенге дейін шифрланады. Кілтті қоңырауды бастаған құрылғы жасайды, оны мессенджердің өзі таратады және біреу қосылған не шыққан сайын ауыстырады.
Файлдар мен фотосуреттер
Әр файлға жаңа кілті бар AES-256-GCM, шифрланған конверт ішінде тасымалданады, әрі ештеңе шифрланбай тұрып SHA-256 тексерісі жүреді. Қойма өзі түсінбейтін байттарды сақтайды.
Құрылғыңызда
Жергілікті хабарламалар дерекқоры сақталу кезінде шифрланады — Android пен iPhone-да SQLCipher, браузерде AES-256-GCM.
Қалпына келтіру тіркесіңіз
Он екі сөз. Аккаунттың әр кілті солардан шығарылады: BIP39, содан кейін әр болжам үшін 64 MiB және үш өтуімен Argon2id — дәл осы толық іріктеуді экономикалық тұрғыдан тиімсіз етеді. Сервер оны кері қайтара алатын ештеңе сақтамайды.
Адамды растау
Әр әңгімеге арналған 60 саннан тұратын қауіпсіздік нөмірі және қоңырау ішінде көрсетілетін, біреуіңіз дауыстап оқитын алты саннан тұратын код. Қоңырау коды тек сол қосылымнан есептеледі, сондықтан ол әр жолы басқа болады.
Қосымша құлпы
Argon2id және AES-256-GCM-мен оралған төрт таңбалы PIN, бес әрекет, құрылғы ұсынса — биометрия, әрі әрекетсіздік кезінде автоқұлыптау. PIN құрылғыны ашады; аккаунт тіркеске тиесілі.
Параметрлер мен контактілер
Қалпына келтіру тіркесіңізден шығарылған кілтпен шифрмәтін ретінде синхрондалады — тіпті әр жазбаның атауы мәтін емес, кілттелген хеш. Сервер өрістерді емес, мағынасы жабық блобтарды сақтайды.
Кітапханалар
Android пен iPhone Signal-дың ресми кітапханасын пайдаланады. Signal браузерлерге арналған құрастырманы мүлде шығармайды, сондықтан веб-қозғалтқышты Signal-дың өз бастапқы кодынан, нақты нұсқаға бекітіп, өзіміз компиляциялаймыз — мұнда құрастыру үшін бір жол өзгертілді, ал криптографияға тиген жоқпыз.
06

Біз нені уәде етпейміз

Кез келген мессенджердің басты беті нені қорғайтынын айтады. Бұл бет оған қоса нені қорғамайтынын да айтады, өйткені біз түзете алмайтын тұстар — сізге ең қажет білуге тиіс тұстар.

  • Кім кіммен сөйлесетінін біз көре аламыз

    Ұштан-ұшқа шифрлау не айтқаныңызды жасырады, айтқаныңыздың фактісін емес. Хабарламаны жеткізу үшін сервер оны кім және қашан алатынын білуге мәжбүр. Ол сондай-ақ топ құрамын сақтайды, өйткені онсыз тарату мүмкін емес. Кім кіммен сөйлесетінін білмейміз деп адал айта алмаймыз. Айта алатынымыз — мазмұнды ешқашан көрмейміз, ал сервер коды оны талдай да алмайды.

  • Push-хабарландырулар уақыт туралы деректі Google мен Apple-ға ашады

    Android хабарландырулары Firebase Cloud Messaging арқылы, iPhone-дікі Apple қызметі арқылы жүреді. Push мәтінді де, жіберушіні де тасымалдамайды — бірақ тасымалдаушы қай құрылғының және қай уақытта оятылғанын көреді, ал бұл уақыт белгілерін салыстыру арқылы кім кіммен сөйлесетінін қалпына келтіруге жетеді. Оятуды біреудің қызметі тасымалдап тұрғанда, аккаунт анонимділігі байланыстың фактісі мен уақытына жайылмайды.

  • Тарихыңыз соңыңыздан әрең ереді

    Жаңа құрылғыда кіру бірегейлігіңізді, профиліңізді, контактілеріңізді, қалталарыңызды, чат тізіміңізді, бөгеулеріңізді және параметрлеріңіздің бір бөлігін қалпына келтіреді — бірақ хабарлама мұрағатыңызды емес. Сөйлесетін адамдарыңыз оның таяз бөлігін, отыз күннен әрі емес, қайта жібереді, болғаны сол. Тарихыңыздың сервер жағындағы сақтық көшірмесі жоқ, әрі бұл әдейі солай.

  • Тіркесті жоғалтсаңыз, ешкім көмектесе алмайды

    Қолдау қызметі сізді кері кіргізе алмайды, өйткені біздің жағымызда кіргізетін ештеңе жоқ — нөмір де, мекенжай да, құпиясөз тұспалы да. Он екі сөз — аккаунттың өзі. Бұл — осы беттің қалғанының бағасы, әрі оны тіркелгеннен кейін емес, тіркелгенге дейін білгеніңізді қалаймыз.

  • Біз журнал жүргіземіз, бірақ сіз туралы емес

    Біз пайдалану журналдарын жүргіземіз: онда хабарлама мазмұны да, шифрмәтін денелері де, кілттер де, қалпына келтіру тіркестері де жоқ. «Ешқандай журнал жоқ» деген жалған болар еді; «журналдарда мазмұн жоқ» — шындық, әрі біз дәл соны уәде етеміз.

07

Ол қайда жұмыс істейді

Телефонда ашылған топтық әңгіме.Телефондағы топтық қоңырау.Телефондағы шақыру экраны: QR-код және басқаға беруге арналған шақыру коды көрсетілген.
08

Адамдар шынымен қоятын сұрақтар

Оның бағасы қанша?

Тегін. Ақылы жоспар да, жарнама да, қосымша сатылым да жоқ — шектеулердің бәрі техникалық, мысалы бір файлға 100 MiB және оны сақтаудың отыз күні. Егер қашан да болса ақылы жоспар пайда болса, біз бұл туралы кейін емес, алдын ала айтамыз.

Код көпшілікке ашық па?

Әзірге жоқ. Ол әзірлеу тұрақтанған соң жарияланады. Сол күнге дейін біз өзімізді ашық бастапқы кодты жоба деп сипаттамаймыз — сіз бұл мәлімдемені тексере алмайсыз, ал біз оны сенім негізінде қабылдауыңызды сұрамаймыз. Репозиторий ашылған кезде оның мекенжайы дәл осында тұрады.

Қалпына келтіру тіркесімді жоғалтсам не болады?

Аккаунт жоғалады. Қалпына келтіру сілтемесі де, қолдау қызметінің сізді кері кіргізу жолы да жоқ — біз басқаратын қалпына келтіру жолы басқа біреу үшін де кіру жолы болар еді.

Маған кім жаза алады?

Ол үшін пайдаланушы атыңыз, өзіңіз берген шақыру сілтемеңіз немесе QR-кодыңыз керек. Мүлдем табылғыңыз келмесе, пайдаланушы атын алмаңыз. Кез келгенін бөгей аласыз, ал бөгелген жіберуші сізге жете алмайды.

Дұрыс адаммен сөйлесіп тұрғанымды тексере аламын ба?

Иә, екі жолмен. Әр әңгіменің екі жақ бір рет салыстыра алатын 60 саннан тұратын қауіпсіздік нөмірі бар, ал қоңырау кезінде екі экранда бірдей алты саннан тұратын код көрсетіледі — біреуіңіз оны дауыстап оқисыз, екіншісі тексереді. Қоңырау коды әр қоңырауда жаңа.

Оны бірнеше құрылғыда пайдалана аламын ба?

Иә, он құрылғыға дейін. Әрқайсысы қалпына келтіру тіркесімен байланысады, әрі кез келгенін тізімнен ажыратуға болады. Контактілер, қалталар, чат тізімі және параметрлер шифрланған күйде көшеді; хабарлама мұрағатыңыз көбіне көшпейді.

Сіз мені зерттеп, бірдеңе сатасыз ба?

Жарнама да, дерек сату да жоқ. Бұл бетте аналитика да, үшінші тараптың скрипттері де мүлдем жоқ — бірде-бір сұрау бөгде серверге кетпейді.

Дайын болғанда хабарлаңыз

Орнатуға тұрарлық нәрсе шыққан күні — бір ғана хабарлама. Жаңалықтар таратылымы да, тізбекті науқан да, үшінші тараптың пошта қызметі де жоқ — мекенжай өз дерекқорымызда қалады және ешқайда кетпейді.

Біз растау хатын жібермейміз, сондықтан қате теру үнсіздікті білдіреді. Жібермес бұрын мекенжайды тексеріңіз.