맨위로가기

하이퍼넷

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

하이퍼넷은 익명성을 제공하는 분산형 P2P 파일 공유 네트워크이다. 이언 클라크가 1999년 에든버러 대학교 학생 프로젝트로 시작하여 2000년부터 지속적으로 개발되었으며, 다크넷과 오픈넷 연결을 모두 지원한다. 사용자의 컴퓨터에 분산된 암호화된 콘텐츠 조각을 저장하고, 중간 컴퓨터를 통해 콘텐츠 요청을 전달하여 인터넷에서 익명성을 제공한다. FMS, Frost, Sone과 같은 커뮤니케이션 도구와 jSite, 인포칼립스와 같은 유틸리티, FCPLib, lib-pyFreenet과 같은 라이브러리를 제공한다.

더 읽어볼만한 페이지

  • 분산 자료 구조 - I2P
    I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
  • 분산 자료 구조 - 분산 해시 테이블
    분산 해시 테이블(DHT)은 중앙 조정 없이 자율적이고 분산적으로 작동하며 결함 허용 및 확장성을 갖춘 분산 컴퓨팅 시스템으로, 일관성 해싱 등을 통해 키를 노드에 매핑하여 파일 공유, 콘텐츠 배포 네트워크 등 다양한 애플리케이션에 활용된다.
  • 심층 웹 - 다크 웹
    다크 웹은 특수한 소프트웨어를 통해서만 접근 가능한 딥 웹의 일부로, 익명성을 제공하여 내부 고발 등에 활용되기도 하지만 불법 콘텐츠 유통의 온상이 되기도 한다.
  • 심층 웹 - I2P
    I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
  • 익명 네트워크 - I2P
    I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
  • 익명 네트워크 - 토르 (네트워크)
    토르(Tor)는 사용자의 익명성을 보장하고 온라인 활동을 보호하기 위해 개발된 네트워크로, 암호화된 통신을 여러 노드를 거쳐 전송하며 검열 우회, 언론의 자유를 위한 도구로 활용되지만 범죄에도 악용될 수 있다.
하이퍼넷 - [IT 관련 정보]에 관한 문서
개요
Freenet 0.7.5 스크린샷
FProxy 인덱스 페이지 (Freenet 0.7)
개발자Freenet 프로젝트
최초 릴리스2000년 3월
저장소GitHub: hyphanet/fred
프로그래밍 언어자바
운영 체제크로스 플랫폼: 유닉스 계열 (안드로이드, 리눅스, BSD, macOS), 마이크로소프트 윈도우
플랫폼자바
언어영어, 프랑스어, 이탈리아어, 독일어, 네덜란드어, 스페인어, 포르투갈어, 스웨덴어, 노르웨이어, 중국어, 러시아어
종류익명 응용 프로그램, P2P, 친구 간 연결, 오버레이 네트워크, 믹스 네트워크, 분산 데이터 저장소
라이선스GNU 일반 공중 사용 허가서 버전 3
웹사이트공식 웹사이트
특징
주요 특징검열 저항 통신을 위한 P2P 인터넷 플랫폼

2. 역사

프리넷은 2000년부터 개발을 계속해오고 있다. 프리넷은 사용자의 컴퓨터에 암호화된 콘텐츠 조각을 분산 저장하고, 콘텐츠 요청을 전달하는 중간 컴퓨터를 통해서만 연결하여 인터넷에서 익명성을 제공한다. 이는 라우터가 패킷을 라우팅하는 방식과 유사하지만, 프리넷은 캐싱, 강력한 암호화 계층을 가지며 중앙 집중식 구조에 의존하지 않는다.[19] 이를 통해 사용자는 익명으로 다양한 정보를 게시하거나 검색할 수 있다.[5]

2008년 5월 8일에 출시된 프리넷 0.7은 다크넷 운영 지원 등 여러 근본적인 변경사항들을 추가하였다.[15][16][17]

2. 1. 기원

프리넷의 기원은 에든버러 대학교 이안 클라크의 학생 프로젝트로 거슬러 올라가며, 그는 1999년 여름에 졸업 필수요건의 하나로 이를 완수하였다.[61][62][63] 이언 클라크의 결과물인 미발표 보고서 "분산 탈중앙화 정보 저장 및 검색 시스템"(1999)은 다른 연구원들과의 공동 연구를 통해 작성된 획기적인 논문 "Freenet: 분산 익명 정보 저장 및 검색 시스템"(2001)의 토대를 마련했다.[18][19] CiteSeer에 따르면, 이 논문은 2002년에 가장 많이 인용된 컴퓨터 과학 논문 중 하나가 되었다.[20]

2. 2. 발전 과정

에든버러 대학교의 이안 클라크는 1999년 여름 졸업 필수 요건으로 프리넷 프로젝트를 시작했다.[61][62][63] 이언 클라크의 미발표 보고서 "분산 탈중앙화 정보 저장 및 검색 시스템"(1999)은 2001년 "Freenet: 분산 익명 정보 저장 및 검색 시스템"이라는 논문의 토대가 되었으며,[18][19] 이 논문은 2002년에 가장 많이 인용된 컴퓨터 과학 논문 중 하나가 되었다.[20]

프리넷은 2000년부터 지속적으로 개발되어 왔다.

2008년 5월 8일에 출시된 프리넷 0.7은 여러 가지 근본적인 변화를 가져왔다. 가장 큰 변화는 다크넷 작동을 지원한다는 것이다. 버전 0.7은 친구에게만 연결되는 모드와 다른 모든 프리넷 사용자에 연결되는 오픈넷 모드, 두 가지 작동 모드를 제공했다. 두 모드는 동시에 실행할 수 있다. 다크넷 모드를 위한 전송 계층은 스몰 월드 네트워크 구조를 따르는 한 메시 네트워크에서 흔히 발견되는 제한된 경로를 통한 통신을 허용한다.[21] 또한, TCP에서 UDP로 전환하여 UDP 홀 펀칭과 네트워크 피어 간의 더 빠른 메시지 전송을 가능하게 했다.[22]

Freenet 0.7 다크넷 피어 목록


2009년 6월 12일에 출시된 프리넷 0.7.5는 메모리 사용량 감소, 콘텐츠 삽입 및 검색 속도 향상, FProxy 웹 인터페이스 개선, 여러 버그 수정, 성능 및 사용성 개선 등을 제공한다. 또한, 새로운 버전의 Windows 설치 관리자와 함께 제공되었다.[23]

2009년 7월 30일에 출시된 빌드 1226은 네트워크 공격과 노드를 실행하는 컴퓨터의 물리적 압수에 대한 보안을 강화했다.[24]

2015년 7월 11일에 출시된 빌드 1468은 db4o 데이터베이스 사용을 중단하고 스팸 방지 기능을 제공하는 Web of Trust 플러그인에 대한 효율적인 인터페이스의 기반을 마련했다.[25]

프리넷은 항상 자유 소프트웨어였지만 2011년까지 사용자가 Java를 설치해야 했다. 이후 프리넷은 Java Platform의 자유롭고 오픈 소스 구현인 OpenJDK와 호환되도록 개선되었다.

2015년 2월 11일, 프리넷은 "전체 감시로부터의 보호"에 대한 SUMA 상을 받았다.[26][27][28]

3. 기능적 설계

프리넷은 문서를 저장하고 나중에 관련 키를 통해 검색할 수 있게 하는 파일 공유 네트워크를 사용하는데, 이는 HTTP와 같은 프로토콜에서 가능한 기능과 유사하다. 프리넷 네트워크는 매우 높은 생존력을 갖도록 설계되었으며, 중앙 서버가 없고, 프리넷 설계자를 포함한 어떤 개인이나 조직의 통제도 받지 않는다. 프리넷에 저장된 정보는 네트워크를 통해 분산되며, 여러 다른 노드에 저장된다. 데이터 암호화 및 요청 중계는 누가 콘텐츠를 프리넷에 삽입했는지, 누가 해당 콘텐츠를 요청했는지, 그리고 콘텐츠가 어디에 저장되었는지를 파악하기 어렵게 만든다. 이는 참여자의 익명성을 보호하고, 특정 콘텐츠를 검열하기 어렵게 만들며, 심지어 노드 운영자가 자신의 노드에 무엇이 저장되어 있는지 알기 어렵게 만든다.[29]

프리넷은 Winny, Share, Perfect Dark와 같은 일본 P2P 파일 공유 프로그램의 모델 역할을 했지만, Bittorrent나 emule과 같은 P2P 네트워크와는 다르다. 프리넷은 사용자가 네트워크와 상호 작용하는 방식에서 기본 네트워크 구조와 프로토콜을 분리한다. FProxy는 노드 소프트웨어와 통합되어 네트워크 콘텐츠에 대한 웹 인터페이스를 제공하며, 이를 통해 사용자는 프리사이트(일반적인 HTML 및 관련 도구를 사용하지만 콘텐츠가 기존 웹 서버가 아닌 프리넷 내에 저장된 웹사이트)를 탐색할 수 있다.

프리넷은 언론의 자유와 익명성에 중점을 두고, 네트워크에 데이터를 삽입하는 사람(업로드)과 데이터를 검색하는 사람(다운로드) 모두의 익명성을 보호하려고 시도한다. 파일은 청크로 분할되어 네트워크의 여러 컴퓨터에 저장되고, 다운로드 시 해당 청크를 찾아 재조립한다. 익명성 요구 사항으로 인해 콘텐츠를 요청하는 노드는 일반적으로 해당 콘텐츠를 가진 노드에 직접 연결하지 않고, 여러 중개자를 통해 요청이 라우팅된다.

버전 0.7부터 프리넷은 오픈넷과 다크넷 두 가지 보안 수준을 제공한다. 오픈넷은 임의의 사용자와 연결되고, 다크넷은 공개 키 암호화를 교환한 "친구"에게만 연결된다. 프리넷 창립자들은 진정한 언론의 자유는 진정한 익명성에서만 오며, 프리넷의 유익한 사용이 부정적인 사용보다 크다고 주장한다.[29] 그들은 정보 자체가 범죄가 아니며, 어떤 집단도 자신의 신념이나 가치를 강요할 수 없어야 한다고 믿는다.

프리넷의 목표 특성상 권위주의 국가에서의 사용 보고를 추적하기 어렵다. ''프리넷 차이나''(Freenet China)는 2001년부터 중국 사용자들에게 프리넷 소프트웨어를 소개했으며, 2002년에는 수천 명의 전용 사용자를 보유한 것으로 보고되었다.[30] 그러나 2010년대 즈음에 프리넷 오픈넷 트래픽은 중국에서 차단되었다.[31]

3. 1. 분산 저장 및 데이터 캐싱

