Mycoria - 모두가 평등하게 연결되는 오픈 네트워크
(mycoria.org)- Mycoria는 모든 참여자를 동등하게 연결하려는 개방형 보안 오버레이 네트워크로, 초기 인터넷의 개방적이고 모험적인 성격을 지향함
- 참여에는 관료적 절차가 없고, 모든 연결은 인증과 암호화를 기본 전제로 삼음
- 인터넷 위에서 연결할 수도 있고 자체 메시 네트워크로 확장할 수도 있어, 네트워크 참여 장벽을 낮추려 함
- 설계는 작고 단순한 구조, DNS 같은 기존 인프라와의 호환성, 기본 보안과 프라이버시에 초점을 둠
- 자동 종단 간 암호화, 확장 가능한 라우팅, 대시보드,
.mycoDNS 해석, 서비스 발견을 제공하며 일부 프라이버시·자동 최적화 기능은 WIP 상태임
Mycoria가 지향하는 연결 방식
- Mycoria는 모든 참여자를 연결하는 개방형 보안 오버레이 네트워크임
- 초기 인터넷의 호기심 많고 모험적인 정신을 따르며, 연결의 자유를 핵심 가치로 둠
- 핵심 원칙은 다음과 같음
- Everyone is equal: 누구에게나 쉽게 연결 가능함
- Everyone is welcome: 관료적 절차 없이 참여할 수 있는 열린 네트워크임
- No spooking: 모든 연결이 인증됨
- No surveillance: 모든 연결이 암호화되며, Private Addresses를 포함함
- No barriers: 인터넷으로 연결하거나 자체 메시로 Mycoria를 확장할 수 있음
설계 목표와 현재 기능
- 구조는 작고 단순하게 유지하는 것을 목표로 함
- DNS 같은 기존 인프라와의 호환성을 고려함
- 보안은 기본 적용되며, 기본 프라이버시는 WIP 상태로 남아 있음
- 현재 제공 기능은 다음과 같음
- 자동 종단 간 암호화
- 현대적 암호화
- 스마트하고 확장 가능한 라우팅
- 대시보드
.mycoDNS 해석- OS 설정이 필요함
- 단순 서비스 발견
- 인터넷 오버레이용 네트워크 자동 최적화·복구
- WIP 상태임
- 회전식 private addresses
- WIP 상태임
댓글과 토론
Hacker News 의견들
-
작성자임. Safing에서 공동창업자/CTO로 지난 8년간 프라이버시 기술을 만들었고, 가장 큰 기술적 성과는 SPN(이전 Port17/Gate17)이었음
SPN은 VPN과 Tor 사이의 틈새에 있는 프라이버시 네트워크, 즉 5계층 프록시였고, 설정 실수가 불가능하며 속도도 괜찮고, 어니언 암호화와 인증/인가 분리를 통해 VPN보다 훨씬 나은 프라이버시를 제공했음
흥미롭게도 이 분리된 인증 방식은 나중에 Apple Private Relay와 Google One VPN에도 구현됨
SPN은 대체로 잘 작동했지만 확장이 어려웠고, 메타데이터를 줄이고 프라이버시를 높이려고 5계층 프록시로 만든 탓에 트래픽 제어와 혼잡 제어도 다시 구현해야 했는데, 쉽지 않았고 아직도 문제를 일으킴
그동안 cjdns와 Yggdrasil을 읽고 따라가며 네트워킹 아이디어에 흥미를 느꼈고, 2023년 11월쯤 지금까지의 경험과 지식으로 프라이버시 일부와 완전한 보안을 유지하는 확장 가능한 3계층 메시 네트워크를 어디까지 만들 수 있을지 궁금해짐
몇 달간 대부분의 저녁 시간을 들여 만들었고 생각보다 잘 진행됐지만, 괜찮은 MVP와 소규모 프로덕션에서 처음 써준 친구가 생긴 뒤에는 더 작업할 시간이 없었음
지금은 새 프로젝트를 시작하는 중이고 거기에 이걸 잘 활용할 예정이라, 앞으로 몇 년간 개발이 꽤 더 진행될 것임. Mycoria는 현재로서는 적어도 작은 규모에서는 동작하지만, 대체로 MVP에 가까움- Mycoria가 유망해 보이고 Napster와 Gnutella 시절의 초기 피어 투 피어 시스템이 떠오름
3계층에서 채택할 수 있는 표준 기반 세그먼트 라우팅을 소스 라우팅 지원에 쓰지 않고, 커스텀 4계층 전송을 만든 특별한 이유가 있는지 궁금함
보안 분석에는 BAN 논리와 ProVerif 검증 도구를 사용했는지도 궁금함
https://en.wikipedia.org/wiki/Gnutella
https://en.wikipedia.org/wiki/Segment_routing
https://en.wikipedia.org/wiki/Burrows%E2%80%93Abadi%E2%80%93...
https://en.wikipedia.org/wiki/ProVerif friend대신 peer 같은 용어를 제안하고 싶음. 사소한 꼬투리가 아니라, 사용자 에이전트 영역에서 닫히지 않는 관계 의미론은 인프라 계층에 쓰지 않는 편이 좋음
내 노트북 서버도 내 사용자 에이전트이고, 휴대폰에서 도는 인스턴스도 마찬가지라 둘은 피어임
이 기반 위에 만들어질 애플리케이션은 대체로 사용자의 사회적 관계를 다룰 것이고,friend같은 표현은 그 계층에서 유용해질 것임- 비슷한 해법들이 공통적으로 상업적 측면을 무시하는 것처럼 보임. 대중적 채택을 염두에 둔 것인지는 모르겠지만, 더 많은 사람이 사용할수록 프라이버시와 익명성 특성이 좋아질 것이라고 추정함
그렇다면 참여 인센티브, 금전적이든 아니든, 도입을 고려했는지 궁금함. 이 분야의 핵심 난제는 네트워크의 인프라 서비스 제공자를 위한 표준화된 익명 결제를 푸는 데 있어 보임 - 문서만으로는 명확하지 않았는데, 라우터의 IPv6 비슷한 주소가 공개키의 지문이라면 지리 접두사와 거리도 인코딩하는지 궁금함
이론적으로는 가능해 보여서, 그런 접근이라면 어떤 방식인지 알고 싶음. 아니면 라우터 주소에는 메타데이터가 없고 최종 사용자 주소만 그런 식으로 인코딩되는지 궁금함 - Windows를 쓰던 시절에는 Portmaster와 SPN이 훌륭했음. macOS에도 그런 게 있으면 좋겠음
Private Relay가 있기는 하지만 Safari 같은 일부 Apple 앱에서만 동작하고, 동작 중인지 알기도 어렵고, 트래픽을 반드시 그쪽으로만 보내도록 강제할 수도 없음
- Mycoria가 유망해 보이고 Napster와 Gnutella 시절의 초기 피어 투 피어 시스템이 떠오름
-
기술적으로는 이런 것들이 정말 좋음. 먼 미래에 멋진 너드와 긱들이 온갖 역경 속에서 기본 인프라만 가지고 자기들만의 공동체 네트워크를 세우는 상상도 하게 됨
하지만 결국 일반적인 탈중앙화 계열에 참여하는 건 불편하고 꺼려짐. 아동 성착취물 공유와 배포를 돕게 될 것 같기 때문임
Tailscale은 적어도 사적인 범위에 머무르지만, 이건 더 넓은 네트워크의 일부가 되는 느낌임. 내 노드가 그런 트래픽을 라우팅하는 데 쓰이게 되는지 궁금함- 실제로 더 중대하고 현실적인 위험은 폭정임. 폭군들은 대체로 학대자이기도 함
- 인터넷에서 모든 프라이버시를 없애야 한다는 결론이 되지만, 그래도 아동 성착취물은 막지 못할 것임
행운을 빔, 빅 브라더 씨 - 무엇을 만들든 결국 불법적인 일에 쓰이게 됨
그렇다면 인터넷도 발명되지 말았어야 하는가? 편지, Facebook, 자동차, 총, 칼, 농업도 마찬가지일 것임
-
cjdns와 Yggdrasil에서 배운 점을 어디에 반영했는지 분명히 보이고, 프로젝트가 아주 멋짐
다만 유망해 보이고 새 프로젝트도 흥미로워서 사소한 부분을 짚고 싶음. FAQ에 따르면 라우터 IP에는 구조가 있고, 특수 목적 접두사를 제외하면 대부분은 지리 표시 접두사 안에 들어감. 각 국가와 미국의 각 주는 Mycoria 안에서 고유한 접두사를 가지며, 같은 국가의 라우터들은 전역 수준에서 같은 접두사를 공유하고, 가까운 국가끼리는 접두사도 대체로 비슷함
국가 접두사 안에서는 Mycoria가 주소 거리 라우팅을 사용해, 알려진 다른 라우터 중 주소상 가장 가까운 쪽으로 패킷을 보냄. 가장 효율적인 라우팅은 아니지만, 특히 Mycoria처럼 더 작은 지리적 영역으로 제한하면 몇 가지 추가 조치와 함께 꽤 잘 작동함
IPv4 인터넷과 IANA IP를 각 RIR이 관리한 방식, 그리고 IPv4 블록에 지리 정보를 붙인 방식에서 배운 불행한 교훈 중 하나는, 정책 담당자들이 지리 태그 위에 정책을 얹는 것을 아주 좋아한다는 점임. 예를 들어 Maxmind가 어떤 주소를 파키스탄에 있다고 보고, 파키스탄 법에 따르면 다른 주소가 제공하는 콘텐츠가 금지라면 차단되는 식임
네트워크 접두사에 지리 인식이 내장되면 사용자가 원치 않는 방식으로 악용될 수 있음. 물론 받아들일 만한 절충일 수도 있고, 사용자가 지리 인식 접두사의 이점을 충분히 얻어 단점을 감수할 시나리오도 쉽게 상상됨
전자라면 지리 인식 접두사, 즉 “이 관할권 안의 다른 사람들과 X마일 이내” 대신 지연 시간 인식 접두사, 즉 “이 접두사 안의 다른 사람들과 Xms 이내”로 옮기는 방안을 검토해볼 만함
다만 내 추천을 스스로 반박해보면, 지리 인식 접두사 위에 8계층 정책을 구현하려는 쪽은 지연 시간 인식 접두사도 충분히 가깝다고 고의로 오해할 수 있고, 그러면 많은 노력이 헛수고가 될 수도 있음- 이 피드백에 시간을 내줘서 고마움. 비공개 주소로 이 문제를 풀고 싶음
비공개 주소는 지리 표시가 없고 라우팅되지 않음. 예를 들어 무작위로 생성되며 지리적 위치로 쉽게 귀속시킬 수 없음
- 이 피드백에 시간을 내줘서 고마움. 비공개 주소로 이 문제를 풀고 싶음
-
문서가 잘 되어 있고 흥미로워 보임. 직접 써봐야겠지만, 먼저 떠오르는 질문은 Mycoria가 네트워크 안에서 전체 노드를 노출해서 포트 접근 제한 등에 방화벽이 필요한지임
Yggdrasil에서는 이것이 필요해서 묻는 것임: https://yggdrasil-network.github.io/faq.html#will-my-machine...- Mycoria는 기본적으로 안전하고 설정에 거의 아무것도 필요 없음
기본적으로 아무도 내 기기에 접근할 수 없음. 설정의services섹션에서 적극적으로 허용해야 함
- Mycoria는 기본적으로 안전하고 설정에 거의 아무것도 필요 없음
-
Veilid(https://veilid.com/)와 비교하면 어떤지 궁금함
-
Reticulum[0]은 봤는지 궁금함. Mycoria의 네트워킹 계층과 얼마나 겹치는지도 알고 싶음
[0]: https://github.com/markqvist/Reticulum -
내가 뭔가 완전히 놓쳤을 수도 있지만, Mycoria는 네트워크 참여자가 Mycoria 라우터 ID에 대응하는 공개 인터넷 IP 주소를 알아내지 못하게 하려는가?
설정의iana필드는 이것이 목표가 아닌 것처럼 보이게 하고, 그렇다면 이 시스템은 IPv6와 전역 이름공간을 가진 Tailscale에 가까워 보임. 이 경우 거의 모든 인터넷 호스트가 BitTorrent처럼 NAT 통과 기법으로 서로 직접 닿을 수 있으므로, 왜 “라우팅”을 강조하는지 잘 이해되지 않음
Tor 숨은 서비스처럼 공개 인터넷 IP 주소를 숨기려는 것이라면, 라우팅 방식도 크게 이해되지 않음. 아마 결정적이거나 지연 시간 의존적인 전략으로 경로를 고르면 정보가 새는 것을 원치 않을 것이기 때문임- Mycoria는 복원력을 위해 만들어졌고, 현재 인터넷 백본이 완벽하게 동작하는 데 의존하지 않음
현재 인터넷이 “정상적으로” 동작하더라도, 비슷한 네트워크 사용자 다수가 오버레이 네트워크 라우팅으로 더 나은 연결성을 얻었다고 보고했음. IANA 인터넷의 라우팅은 크게 영향을 받기 때문임
Mycoria가 설정을 생성하게 하면 기기의 현재 공개 인터페이스가 포함되므로, 이는 서버에 대해서만 참이 됨. Mycoria는 IANA 주소에 의존하지 않지만, 네트워크 구조를 자동으로 개선하는 데 사용함. 즉 IANA 인터넷을 통해 라우터 사이의 더 나은 경로를 찾음
- Mycoria는 복원력을 위해 만들어졌고, 현재 인터넷 백본이 완벽하게 동작하는 데 의존하지 않음
-
이미 존재하는 i2p 같은 네트워크에 기여하는 편이 더 유용할 수도 있음
- i2p만이 아니라 거의 동일한 기존 프로젝트들이 이미 자리 잡고 있음
이들 대부분은 충분한 채택률을 얻지 못해 실패했는데, 큰 이유는 데스크톱 컴퓨터 시장의 90% 이상이 Linux나 BSD를 쓰지 않는다는 사실을 인정하지 않기 때문임
일부는 Windows 클라이언트를 어설프게 지원하고, 데스크톱 시장의 20~30%쯤 되는 macOS를 지원하는 경우는 거의 없음
- i2p만이 아니라 거의 동일한 기존 프로젝트들이 이미 자리 잡고 있음
-
zrok(https://zrok.io/)와 비교하면 어떤지 궁금함. 직접 실험해보고 싶지만, 기본적으로 비공개가 아닌 것처럼 들려서 조금 걱정됨
- Zrok이 제시하는 사용 사례에서는 Mycoria도 매우 비슷함
기본적으로 아무것도 내 기기에 접근할 수 없음. 서비스를 정의하고friends, 즉 내 다른 기기들을 추가해야 접근을 허용할 수 있음
- Zrok이 제시하는 사용 사례에서는 Mycoria도 매우 비슷함