[P2][auth] SIWE Chain ID: 1 하드코딩을 설정/검증 가능한 값으로 분리 #43

Closed
opened 2026-05-02 04:59:45 +00:00 by boxqkrtm · 1 comment

문제

auth/siwe.rs::build_register_message()에서 SIWE message의 chain id가 Chain ID: 1로 하드코딩되어 있습니다.

Chain ID: 1

현재 registration 검증은 서버가 저장한 message exact match와 address signature recovery에 의존하므로 chain id 자체를 별도 정책값으로 다루지 않습니다.

영향

  • mainnet chain id만 암묵적으로 사용
  • testnet/private deployment에서 SIWE domain 정책을 조정하기 어려움
  • chain id가 인증 정책인지 단순 호환 문자열인지 코드상 명확하지 않음
  • 향후 full SIWE validation을 추가할 때 하드코딩된 값이 확장성을 막을 수 있음

제안

  • relay config에 siwe_chain_id 또는 auth policy 설정 추가
  • 기본값은 기존 호환성을 위해 1 유지
  • challenge 생성 시 설정값을 사용
  • register 검증 시 parsed SIWE chain id가 설정값과 일치하는지 확인

완료 기준

  • chain id가 코드 하드코딩이 아닌 설정/상수 정책으로 분리
  • 기본 동작은 기존 Chain ID: 1과 호환
  • chain id mismatch test 추가

검토 기준: portal-relay SIWE registration flow 정적 리뷰. 관련 코드: crates/portal-relay/src/auth/siwe.rs, crates/portal-relay/src/relay/leases.rs, crates/portal-relay/src/api/mod.rs.

## 문제 `auth/siwe.rs::build_register_message()`에서 SIWE message의 chain id가 `Chain ID: 1`로 하드코딩되어 있습니다. ```text Chain ID: 1 ``` 현재 registration 검증은 서버가 저장한 message exact match와 address signature recovery에 의존하므로 chain id 자체를 별도 정책값으로 다루지 않습니다. ## 영향 - mainnet chain id만 암묵적으로 사용 - testnet/private deployment에서 SIWE domain 정책을 조정하기 어려움 - chain id가 인증 정책인지 단순 호환 문자열인지 코드상 명확하지 않음 - 향후 full SIWE validation을 추가할 때 하드코딩된 값이 확장성을 막을 수 있음 ## 제안 - relay config에 `siwe_chain_id` 또는 auth policy 설정 추가 - 기본값은 기존 호환성을 위해 `1` 유지 - challenge 생성 시 설정값을 사용 - register 검증 시 parsed SIWE chain id가 설정값과 일치하는지 확인 ## 완료 기준 - chain id가 코드 하드코딩이 아닌 설정/상수 정책으로 분리 - 기본 동작은 기존 `Chain ID: 1`과 호환 - chain id mismatch test 추가 --- 검토 기준: `portal-relay` SIWE registration flow 정적 리뷰. 관련 코드: `crates/portal-relay/src/auth/siwe.rs`, `crates/portal-relay/src/relay/leases.rs`, `crates/portal-relay/src/api/mod.rs`.
Owner

검토했지만 이번 범위에서는 수용하지 않습니다. Chain ID: 1은 현재 서버 생성 challenge의 호환 문자열 일부이고 별도 chain authorization 정책으로 사용되지 않습니다. 설정화는 multi-chain auth policy를 새로 도입하는 일이라 현재 upstream v2.1.9 compatibility 범위를 넘고, 기본 동작 회귀 위험이 있어 닫습니다.

검토했지만 이번 범위에서는 수용하지 않습니다. Chain ID: 1은 현재 서버 생성 challenge의 호환 문자열 일부이고 별도 chain authorization 정책으로 사용되지 않습니다. 설정화는 multi-chain auth policy를 새로 도입하는 일이라 현재 upstream v2.1.9 compatibility 범위를 넘고, 기본 동작 회귀 위험이 있어 닫습니다.
gofix closed this issue 2026-05-03 18:58:43 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
gofix/portal-tunnel-rs#43
No description provided.