Skip to content

feat(web): the SSH report, as instruments (PRD-014) - #24

Merged
khalid-offset merged 4 commits into
mainfrom
feat/ssh-instruments
Oct 21, 2026
Merged

khalid-offset merged 4 commits into
mainfrom
feat/ssh-instruments

Conversation

@khalid-offset

Copy link
Copy Markdown
Contributor

Stacked on #23 (base feat/classes-and-x509); retarget to main once #23 merges.

The SSH server report now uses the same "instruments, not paragraphs" layout PRD-013 gave the TLS report.

  • Docs: PRD-014, UX-DESIGN-012 (an addendum to UX-DESIGN-011; replaces its §3.5).

  • Configuration, one page in a reviewer's order, under a sticky jump row:

    1. Version and software: a banner showing what a current client gets, plus status tiles.
    2. Key exchange: the readiness row, then one row per algorithm with its bits bar, post-quantum glyph, baseline mark and in-use mark.
    3. Host keys: one card per key, each with its strength, verification and fingerprint.
    4. Ciphers.
    5. MACs and compression.
    6. Baseline: requirement tiles that link to their source, then the sshd_config lines with Copy.

    Each part ends with its issues and its baseline change chips. Sources sit in tooltips; there are no lists of citations.

  • Summary: readiness with its stepper, the baseline, the weakest classical strength (bits bar) and the host key. The baseline is line 1 of Fix first, in the shared row shape.

  • Tests:

    • E2E-VIS-6 is rewritten to check against sshAlgorithms.
    • E2E-VIS-8, 9 and 10 are new.
    • The SSH screens join VIS-1 and VIS-7 (fit, keyboard, contrast).
    • E2E-H.2 now reads the marks that replaced its words. The reason is in the code and in QA-REPORT-013.
  • Sign-off: CRYPTO-REVIEW-002 is signed off with 2 fixes. QA-REPORT-013 covers the screen walk, with 3 fixes. RTM rows REQ-SSV-1 to 9 are added.

No change to the evaluation, the API or the PDF. No release.

Verified locally:

  • go test ./... passes.
  • golangci-lint run ./... reports 0 issues on Windows and with GOOS=linux.
  • The full journey with a fresh DB and fresh demo-targets, sign-in on with a token: 237 passed, 0 failed, run twice.

The SSH server report gets the one-stop Configuration PRD-013 gave TLS
(UX-DESIGN-012): version and software, key exchange, host keys, ciphers,
MACs and compression, and the baseline, under a sticky jump row. Every
algorithm is a row with its bits bar, post-quantum glyph and baseline
mark; host keys are cards; requirements are tiles linking to their
source; baseline changes are chips in their parts; each part ends with
its issues. The Summary gets the four-figure strip, and the baseline is
line 1 of Fix first in the shared row shape.

Journey: E2E-VIS-6 rewritten against sshAlgorithms; E2E-VIS-8, 9 and 10
added; E2E-H.2 reads the marks that replaced its words. 237 passed.
CRYPTO-REVIEW-002 signed off; QA-REPORT-013; RTM rows REQ-SSV-1 to 9.
…hing to judge (eval/11)

From the evaluation of PR #24:
- next steps and the strict key exchange change name OpenSSH releases only
  to an OpenSSH server; any other server is told what to offer;
- a truncated MAC is as strong as its tag (hmac-sha1-96 is 96 bits, not
  128; SP 800-107 Rev. 1 section 5.3.5);
- the RSA size rule says it does not apply when there is no RSA host key,
  instead of reading Met;
- each should-be-off row says why on the row, in a wider column.

eval/11 re-evaluates stored scans on start. Tests:
TestSSHNextStepsNameOpenSSHOnlyForOpenSSH,
TestRSASizeRuleWithoutAnRSAKeyDoesNotApply,
TestTruncatedMACIsBoundedByItsTag.
…ORT-013)

Records the owner-requested re-evaluation: five crypto defects fixed (two
from the first review, three in eval/11), the should-be-off reasons on
the row, the methodology's truncated-MAC rule and the CHANGELOG. Journey
238 passed, 0 failed.
@khalid-offset
khalid-offset changed the base branch from feat/classes-and-x509 to main October 21, 2026 18:45
@khalid-offset
khalid-offset merged commit 5109981 into main Oct 21, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant