# Show HN: 내성적인 사람들을 위한 1-FPS 암호화된 화면 공유

> Clean Markdown view of GeekNews topic #16216. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16216](https://news.hada.io/topic?id=16216)
- GeekNews Markdown: [https://news.hada.io/topic/16216.md](https://news.hada.io/topic/16216.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-08-08T09:43:37+09:00
- Updated: 2024-08-08T09:43:37+09:00
- Original source: [1fps.video](https://1fps.video/)
- Points: 1
- Comments: 1

## Topic Body

- # 1fps.video - 암호화된 화면 공유

- ## 빠른 시작
  - 이 명령을 실행하려면 Golang이 설치되어 있어야 함
  - Golang이 없는 경우 다음 방법 중 하나를 사용하여 설치 가능
    - Mac, Linux, Windows에서 Go Runtime 설치를 위한 원라인 명령어 사용: https://webinstall.dev/golang/
    - 공식 Go 웹사이트에서 설치 지침 확인: https://go.dev/doc/install
  - 명령어: `go run github.com/1fpsvideo/1fps@v0.1.1`

- ## 보안, 오픈 소스 클라이언트 앱 확인
  - 개발자, IT 팀, 보안 전문가, 회의 없는 협업 애호가를 위한 간편한 비디오 공유

- ## 왜 1 FPS인가?
  - 대부분의 협업 작업에 저해상도 FPS 비디오 공유가 충분하다는 것을 발견함
  - 여러 가지 이점 제공
    - 오디오 필요성을 제거하여 회의 없는 문화를 촉진함
    - CPU, 메모리, 네트워크 소비를 크게 줄임
    - 오래된 노트북도 화면 공유 시 더 나은 성능 발휘
    - 자원 사용이 적어 환경 친화적임

- ## 1 FPS가 충분한가?
  - 대부분의 코딩 및 개발 작업에 충분함
  - WebSocket 기반 커서 추적 사용으로 매끄럽고 거의 30 FPS에 가까운 포인터 움직임 제공

- ## 왜 우리의 서비스를 선택해야 하는가?
  - 1fps.video는 오디오나 비디오 통화의 압박 없이 화면을 공유하고자 하는 내성적이고 원격 근무자에게 완벽한 솔루션
  - 이미 사용 중인 팀 채팅 애플리케이션과 함께 작동하는 다용도 솔루션

- ## 개인정보 보호 및 보안
  - 개인정보를 중요하게 생각함
    - 모든 데이터는 종단 간 암호화됨
    - 암호화 키는 클라이언트 측에서 생성되며 서버로 전송되지 않음
    - 키는 URL의 일부로 포함되며(해시 기호 이후), 백엔드로 전송되지 않음
    - 전체 링크를 가진 사람만이 공유된 화면에 접근 가능
  - 참고: 더 높은 개인정보 보호를 위해 커서 좌표 암호화 작업 중

- ## 1fps.video로 화면을 간편하고 안전하게 공유 시작

- ## 연락처
  - roman.pushkin@gmail.com

### GN⁺의 정리
- 1fps.video는 저해상도 FPS 비디오 공유를 통해 개발자와 IT 팀에게 효율적인 협업 도구를 제공함
- 종단 간 암호화로 개인정보 보호를 강화하며, 자원 소비를 줄여 환경 친화적임
- WebSocket 기반 커서 추적으로 매끄러운 포인터 움직임을 제공하여 개발 작업에 적합함
- 회의 없는 협업 문화를 촉진하며, 내성적이고 원격 근무자에게 이상적인 솔루션임

## Comments



### Comment 27856

- Author: neo
- Created: 2024-08-08T09:43:37+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41173161) 
- 프로젝트 출시를 축하함. 아이디어가 멋지고 미니멀리스트적임. 그러나 암호화 소스 코드에 몇 가지 결함이 있음
  - 랜덤 키를 생성하고 PBKDF2를 사용해 32바이트 AES-GCM 키를 생성함. 32바이트 랜덤 바이트를 직접 생성하는 것이 더 나음
  - AES-GCM에 랜덤 12바이트 논스를 사용함. 이는 인증을 깨뜨릴 수 있음. XSalsa20+Poly1305로 전환하는 것이 좋음
  - 제한된 문자 집합으로 랜덤 키를 생성하면 브루트 포스 공격이 쉬워질 수 있음. 256비트 랜덤 키를 사용해야 함
  - 대칭 키 분배를 URL의 프래그먼트 식별자를 통해 수행함. 서버가 악의적일 경우 클라이언트 측 자바스크립트를 사용해 키를 탈취할 수 있음

- 코드 분석 결과, 매 초마다 스크린샷(.jpg)을 전송하는 것으로 보임. 이는 현대 비디오 압축 방식보다 대역폭을 절약할 수 있는지 의문임
  - 1분짜리 비디오 클립을 AV1 인코딩으로 녹화했을 때, 60개의 JPEG 스크린샷보다 파일 크기가 절반 정도 작았음

- 이 프로젝트를 사랑함. 사무실과 기술 인프라가 필요 없는 워크플로우를 구축함
  - 팀원 대부분이 내향적이어서 푸시 투 토크 시스템을 사용함. 전체 논의가 필요하지 않은 경우 채팅에 메모를 남김

- 오디오 없이 화면 공유를 사용하는 경우가 궁금함. 다른 사람과 소통해야 하기 때문임

- Google Meet와 Zoom의 시간 제한에 지침. jitsi는 오픈 소스 WebRTC 기반 비디오 회의 대안임
  - 메인 사이트를 통해 사용하거나 자체 호스팅 가능함

- 프레임 선택을 위한 휴리스틱을 만들면 흥미로울 것 같음. 항상 최신 프레임을 선택하는 것은 이상적이지 않음
  - 움직임이 적거나 애니메이션이 없는 프레임을 선택하는 것이 좋음

- go-vgo/robotgo 라이브러리 사용 시 X11/extensions/XTest.h 파일을 찾을 수 없다는 오류 발생
  - Mint 22에서 libxtst-dev 패키지를 설치해야 함

- 원격 물리 테스트 이벤트를 모니터링하기 위해 Google Meet를 사용했으나, 텍스트 채팅이 필요함
  - 이 프로젝트는 최소한의 인터페이스를 제공함. 텍스트 채팅 지속성을 추가할 수 있음

- Moonlight Game Streaming이 VNC를 대체함. 파일 전송, 클립보드 공유 등의 기능이 필요함

- golang으로 자동화 봇을 작업 중임. 이 프로그램을 사용해 휴대폰으로 화면을 모니터링할 수 있는지 궁금함
