키 없는 서명은 서명할 때 임시 키를 만들고 OIDC 신원에 연결된 단기 인증서를 받는 방식입니다. 검증자는 서명뿐 아니라 인증서의 신원과 투명성 기록을 확인합니다.
데모는 신원 확인, 단기 인증서 발급, 아티팩트 서명과 검증 순서를 보여줍니다. 개인키를 장기 보관하지 않는다는 뜻이지 검증이 생략되는 것은 아닙니다.
언제 쓰나
CI 산출물에 실행 주체의 신원을 연결하고 검증할 때 사용합니다.
짧게 쓰는 서명키를 신원 인증서에 묶어 장기 개인키 관리 부담을 줄입니다.
<div class="sd"><div class="sd-head"><strong>KEYLESS SIGNING</strong><span id="state">live check</span></div><div class="sd-stage"><div class="ks-flow"><div id="k0">OIDC<br>identity</div><div id="k1">short-lived<br>certificate</div><div id="k2">artifact<br>signature</div><div id="k3">verify<br>identity</div></div><div class="ks-track"><b id="ks-progress"></b></div></div><div class="sd-foot"><span id="caption">checking boundary</span><span>tap to step</span></div></div>.sd{box-sizing:border-box;width:min(94vw,700px);height:min(86vh,318px);padding:clamp(9px,2.3vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);display:flex;flex-direction:column;gap:clamp(6px,1.8vmin,12px);font:600 clamp(12px,2.6vmin,16px)/1.25 var(--font-sans, sans-serif)}.sd *{box-sizing:border-box}.sd-head,.sd-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:1.25em}.sd-head strong{color:var(--accent);letter-spacing:.06em}.sd-head span,.sd-foot{color:var(--muted)}.sd-foot{font-size:clamp(12px,2.4vmin,14px)}.sd-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(6px,2vmin,18px);overflow:hidden}.sd .mono{font-family:ui-monospace,monospace}.sd .tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(5px,1.5vmin,10px);text-align:center}.sd .good{color:var(--accent);border-color:var(--accent)}.sd .bad{color:var(--accent-3);border-color:var(--accent-3)}.sd .arrow{color:var(--muted);font-size:clamp(15px,4vmin,28px)}.sd .active{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent)}.sd .blocked{background:color-mix(in srgb,var(--accent-3) 13%,var(--surface));border-color:var(--accent-3)}.sd-stage{flex-direction:column}.ks-flow{display:flex;width:100%;gap:clamp(4px,1.2vmin,9px)}.ks-flow div{flex:1;min-width:0;padding:clamp(5px,1.5vmin,11px) 2px;border:1px solid var(--line);border-radius:7px;text-align:center;background:var(--bg);transition:all .2s}.ks-flow div.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.ks-track{width:90%;height:clamp(7px,1.8vmin,12px);background:var(--bg);border-radius:20px;overflow:hidden}.ks-track b{display:block;height:100%;background:var(--accent);transition:width .25s}let n=-1;function advance(){n=(n+1)%4;for(let i=0;i<4;i++)document.getElementById('k'+i).classList.toggle('on',i<=n);document.getElementById('ks-progress').style.width=(n+1)*25+'%';document.getElementById('state').textContent=['identify','certify','sign','verify'][n];document.getElementById('caption').textContent=['identify CI workload','bind temporary key to identity','sign artifact digest','check signature and identity'][n]}advance();setInterval(advance,750);
document.querySelector('.sd').addEventListener('pointerdown',advance);키 없는 서명은 서명할 때 임시 키를 만들고 OIDC 신원에 연결된 단기 인증서를 받는 방식입니다. 검증자는 서명뿐 아니라 인증서의 신원과 투명성 기록을 확인합니다.
데모는 신원 확인, 단기 인증서 발급, 아티팩트 서명과 검증 순서를 보여줍니다. 개인키를 장기 보관하지 않는다는 뜻이지 검증이 생략되는 것은 아닙니다.
CI 산출물에 실행 주체의 신원을 연결하고 검증할 때 사용합니다.