Diogelwch yn qub
Dyddiad effeithiol: 23 Medi 2026 Fersiwn: 1.1 — adolygiad cywirdeb gweithredu
I ymchwilwyr — cyfeirlyfr cyflym:
- Ble i anfon adroddiadau: support@qub.social gyda'r rhagddodiad pwnc
[SECURITY].- Beth i'w gynnwys: y wendid, camau i'w atgynhyrchu, ac unrhyw brawf-o-gysyniad.
- Ein ymateb: rydym yn cydnabod derbyn o fewn 3 diwrnod busnes ac yn anelu at gyflenwi atgyweiriad o fewn 90 diwrnod.
- Hafan Diogel: ni fyddwn yn dilyn gweithred gyfreithiol yn erbyn ymchwil ffydd dda sy'n dilyn y rheolau yn §12 (dim mynediad i ddata nad yw'n eiddo i chi, dim diraddio gwasanaeth, dim cadw data a gafwyd y tu hwnt i'r hyn sydd ei angen i ddangos y mater, rhowch i ni ffenest ddatgelu resymol).
Mae manylion llawn yn §12 (Datgeliad Cydlynol).
Pwy Ydym Ni
Mae qub.social yn cael ei weithredu gan VSPRY AUSTRALIA PTY LIMITED (ABN 41 631 026 330), Level 38, 71 Eagle Street, Brisbane QLD 4000, Awstralia. Mae cyfeiriadau at "qub", "ni", ac "ein" yn golygu'r endid hwnnw.
Cyswllt diogelwch: support@qub.social gyda'r rhagddodiad pwnc [SECURITY].
1. Ein Hagwedd
Seilwaith ymddiriedaeth yw qub. Mae'r cynnyrch yn ddi-werth os nad yw'n ddiogel, felly nid yw diogelwch yn nodwedd — y sylwedd ydyw. Mae'r dudalen hon yn disgrifio, yn nhermau diriaethol, sut rydym yn diogelu ein stac, eich data, ac uniondeb cynnwys wedi'i selio.
Mae gwerth ymrwymiad amserol dilysadwy yn tyfu wrth i fwy o’r rhyngrwyd gael ei gynhyrchu gan beiriannau. Gall trafodiad storfa neu angor log tryloywder wedi’i ddilysu sefydlu bod seiferdestun yn bodoli heb fod yn hwyrach nag amser ei floc; mae’r arteffact seliedig ar wahân yn profi uniondeb y cynnwys, rhwymo rownd drand, ac unrhyw lofnodion awduriaeth. Cadw’r honiadau hynny ar wahân yw’r bar ar gyfer y dudalen hon.
Nid ydym yn gofyn i chi ymddiried ynom. Rydym yn dylunio felly bod yr ymddiriedaeth sy'n ofynnol ohonom mor fach â phosib, a lle mae ymddiriedaeth yn ofynnol rydym yn esbonio'n union beth sy'n cael ei ymddiried a pham.
Mae tair egwyddor yn gyrru pob penderfyniad dylunio:
- Lleihau’r hyn y gall y gweinydd ei weld. Yn llif negeseuon diofyn y porwr, mae testun plaen a’r allwedd lapio yn aros ar eich dyfais. Mae gan selio Builder ochr-gweinydd, cyd-arwyddo cytundebau, ac adferiad wedi’i alluogi’n benodol ffiniau ymddiriedaeth gwahanol, a ddatgelir isod. Pan fyddwn yn cadw metadata, rydym yn ei gyfyngu i’r hyn sydd ei angen ar y nodwedd a ddewiswyd.
- Gwneud cyfaddawd yn lleol-cyfyngedig. Ni ddylai torri unrhyw un cydran (ein gweinydd, y darparwr e-bost, nod drand) ddatgelu cynnwys wedi'i selio nad yw eto wedi cyrraedd ei amser datgelu.
- Gwneud y protocol yn archwiliadwy. Mae'r arteffact wedi'i selio'n ddilysadwy o ben i ben gyda chryptograffeg gyhoeddus. Nid oes angen i chi ymddiried yn qub y gwasanaeth i ddilysu qub yr arteffact.
2. Model Bygythiad
2.1 Beth Rydym yn Amddiffyn yn ei Erbyn
- Ymosodydd sy’n cael mynediad darllen i’n data ochr-gweinydd sydd wedi’i storio cyn amser datgelu. Yn llif porwr preifat diofyn, mae’n cael metadata a beitiau lapiedig anhryloyw, nid testun plaen na K. Nid yw’r amddiffyniad hwn yn berthnasol i K a gedwir yn benodol ar gyfer adferiad, i drosglwyddiad cyhoeddus/noeth ar ôl ei rownd drand, nac i destun plaen a gyflenwir dros dro i lifoedd Builder
/api/v1/seala chytundebau. - Ymosodydd sy'n rhyng-gipio traffig rhwng eich porwr a'n seilwaith. Mae TLS yn terfynu ar ein hymyl CDN; mae llwythi wedi'u selio eisoes wedi'u hamgryptio cyn cludiant.
- Ymosodydd sy’n ymyrryd â llwyth sydd wedi’i storio. Mae dilysu’r lapiwr allanol (pan fo’n bresennol), datgodio canonaidd, stwnsh y corff, ail-ddeillio
qub_id, rhwymo’r rownd, a llofnodion opsiynol yn peri i ymyrryd fethu dilysu; mae’r gwyliwr yn gwrthod rendro’r qub. - Ymosodydd sy'n ceisio rhwymo e-bost awdur ffug i allwedd llofnodi. Mae ardystiad e-bost yn gofyn am feddiant o'r allwedd llofnodi breifat a cod un-tro a gyflwynir i'r blwch e-bost.
- Gweithredwr golau drand wedi'i gyfaddawdu. Mae rhwydwaith drand yn defnyddio llofnodion BLS trothwy ar draws sawl gweithredwr annibynnol; ni all lleiafrif ffugio llofnodion rhyddhau-cynnar.
2.2 Beth Na Allwn Amddiffyn yn ei Erbyn
Rydym yn onest am ein cyfyngiadau. Ni all qub amddiffyn yn erbyn:
- Cyfaddawd o'ch dyfais cyn i chi selio. Gall logiwyr-bysell lleol, estyniadau porwr maleisus, neu fynediad ffisegol i ddyfais heb ei chloi gipio testun plaen ar bwynt cyfansoddi.
- Cwymp trothwy drand. Mae sefydliadau annibynnol lluosog yn rhedeg y rhwydwaith drand yn benodol i wneud hyn yn anodd, ond nid yw'n gryptograffig amhosibl: os bydd digon o weithredwyr yn cydgynllwynio, gallant ddeillio allweddi amser-clo'n gynnar.
- Priodweddau rhyddhau copi dilys. Mae qub cyhoeddus/noeth yn dod yn ddadgryptadwy ar ôl ei rownd drand. Mae K hefyd yn ofynnol ar qub preifat/lapiedig; gall unrhyw un sy’n cael y beitiau wedi’u storio a K ddadgryptio ar ôl y rownd. Ni ellir galw cofnodion storfa barhaol a log wedi’i angori yn ôl drwy eu tynnu oddi ar wyneb cynnyrch qub yn unig.
- Gwrthwynebydd byd-eang sy'n torri'r cryptograffeg sylfaenol (AES-GCM, tybiaethau pâr BLS12-381, SHA3-256, ML-DSA-65). Os yw'r primitives hyn yn syrthio, mae gan yr ecosystem cryptograffig yn gyffredinol broblemau mwy.
3. Cryptograffeg Ochr-Cleient
Yn llif negeseuon diofyn y porwr, mae amgryptio’r cynnwys yn digwydd cyn y cais uwchlwytho. Mae dau lwybr penodol yn wahanol: mae Builder /api/v1/seal yn anfon testun plaen a K a gynhyrchwyd gan y galwr i’r Worker yn fwriadol ar gyfer selio yn y cof, ac mae llwyfannu/cyd-arwyddo cytundeb yn anfon y cytundeb strwythuredig wedi’i lofnodi i’r gwasanaeth er mwyn cwblhau’r arteffact dwyochrog. Ni ddylid camgymryd y naill eithriad na’r llall am amgryptio pen-i-ben llwybr y porwr.
3.1 Amgryptio Amser-Clo
Mae qub yn defnyddio tlock — amgryptio sail-hunaniaeth wedi'i allweddu i rownd golau drand yn y dyfodol. Mae amgryptio'n parhau yn eich porwr gan ddefnyddio allwedd gyhoeddus rhwydwaith drand; cyhoeddir yr allwedd dadgryptio'n gyhoeddus gan rwydwaith drand dim ond pan gyrhaeddir y rownd targed. Ni all neb, gan gynnwys ni, ail-adeiladu'r allwedd dadgryptio o flaen llaw.
Rydym yn targedu'r gadwyn quicknet:
- Cyfnod rownd 3-eiliad
- Modd di-gadwyn (mae pob rownd yn annibynnol)
- Llofnodion BLS12-381 G1
- Stwnsh cadwyn
52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971
Mae allwedd gyhoeddus ac amser genesis cadwyn quicknet wedi'u crynhoi i'r cleient. Nid ydym yn nôl paramedrau cadwyn ar adeg rhedeg, felly ni all nod maleisus amnewid cadwyn rydym ni'n ei rheoli.
3.2 Amgryptio Cymesur
Mae cynllun tlock yn lapio allwedd cynnwys AES-256-GCM. Mae AES-GCM yn darparu amgryptio dilysedig: mae un did wedi'i fflipio yn y cipertest yn achosi i ddadgryptio fethu, yn hytrach na chynhyrchu testun plaen wedi'i lygru'n dawel.
3.3 Cyfresoliad Canonaidd
Mae strwythurau’r protocol yn cael eu cyfresoli gan ddefnyddio CBOR penderfynol (RFC 8949 §4.2 amgodio penderfynol craidd). Mae dau weithrediad sy’n amgodio’r un strwythur rhesymegol yn cynhyrchu CBOR unfath. Nid yw llwythi seliedig cyflawn yn benderfynol: mae tlock ac amgryptio’r lapiwr allanol yn defnyddio haprwydd ffres. Cyfrifir stwnsh y corff dros feitiau amrwd y corff, tra bo amgodio canonaidd yn gwneud y strwythurau llofnodedig/gwifren yn ddiamwys.
Ysgrifennom yr amgodiwr CBOR â llaw ar gyfer ein gweithrediadau cleient a gweinydd yn hytrach na dibynnu ar lyfrgell cyfresoli generig — y gofyniad yw union-deb, nid ergonomeg, ac mae profion priodwedd yn rhedeg yn y ddau weithrediad i wirio eu bod yn cytuno.
Mae prawf regression yn datgan nad yw'r fformat gwifren canonaidd yn cynnwys unrhyw ddilyniant byte qub-brand y tu hwnt i'r allwedd maes qub_id protocol-cyntefig. Mae'r fformat gwifren yn fwriadol frand-agnostig — gall unrhyw wyliwr cydymffurfiol (ein un ni neu un trydydd parti) rendrio unrhyw qub o storfa parhaol, waeth pa ddyfynnwyd a seliodd. Mae'r prawf yn dripwire sy'n atal newid yn y dyfodol rhag pobi cyfeirnod brand i fytiau yn ddamweiniol y na ellir, unwaith mewn storfa parhaol, eu hailysgrifennu.
3.4 Stwnsio Corff a Uniondeb Cyn-Datgelu
Mae pob llwyth seliedig yn cario stwnsh SHA3-256 o feitiau amrwd ei gorff. Mae’r stwnsh wedi’i rwymo i qub_id ac, pan fydd llofnodi awduriaeth wedi’i alluogi, i fewnbwn llofnod V2. Mae gwyliwr yn ei ailgyfrifo ar ôl dadgryptio ac yn gwrthod unrhyw anghysondeb.
Mae’r dynodydd cynnwys 32-beit qub_id yn cael ei ddeillio o ragddelw 108-beit sy’n cynnwys fersiwn y protocol, math y cynnwys, stampiau amser creu a datgloi, stamp amser canlyniad opsiynol (neu ei sentinêl sero), rownd drand y targed, stwnsh y corff, a SHA3-256 y teitl opsiynol sydd wedi’i normaleiddio i NFC. Ni all porth na CDN newid unrhyw faes rhwymedig yn gyson a dal i basio’r ail-ddeillio. Mae teitlau wedi’u cyfyngu i 100 pwynt cod NFC ac yn cael eu gwrthod os ydynt yn cynnwys y dosbarth cyffredin o bwyntiau cod gelyniaethus/rheoli (gan gynnwys gwrthwneud deugyfeiriadol, nodau lled sero, y bloc tagiau, BOM, C0, C1, a DEL).
3.5 Llofnodi (ML-DSA-65)
Mae llofnodi awduriaeth yn defnyddio ML-DSA-65 (FIPS 204), cynllun llofnod ôl-cwantwm wedi'i safoni gan NIST. Dewisom yn fwriadol gyntefig ôl-cwantwm ar gyfer llofnodi oherwydd bod cynnwys wedi'i selio'n barhaol: rhaid i lofnod sy'n dilysu heddiw barhau i ddilysu degawdau o nawr, gan gynnwys ar ôl i gyfrifiaduron cwantwm graddfa-fawr ddod yn ymarferol.
Mae allweddi llofnodi yn cael eu cynhyrchu yn y porwr. Caiff y gyfrinach leol ei lapio o dan allwedd WebCrypto nad oes modd ei hallforio cyn ei storio yn IndexedDB. Os defnyddir y nodwedd adfer traws-ddyfais ar lefel cyfrif, caiff blob allwedd cludadwy sydd wedi’i amgryptio ag AEAD ei storio ochr-gweinydd; mae seiferdestun ei allwedd gyfrinachol wedi’i rwymo i ID digyfnewid y cyfrif, ac mae’r gwasanaeth yn dilysu’r amlen gyhoeddus ond ni all ddadgryptio’r deunydd cyfrinachol. Nid yw beitiau amrwd yr allwedd breifat yn cael eu hanfon i’r gweinydd. Caiff allweddi cyhoeddus a chofnodion ardystio eu storio ar gyfer dilysu ac arddangos hunaniaeth.
Mae'r un dadgryptio tlock yn-y-porwr yn berthnasol y tu mewn i fewnblaniad qub: pan fydd qub wedi'i selio'n cael ei rendro trwy <qub-embed> ar dudalen trydydd parti, mae dadgryptio'n dal i ddigwydd yn yr iframe mewnblannu ym mhorwr y gwyliwr. Nid yw'r mewnblaniad yn newid y model ymddiriedaeth — nid yw testun plaen byth yn cael ei ddadgryptio ar weinydd qub.
3.6 Priodoli Cyhoeddus — Opsiynol
Nid yw qubs wedi'u selio yn cario pwyntydd ar-gadwyn i'w crëwr oni bai bod y crëwr yn dewis yn benodol atodi un. Pan rydych yn selio qub mae'r ap cyfeiriol yn allyrru tag storfa Author (printbysedd hecsadegol 64-cymeriad o'ch allwedd llofnodi gyhoeddus) dim ond pan fydd "Priodoli cyhoeddus" wedi'i alluogi ar gam dewisydd-dyddiad. Gyda'r toglau i ffwrdd — y diofyn — nid oes tag Author yn cael ei ysgrifennu ac mae'r qub yn an-briodol mewn storfa parhaol: nid oes dim mewn storfa yn cysylltu'r uwchlwytho â'ch handlen, eich e-bost, na'ch qubs eraill. Gyda'r toglau ymlaen, mae'r printbysedd yn datrys i'ch @handle trwy'r gadwyn ardystiad yn §6.3 / §10 ac mae'r cyfrif i lawr gwyliwr yn dangos "Wedi'i selio gan @{handle}" cyn datgelu.
Mae hwn yn warchodydd bwriadol yn erbyn y risg rhifo y byddai tag Author bob-amser-ymlaen yn ei greu: gallai trydydd parti sy'n dysgu printbysedd crëwr fel arall chwilio storfa parhaol gan y tag ac ail-adeiladu cynnyrch hanesyddol llawn y crëwr hwnnw. Mae priodoli opsiynol yn cau'r sianel honno — dim ond qubs y mae'r crëwr yn dewis eu priodoli yn benodol sy'n ymddangos o dan printbysedd mewn storfa parhaol.
Mae tudalen broffil /u/{handle} yn gerdyn-hunaniaeth wedi'i ddilysu — handlen, enw arddangos opsiynol + URL, pilsen "e-bost wedi'i ddilysu" (dim cyfeiriad), a ffurf fer y printbysedd cryptograffig. Nid yw'n rhestru qubs crëwr. Mae ymwelwyr sy'n dymuno gweld qub penodol gan grëwr yn dilyn URL rhannu'r qub hwnnw'n uniongyrchol.
3.7 Lapiwr Amgryptio Allanol
Hyd yn oed ar ôl i ddadgryptio amser-clo ddod yn fathemategol bosibl—pan fydd llofnod drand y rownd rwymedig wedi’i gyhoeddi—byddai’r haen amser-clo canonaidd ar ei phen ei hun yn gadael i fynegeiwr swmp-ddadgryptio qubs y gellir eu darganfod. Mae trosglwyddo preifat yn cau’r sianel honno gyda haen gymesur ychwanegol o amgylch y beitiau wedi’u hamgryptio gan tlock (Protocol §13). Mae trosglwyddo cyhoeddus yn hepgor y lapiwr yn fwriadol fel y gall dolenni hysbysu, mewnblannu a darganfod weithio heb ddarn cyfrinachol.
Mae'r lapiwr yn defnyddio AES-256-GCM, seiffr dilysedig wedi'i safoni gan NIST, gydag allwedd 256-did ffres K a gynhyrchir fesul qub gan CSPRNG eich porwr. Mae K wedi'i rwymo i qub_id y qub fel data ychwanegol dilysedig, felly ni ellir ailddefnyddio allwedd o un qub i ddadgryptio qub gwahanol.
Nid yw K byth yn cyrraedd ein gweinyddion yn llif porwr preifat diofyn. Mae wedi’i amgodio yn narn URL y ddolen rannu (https://qub.social/c/<tx_id>#<base64url(K)>). Nid yw porwyr yn trosglwyddo darnau URL i weinyddion—mae RFC 3986 yn gosod y darn y tu allan i’r cais—felly mae qub.social, pyrth storfa, CDNs, a monitro ceisiadau yn ddall i K yn y llif hwnnw. Mae'r OuterWrapper sydd wedi'i storio yn CBOR strwythuredig adnabyddadwy, ond mae ei faes seiferdestun dilysedig yn cuddio strwythur mewnol SealedQub ac ni ellir ei agor heb K.
Canlyniadau net:
- Ni all qub.social ddadgryptio seliau porwr preifat diofyn o ddata wedi’i storio yn unig. Mae cyfaddawd storfa ddata yn cyrraedd seiferdestun anhryloyw heb K. Mae amlygiad qubs cyhoeddus a qubs y mae adferiad wedi’i alluogi arnynt yn wahanol yn fwriadol.
- Ni ellir adfer darn coll heb sianel adfer y dewiswyd ei defnyddio. Os cadwch ddolen breifat heb y darn ac os na wnaethoch alluogi adferiad, daw’r qub yn annarllenadwy drwy’r ddolen honno. Mae’r llif selio yn dangos datgeliad penodol i gadw’r URL am y rheswm hwn.
- Adferiad opsiynol. Pan rydych yn dewis i e-byst cylch-bywyd crëwr ar gyfer qub A mae'r e-bost yn cyfateb i'ch hunaniaeth wedi'i dilysu, rydym yn derbyn K gyda'r uwchlwytho, yn storio'r URL rhannu llawn ar gofnod hanes-wedi'i-selio eich hunaniaeth, ac yn ei ddefnyddio fel y ddolen yn yr e-bost cadarnhad seliad. Mae'r masnach hon — sianel adfer ochr-gweinydd yn gyfnewid am rywfaint o burdeb pen-i-ben — yn ymgysylltu dim ond ar ddewis penodol a dim ond ar gyfer y qub hwnnw. Y safiad diofyn yw chwalu-crypto.
Mae diweddbwynt /api/v1/seal ochr-gweinydd y Worker (a ddefnyddir gan asiantau AI a galwyr API eraill) yn mynnu bod y galwr yn cynhyrchu K â CSPRNG, yn ei chadw'n lleol, ac yn ei chyflenwi fel wrapper_key_b64url. Mae'r Worker o reidrwydd yn gweld testun plaen a K fel ei gilydd yn y cof ar y llwybr hwn a ymddirir ynddo'n benodol, ond nid yw'n storio'r naill na'r llall. Mae Idempotency-Key gorfodol yn atal ymateb coll rhag creu ail qub a godir tâl amdano, tra gellir cyfuno'r K a gadwyd gan y galwr â'r URL heb-ffragment a ailchwaraeir. Mae hyn yn wahanol i'r llwybr porwr rhagosodedig, lle nad yw K byth yn cyrraedd y Worker oni bai bod y crëwr yn galluogi adferiad yn benodol.
4. Cludiant ac Ymyl
4.1 TLS
Mae traffig porwr i qub yn cael ei weini dros HTTPS ar ymyl Cloudflare. Mae ymatebion yn gosod HTTP Strict Transport Security (max-age=63072000; includeSubDomains; preload). Mae’r union fersiwn TLS a’r gyfres seiffr a negodir yn cael eu llywodraethu gan ffurfweddiad gweithredol yr ymyl yn hytrach na’u honni gan god y rhaglen. Nid ydym yn datgelu gweinydd tarddiad y gellir ei gyrraedd ar wahân.
4.2 Diogelwch Cynnwys
Mae'r cleient wedi'i grynhoi'n cael ei weini gyda phenawdau math-cynnwys a chache llym. Mae cragen yr SPA yn darddiad sengl. Nid ydym yn mewnblannu sgriptiau trydydd parti ar gyfer dadansoddeg neu hysbysebu. Mae'r ddau bwynt cyswllt trydydd parti yn y cynnyrch yn gyfyngedig yn gul: mae'r llif pryniant yn gadael yr SPA yn gyfan gwbl gydag ailgyfeiriad tudalen-llawn at brynu sy'n cael ei gynnal gan Stripe (https://checkout.stripe.com/…) — nid yw UI Stripe byth yn gweithredu yn ein tarddiad ac nid ydym byth yn gweld data cerdyn — ac mae'r llif seliad yn llwytho widget Turnstile Cloudflare, dewis CAPTCHA preifatrwydd-cadw y mae Cloudflare yn ei rendro y tu mewn i'w iframe blwch-tywod ei hun. Ni all y naill na'r llall ddarllen gweddill y dudalen.
Mae iframe mewnblannu qub (wedi’i weini o qub.social/embed/{tx_id} ac wedi’i lwytho i safleoedd trydydd parti gan embed.js) yn cario ei Bolisi Diogelwch Cynnwys ei hun. Ei restr ganiatáu connect-src yw 'self', https://qub.social, https://arweave.net, https://ar-io.dev, https://permagate.io, https://api.drand.sh, a https://drand.cloudflare.com. Mae’r iframe yn rhedeg gyda sandbox="allow-scripts allow-top-navigation-by-user-activation" (nid allow-same-origin): ni all y dudalen gynnal ddarllen ei DOM, ac ni all lywio’r gwesteiwr ac eithrio ar ôl gweithred gan y defnyddiwr.
4.3 CORS a Chwmpas Nôl
Mae'r cleient porwr yn gwneud ceisiadau nôl dim ond i:
- Ein API ein hunain (
api.qub.sociala chyfwerthion staging) - Pyrth storfa (darllen-yn-unig, ar gyfer adfer beitiau preifat wedi’u lapio neu feitiau cyhoeddus noeth — §3.6)
- Diweddbwyntiau golau drand (darllen-yn-unig, ar gyfer llofnodion rownd amser-datgelu)
Mae cyrchfannau’r mewnblaniad yn cael eu gorfodi gan ei CSP. Mae cyrchfannau bwriadedig y prif SPA wedi’u gosod mewn cod a ffurfweddiad ac yn cael eu harfer gan wiriadau porwr ac integreiddio; nid rheolaeth ar gyrchfan rhwydwaith yw Subresource Integrity.
Mae’r mewnblaniad yn nôl beitiau wedi’u storio drwy’r tarddiadau qub/storfa ar y rhestr ganiatáu, yn dadlapio llwythi preifat yn y porwr gan ddefnyddio K o’i ddarn URL, ac yn nôl llofnodion rownd amser datgelu o’r ddau darddiad drand a ganiateir. Mae’r prif SPA yn defnyddio’r set wrth gefn o bedwar diweddbwynt yn config/drand-endpoints.json (drand.cloudflare.com, api.drand.sh, api2.drand.sh, ac api3.drand.sh) fel nad yw toriad un diweddbwynt yn rhwystro datgelu. Mae CSP y mewnblaniad yn gwahardd cysylltiadau y tu allan i’w restr benodol.
5. Seilwaith Ochr-Gweinydd
5.1 Ymyl Heb-Weinydd
Mae ein API yn rhedeg yn gyfan gwbl ar amser rhedeg heb-weinydd wedi'i reoli ar yr ymyl. Nid oes VMs, dim conteinerau, a dim prosesau gweinydd parhaol rydym yn eu gweinyddu. Mae hyn yn lleihau'r arwyneb ymosod rydym yn gyfrifol amdano'n ddramatig: nid ydym yn rhedeg OS, gweinydd gwe, neu amser rhedeg cymhwysiad y mae'n rhaid i ni ei batsio.
Mae middleware CORS-cyhoeddus ar wahân yn cael ei gymhwyso Access-Control-Allow-Origin: * i'r llwybr a weithredir canlynol a osodwyd: /embed.js, /embed/v1.js, popeth o dan /embed/; /api/v1/telemetry; /api/v1/openapi.json; popeth o dan /api/v1/qub/ (gan gynnwys beitiau, metadata, prawf, ymgysylltu, hysbysu, a is-feysydd push); popeth o dan /api/v1/log/; trin chwilio cyhoeddus o dan /api/v1/handle/; ac mae avatâr cyhoeddus yn darllen o dan /api/v1/identity/avatar/. Mae ganddo ganiatâd preflight GET, POST, a OPTIONS gyda'r Content-Type penawd cais. Mae'r wyneb hwn sy'n seiliedig ar ragddodiad yn ehangach na'r galwadau y mae'r mewnosodiad yn eu gwneud ar hyn o bryd, felly mae'n rhaid i bob trinwr isod y rhagddodiadau hynny barhau i orfodi ei ddilysu ei hun, dilysu, terfynau cyfradd, a rheolaethau camddefnyddio. Mae llwybrau API eraill yn cadw polisi CORS cyfyngedig qub.social.
5.2 Storfa
- Mae storfeydd metadata a chydlynu yn dal cofnodion hunaniaeth ac ardystio, hawliau a chyfeiriadau bilio, cofnodion allweddi API, cofnodion rhestr atal, sesiynau, cyflwr idempotency, ciwiau, a chyflwr terfyn cyfradd / cydamseredd. Mae anghenion cysondeb gwahanol yn defnyddio KV, D1, a Durable Objects yn hytrach nag un storfa gyffredinol.
- Mae ein storfa wrthrych hefyd yn is-haen gwydnwch. Mae’n dal yr union feitiau qub lapiedig neu noeth a gydnabyddir gan uwchlwytho, dail log tryloywder a nodau Merkle wedi’u hallweddu gan gyfesuryn, deunydd angori, logiau digwyddiadau strwythuredig, a storfeydd ymatebion/metadata.
- Mae storfa gyhoeddus barhaol yn dal angorau log tryloywder ac, ar gyfer llwybr T3 neu gyhoeddi gohiriedig, drafodion qub unigol. Nid ydym yn gweithredu’r rhwydwaith hwnnw. Mae llwythi porwr preifat yn aros yn anhryloyw yno oni bai bod gan y deiliad K hefyd; nid oes gan lwythi cyhoeddus/noeth yr haen gallu-dolen ychwanegol honno yn fwriadol.
Nid yw llif negeseuon diofyn y porwr yn cadw testun plaen ar seilwaith qub. Mae Builder /api/v1/seal yn trin testun plaen a K yn y cof ond nid yw’n cadw’r naill na’r llall. Mae llwyfannu cytundeb o reidrwydd yn storio’r cytundeb strwythuredig wedi’i lofnodi nes ei gyd-arwyddo, ei dynnu’n ôl, neu iddo ddod i ben. Mae adferiad dewisol yn storio gallu trosglwyddo (y ddolen lawn sy’n cynnwys darn) fel y gellir ei adfer yn ddiweddarach. Felly nid ydym yn disgrifio’r haen storfa gyfan fel “metadata yn unig”.
5.3 Cyfrinachau
Mae cyfrinachau (waledi llofnodi, tocynnau darparwyr, ac allweddi HMAC) yn cael eu cyflenwi drwy rwymiadau cyfrinach/amgylchedd y platfform yn hytrach na rheolaeth ffynhonnell. Dim ond y rhwymiadau sydd eu hangen arnynt y mae cydrannau amser rhedeg yn eu derbyn. Mae gweithdrefnau cylchdroi a gorgyffwrdd yn benodol i’r gydran; nid ydym yn honni bod un mecanwaith cylchdroi cyffredinol, awtomatig neu wedi’i archwilio.
5.4 Logio a Telemetreg
Mae logiau JSON strwythuredig yn cael eu hysgrifennu ar bob cais API gydag ID gohebiaeth yn cael ei arwynebu yn y pennawd ymateb X-Request-Id. Mae telemetreg cleient yn anhysbys — dim dynodydd dyfais, dim cyfeiriad IP, dim rhagolwg cynnwys. Mae digwyddiadau'n cael eu byffro mewn cof ac yn cael eu fflwsho ar sail ymdrech-orau; mae fflws wedi'i fethu'n cael ei daflu, nid ei ailgynnig. Mae telemetreg wedi'i ddylunio i fod yn analluogadwy yn yr haen rwydwaith heb effeithio ar y cynnyrch.
6. Dilysiad
6.1 Mewngofnodi Dolen-Hud
Mae mewngofnodi’n defnyddio tocyn untro wedi’i lofnodi ag HMAC a gyflwynir i’ch blwch e-bost. Mae’r ddolen yn ddilys am 15 munud ac mae ei hadbrynu’n cael ei hawlio’n atomig fel bod defnydd cydamserol neu wedi’i ailchwarae yn methu’n gaeedig. Ar lwyddiant, mae’r porwr yn derbyn cwci anhryloyw __Host-qub_session gyda’r priodoleddau Secure, HttpOnly, SameSite=Strict, a Path=/.
Mae gan sesiynau derfyn segur 30 diwrnod a therfyn absoliwt 90 diwrnod, maent yn cylchdroi ar ôl 24 awr, a dim ond y genhedlaeth flaenorol uniongyrchol y maent yn ei derbyn am gyfnod gras ymateb-coll o 120 eiliad. Mae newidiadau sensitif i gyfrifon yn gofyn am ddilysu o fewn y 10 munud blaenorol. Rhwymiad platfform yw’r gyfrinach llofnodi HMAC; nid yw darllen metadata yn unig ynddo’i hun yn bathu tocyn dilys.
6.2 Allweddi API (Haen Datblygwr)
Mae allweddi API datblygwr yn defnyddio'r rhagddodiad qub_sk_ i'w hadnabod a'i grepio'n hawdd. Mae pob allwedd:
- Wedi’i rhwymo i gyfrif, cwmpasau, a rhestr ganiatáu CIDR IP opsiynol
- Yn cael ei dangos ar ffurf amrwd unwaith; mae cofnodion parhaus yn cadw ei stwnsh SHA-256, nid cyfrinach y cludwr
- Yn gallu cael ei chylchdroi gyda mapio gras un awr lle mae’r hen allwedd yn datrys i’r allwedd newydd
- Mae ganddi gyflwr cwota a therfyn cyfradd annibynnol
- Nid yw byth wedi'i logio'n llawn; mae logiau'n cofnodi dim ond y dynodydd allwedd
Mae diweddbwyntiau rheoli-allwedd-gweinyddol wedi'u gatio y tu ôl i gymhwyster gweinyddwr ar wahân.
6.3 Ardystiad E-bost (Llofnodi Awduriaeth)
Mae rhwymo cyfeiriad e-bost i allwedd llofnodi'n gofyn am:
- Meddiant o'r allwedd llofnodi breifat (rydych yn llofnodi her)
- Meddiant o'r blwch e-bost (rydych yn rhoi cod 6-digid a gyflwynir gan e-bost)
Mae'r naill yn unig yn annigonol. Mae diddymu'n gofnod wedi'i lofnodi ar eich cyfrif eich hun ac mae'n cymryd effaith yn syth; mae gwylwyr sy'n nôl yr ardystiad yn gweld y cyflwr wedi'i ddiddymu ac yn arddangos yn unol â hynny.
7. Taliadau
Mae cofnodi a phrosesu cardiau yn digwydd y tu mewn i’r llif talu a gynhelir gan Stripe. Nid ydym byth yn derbyn rhifau cardiau, dyddiadau dod i ben, na CVCs. Rydym yn storio dynodwyr cwsmeriaid a thanysgrifiadau Stripe, cyflwr tanysgrifiad, a data cyfnod ar gofnodion hawliau/allweddi API er mwyn cysoni mynediad, adnewyddu, mesur, canslo, ac ad-daliadau. Mae datganiadau preifatrwydd a diogelwch Stripe yn llywodraethu sut mae’n trin data talu.
Mae'r diweddbwynt seliad yn croesgwirio'r cofnod hawl yn erbyn y dynodydd dyfais ac, ar gyfer defnyddwyr wedi'u mewngofnodi, yn erbyn yr hunaniaeth gysylltiedig. Ni ellir ailddefnyddio hawl ar draws dyfeisiau heb i'r defnyddiwr ei adfer yn benodol trwy fewngofnodi dolen-hud.
8. Gwrthsefyll Camddefnydd
8.1 Canfod Bot
Mae'r llif seliad wedi'i gatio gan ddewis CAPTCHA preifatrwydd-cadw nad yw'n defnyddio cwcis ar gyfer olrhain ac nad yw'n printbysedd ar gyfer hysbysebu. Mae her wedi'i methu'n cael ei gwrthod gan ein Worker ymyl cyn unrhyw brosesu ochr-seliad yn digwydd.
8.2 Cyfyngu Cyfradd
Mae terfynau cyfradd yn cael eu gorfodi ar sawl haen:
- Terfynau fesul-IP a fesul-allwedd ar ddiweddbwyntiau seliad, darllen, a dilysu
- Terfynau fesul-e-bost ar geisiadau dolen-hud (yn atal gorlifo blwch e-bost)
- Terfynau fesul-gwrth-barti ar e-bost gwahoddiad cytundeb (deg fesul cyfeiriad derbynnydd fesul diwrnod UTC, y prif gymesuriad sbam-relay; mae cytundebau onest yn anaml yn nesáu at y cap)
- Terfynau fesul-IP ar gyflwyno telemetreg
Mae cownteri a hawliadau atomig wedi’u dosbarthu ar draws KV, Durable Objects, a rhwymiadau terfyn cyfradd y platfform yn ôl anghenion cysondeb y diweddbwynt. Mae ceisiadau sydd wedi’u cyfyngu gan gyfradd yn dychwelyd 429; mae diweddbwyntiau sy’n gallu cyfrifo ffenestr ailgynnig yn cynnwys Retry-After.
8.3 Cymedroli Cynnwys
Ni all y llwybr lwytho porwr diofyn sganio'r corff: mae'n derbyn dim ond y cerflun wedi'i sêl gan y cleient. Y Builder /api/v1/seal mae'r llwybr yn gweld testun lliwgar dros dro, ac mae camu cytundeb yn dal termau strwythuredig tan y gorffen, ond nid yw'r eithriadau ymddiriedaeth hynny yn troi'r llwybr uwchraddio cyffredinol sy'n ddi-gylch yn sganwr cynnwys. Mae gweithrediad canolbwyntio yn rhestr wrthod ar haen y gwylwr: mae qub sydd wedi ei wahardd yn cael ei wrthod gan ein gwylwr pa bynnag a yw'r llwyth a storwyd yn aros yn hygyrch ai peidio. Nid yw gwahardd yn tynnu'n ôl byts para, cofnodion log tryloywder, na data rhwydwaith parhaol sydd eisoes wedi'u cyhoeddi.
Mae adroddiadau camddefnydd yn gyfradd-gyfyngedig gan ddefnyddio stwnsh un-ffordd o IP yr adroddwr; nid ydym yn storio IPau yn glir at y diben hwn.
9. Cadwyn Gyflenwi a Uniondeb Adeiladu
9.1 Pinio'r Cadwyn Offer
Mae fersiynau y crynhoydd a’r amser rhedeg wedi’u pinio yn ffurfweddiad y storfa, ac mae dibyniaethau’n cael eu datrys drwy ffeiliau clo wedi’u hymrwymo. Mae CI yn gwirio bod ffeiliau a gynhyrchir yn gyfredol ac annewidynnau sy’n sensitif i atgynyrchioldeb. Nid ydym yn gwneud yr honiad cryfach bod pob adeiladwaith glân yn unfath feit-am-beit ar draws pob peiriant a gefnogir.
9.2 Plaen a Dadansoddi Statig
Mae'r gweithfan yn galluogi ein grwpiau plaen llymaf ar lefel deny. Mae CI yn trin pob rhybudd — gan gynnwys rhybuddion dolen-dogfen — fel methiant adeiladu. Mae hyn yn fwriadol: rydym yn defnyddio llymder y plaen fel tripwire ar gyfer regressionau cynnil.
9.3 Gatiau CI
Mae llif gwaith CI yn cwmpasu fformatio a lints llym; profion Rust, WASM/porwr, Worker, mewnblaniad, ac API; gwirio mathau; cwmpas cod; gwiriadau mwtaniad/annewidynnau; dadansoddiad statig o ddibyniaethau a llifoedd gwaith; gwiriadau allweddi, cwmpas, drifft, a phwyntiau cod gelyniaethus i18n; cyfredoldeb dogfennau/API/sylfaen wybodaeth a gynhyrchir; rhestr dogfennau a gwiriadau dolenni mewnol; cyllidebau taflen arddull a bwndel; a dilysu OpenAPI. Mae rhai tasgau mwtaniad drud wedi’u hamserlennu yn hytrach na’u rhedeg ar bob gwthiad.
Mae un crynodeb ci gofynnol yn aros yn goch os bydd unrhyw dasg ofynnol yn methu. Mae llifoedd gwaith cangen warchodedig a gosod yn defnyddio’r canlyniad hwnnw yn hytrach na dyblygu gât diogelwch lai.
9.4 Profion Mwtaniad
Mae swydd wythnosol yn rhedeg profion mwtaniad yn erbyn y modiwlau pur diogelwch-feirniadol: stwnsio, CBOR canonaidd, seliad, datgloi, newydd-fathau'r fformat gwifren, dilyswyr math protocol, a gofod-enw'r handlen. Mae profion mwtaniad yn ateb "a yw ein suite prawf yn dal cod gwallus mewn ffordd gynnil?" — os yw gweithrediad wedi'i fwtanio yn dal i basio pob prawf, rydym yn gwybod bod gennym fwlch gorchuddio prawf ac yn ei drin.
9.5 Bachynau Git
Mae bachynau lleol (pre-commit, pre-push) yn drychu'r gatiau CI fel bod regressionau'n cael eu dal cyn iddynt adael peiriant y datblygwr. Mae bachynau'n cael eu gosod trwy sgript repo; nid ydynt yn cael eu bypassio yn ein llif gwaith ac mae'r CI yn y gât awdurdodol os ydynt yn cael eu hepgor.
10. Profi
Mae cod diogelwch-feirniadol yn cario tri math o brofion:
- Profion uned yn dilysu ymddygiad disgwyliedig ar fewnbynnau hysbys, gan gynnwys fectorau prawf a ddeillir o'r fanyleb protocol.
- Profion priodwedd yn cynhyrchu miloedd o fewnbynnau mympwyol ac yn datgan anwariadau: cylchteithiau CBOR canonaidd, cylchteithiau dilysu llofnod, rhagfynegiadau rhwymo e-bost, penderfyniaeth cydnabyddiaeth cytundeb.
- Profion traws-gweithredu yn dilysu bod ein gweithrediadau cleient a gweinydd yn cytuno byte-am-byte ar amgodiadau canonaidd. Mae hyn yn dal gwahaniaethu rhwng y ddau weithrediad cyn iddo gyrraedd y cynhyrchu.
11. Hylendid Cangen a Rhyddhau
Dim ond drwy gais tynnu Gate 1 y mae canghennau nodwedd yn symud staging ymlaen: ci gofynnol yn wyrdd, dim cais newid heb ei ddatrys, dim gwrthdaro uno, a choeden lân wedi’i hadolygu; caiff yr uno ei wasgu a’r gangen ei dileu. Dim ond drwy gais tynnu Gate 2 staging → main y mae main yn symud ymlaen, gan gadw llinach gyda chofnod uno. Nid gwthiadau uniongyrchol i ganghennau yw’r llif gwaith rhyddhau.
Mae gosodiadau staging a chynhyrchu yn cael eu sbarduno o gyflwr y canghennau gwarchodedig cyfatebol staging a main ar ôl CI. Nid yw cod ceisiadau tynnu na manylion adnabod fforciau yn derbyn cyfrinachau gosod.
Mae cyfrinachau a ddefnyddir mewn llifoedd gwaith gosod wedi'u cwmpasu i'r amgylchedd gosod gan ein platfform CI. Nid ydynt ar gael i lifoedd gwaith cais-tynnu o fforciau.
12. Datgeliad Cydlynol
Os ydych yn credu i chi ddod o hyd i wendid diogelwch yn qub, rydym am glywed amdano'n gyflym ac rydym yn ymrwymo i drin yr adroddiad yn broffesiynol.
- Anfonwch e-bost at
support@qub.socialgyda'r rhagddodiad pwnc[SECURITY]. - Disgrifiwch y wendid, camau i'w atgynhyrchu, ac unrhyw brawf-o-gysyniad.
- Rhowch ffenest ddatgelu resymol i ni (fel arfer 90 diwrnod) cyn mynd yn gyhoeddus.
- Peidiwch â chael mynediad i ddata nad yw'n eiddo i chi, diraddio gwasanaeth ar gyfer defnyddwyr eraill, neu gadw data a gafwyd yn ystod ymchwil y tu hwnt i'r hyn sy'n angenrheidiol i ddangos y mater.
Rydym yn cydnabod derbyn o fewn tri diwrnod busnes ac yn eich hysbysu wrth i ni ymchwilio. Gyda'ch cydsyniad, rydym yn rhoi clod i adroddwyr mewn nodiadau rhyddhau.
12.1 Hafan Diogel
Os yw eich ymchwil yn dilyn y rheolau uchod (ymchwiliad ffydd dda, dim niwed i ddefnyddwyr eraill na'r gwasanaeth, ffenest ddatgelu resymol), ni fyddwn yn dilyn gweithred gyfreithiol yn eich erbyn, ac ni fyddwn yn gofyn i orfodaeth y gyfraith ei wneud. Rydym yn trin eich gwaith fel profi awdurdodedig ac fe fyddai'n well gennym i chi ddod o hyd i'r byg na rhywun arall.
Mae'r Hafan Diogel hon yn berthnasol i:
- Ymchwil ar y gwasanaeth qub.social byw (nid ar ffitiadau prawf rydym yn eu cyhoeddi at y diben hwnnw).
- Dadansoddi ein deuoddeg cyhoeddedig a chryptiau ffynhonnell-agored qub-core / qub-app.
- Unrhyw ddosbarth gwendid — protocol, cymhwysiad, seilwaith, cadwyn-gyflenwi — sy'n effeithio ar qub.
Nid yw'n berthnasol i beirianneg gymdeithasol o aelodau tîm qub, profion gwrth-gwasanaeth, neu fynediad i ddata defnyddwyr eraill y tu hwnt i'r hyn sydd ei angen i ddangos y mater. Os ydych yn ansicr a yw rhywbeth yn perthyn y tu mewn i'r Hafan Diogel, gofynnwch yn gyntaf gan ddefnyddio'r un rhagddodiad pwnc [SECURITY].
13. Cyfyngiadau Onest
Mae diogelwch yn arfer, nid yn gyflwr. Mae rhai cyfyngiadau'n werth eu henwi'n uniongyrchol:
- Tîm bach ydym ni. Nid yw ein dyfnder adolygu'n cyfateb i swyddogaeth diogelwch-cymhwysiad ymroddedig cwmni mawr. Rydym yn cydadbwyso gyda gatiau awtomataidd llym ac arwyneb ymosod minimaidd, ond nid ydym yn hawlio anffaeledigrwydd.
- Mae parhad ein hategyn storfa yn ddrws un-ffordd. Os yw camgymeriad yn achosi i gynnwys wedi'i selio ddod yn ddadgryptadwy'n gynt na'r bwriad, ni allwn ei wrthdroi. Rydym yn trin y llif seliad gyda gofal cymesur.
- Mae rhwydwaith drand yn ddibyniaeth allanol. Byddai methiant trychinebus o drand yn effeithio ar ymddygiad datgelu pob qub. Rydym yn monitro iechyd drand ac mae gennym ddogfennaeth wrth-gefn ar gyfer ymfudo cadwyn os bydd angen. Ar gyfer dyddiadau datgloi mwy na 2 flynedd allan, mae'r modal cadarnhad amser-seliad yn dangos datgeliad penodol: mae qubs gorwel-hir yn dibynnu ar wytnwch cadwyn drand, ac efallai y bydd ymfudo cadwyn drand yn y dyfodol yn gofyn am gamau adfer i ddatgloi'r qub. Ar gyfer dyddiadau datgloi mwy na 5 mlynedd allan, mae'n rhaid i chi dicio blwch ychwanegol yn cadarnhau eich bod wedi darllen ac yn derbyn y risg hon cyn i'r seliad fynd ymlaen.
- Mae cyntefigion cryptograffig rydym yn dibynnu arnynt wedi'u safoni a'u hadolygu'n eang, ond mae cryptograffeg yn esblygu. Lle mae gennym ddewisiadau (llofnodi ôl-cwantwm, amgryptio dilysedig), rydym yn dewis yr opsiwn mwy ceidwadol.
14. Newidiadau i'r Dudalen Hon
Nodir newidiadau sylweddol trwy ddiweddaru'r dyddiad effeithiol ar y brig. Lle mae newid yn adlewyrchu gwelliant diogelwch diriaethol, rydym yn ei ddisgrifio'n fyr yn y cofnod newidiadau cyhoeddus. Lle mae newid yn adlewyrchu eglurhad polisi, rydym yn disgrifio beth a newidiodd a pham.
Ar gyfer cwestiynau am unrhyw beth ar y dudalen hon, anfonwch e-bost at support@qub.social gyda'r rhagddodiad pwnc [SECURITY].
15. Cofnod Newidiadau
| Fersiwn | Dyddiad effeithiol | Crynodeb |
|---|---|---|
| 1.1 | 23 Medi 2026 | Cysonwyd honiadau cryptograffig, dulliau trosglwyddo, storfa, CSP, sesiynau, allweddi API, taliadau, CI, a’r llif gwaith rhyddhau â’r system a weithredir. |
| 1.0 | 2 Mai 2026 | Cyhoeddiad cychwynnol. |