Project ideas from Hacker News discussions.

The V8 JavaScript Runtime Undermined My Constant-Time JavaScript Library

📝 Discussion Summary (Click to expand)

Theme 1 – High‑level software alone can’t stop side‑channel leaks
- “side channel attacks seem to me like something that you fundamentally just can't address by writing better software in a high‑level language.” — i2talics
- “You can write algorithms that leak every bit of your secrets, trivially… You can use algorithm implementations that do not have secret‑dependent timing differences … this isn’t perfect, but it’s better.” — some_furry

Theme 2 – Guarantees depend on the threat model and what the runtime/compiler promises
- “The real question is: What's your threat model?” — some_furry
- “Nobody was evil you just tried to rely on a property that V8 never promised.” — ErikCorry
- “Even if a later optimization breaks your constant‑time property that still wouldn’t be evil.” — ErikCorry

Theme 3 – Real‑world examples show the danger of doing crypto in JS/Wasm; better to avoid it or verify low‑level code
- “The npm “elliptic” package does this… Daniel Bleichenbacher has tested several packages' timing leakage in Rooterberg …” — some_furry (see https://github.com/bleichenbacher-daniel/Rooterberg/blob/main/doc/timing_results.md)
- “I was working on reimplementing the WebRTC stack in JavaScript… The crypto folks at Mozilla … suggested 'maybe don't do that for dTLS.'” — ndesaulniers


🚀 Project Ideas

Generating project ideas…

Constant-Time Code Checker (CTCC)

Summary

  • A static analysis tool that scans source code for secret-dependent branches, array indices, and memory accesses to flag potential timing side‑channels in Rust, Go, and JavaScript/WASM projects.
  • Provides CI/CD integration with clear pass/fail reports and remediation suggestions.

Details

Key Value
Target Audience Cryptography library developers, security engineers, and open‑source maintainers who need assurance that their implementations are constant‑time.
Core Feature Data‑flow and control‑flow analysis that models secret taint and detects any influence on control flow or memory access patterns; outputs SARIF for GitHub/GitLab.
Tech Stack Rust (analysis engine), LLVM‑based IR for language front‑ends, WASM‑based WASI sandbox for executing test harnesses, GitHub Action.
Difficulty Medium
Monetization Revenue-ready: SaaS tiered plan (free for open source, $20/mo per private repo).

Notes

  • HN commenters lament that “you can’t address side‑channels by writing better software in a high‑level language” and ask for guarantees beyond the language level – CTCC gives those guarantees by checking the compiled representation.
  • Enables discussion on threat models and encourages adoption of verified constant‑time patterns in popular ecosystems.

WasmCryptoHub

Summary

  • A curated package registry of constant‑time cryptographic primitives (e.g., Ed25519, X25519, AES‑GCM) pre‑compiled to WASM with formal verification artifacts and SBOMs.
  • Developers can drop in a verified WASM module instead of rolling their own crypto, eliminating timing leaks at the source.

Details

Key Value
Target Audience Web and Node.js developers who need reliable crypto without becoming side‑channel experts.
Core Feature Repository of WASM binaries accompanied by proof certificates (e.g., from ctverif or Jasmin) and runtime‑agnostic constant‑time guarantees; simple npm/yarn API.
Tech Stack Rust → WASM via wasm-pack, verification via ctverif/Jasmin, IPFS or OCI registry for distribution, lightweight web UI for browsing.
Difficulty High
Monetization Revenue-ready: Subscription for private packages ($15/mo) + sponsorship model for public audits.

Notes

  • Echoes the sentiment that “you can use algorithm implementations that do not have secret‑dependent timing differences … as long as you are clear that your guarantees do not extend to the underlying runtime”; WasmCryptoHub extends those guarantees to the WASM runtime itself.
  • Provides a concrete artifact that HN users can point to when debating the feasibility of constant‑time crypto in high‑level languages.

SideChannelBench

Summary

  • An open‑source benchmarking harness (CLI + optional web service) that executes user‑provided code snippets under controlled hardware performance counters (cache misses, branch mispredictions) to measure timing variance correlated with secret inputs.
  • Generates easy‑to‑read leakage reports and suggests fixes.

Details

Key Value
Target Audience Security researchers, crypto implementers, and teaching labs who need empirical evidence of side‑channel resistance.
Core Feature Harness that runs the target function with random secret inputs, collects fine‑grained timing metrics via Linux perf/eBPF or Intel PT, runs statistical tests (t‑test, Welch) to detect dependence, and outputs HTML/JSON reports.
Tech Stack Rust for harness, eBPF/perf Linux bindings, optional WASM sandbox for cross‑platform, web frontend with React + Chart.js for visualization.
Difficulty Medium
Monetization Hobby (free, community‑supported). Can add paid private‑instance offering later.

Notes

  • Directly addresses the frustration expressed by i2talics about “playing whack‑a‑mole” by giving developers a way to measure whether their mitigations actually work, rather than relying on trust.
  • Sparks discussion on threat models and practical side‑channel testing, aligning with the HN thread’s focus on empirical validation.

Read Later