ພື້ນຖານຄວາມຮູ້ ພາຍໃຕ້ hood ໄດ້
ຢືນຢັນການກໍ່ສ້າງ
Open source ພຽງແຕ່ຊ່ວຍໄດ້ຖ້າຫາກວ່າລະຫັດທີ່ທ່ານກໍາລັງແລ່ນແມ່ນລະຫັດທີ່ເປັນ ຈັດພີມມາ. Nymchat ຖືກສ້າງຂຶ້ນຢ່າງຕັ້ງໃຈເພື່ອໃຫ້ທ່ານສາມາດກວດເບິ່ງວ່າຕົວທ່ານເອງ, ຈາກພາຍໃນ app ຫຼືຈາກ terminal.
ໜ້ານີ້ຖືກແປດ້ວຍເຄື່ອງເພື່ອຄວາມສະດວກ. ຕົ້ນສະບັບພາສາອັງກິດແມ່ນສະບັບທີ່ນໍາໃຊ້.
ການກໍ່ສ້າງທີ່ແຜ່ພັນໄດ້
ການສ້າງແອັບຯ emits a build-manifest.json ປະກອບດ້ວຍແຫຼ່ງຄໍາຫມັ້ນສັນຍາ, a
SHA-256 hash ຂອງທຸກໆຊັບສິນ HTML, JavaScript ແລະ CSS ທີ່ຮັບໃຊ້, ແລະອັນດຽວ
bundleHash ຫຼາຍກວ່າຊຸດຊັບສິນທັງໝົດນັ້ນ.
ຜົນຜະລິດແມ່ນຂຶ້ນກັບເນື້ອຫາທີ່ມາພຽງແຕ່ — ເຖິງແມ່ນວ່າເວລາການສ້າງທີ່ບັນທຶກໄວ້ແມ່ນ
ເວລາຂອງ commit ແທນທີ່ຈະເປັນເວລາທີ່ການກໍ່ສ້າງແລ່ນ - ດັ່ງນັ້ນຜູ້ໃດກໍ່ກໍ່ສ້າງຄືກັນ
commit ໄດ້ຮັບໄຟລ໌ທີ່ຄືກັນ byte ແລະດຽວກັນ bundleHash.
A GitHub Action ຫຼັງຈາກນັ້ນກໍ່ສ້າງຄືນໃຫມ່ແຕ່ລະຄໍາຫມັ້ນສັນຍາເປັນເອກະລາດແລະສັນຍານການກໍ່ສ້າງ- provenance
ການຢັ້ງຢືນສໍາລັບ hash ແລະ manifest, ສະນັ້ນມີບັນທຶກການລົງນາມ tying a
bundleHash ກັບຄໍາຫມັ້ນສັນຍາໃນ repository, ຜະລິດໂດຍບາງສິ່ງບາງຢ່າງອື່ນທີ່ບໍ່ແມ່ນ
ການນຳໃຊ້.
ສິ່ງທີ່ກ່ຽວກັບກ່ອງໂຕ້ຕອບກວດສອບ
ກ່ຽວກັບ ໃນ header ດໍາເນີນການກວດສອບສົດ, ໃນຕົວທ່ອງເວັບຂອງທ່ານ.
ມັນດຶງເອົາຊັບສິນແຕ່ລະອັນທີ່ໜ້າເຮັດວຽກຕົວຈິງ, ແຊຣ໌ມັນດ້ວຍ Web Crypto API, ແລະ
ປຽບທຽບກັບ manifest ໄດ້. ຫຼັງຈາກນັ້ນ - ແລະນີ້ແມ່ນສ່ວນຫນຶ່ງທີ່ສໍາຄັນ - ມັນ
recomputes ໄດ້ bundleHash ຈາກ hashes ໄດ້ ມັນ ພຽງແຕ່ຄິດໄລ່, ບໍ່ແມ່ນມາຈາກ
ສິ່ງໃດແດ່ທີ່ manifest ອ້າງ, ແລະເບິ່ງວ່າຢູ່ໃນ repository ເຊັນຢັ້ງຢືນ
ຜ່ານ GitHub API.
ນັ້ນແມ່ນສິ່ງທີ່ຢຸດການປະຕິບັດຈາກ vouching ສໍາລັບຕົວມັນເອງ: ໃຫ້ບໍລິການໄຟລ໌ດັດແກ້ພ້ອມກັບ manifest ການຈັບຄູ່ຍັງລົ້ມເຫລວ, ເພາະວ່າ hash ທີ່ຖືກຄິດໄລ່ໃຫມ່ບໍ່ມີການຢັ້ງຢືນ.
| ສະຖານະ | ຫມາຍຄວາມວ່າ |
|---|---|
| &ກວດເບິ່ງ; ແອັບທີ່ເປັນທາງການທີ່ຢືນຢັນແລ້ວ (n/n) | ທຸກໆຊັບສິນທີ່ກົງກັນ, hash bundle recomputed ໄດ້ຖືກຢັ້ງຢືນໂດຍ repository, ແລະ ຫນ້າແມ່ນໃຫ້ບໍລິການຈາກໂດເມນທີ່ເປັນທາງການ. |
| ⚠ ຢືນຢັນການກໍ່ສ້າງ · ບໍ່ແມ່ນແອັບທີ່ເປັນທາງການ | ລະຫັດແມ່ນແທ້ຈິງແລະຢັ້ງຢືນ, ແຕ່ນີ້ແມ່ນບ່ອນແລກປ່ຽນຄວາມຢູ່ໃນໂດເມນອື່ນ. ກະຈົກບໍ່ສາມາດລຶບຄຳເຕືອນນີ້ອອກໄດ້ໂດຍທີ່ບໍ່ສາມາດຢັ້ງຢືນໄດ້. |
| ✗ ບໍ່ກົງກັນ | ຊັບສິນບໍ່ hash ກັບສິ່ງທີ່ manifest ເວົ້າ. |
| ✗ ການກໍ່ສ້າງທີ່ບໍ່ເປັນທາງການ | hash bundle recomputed ບໍ່ມີການຢັ້ງຢືນຈາກ repository - ເປັນ manifest ດ້ວຍຕົນເອງ. |
| ⚠ ບໍ່ສາມາດຕິດຕໍ່ໄດ້ | GitHub API ບໍ່ສາມາດເຂົ້າເຖິງໄດ້, ດັ່ງນັ້ນການຢັ້ງຢືນບໍ່ສາມາດຖືກກວດສອບໄດ້ໃນທາງໃດກໍ່ຕາມ. |
ຢືນຢັນມັນຕົວທ່ານເອງ
ກໍ່ສ້າງຄືນ commit ຊື່ dialog ກ່ຽວກັບແລະປຽບທຽບ:
git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build # prints "Build hash: <bundleHash>"
hash ທີ່ພິມອອກຄວນຈະກົງກັບທັງສອງອັນຢູ່ໃນກ່ອງໂຕ້ຕອບກ່ຽວກັບ ແລະອັນທີ່ຢູ່ໃນຄໍາຫມັ້ນສັນຍານັ້ນ ສະຫຼຸບການດໍາເນີນການກໍ່ສ້າງ. ທ່ານຍັງສາມາດກວດເບິ່ງລາຍເຊັນໂດຍກົງກັບ GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Canary ຮັບປະກັນ
A warrant canary ແມ່ນຄໍາຖະແຫຼງການ, ຈັດພີມມາໃນກໍານົດເວລາຄົງທີ່, ທີ່ນັກພັດທະນາມີ ບໍ່ ໄດ້ຮັບຄຳສັ່ງຂອງລັດຖະບານລັບທີ່ເຂົາເຈົ້າຖືກຫ້າມບໍ່ໃຫ້ເປີດເຜີຍ — ກ ຈົດໝາຍຄວາມປອດໄພແຫ່ງຊາດ, ຄໍາສັ່ງ FISA. ນັກພັດທະນາສາມາດຖືກບັງຄັບໃຫ້ຢູ່ silent ກ່ຽວກັບ ຄໍາສັ່ງດັ່ງກ່າວ, ແຕ່ບໍ່ສາມາດຖືກບັງຄັບໃຫ້ຕົວະ, ດັ່ງນັ້ນ canary ຈະ stale ຫຼືຫາຍໄປ ຕົວຂອງມັນເອງສັນຍານ.
ມັນອາໃສຢູ່ໃນ canary.json ຢູ່ຮາກຂອງບ່ອນເກັບມ້ຽນແລະຖືກດຶງມາໂດຍກົງ
ຈາກ GitHub, ສະນັ້ນປະຫວັດຂອງມັນແມ່ນສາມາດກວດສອບໄດ້ຢ່າງເປັນເອກະລາດຈາກສິ່ງທີ່ເວັບໄຊທ໌ທີ່ໃຊ້ເວົ້າ.
The About dialog color-codes it:
| ສີ | ຫມາຍຄວາມວ່າ |
|---|---|
| ສີຂຽວ — ທັງຫມົດທີ່ຈະແຈ້ງ | ເຊັນ, ປັດຈຸບັນ, ແລະລາຍເຊັນກົງກັບລະຫັດຂອງນັກພັດທະນາ. ບໍ່ໄດ້ຮັບຄໍາສັ່ງລັບ. |
| ສີເຫຼືອງ — ເກີນກຳນົດ, ຫຼືບໍ່ຈະແຈ້ງທັງໝົດ | ມັນບໍ່ໄດ້ຖືກປັບປຸງໂດຍວັນທີທີ່ລະບຸໄວ້, ຫຼືຂອງມັນ allClear ທຸງແມ່ນບໍ່ຖືກຕ້ອງ. ຄຳສັ່ງທີ່ມິດງຽບບໍ່ສາມາດຖືກປະຕິເສດໄດ້. |
| ສີແດງ — ລາຍເຊັນບໍ່ຖືກຕ້ອງ, ຫຼືຫມົດໄປ | ລາຍເຊັນບໍ່ກົງກັບລະຫັດຂອງຜູ້ພັດທະນາ, ຫຼືໄຟລ໌ດັ່ງກ່າວໄດ້ຖືກລຶບອອກທັງຫມົດ. ຮັກສານີ້ເປັນການເຕືອນໄພທີ່ຮ້າຍແຮງ. |
ສະມໍຄວາມສົດ
Canary ທີ່ລົງນາມໄດ້ຝັງຄວາມສູງຂອງບລັອກ Bitcoin ຫຼ້າສຸດແລະ hash ໃນເວລານີ້ຂອງການເຊັນ. hash ນັ້ນບໍ່ສາມາດເປັນທີ່ຮູ້ຈັກກ່ອນທີ່ຈະມີຕັນ, ເຊິ່ງພິສູດວ່າ canary ແມ່ນ ເຊັນ ຫຼັງຈາກ ຈຸດສະເພາະໃນເວລາແທນທີ່ຈະລົງນາມໃນຫຼາຍເດືອນກ່ອນໜ້ານີ້. ກ່ອງໂຕ້ຕອບກ່ຽວກັບການເຊື່ອມຕໍ່ສະມໍກັບ block explorer ເພື່ອໃຫ້ທ່ານສາມາດກວດເບິ່ງມັນໄດ້.