Freenet

Freenet 홈페이지
Frost 홈페이지

1 개요

줄임말로 FN, 혹은 프리넷이라고 부르는 이것.

Freenet은 사용자의 회선에 따른 통신 속도, 사용자가 결정한 수준의 익명성에 맞게 설정을 한다. Freenet 본체는 브라우저 형태이지만, 많은 사용자들은 Freenet본체를 기존에 익숙한 P2P 형태로 보여주는 Frost를 많이 사용한다. 사용자들은 Freenet본체를 통한 Frost에서 채팅을 할 수도, 자료에 대한 Key(일종의 주소)를 주고 받기도 한다.

Frost에는 public board와 secure board라는 두 가지 종류의 게시판이 있다. public board는 특정 게시판의 이름의 board를 추가하면 안의 내용을 볼 수 있지만, secure board는 사용자가 특정 게시판의 이름뿐만 아니라 Private key와 Public key 이 둘을 넣어야 안의 내용을 볼 수 있다.

일본에서는 기존 P2P들이 단속에 속수무책으로 뚫리자 이 Freenet이 각광을 받으며 한때 2ch download에서 Freenet 관련 스레드가 올라왔다. 현재는 불법으로 미연시, 에로게 립을 공유하는 Justice 씨가 활동하는 장소로 인식되고 있다.

2 특징

2.1 자유로운 인터넷의 익명성

  1. Freenet의 큰 특징으로 노드 자체에 파일 정보가 포함되지 않는다.
  2. 파일은 전부 암호화된 중계 노드를 통해서 전송을 한다.

이 2가지 특징에서 누가, 어떤 파일을 가지고 있는지를 전혀 모르기 때문에 매우 높은 익명성을 확보하고 있다. 그렇다고 트래픽 해석이나 소프트웨어 오류, 설정 오류, 동시에 Freenet 자체가 불법으로 할 수 있고, 절대로 특정되지 않는다는 것은 아니다. 아직까지는 체포된 사람은 세계에서 한 명도 나오지 않았다.

어디까지나 Freenet의 목적은 저작권 침해가 아니라 특정의 사상과 권력에 지배되지 않는 자유로운 발언, 표현의 장을 제공하는 데에 있다.

2.2 익명성을 유지하기 위한

  1. PeerGuardian이나 PeerBlock을 사용하고 신뢰할 수 없는 IP 주소의 접속을 막는다.
  2. 클립 보드에 복사한 정보는 정기적으로 지운다.
  3. Freenet 웹 사이트를 열람하는 경우에 cookie과 이력을 남기지 않는다.

(Freenet에서만 접속 가능한 사이트인 freesite에서 외부로의 접속은 Freenet proxy에 의해서 모두 걸러진다.)

3 설정

"wrapper.conf"나 "freenet.ini"를 메모장에서 불러서 해당 숫자나 문구로 변경하고 저장한다.

3.1 wrapper 폴더 안의 "wrapper.conf" 파일의 설정

· wrapper.java.maxmemory = 512
· wrapper.console.loglevel = NONE
· wrapper.syslog.loglevel = NONE

※ 64bit 버전의 Java로 Freenet을 실행하는 경우
· wrapper.java.command = "경로"

Windows의 Freenet은 wrapper.conf의 wrapper.java.command에 64bit 버전의 "java"의 전체 경로를 지정할 필요가 있다. 기본적으로 32bit 버전의 Java의 경로를 레지스트리에서 검색할 수 있도록 만들어져있는 것 같지만, 64bit 버전에서 동작시키고 싶은 경우는 "경로"에 Java가 설치되어있는 경로 (예 : C:\Program Files\Java\jre6\bin\java)를 직접 지정하자.

3.2 Freenet 폴더 안의 "freenet.ini" 파일의 설정

· node.load.threadLimit = 1024

RAMDisk를 가지고 있고, RAMDisk가 1GB 여유가 있다면,
· node.tempDir = "경로"

Freenet을 그냥 사용하면 HDD의 부담이 크기 때문에 메모리가 있다면 TEMP 폴더를 RAMDisk로 바꾸는 것을 추천한다. "경로"에 RAMDisk의 폴더 (예 : Z:\TEMP)를 지정하면 TEMP 폴더가이 위치에 만들어 HDD의 부담을 줄일 수있다. 폴더의 파일은 Freenet을 재시작 할 때마다 재설정되기 때문에 PC 종료시 내용이 지워 RAMDisk도 문제 없다.

3.3 Freenet 본체의 설정

브라우저 화면에서 "Configuration → Core Settings"
· Upload bandwidth limit 100KiB 이상
· Download bandwidth limit 100KiB 이상

최대 업, 다운 속도. 대역에 여유가 있으면 1MB 이상도 좋다.
· Freenet datastore size 20GB 이상

Freenet 캐시 용량. 파일을 다운로드 할 때 캐시에 파일이 있으면 그만큼 빨리 완료된다. 외부에서 무엇이 들어 올지는 전혀 모르기 때문에 여유가 있으면 가능하면 늘려 두자.

3.4 Frost 설정

· Options → Preferences → News (1) 항목
· 'Number of days to display'와 'Number of days to download backwards'를 30~180

특히 처음 시작하는 경우, 이전 게시물을 검색해야하므로 큰 값으로 둔다.
· 'Always download all days backward'와 'Silently retry failed message uploads'를 체크한다.
· Minimum update interval of a board : 1 이상 
· Number of concurrently updating boards : 6~20

4 Freenet의 이해

프리넷은 하나의 큰 저장 장치로 생각될 수 있다. 사용자가 프리넷에 파일을 저장할 때, 사용자는 그 파일을 검색하는데 사용되는 일종의 키(key)를 받는다. 사용자가 키(key)를 프리넷에 입력할 때, 해당 파일이 있다면 프리넷은 적절한 파일로 불러올 수 있다. 저장 공간은 프리넷에 연결되어 있는 모두에게서 분배된다.

프리넷은 분산화되고 익명화된 P2P(peer-to-peer) 네트워크이다. 이 사용자가 연결하는 노드들은 가장 가까운 이웃들만 알 수 있으며, 전체 네트워크 구조가 어떻게 조직되었는지는 알 수가 없다.

4.1 좁은 세상의 네트워크

프리넷은 좁은 세상의 네트워크들을 바탕으로 만들어졌다. 사용자가 이미 알고 있는 사람들의 노드들을 연결함으로써, 사용자가 아는 사람들은 차례로 그들이 아는 사람들을 연결하고, 누군가는 프리넷 네트워크에 있는 모든 노드들에 도달할 수 있다.

4.2 데이터 저장소

모든 프리넷 노드들은 파일을 저장하기 위해 사용자들의 하드 드라이브 공간의 일부를 사용한다. 파일들은 프리넷 설치 디렉터리의 저장 디렉터리에 암호화된 채 저장된다.

다른 P2P 네트워크와 다르게, 사용자는 데이터 저장소에 저장된 것에 아무런 영향을 줄 수가 없다. 대신에, 파일들은 그들이 얼마나 인기 있는가에 따라 유지되거나 삭제된다. 이는 프리넷이 검열을 피할 수 있음을 보장하는 것이다. 프리넷에서 어떤 것을 삭제할 수 있는 유일한 방법은 그것을 검색하지 않는 것이며, 모든 사람들은 이를 희망한다.

사용자의 지역적인 프리넷 데이터 저장소에 저장한 파일을 알아내는 것은 어렵지만도, 불가능이지는 않다. 이는 사용자의 하드 드라이브의 데이터 저장소에 있는 어떤 종류의 물건들에 관해서 알고 있어도 모른 척을 할 수 있게 만든다.

프리넷은 얼마나 공간을 사용할 수 있는가에 따라 초기 크기를 정하고 사용자가 언제든지 저장하는 크기를 바꿀 수 있다. 램(RAM)보다 더 큰 저장 공간을 사용하지만, 사용자에게 나은 검색을 제공하고 프리넷 전체에 도움을 준다.

4.3 프리넷의 경로

초기에, 각 노드는 그것을 알고 있는 또 다른 노드들의 실행에 대한 아무런 정보를 가지지 않는다. 이는 요청의 경로는 반드시 무작위라는 것을 의미한다. 그러나 서로 다른 노드들은 서로 다른 무작위성을 가지기 때문에, 그들은 주어진 키(key), 즉 요청을 보낼 곳이 일치하지 않는다. 그래서 프리넷에 새롭게 들어온 데이터는 다소 무작위하게 분배된다.

더 많은 문서들은 같은 노드에 의해서 삽입되고, 그들은 데이터 항목들의 비슷한 키(key)로 모이기 시작한다. 같은 경로의 규칙들은 그들 전부에 사용되기 때문이다. 더 중요한 것으로, 서로 다른 노드들로부터의 데이터 항목들과 요청들은 "엇갈린 경로들"로써, 그들 역시 모인 정보를 공유하기 시작한다.

결과적으로, 노드들이 키 공간(key space)에서 가까운 데이터 항목들을 수용하는 경향이 있고, 이 네트워크는 분배되고 모여진 체계들을 자체적으로 조직한다. 아마도 네트워크를 통틀어 이런 클러스터들, 여러 번 복제되어서 주어진 어떠한 문서, 얼마나 그것을 사용했는가에 따라 복합적이다.