Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,34 @@ All notable changes to Keyward are documented here. Format follows

## [Unreleased]

### Added

- **Per-entry purpose hints** (all three hosts): every known entry name now
carries a one-line consumer note — CI manifest signing, Racket-side
updater, macOS host `UpdateService`, update-manifest key id, Deep Check
pairing anchor, commercial-signing lifecycle. Unknown names get an
explicit "confirm what reads it before deleting" line, so the app itself
answers "can I delete this?" instead of silence. The delete confirmation
shows the same purpose line.
- **Clipboard handling that tells the truth**: a copy reports that the raw
value is on the system clipboard where any app can read it, and auto-clears
after 30 s — only while the clipboard still holds Keyward's copy (change
count on macOS, a non-secret marker title on Windows, an ownership-marker
mime on Linux), so a later unrelated copy by the user is never erased.
Clipboard history/sync stays disclosed as out of Keyward's control.
- **Plaintext custody stated in the app**: the intro, no-vault, snapshots
and About surfaces on all three hosts now say plainly that the vault file
and its snapshots are plain text on disk — not OS-encrypted custody — and
that the synced folder must be trusted.

### Fixed

- Rapidly selecting two products could leave rows and the copy target
bound to different sections: entry-list completions and copies are now
generation-guarded and bound to the product on screen; a stale copy is
skipped instead of landing a secret under a different header. A store
switch invalidates in-flight completions the same way.

### Fixed

- Deep check now evaluates every private entry and all public anchors within its purpose. A valid update key no longer hides a corrupt or mismatched license key; multiple safe fingerprints remain labelled within the existing RPC row layout. Empty private entries are reported as unreadable. Regression coverage uses generated temporary keys only.
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ Rivet line — a Racket engine with native hosts — it keeps the vault file in
your own synced folder and adds the discipline a plaintext store lacks:

- **Never displayed, copy-only.** Key values are only ever returned by an
explicit copy-to-clipboard action.
explicit copy-to-clipboard action. The copy announces its own exposure
(any app can read the clipboard) and auto-clears after 30 s — unless
you have copied something else in between, which is never erased.
- **Loss protection.** Every mutation snapshots the store first (append-only,
inside the synced folder); writes are atomic and permissions are tightened.
- **Deep check.** Parses each key (Ed25519 / RSA PKCS#8, base64-DER,
Expand Down
2 changes: 2 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ Keyward 是一个守护这些密钥的小型桌面应用。建在家族 Rivet
明文存储缺的那份纪律:

- **永不显示,只进剪贴板。** 密钥值只通过显式的「复制到剪贴板」动作返回。
复制时会明示暴露面(任何应用都能读取剪贴板),并在 30 秒后自动清空——
期间你自己复制的其他内容永远不会被误删。
- **防丢失。** 每次改动先对存储做快照(同步盘内、只追加);写入原子化,
权限收紧。
- **深度校验。** 解析每把密钥(Ed25519 / RSA PKCS#8、base64-DER、
Expand Down
11 changes: 10 additions & 1 deletion docs/GUIDE.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,16 @@ raco rivet package # 产物在 dist/keyward.app
2. **鼠标悬停**在这一行上 → 行尾出现 **Copy** 按钮 → 点击;
(或点行尾 `⋯` 菜单 → "Copy value to clipboard")
3. 值已进剪贴板,去粘贴。**界面上任何地方都不会显示值**——这是
故意的,防偷窥防误贴。
故意的,防偷窥防误贴;
4. **30 秒后自动清空**。复制完成后状态栏会如实说明:原始值就在
系统剪贴板上,任何应用都能读到;30 秒后 Keyward 自动清空——
除非你期间又复制了别的东西,那份新内容永远不会被动。系统剪贴板
历史/同步不受 Keyward 控制,敏感值贴完即用、别久放。

> 每个条目名下方都有一行**用途提示**(CI 签名 / Racket 更新器 /
> macOS 宿主 / 清单代号 / 配对锚点……)。看到"没见过"的条目先读
> 提示再决定动不动手——3/4/5 条个数的差异来自格式代际和新旧密钥
> 组合,条条都有人消费,别凭感觉删。

### 4.2 新建一条

Expand Down
4 changes: 2 additions & 2 deletions docs/USER-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ The vault is a plaintext INI file; file permissions and snapshots do not encrypt

## Network, keys and privacy

The vault engine has no network operations. Clipboard copies and any user-chosen folder sync create additional exposure. Keyward is not an HSM, OS keychain or protection from an already compromised user session.
The vault engine has no network operations. Copy-to-clipboard is the only path a value takes out of the app: the status line says so at each copy, notes that any application can read the clipboard, and auto-clears Keyward's copy after 30 s — a later unrelated copy of your own is never erased. What the app cannot control (OS clipboard history or cross-device clipboard sync) stays disclosed as out of scope. Any user-chosen folder sync creates additional exposure. Keyward is not an HSM, OS keychain or protection from an already compromised user session.

## Known limits

Multi-key validation was corrected in #4. Backup/restore, orphan detection, clipboard exposure and packaged release evidence still require the work tracked in #3; do not infer a security certification.
Multi-key validation was corrected in #4. In-app disclosure of plaintext custody, per-entry purpose hints, copy-consequence messaging, selection-bound copies and the 30 s clipboard auto-clear have landed in source (#3); packaged three-platform release evidence for that slice is still pending. Backup/restore and rotation workflow work remains tracked in #3; do not infer a security certification.

## Updates and removal

Expand Down
4 changes: 2 additions & 2 deletions docs/USER-GUIDE.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ AGPL-3.0 许可的免费发布基础设施工具,不接商业激活。

## 联网、密钥与隐私

密钥库引擎没有网络操作。剪贴板复制和用户选择的文件夹同步会增加暴露面。Keyward 不是 HSM 或系统钥匙串,也不能抵御已被攻陷的用户会话。
密钥库引擎没有网络操作。值离开应用的唯一路径是复制到剪贴板:每次复制都会在状态栏明示这一点、注明任何应用都能读取剪贴板,并在 30 秒后自动清空 Keyward 的这次复制——期间你自己复制的其他内容永远不会被误删。应用无法控制的部分(系统剪贴板历史、跨设备剪贴板同步)如实声明为不在管辖范围。用户选择的文件夹同步会增加暴露面。Keyward 不是 HSM 或系统钥匙串,也不能抵御已被攻陷的用户会话。

## 已知限制

多密钥校验已由 #4 修正。备份恢复、孤立条目检测、剪贴板暴露与打包发布证据仍需按 #3 推进;不构成安全认证。
多密钥校验已由 #4 修正。明文托管的应用内说明、逐条目用途提示、复制后果明示、复制绑定所选产品与 30 秒剪贴板自动清空已进入源码(#3);该切片的三平台打包发布证据仍待完成。备份恢复与轮换流程仍按 #3 推进;不构成安全认证。

## 更新与卸载

Expand Down
Loading
Loading