프리넷의 파일 공유 네트워크는 문서를 저장하고, HTTP와 같은 프로토콜에서 현재 가능한 것처럼, 연관된 키로 나중에 검색할 수 있도록 한다. 이 네트워크는 생존력이 매우 높도록 설계되었다. 이 시스템은 중앙 서버가 없으며, 프리넷의 설계자를 포함하여 어떤 개인이나 조직의 통제를 받지 않는다.[32] 프리넷에 저장된 정보는 네트워크 전체에 분산되어 여러 다른 노드에 저장된다. 데이터 암호화 및 요청 중계는 누가 콘텐츠를 프리넷에 삽입했는지, 누가 해당 콘텐츠를 요청했는지, 또는 콘텐츠가 어디에 저장되었는지 파악하기 어렵게 만든다. 이는 참여자의 익명성을 보호하며, 특정 콘텐츠를 검열하는 것을 매우 어렵게 만든다. 콘텐츠는 암호화되어 저장되므로, 노드 운영자조차 해당 노드에 무엇이 저장되어 있는지 파악하기 어렵다.[33][34]

Winny, Share, Perfect Dark와 마찬가지로, Freenet은 노드 간에 데이터를 전송할 뿐만 아니라 실제로 데이터를 저장하여 거대한 분산 캐시 역할을 한다. 이를 위해 각 노드는 데이터를 저장하기 위해 일정량의 디스크 공간을 할당하며, 이는 노드 운영자가 구성할 수 있지만 일반적으로 수 GB 이상이다.

Freenet의 파일은 일반적으로 여러 개의 작은 블록으로 분할되며, 중복성을 제공하기 위해 중복 블록이 생성된다. 각 블록은 독립적으로 처리되므로 단일 파일이 여러 다른 노드에 부분적으로 저장될 수 있다.

Freenet의 정보 흐름은 eMule 또는 비트토렌트와 같은 네트워크와 다르다. Freenet에서는 파일을 공유하거나 프리사이트를 업데이트하려는 사용자가 해당 파일을 "네트워크에 삽입"하면, "삽입"이 완료된 후 게시 노드는 파일을 네트워크에 저장했으므로 종료해도 된다. 원본 게시 노드가 온라인 상태인지 여부에 관계없이 다른 사용자가 사용할 수 있다. 단일 노드가 콘텐츠에 대한 책임을 지는 것이 아니라 여러 다른 노드로 복제된다.

이러한 설계의 두 가지 장점은 높은 신뢰성과 익명성이다. 게시자 노드가 오프라인 상태가 되더라도 정보는 계속 사용할 수 있으며, 암호화된 블록 형태로 전체 파일이 아닌 여러 호스팅 노드에 익명으로 분산된다.

저장 방식의 주요 단점은 어떤 노드도 데이터 덩어리에 대해 책임을 지지 않는다는 것이다. 데이터 조각이 일정 시간 동안 검색되지 않고 노드가 계속 새로운 데이터를 받으면, 할당된 디스크 공간이 가득 찼을 때 오래된 데이터를 삭제한다. 이러한 방식으로 Freenet은 정기적으로 검색되지 않는 데이터를 '잊어버리는' 경향이 있다.

사용자는 데이터를 네트워크에 삽입할 수 있지만 데이터를 삭제할 방법은 없다. Freenet의 익명성 때문에 원본 게시 노드 또는 데이터 조각의 소유자를 알 수 없다. 데이터를 제거할 수 있는 유일한 방법은 사용자가 해당 데이터를 요청하지 않는 것이다.

3. 2. 네트워크

프리넷의 파일 공유 네트워크는 문서를 저장하고, HTTP와 같은 프로토콜에서 현재 가능한 것처럼, 연관된 키로 나중에 검색할 수 있도록 설계되어 있다. 이 네트워크는 생존력이 매우 높도록 설계되었다. 이 시스템은 중앙 서버가 없으며, 프리넷 설계자를 포함하여 어떤 개인이나 조직의 통제도 받지 않는다.[32] 프리넷에 저장된 정보는 네트워크 전체에 분산되어 여러 다른 노드에 저장된다. 데이터 암호화 및 요청 중계는 누가 콘텐츠를 프리넷에 삽입했는지, 누가 해당 콘텐츠를 요청했는지, 또는 콘텐츠가 어디에 저장되었는지 파악하기 어렵게 만든다. 이는 참여자의 익명성을 보호하며, 특정 콘텐츠를 검열하는 것을 매우 어렵게 만든다. 콘텐츠는 암호화되어 저장되므로, 노드 운영자조차 해당 노드에 무엇이 저장되어 있는지 파악하기 어렵다. 이는 그럴듯한 부인 가능성을 제공하며, 요청 중계와 결합하여 서비스 제공자를 보호하는 세이프 하버 법이 프리넷 노드 운영자도 보호할 수 있다는 것을 의미한다.[33][34]

일반적으로 네트워크의 호스트 컴퓨터는 노드 역할을 하는 소프트웨어를 실행하며, 동일한 소프트웨어를 실행하는 다른 호스트에 연결하여 대규모 분산형 가변 크기 피어 노드 네트워크를 형성한다. 일부 노드는 최종 사용자 노드로, 여기에서 문서가 요청되어 사용자에게 제공된다. 다른 노드는 데이터를 라우팅하는 역할만 한다. 모든 노드는 서로 동일하게 통신하며, 전용 "클라이언트" 또는 "서버"는 없다. 노드는 키와 관련된 데이터를 삽입하고 가져오는 능력 외에는 다른 노드를 평가할 수 없다.

프리넷 프로토콜은 인터넷과 같이 복잡한 토폴로지의 네트워크에서 사용되도록 설계되었다. 각 노드는 직접 연결할 수 있는 다른 노드(개념적인 "이웃")의 일부만 알고 있지만, 모든 노드는 다른 모든 노드의 이웃이 될 수 있다. 계층 구조나 다른 구조는 의도되지 않았다. 각 메시지는 목적지에 도달할 때까지 이웃에서 이웃으로 전달되어 네트워크를 통해 라우팅된다. 각 노드가 이웃에게 메시지를 전달할 때, 이웃이 메시지를 다른 노드로 전달할지, 메시지의 최종 목적지인지, 아니면 원래 소스인지 알지 못한다. 이는 사용자 및 게시자의 익명성을 보호하기 위한 것이다.

