Freenet

提供: Hideki Saito Wiki Japanese
移動先: 案内検索

Freenetは対検閲を実現する、匿名ネットワークシステム。

はじめに

匿名化技術に関する考え

Java 9での非互換

Linuxの場合

現状のFreenetはJava 9と互換性がないせいか以下のようなエラーが発生し、動作しない。

Your java executable at /usr/bin/java seems suitable
Running Freenet 0.7...
wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Community Edition 64-bit 3.5.20
wrapper  |   Copyright (C) 1999-2013 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  | 
wrapper  | Launching a JVM...
jvm 1    | SERIOUS PROBLEM: Unable to load or use BouncyCastle provider.
jvm 1    | java.lang.Error: Cannot use required algorithm from BouncyCaste provider
jvm 1    | 	at freenet.crypt.JceLoader$BouncyCastleLoader.load(JceLoader.java:82)
jvm 1    | 	at freenet.crypt.JceLoader$BouncyCastleLoader.access$300(JceLoader.java:61)
jvm 1    | 	at freenet.crypt.JceLoader.<clinit>(JceLoader.java:48)
jvm 1    | 	at freenet.node.NodeStarter.<init>(NodeStarter.java:78)
jvm 1    | 	at freenet.node.NodeStarter.main(NodeStarter.java:266)
jvm 1    | Caused by: java.lang.ExceptionInInitializerError
jvm 1    | 	at java.base/javax.crypto.KeyAgreement.getInstance(KeyAgreement.java:278)
jvm 1    | 	at freenet.crypt.JceLoader$BouncyCastleLoader.load(JceLoader.java:79)
jvm 1    | 	... 4 more
jvm 1    | Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
jvm 1    | 	at java.base/javax.crypto.JceSecurity.<clinit>(JceSecurity.java:118)
jvm 1    | 	... 6 more
jvm 1    | Caused by: java.lang.SecurityException: Can't read cryptographic policy directory: unlimited
jvm 1    | 	at java.base/javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:324)
jvm 1    | 	at java.base/javax.crypto.JceSecurity.access$000(JceSecurity.java:73)
jvm 1    | 	at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:109)
jvm 1    | 	at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:106)
jvm 1    | 	at java.base/java.security.AccessController.doPrivileged(Native Method)
jvm 1    | 	at java.base/javax.crypto.JceSecurity.<clinit>(JceSecurity.java:105)
jvm 1    | 	... 6 more
jvm 1    | BouncyCastle: null
jvm 1    | SunPKCS11-NSS: null
jvm 1    | SUN: SUN version 9
jvm 1    | SunJCE: SunJCE version 9
jvm 1    | WrapperManager: Initializing...
jvm 1    | WrapperManager: 
jvm 1    | WrapperManager: WARNING - Unable to load the Wrapper's native library because none of the
jvm 1    | WrapperManager:           following files:
jvm 1    | WrapperManager:             libwrapper-linux-x86-64.so
jvm 1    | WrapperManager:             libwrapper.so
jvm 1    | WrapperManager:           could be located on the following java.library.path:
jvm 1    | WrapperManager:             $FREENET_DIR/lib
jvm 1    | WrapperManager:           Please see the documentation for the wrapper.java.library.path
jvm 1    | WrapperManager:           configuration property.
jvm 1    | WrapperManager:           System signals will not be handled correctly.
jvm 1    | WrapperManager: 
jvm 1    | freenet.jar built with freenet-ext.jar Build #29 rv29 running with ext build 29 rv29
jvm 1    | Creating config from freenet.ini
jvm 1    | Creating logger...
jvm 1    | Set interval to 10 and multiplier to 1
jvm 1    | Starting executor...
jvm 1    | Finding old log files. New log file is $FREENET_DIR/logs/freenet-1478-2017-10-01-04.log.gz
jvm 1    | Old log file exists for this time period: $FREENET_DIR/logs/freenet-1478-2017-10-01-04.log.gz
jvm 1    | Renaming to: $FREENET_DIR/freenet-1478-2017-10-01-04-26.log.gz
jvm 1    | Created log files
jvm 1    | Attempting to load the NativeThread library [jar:file:$FREENET_DIR/freenet-ext.jar!/freenet/support/io/libNativeThread-amd64.so]
jvm 1    | Using the NativeThread implementation (base nice level is 10)
jvm 1    | Initializing Node using Freenet Build #1478 rbuild01478 and freenet-ext Build #29 rv29 with Oracle Corporation JVM version 9-Ubuntu running on amd64 Linux 4.10.0-35-generic
jvm 1    | Set fproxy max length to 2306867 and max length with progress to 57671680 = 57671680
jvm 1    | Starting FProxy on 127.0.0.1,0:0:0:0:0:0:0:1:8888
jvm 1    | SHA1: using SUN version 9
jvm 1    | MD5: using SUN version 9
jvm 1    | SHA-256: using SUN version 9
jvm 1    | SHA-384: using SUN version 9
jvm 1    | SHA-512: using SUN version 9
jvm 1    | WrapperManager Error: Error in WrapperListener.start callback.  java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurity
jvm 1    | WrapperManager Error: java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurity
jvm 1    | WrapperManager Error: 	at java.base/javax.crypto.Cipher.getInstance(Cipher.java:526)
jvm 1    | WrapperManager Error: 	at freenet.crypt.ciphers.Rijndael.getAesCtrProvider(Rijndael.java:78)
jvm 1    | WrapperManager Error: 	at freenet.crypt.ciphers.Rijndael.<clinit>(Rijndael.java:30)
jvm 1    | WrapperManager Error: 	at freenet.node.Node.<init>(Node.java:1097)
jvm 1    | WrapperManager Error: 	at freenet.node.NodeStarter.start(NodeStarter.java:194)
jvm 1    | WrapperManager Error: 	at org.tanukisoftware.wrapper.WrapperManager$11.run(WrapperManager.java:4048)
jvm 1    | Shutting down...
jvm 1    | Completed writing logs to disk.
wrapper  | <-- Wrapper Stopped

どうしてもJava 9を使いたい場合はJava 8をサイド・バイ・サイドでインストールした上で、Java 8にPATHを通してやることで使える。

export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH

Windowsの場合

調査中……。

外部サイト