0xMiden / 0xMiden/note-transport-service

No TLS on the gRPC server; missing HTTP/2 connection hardening

オープン
#120 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement production-readiness
主要言語
Rust
スター
3
フォーク
10
平均マージ
2時間 23分
マージ済み PR(30日)
4

説明

Severity: high.

### Summary

The server is plaintext-only. `tonic` is built without any `tls-*` feature (`Cargo.toml:126`) and `serve()` sets no TLS config (`crates/node/src/node/grpc/mod.rs:117-126`). Note *contents* are encrypted, but tags, cursors, and note headers travel in cleartext and traffic can be MITM'd/tampered.

Separately, no HTTP/2 hardening is configured: no `max_concurrent_streams`, `http2_keepalive_interval`/`timeout`, `tcp_keepalive`, or header-read timeout. `accept_http1(true)` also enables grpc-web (HTTP/1.1), where slow-header/body trickle applies. The 4 s `TimeoutLayer` only covers a request *after* dispatch.

### Recommendation

- Either add tonic TLS config, or document a hard requirement for a TLS-terminating proxy and bind only to localhost/private interfaces by default.
- Set `max_concurrent_streams`, keepalive, and `tcp_keepalive` on the builder.

---
Part of #114.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

この issue は、Cargo.toml の 126 行目と crates/node/src/node/grpc/mod.rs の 117-126 行目を指しています。まず、そこにある Tonic サーバーの設定を調べてください。Tonic の TLS 機能と、max_concurrent_streams や keepalive 設定などの HTTP/2 強化オプションについて調査します。「完了」とは、サーバーが TLS と強化された HTTP/2 を設定しているか、TLS プロキシの明確なドキュメントがあり、サーバーが安全にバインドされていることを意味します。

索引モデルが issue の本文から書いたものです。

評価

領域
backend, security
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。