각 노드는 키와 관련된 문서를 포함하는 데이터 저장소와, 서로 다른 키를 검색하는 성능 기록과 노드를 연결하는 라우팅 테이블을 유지 관리한다.

노드가 특정 위치에 특화되는 효과


위치 스와핑(다크넷)과 경로 접기(오픈넷)가 진행됨에 따라 서로 가까운 노드는 점점 더 가까운 위치를 가지게 되며, 멀리 떨어진 노드는 먼 위치를 가지게 된다. 유사한 키를 가진 데이터는 동일한 노드에 저장된다.[36]

그 결과 네트워크는 키 공간에서 서로 가까운 데이터 항목을 보유하는 경향이 있는 노드를 가진 분산된 클러스터 구조로 자체 조직화된다. 네트워크 전체에 여러 개의 클러스터가 존재할 것이며, 주어진 문서는 사용 빈도에 따라 여러 번 복제될 것이다.

3. 3. 프로토콜

프리넷의 파일 공유 네트워크는 문서를 저장하고, HTTP와 같이 연관된 키를 통해 나중에 검색할 수 있도록 한다. 이 네트워크는 생존력이 매우 높도록 설계되었다. 이 시스템은 중앙 서버가 없으며, 프리넷 설계자를 포함한 어떤 개인이나 조직의 통제도 받지 않는다.[32] 프리넷에 저장된 정보는 네트워크 전체에 분산되어 여러 다른 노드에 저장된다. 데이터 암호화 및 요청 중계는 누가 콘텐츠를 프리넷에 삽입했는지, 누가 해당 콘텐츠를 요청했는지, 또는 콘텐츠가 어디에 저장되었는지 파악하기 어렵게 만든다. 이는 참여자의 익명성을 보호하며, 특정 콘텐츠를 검열하는 것을 매우 어렵게 만든다.[33][34]

전형적인 요청 시퀀스. 요청은 노드에서 노드로 네트워크를 통해 이동하며, 막다른 골목(3단계)과 루프(7단계)에서 벗어나 원하는 파일을 찾습니다.


프리넷 프로토콜은 키 기반 라우팅 프로토콜을 사용하며, 이는 분산 해시 테이블과 유사하다. 라우팅 알고리즘은 버전 0.7에서 크게 변경되었다. 버전 0.7 이전에는 휴리스틱 라우팅 알고리즘을 사용했다. 버전 0.7에서 프리넷은 "오픈넷"과 "다크넷"을 모두 지원하는데, 다크넷은 덜 편리하지만, 원거리 공격자에 대해 훨씬 더 안전하다.

이러한 변경으로 라우팅 알고리즘에 주요 변경 사항이 필요했다. 모든 노드는 0과 1 사이의 숫자인 위치를 갖는다. 키가 요청되면 먼저 노드가 로컬 데이터 저장소를 확인한다. 찾을 수 없으면 키의 해시가 동일한 범위의 다른 숫자로 변환되고, 요청은 해당 키에 가장 가까운 위치에 있는 노드로 라우팅된다. 이는 일정 횟수의 홉이 초과되거나, 더 이상 검색할 노드가 없거나, 데이터를 찾을 때까지 계속된다. 데이터를 찾으면 경로를 따라 각 노드에 캐시된다. 기본적으로 동일한 프로세스가 네트워크에 문서를 삽입하는 데 사용된다. 데이터는 키에 따라 홉이 소진될 때까지 라우팅되며, 동일한 키를 가진 기존 문서가 없으면 각 노드에 저장된다. 이전 데이터를 찾으면 이전 데이터가 전파되어 발신자에게 반환되고 삽입이 "충돌"한다.

하지만 이는 위치가 올바른 방식으로 클러스터링된 경우에만 작동한다. 프리넷은 다크넷(글로벌 소셜 네트워크의 하위 집합)이 스몰 월드 네트워크라고 가정하고, 노드는 이웃과의 거리를 최소화하기 위해 지속적으로 위치를 교환(Metropolis–Hastings 알고리즘 사용)하려고 시도한다. 네트워크가 실제로 스몰 월드 네트워크인 경우, 프리넷은 데이터를 합리적으로 빠르게 찾을 수 있다. 이상적으로는 빅 오 표기법에서 O\big([\log(n)]^2\big) 홉 정도이다. 그러나 데이터가 완전히 찾아질 것이라고 보장하지는 않는다.[35]

결국 문서가 발견되거나 홉 제한이 초과된다. 터미널 노드는 대기 중인 요청에 대한 중간 노드의 기록에 지정된 경로를 따라 발신자에게 다시 전달되는 응답을 보낸다. 중간 노드는 그 과정에서 문서를 캐시하도록 선택할 수 있다. 대역폭 절약 외에도, 이는 단일 "소스 노드"가 없으므로 문서를 검열하기 더 어렵게 만든다.

처음에는 다크넷의 위치가 무작위로 분포된다. 이는 요청 라우팅이 본질적으로 무작위임을 의미한다. 오픈넷에서는 기존 네트워크가 이미 최적화된 경우 최적화된 네트워크 구조를 제공하는 가입 요청을 통해 연결이 설정된다.[36] 따라서 새로 시작된 프리넷의 데이터는 다소 무작위로 배포될 것이다.[37]

위치 스와핑(다크넷)과 경로 접기(오픈넷)가 진행됨에 따라 서로 가까운 노드는 점점 더 가까운 위치를 가지게 되며, 멀리 떨어진 노드는 먼 위치를 가지게 된다. 유사한 키를 가진 데이터는 동일한 노드에 저장된다.[36]

그 결과 네트워크는 키 공간에서 서로 가까운 데이터 항목을 보유하는 경향이 있는 노드를 가진 분산된 클러스터 구조로 자체 조직화된다. 네트워크 전체에 여러 개의 클러스터가 존재할 것이며, 주어진 문서는 사용 빈도에 따라 여러 번 복제될 것이다.

3. 4. 키

키는 해시이다. 키의 근접성을 이야기할 때 의미적 근접성이라는 개념은 존재하지 않는다. 따라서 키의 근접성과 데이터의 유사한 인기도 사이에는 상관관계가 없을 것이며, 키가 어떤 의미적 의미를 나타낼 경우 발생할 수 있는 인기 있는 주제로 인한 병목 현상을 피할 수 있다.

Freenet에서 사용되는 주요 키 유형에는 콘텐츠 해시 키(CHK)와 서명된 하위 공간 키(SSK)의 두 가지가 있다. SSK의 하위 유형은 콘텐츠의 안전한 업데이트를 허용하기 위해 버전 관리를 추가하는 업데이트 가능한 하위 공간 키(USK)이다.

CHK는 문서의 SHA-256 해시(평문의 해시에 따라 달라지는 암호화 이후)이므로 노드는 반환된 문서를 해싱하여 키에 대한 다이제스트를 확인하여 올바른지 확인할 수 있다. 이 키는 Freenet의 데이터 핵심을 포함하며, 클라이언트에게 재조립 및 암호 해독을 위해 전달될 콘텐츠에 대한 모든 바이너리 데이터 구성 요소를 전달한다. CHK는 본질적으로 고유하며 변조 방지 콘텐츠를 제공한다. CHK에서 데이터를 변경하는 적대적인 노드는 다음 노드 또는 클라이언트에 의해 즉시 감지된다. CHK는 또한 동일한 데이터가 동일한 CHK를 갖게 되므로 데이터의 중복성을 줄이고 여러 사이트에서 동일한 대형 파일을 참조할 때 동일한 CHK를 참조할 수 있다.[39]

SSK는 공개 키 암호화를 기반으로 하며, 현재 Freenet은 DSA 알고리즘을 사용한다. SSK에서 삽입된 문서는 삽입자에 의해 서명되며 이 서명은 데이터가 변조되지 않도록 모든 노드에서 확인할 수 있다. SSK는 Freenet에서 검증 가능한 가명 신원을 설정하는 데 사용될 수 있으며, 한 사람이 여러 문서를 안전하게 삽입할 수 있도록 허용한다. SSK로 삽입된 파일은 동일한 이름으로 두 번째 파일을 삽입하면 충돌이 발생할 수 있으므로 실제로 불변이다. USK는 웹 인터페이스에서 책갈피로 등록된 키에 대한 업데이트 알림을 제공하는 데에도 사용되는 키에 버전 번호를 추가하여 이 문제를 해결한다.[40] SSK의 또 다른 하위 유형은 키워드 서명 키(KSK)이며, 여기서 키 쌍은 간단한 사람이 읽을 수 있는 문자열에서 표준 방식으로 생성된다. KSK를 사용하여 문서를 삽입하면 요청자가 사람이 읽을 수 있는 문자열을 알고 있는 경우에만 문서를 검색하고 암호 해독할 수 있다. 이를 통해 사용자가 참조할 수 있는 더 편리하지만 보안이 낮은 URI를 사용할 수 있다.[41]

4. 확장성

컴퓨터 네트워크는 네트워크가 매우 커져도 성능이 저하되지 않으면 확장 가능하다고 한다. 프리넷의 확장성은 평가 중이지만, 비슷한 구조는 로그 스케일로 확장되는 것으로 나타났다.[42] 이 연구는 프리넷이 인기 있는 콘텐츠에 대한 확장성을 향상시킬 수 있는 캐싱을 무시할 때, 스몰 월드 네트워크(오픈넷과 다크넷 스타일의 프리넷 네트워크 모두 포함)에서 O(\log^2 n) 홉으로 데이터를 찾을 수 있음을 보여준다. 그러나 이러한 확장성은 매우 큰 네트워크 없이는 테스트하기 어렵다. 또한, 프리넷에 내재된 보안 기능으로 인해 네트워크 크기를 결정하는 것과 같은 간단한 사항을 포함하여 자세한 성능 분석을 정확하게 수행하기 어렵다. 현재 프리넷의 확장성은 아직 테스트되지 않았다.

5. 다크넷 대 오픈넷

프리넷은 0.7 버전부터 오픈넷과 다크넷, 두 가지 보안 수준을 제공한다. 오픈넷에서는 사용자가 임의의 다른 사용자와 연결된다. 반면, 다크넷에서는 사용자가 이전에 공개 키 암호화를 교환한 "친구"(노드 참조라고 함)와만 연결된다. 두 가지 모드를 함께 사용할 수도 있다.[43] 오픈넷 연결은 사용하기 쉽지만, 다크넷 연결은 네트워크 공격에 더 안전하며, 공격자(예: 압제적인 정부)가 사용자가 프리넷을 실행하는지조차 파악하기 어렵게 만들 수 있다.[44]

Freenet 0.7의 핵심 혁신은 (적어도 이론적으로는) 수백만 명의 사용자를 지원할 수 있는 전역적으로 확장 가능한 다크넷을 허용한다는 점이다. WASTE와 같은 이전의 다크넷은 비교적 작고 연결되지 않은 네트워크로 제한되었다. 프리넷의 확장성은 인간 관계가 작은 세상 네트워크를 형성하는 경향이 있다는 사실, 즉 두 사람 사이의 짧은 경로를 찾는 데 활용될 수 있는 속성에 기반한다. 이 연구는 이안 클라크와 스웨덴 수학자 오스카르 샌드버그가 DEF CON 13에서 한 연설을 바탕으로 한다. 또한, 라우팅 알고리즘은 오픈넷과 다크넷 연결을 혼합하여 라우팅할 수 있어, 네트워크를 사용하는 친구가 적더라도 충분한 연결을 통해 성능을 확보하는 동시에 다크넷 연결의 보안 이점도 일부 누릴 수 있다. 이는 일부 사용자가 오픈넷 연결도 가진 소규모 다크넷이 전체 프리넷 네트워크에 완전히 통합되어, 모든 사용자가 오픈넷, 다크넷, 또는 둘의 혼합을 실행하든 관계없이 모든 콘텐츠에 접근할 수 있음을 의미한다. 단, 단일 하이브리드 노드로만 연결된 다크넷 포켓은 예외이다.[36]

6. 도구 및 애플리케이션

Freenet은 자체적으로 포괄적인 기능을 제공하지 않고, 모듈형으로 설계되어 다른 프로그램에서 게시판, 파일 공유, 온라인 채팅 등의 서비스를 구현할 수 있도록 Freenet 클라이언트 프로토콜(FCP)이라는 API를 제공한다.[45]

Freenet은 프리사이트를 탐색하기 위한 HTTP 인터페이스를 제공하지만, 월드 와이드 웹프록시 서버는 아니다. Freenet은 이전에 Freenet 네트워크에 삽입된 콘텐츠에만 접근할 수 있다. 이러한 방식으로, Tor의 Onion 서비스와 더 유사하다.

Freenet은 언론의 자유와 익명성에 중점을 두고 네트워크에 데이터를 삽입하는 사람(업로드)과 데이터를 검색하는 사람(다운로드) 모두의 익명성을 보호하려고 시도한다. 파일을 업로드한 후에는 네트워크에 남아 있을 필요가 없으며, 업로드 프로세스 중에 파일은 청크로 분할되어 네트워크의 다양한 다른 컴퓨터에 저장된다. 다운로드할 때는 해당 청크를 찾아 재조립한다. Freenet 네트워크의 모든 노드는 파일을 보관하기 위한 저장 공간과 피어의 요청을 라우팅하는 데 사용하는 대역폭을 제공한다.

익명성 요구 사항으로 인해 콘텐츠를 요청하는 노드는 일반적으로 해당 콘텐츠를 가지고 있는 노드에 직접 연결하지 않고, 여러 중개자를 통해 요청을 라우팅하여 어느 노드가 요청했는지 알 수 없다. 결과적으로 파일을 전송하는 데 필요한 네트워크의 총 대역폭은 다른 시스템보다 높으며, 전송 속도가 느려질 수 있다.

버전 0.7부터 Freenet은 오픈넷과 다크넷의 두 가지 보안 수준을 제공한다. 오픈넷은 임의의 다른 사용자와 연결되고, 다크넷은 이전에 공개 키 암호화를 교환한 "친구"(노드 참조)에게만 연결된다. 두 가지 모드를 함께 사용할 수 있다.

Freenet은 다음과 같은 도구 및 애플리케이션을 포함한다.


  • FCP (Freenet Client Protocol): Freenet과 프런트엔드 간의 정보 교환에 사용되는 API
  • jSite: 웹사이트 업로드 도구
  • Infocalypse: Freenet 상에 머큐리얼 저장소 생성 도구
  • FCPLib: Freenet 클라이언트 프로토콜 라이브러리 (C++ 기반)
  • lib-pyFreenet: Freenet 기능을 파이썬에서 사용하기 위한 라이브러리

6. 1. 커뮤니케이션

Freenet은 암호화된 통신 프로토콜을 통해 정보를 주고받는 기능만 제공하므로, 파일 공유 등을 위해서는 별도의 프런트엔드 소프트웨어가 필요하다. Freenet과 이러한 프런트엔드 간의 정보 교환에는 FCP(Freenet Client Protocol)라는 API가 사용되며, 이를 통해 메시지 보드, 파일 공유, 채팅 등의 기능을 구현할 수 있다.

소프트웨어 이름설명특징
Freenet 메시징 시스템(FMS)서비스 거부 공격 및 스팸과 같은 Frost의 문제를 해결하기 위해 설계됨.사용자는 신뢰 목록을 게시하고, 자신이 신뢰하는 신원과 자신이 신뢰하는 신원이 신뢰하는 신원으로부터만 메시지를 다운로드함. 익명으로 개발되었으며 Freenet 내의 FMS 프리사이트에서 다운로드 가능. 일반 인터넷에는 공식 사이트가 없음. 임의 게시 지연, 다수의 신원 지원, 사용자의 게시물을 신뢰하는 것과 해당 신뢰 목록을 신뢰하는 것의 구분을 특징으로 함. C++로 작성되었으며 Freenet 클라이언트 프로토콜(FCP)을 사용하여 Freenet과 인터페이스함.
Frost편리한 파일 공유를 지원하지만, 스팸 및 서비스 거부 공격에 취약한 설계를 가짐.[46]SourceForge의 Frost 홈페이지 또는 Freenet 내의 Frost 프리사이트에서 다운로드 가능. Freenet 개발자가 공식적으로 지원하지 않음. Java로 작성되었으며 Freenet과는 별도의 애플리케이션임.
윈도우에서 실행되는 Frost
SoneFacebook[47]에서 영감을 얻은 보다 간단한 인터페이스를 제공하며, 익명 공개 토론 및 이미지 갤러리를 지원함.다른 프로그램에서의 제어를 위한 API를 제공하며[48], 일반 인터넷의 정적 웹사이트에 대한 댓글 시스템을 구현하는 데에도 사용됨.[49][50]


6. 2. 유틸리티

jSite는 웹사이트 업로드를 위한 도구이다. 키를 처리하고 파일 업로드를 관리한다.

인포칼립스는 분산 버전 관리 시스템 머큐리얼의 확장 기능이다. 새로운 데이터를 검색하기 위한 요청 수를 최소화하기 위해 최적화된 구조를 사용하며, 소유자의 개인 키 없이 대부분의 데이터를 안전하게 다시 업로드하여 저장소를 지원할 수 있다.[51]

다른 많은 P2P 소프트웨어와 달리 Freenet은 암호 통신 프로토콜에 따라 상대방과 정보를 주고받는 기능만 제공하기 때문에, 파일 공유 등을 할 때는 프런트엔드로서 별도의 소프트웨어를 사용해야 한다. Freenet과 이러한 프런트엔드 간의 정보 교환에는 FCP (Freenet Client Protocol)라고 하는 API가 사용되며, 이를 통해 메시지 보드, 파일 공유, 채팅 등의 기능을 구현할 수 있다.

  • FUQID: 파일 업로드 및 다운로드 도구
  • [https://freenetproject.org/jsite.html jSite]: 웹사이트 업로드 도구
  • [http://mercurial.selenic.com/wiki/Infocalypse Infocalypse]: Freenet 상에 mercurial 저장소 생성 도구

6. 3. 라이브러리

; https://github.com/freenet/lib-CppFCPLib-official FCPLib

: FCPLib (프리넷 클라이언트 프로토콜 라이브러리)는 프리넷에 정보를 저장하고 검색하기 위한 크로스 플랫폼 네이티브 컴파일러 기반 C++ 기반 함수 집합을 목표로 한다. FCPLib는 윈도우 NT/2K/XP, 데비안, BSD, 솔라리스, 그리고 macOS를 지원한다.

; https://github.com/freenet/lib-pyFreenet-staging lib-pyFreenet

: lib-pyFreenet는 프리넷 기능을 파이썬 프로그램에 노출한다. 인포칼립스가 이를 사용한다.

7. 취약점

법 집행 기관은 사용자의 익명성을 해제하기 위해 프리넷(Freenet) 오픈넷에 성공적으로 침투했다고 주장했지만[52], 이러한 주장을 뒷받침할 기술적인 세부 사항은 제공되지 않았다. 한 보고서에 따르면 "아동 포르노 수사에서 ... [용의자]에 초점을 맞췄고, 당국은 온라인 네트워크인 프리넷을 감시하고 있었다"[53]고 한다. 또 다른 보고서에서는 체포가 잘못된 수학[54]을 사용하고, 부정확하게 계산된 오탐율과 잘못된 모델을 사용한 것으로 밝혀진 블랙아이스(BlackICE) 프로젝트 유출에 근거했을 수 있다고 밝혔다.[55]

캐나다 온타리오주 필 지역의 법원 사건인 ''캐나다 R v. 오웬(Owen)'', 2017 ONCJ 729(CanLII)는 필 지역 경찰이 프리넷 네트워크에서 불법 자료를 다운로드한 사람을 찾아낸 후 법 집행 기관이 실제로 존재한다는 것을 보여주었다.[56] 법원 판결은 캐나다 법 집행 기관이 불법 자료를 요청하는 사람을 파악하기 위해 수정된 프리넷 소프트웨어를 실행하는 노드를 운영하고 있음을 나타낸다.


  • '''라우팅 테이블 삽입''' (RTI) 공격[57]

8. 프리사이트 (Freesite)

프리사이트는 프리넷 네트워크에서 호스팅되는 사이트이다. 프리사이트는 정적 콘텐츠만 포함하므로 서버 측 스크립트나 데이터베이스와 같은 액티브 콘텐츠는 포함할 수 없다. HTML로 코딩되며 페이지를 보는 브라우저가 허용하는 만큼 많은 기능을 지원한다. 그러나 프리넷 소프트웨어는 페이지를 보는 사람의 신원을 노출할 수 있는 코드(예: 인터넷에서 무언가에 페이지 액세스)를 제거하는 예외가 있다.

참조

[1] 웹사이트 People https://freenetproje[...] Freenet: The Free Network official website 2008-09-22
[2] Webarchive Language specific versions of Freenet https://github.com/f[...] 2018-02-07
[3] 문서 Freenet renamed to Hyphanet https://www.hyphanet[...]
[4] webarchive What is Freenet? https://freenetproje[...] 2011-09-16
[5] 서적 From P2P to Web Services and Grids: Peers in a Client/Server World Springer 2005
[6] 간행물 The Infoanarchist http://www.time.com/[...] 2000-06-26
[7] 뉴스 The dark side of the internet https://www.theguard[...] 2009-11-26
[8] 웹사이트 The Guardian writes about Freenet (Ian Clarke's response) http://blog.locut.us[...]
[9] 웹사이트 Sone: Pseudonymes Microblogging über Freenet http://draketo.de/li[...]
[10] 웹사이트 Infoclypse https://www.mercuria[...]
[11] 웹사이트 Flog Helper: Easy Blogging over Freenet https://github.com/f[...] 2019-02-07
[12] 웹사이트 Web of Trust http://wiki.freenetp[...] 2019-02-07
[13] 웹사이트 Web Of Trust https://github.com/h[...] 2024-10-13
[14] 문서 Freenet over Sneakernet
[15] 뉴스 Cyberspace Programmers Confront Copyright Laws https://www.nytimes.[...] 2000-05-10
[16] 뉴스 Coders prepare son of Napster http://news.bbc.co.u[...] 2001-03-12
[17] 뉴스 Fighting for free speech on the Net http://www.cnn.com/2[...] CNN 2005-12-19
[18] Webarchive A distributed decentralised information storage and retrieval system https://freenetproje[...] University of Edinburgh 2012-03-16
[19] 간행물 Freenet: A Distributed Anonymous Information Storage and Retrieval System https://www.cs.corne[...] 2015-04-04
[20] conference Freenet: A Distributed Anonymous Information Storage and Retrieval System http://www.facweb.ii[...] Springer-Verlag 2001-02-28
[21] 서적 The Practical Handbook of Internet Computing Chapman & Hall 2005
[22] 뉴스 Freenet 0.7 soll globales Darknet schaffen http://www.golem.de/[...] Golem 2006-04-04
[23] Webarchive release information for Freenet 0.7.5 https://freenetproje[...] 2014-11-29
[24] Webarchive release information for Freenet build 1226 https://freenetproje[...] 2014-11-29
[25] Webarchive Freenet 1468 release notes https://freenetproje[...] 2014-11-29
[26] Webarchive SUMA Award http://suma-awards.d[...] 2015-03-20
[27] Webarchive recording of the SUMA Award Ceremony 2015 https://www.youtube.[...] 2015-09-05
[28] Webarchive SUMA Award für das Freenet Projekt http://www.heise.de/[...] 2015-09-24
[29] 웹사이트 The Philosophy behind Freenet https://freenetproje[...] 2010-12-20
[30] 서적 Chinese Cyberspaces Technological Changes and Political Effects Routledge 2006
[31] 웹사이트 Hyphanet https://www.hyphanet[...] 2024-07-03
[32] Youtube The dark side of the web -- exploring darknets https://www.youtube.[...] TEDx Talks
[33] 웹사이트 Does Freenet qualify for DMCA Safe Harbor? https://emu.freenetp[...] 2013-01-27
[34] 웹사이트 IAAL*: What Peer-to-Peer Developers Need to Know about Copyright Law https://www.eff.org/[...] 2006-01-10
[35] 서적 Private Communication Through a Network of Trusted Connections: The Dark Freenet https://freenetproje[...] 2010
[36] 서적 Measuring Freenet in the Wild: Censorship-Resilience under Observation https://freenetproje[...] Springer International Publishing 2014
[37] 웹사이트 Freenet Project Documentation https://freenetproje[...] 2022-04-20
[38] 웹사이트 FreeNet https://www.networxs[...] 2019-01-25
[39] 웹사이트 freesitemgr, code for inserting files as CHK, fixed revision https://github.com/f[...] 2017-11-29
[40] 웹사이트 USK and Date-Hints: Finding the newest version of a site in Freenet's immutable datastore http://draketo.de/li[...] 2017-11-29
[41] 웹사이트 Effortless password protected sharing of files via Freenet http://draketo.de/li[...] 2017-11-29
[42] 서적 Proceedings of the thirty-second annual ACM symposium on Theory of computing 2013-08-22
[43] 웹사이트 Required trust for forming a darknet connection https://d6.gnutella2[...] 2017-11-29
[44] 뉴스 Darknet-Fähigkeiten sollen Softwarenutzung verbergen http://www.golem.de/[...] Golem 2008-05-09
[45] 웹사이트 Freenet Social Networking guide http://freesocial.dr[...] Justus Ranvier 2015-08-15
[46] 웹사이트 Developer discussion about fixing Frost shortcomings https://www.mail-arc[...] Matthew Toseland 2017-12-01
[47] 웹사이트 description of Sone by its developer https://flattr.com/t[...] "it's a Facebook clone on top of Freenet" 2017-12-01
[48] 웹사이트 Sone in Freenet Wiki https://wiki.freenet[...] with the description of the FCP API 2015-08-12
[49] 웹사이트 babcom description http://draketo.de/pr[...] "it submits a search request on your local Sone instance by creating an iframe with the right URL" 2015-05-11
[50] 웹사이트 Sone https://d6.gnutella2[...] 2015-09-15
[51] 웹사이트 Information about infocalypse. A mirror of the included documentation http://draketo.de/li[...] 2011-12-16
[52] 뉴스 Predators, police in online struggle https://www.thedicki[...] 2015-11-18
[53] 뉴스 Man jailed indefinitely for refusing to decrypt hard drives loses appeal https://arstechnica.[...] 2017-03-21
[54] 웹사이트 Police department's tracking efforts based on false statistics https://freenetproje[...] 2017-09-23
[55] 웹사이트 Errors in the Levine 2017 paper on attacks against Freenet https://www.draketo.[...] 2021-01-03
[56] 웹사이트 CanLII - 2017 ONCJ 729 (CanLII) https://www.canlii.o[...] 2017-11-13
[57] 웹사이트 A Routing Table Insertion (RTI) Attack on Freenet https://www.research[...] 2021-02-12
[58] 뉴스 The dark side of the internet http://www.guardian.[...] 가디언 2009-11-26
[59] 웹인용 The Philosophy behind Freenet https://freenetproje[...] 2011-03-27
[60] 저널 http://dx.doi.org/10[...]
[61] 뉴스 Cyberspace Programmers Confront Copyright Laws http://www.nytimes.c[...] 2000-05-10
[62] 뉴스 Coders prepare son of Napster http://news.bbc.co.u[...] 2001-03-12
[63] 뉴스 Fighting for free speech on the Net http://www.cnn.com/2[...] 2005-12-19



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com