PageSourceSearch

https://docs.pantavisor.io/assets/js/d55ddc4f.fb642c89.js

js pantavisor.io collected 2026-10-04 00:19:00 UTC 6,424 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkpantavisor_docs=self.webpackChunkpantavisor_docs||[]).push([["15061"],{16130(e,t,n){n.r(t),n.d(t,{metadata:()=>i,default:()=>h,frontMatter:()=>a,contentTitle:()=>o,toc:()=>d,assets:()=>c});var i=JSON.parse('{"id":"meta-pantavisor/getting-started/security/index","title":"Security and compliance","description":"Trust model, signed revisions, secure boot, SBOM/CVE, and recertification.","source":"@site/reference_versioned_docs/version-030-rc3/meta-pantavisor/getting-started/security/index.md","sourceDirName":"meta-pantavisor/getting-started/security","slug":"/meta-pantavisor/getting-started/security/","permalink":"/030-rc3/meta-pantavisor/getting-started/security/","draft":false,"unlisted":false,"tags":[],"version":"030-rc3","sidebarPosition":8,"frontMatter":{"title":"Security and compliance","sidebar_position":8,"description":"Trust model, signed revisions, secure boot, SBOM/CVE, and recertification."},"sidebar":"metaPantavisorGettingStartedSidebar","previous":{"title":"When not to use Pantavisor","permalink":"/030-rc3/meta-pantavisor/getting-started/migrate/when-not-to-use"},"next":{"title":"Atomicity and trust evidence","permalink":"/030-rc3/meta-pantavisor/getting-started/security/atomicity-and-trust"}}'),r=n(74848),s=n(28453);let a={title:"Security and compliance",sidebar_position:8,description:"Trust model, signed revisions, secure boot, SBOM/CVE, and recertification."},o="Security and compliance",c={},d=[{value:"Pages",id:"pages",level:2},{value:"Runtime reference",id:"runtime-reference",level:2},{value:"Planned coverage",id:"planned-coverage",level:2}];function l(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"security-and-compliance",children:"Security and compliance"})}),"\n",(0,r.jsx)(t.p,{children:"Because Pantavisor owns PID 1, it is held to a higher trust bar than a deletable\nupdater \u2014 these pages spell out the trust model and how its guarantees are\ntested."}),"\n",(0,r.jsx)(t.h2,{id:"pages",children:"Pages"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/security/trust-model",children:"Trust model"})})," \u2014 what Pantavisor protects, the trust\nboundaries from secure boot to per-container integrity, and the end-to-end\nverification chain."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/security/atomicity-and-trust",children:"Atomicity and trust evidence"})})," \u2014 a documented,\nreproducible power-fail and rollback test methodology (results forthcoming)."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/solutions/secure-ota",children:"Secure OTA updates"})})," \u2014 content-addressed object\nintegrity, ",(0,r.jsx)(t.a,{href:"/030-rc3/pantavisor/reference/pantavisor-state-format-v2#9-security-_sigscontainerjson",children:"PVS signatures"}),"\nover the state JSON, ",(0,r.jsx)(t.a,{href:"https://www.rfc-editor.org/rfc/rfc7515#section-4.1.6",children:"x5c"}),"\n(JOSE/JWS) certificate chains, and the tamper-evident audit trail."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"runtime-reference",children:"Runtime reference"}),"\n",(0,r.jsxs)(t.p,{children:["The trust/signing model these pages describe is built on primitives defined\non the ",(0,r.jsx)(t.code,{children:"pantavisor/"})," side, not repeated here:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/030-rc3/pantavisor/overview/revisions",children:"Revisions"})," \u2014 what a revision actually is\n(the unit every signature covers)."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/030-rc3/pantavisor/overview/storage",children:"Objects and storage"}),' \u2014 the "Integrity"\nsection has the full signing scheme: algorithms, verification points, and\nthe ',(0,r.jsx)(t.code,{children:"disabled"}),"/",(0,r.jsx)(t.code,{children:"audit"}),"/",(0,r.jsx)(t.code,{children:"lenient"}),"/",(0,r.jsx)(t.code,{children:"strict"})," severity levels. ",(0,r.jsx)(t.strong,{children:"Read this\nbefore concluding signing is optional"}),' \u2014 the state-format reference\nmarks the signature manifest "Mandatory: No" because validation strictness\nis configurable, not because unsigned states are always accepted;\n',(0,r.jsx)(t.code,{children:"lenient"})," (the default) still fails a revision whose signature doesn't\nvalidate once present, and ",(0,r.jsx)(t.code,{children:"strict"})," requires one."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/operate/device-access/remote-pantahub",children:"Claiming a device"})," \u2014\nthe registration/claim flow that binds a device to a Pantahub account."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/develop/cli-tools/pvr-cli#signing-a-revision",children:(0,r.jsx)(t.code,{children:"pvr sig"})})," \u2014\nsigning commands and key flags."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/030-rc3/meta-pantavisor/getting-started/licensing/",children:"Licensing"})," \u2014 what's open\nsource (on-device code, MIT) vs. the commercial relationship (managed\nPantahub service), and that Pantahub itself is self-hostable."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"planned-coverage",children:"Planned coverage"}),"\n",(0,r.jsx)(t.p,{children:"Future pages will cover secret handling, SBOM generation and the CVE/update\
1nworkflow, the recertification model (a frozen, certified base/BSP plus app-only\ncontainer updates that preserve the safety case), Cyber Resilience Act\nreadiness, and IEC 62304 / IEC 62443 positioning."})]})}function h(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},28453(e,t,n){n.d(t,{R:()=>a,x:()=>o});var i=n(96540);let r={},s=i.createContext(r);function a(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.