NewCS

Aus Streamboard Wiki
Wechseln zu: Navigation, Suche


Inhaltsverzeichnis

Was kann das Programm

NewCS ist ein Cardserver für das NewCamd- und das Radegast-Protokoll.

Welche Plattformen und Protokolle werden unterstützt

NewCS bietet sowohl eine native Windows-Version als auch Versionen für diverse Linux-Systeme. Die Code-Basis unterscheidet sich scheinbar zwischen den Plattformen, da insbesondere die Windows-Version teils Bugs enthält, die in der Linux-Version nicht auftreten.

Für Linux existieren Binaries für:

  • i686-Systeme (Standard-PC)
  • x86_64 (PCs mit 64Bit-Linux)
  • MIPS (Dreambox 7025)
  • PowerPC (alle anderen SD-Dreamboxen, Dbox2, TripleDragon, etc.)
  • Fritzbox (Freetz)
  • OpenWRT
  • QNAP NAS
  • Axis Etrax 100LX
  • ST40-Systeme (Kathrein UFS910, Abcom IPBox HD-Serie und ähnliche)

Für jede Linux-Version gibt es zudem spezielle Binaries um PC/SC- und Infinity-USB-Kartenleser zu unterstützen.

Konfiguration

NewCS wird über eine zentrale XML-Datei konfiguriert. Der nachfolgende Code zeigt alle möglichen Optionen. Einzelne Optionen können auch auskommentiert werden sofern sie nicht benötigt werden.

<?xml version="1.0"?>
<newCSconfig>
	<globals>
		<listening-ip>192.168.1.1</listening-ip>
	</globals>
	<readers name="phoenix reader">
		<device>
			<!-- auskommentiert <name>Phoenix an seriell</name> -->
			<name>Phoenix an USB</name>
			<type>phoenix</type>
			<mhz>357</mhz>
			<node>/dev/ttyUSB0</node>
			<infinity_number>0</infinity_number>
			<slot>0</slot>
			<parity>None</parity>
			<reset>normal</reset>
			<export>Yes</export>
			<enabled>Yes</enabled>
			<blocksa>No</blocksa>
			<blockua>No</blockua>
			<blockga>No</blockga>
			<blockC0>Yes</blockC0>
			<boxkey>0000000000</boxkey>
			<rsa>0000000000</rsa>
			<irdetomode>0</irdetomode>
			<irdeto-camkey>0000000000000000</irdeto-camkey>
			<irdeto-camkey-data>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</irdeto-camkey-data>			
			<crypto-special>No</crypto-special>
			<ipk>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</ipk>
			<ucpk>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</ucpk>
			<PTShandshake>Yes</PTShandshake>
			<carddetect>Yes</carddetect>
			<newcamd_port>15000</newcamd_port>
			<autosid>Yes</autosid>
			<Seca-PPV>No</Seca-PPV>
			<pincode>0000</pincode>
			<sid>
			        <allow>     
				       <id>0000</id>
				       <id>0001</id>
				       <id>0002</id>
			        </allow>
			        <deny>   
				       <id>0003</id>
				       <id>0004</id>
				       <id>0005</id>
			        </deny>
			</sid>
			<priority>round</priority>
		</device>
	</readers>
	<cache>
		<emm>20</emm>
		<ecm>-1</ecm>
	</cache>
	<radegastserver>
		<enabled>No</enabled>
		<port>16000</port>
		<allow>
			<hostname>localhost</hostname>
			<hostname>user1.dyndns.org</hostname>
		</allow>
	</radegastserver>		
	<newcamdserver>
		<enabled>Yes</enabled>
		<name>newcs</name>
		<deskey>01 02 03 04 05 06 07 08 09 10 11 12 13 14</deskey>
		<user>
			<name>user1</name>
			<password>internal</password>
			<hostname>192.168.1.7</hostname>
			<port>15003</port>
			<au>on</au>
			<sidoverride>off</sidoverride>
			<readers>
				<allow>Phoenix1</allow>
			</readers>
			<spider>no</spider>
			<rate>2</rate>
			<cardlevel>1</cardlevel>
		</user>
	</newcamdserver>
	<debug>
		<password>xxxxxxxx</password>
		<mode>simple</mode>
		<level>spam</level>
		<type>all</type>
		<output>tcp</output>
		<console_options></console_options>
		<logfile>/var/log/newcs.log</logfile>
		<file_options>spam,all</file_options>
		<udp_host>192.168.1.10</udp_host>
		<udp_port>1000</udp_port>
		<udp_options>normal,init</udp_options>
		<tcp_port>1001</tcp_port>
		<tcp_options>normal,init,spam,all,internal</tcp_options>
	</debug>
	<httpd>
		<server> 
			<port>8080</port>
			<enabled>yes</enabled>
		</server>
		<user>
			<name>newcs</name>
			<password>newcs</password>
			<accesslevel>admin</accesslevel>
		</user>
	</httpd>
	<chameleon2>
		<server>
			<port>1234</port>
			<enabled>yes</enabled>
			<realm>myShares</realm>
		</server>
		<peer>
			<hostname>localhost</hostname>
			<port>1234</port>
			<name>myname</name>
			<password>mypassword</password>
			<realm>myShares</realm>
		</peer>
		<user>
			<name>myname</name>
			<password>mypassword</password>
			<realm>myShares</realm>
		</user>
		<virtualcards>
			<vc>
				<caid>1801</caid>
				<provider>0000000</provider>
			</vc>
			<vc>
				<caid>1702</caid>
				<provider>0000000</provider>
			</vc>
	</virtualcards>
	</chameleon2>
</newCSconfig>

Im Folgenden werden die einzelnen Variablen erläutert.

globals

Diese Sektion enthält globale Konfigurationsparameter, die für den gesamten Server gelten.

listening-ip

Hiermit wird festgelegt, auf welchen IPs NewCS auf Verbindungen lauscht.

readers

Enthält die Einstellungen für alle Kartenleser. Der verwendete Name (hier: "phoenix reader") kann beliebig gewählt werden.

device

Es können beliebig viele dieser Sektionen angelegt werden. Jede steht für einen Kartenleser.

name

Ein Name für das Kartenlesegerät. Dient nur zur Darstellung (z.B. im Webinterface) und sollte eindeutig sein.

type

Der Typ des Kartenlesegeräts. Möglich sind phoenix, dbox, sci, dragon, sc8, mp35, smartreader, pcsc und infinity. Letztere beide benötigen aber ein spezielles Binary (siehe weiter oben).

mhz

Die Frequenz für den Kartenleser. Die Angabe erfolgt ohne Punkt bzw. Komma mit zwei Dezimalstellen, so dass der Wert "358" 3,58 Mhz entspricht. Möglich sind 153(1,53 Mhz), 358(3,58 Mhz), 368(3,68 Mhz), 450(4,5 Mhz), 536(5,36 Mhz), 600(6.00 Mhz), 715(7,15 Mhz), 800(8,00 Mhz) 1000(10,00 Mhz), 1071(10,71 Mhz), 1200 (12,00 Mhz), 1431(14,31 Mhz), 1600 (16,00 Mhz).

Achtung: Zu hohe Werte führen zu einer Übertaktung und können den Kartenleser und/oder die Karte beschädigen. Normalerweise sollten "358" oder "600" verwendet werden.

node

Gibt die Adresse an unter der der Leser erreichbar ist. Je nach System und Kartenleser müssen hier unterschiedliche Werte stehen.
Unter Windows ist hier COM1, COM2, usw. zu benutzen (auch bei Verwendung eines USB2Seriell-Adapters).
Unter Linux:

  • bei Verwendung einer seriellen Schnittstelle: /dev/tts/0, /dev/tts/1 usw. oder /dev/ttyS0, /dev/ttyS1 usw.
  • bei Verwendung eines USB2Seriell-Adapters: /dev/tts/USB0, /dev/tts/USB1 usw. oder /dev/ttyUSB0, /dev/ttyUSB1 usw.
  • bei Verwendung des internen Kartenlesers in einer Dreambox: /dev/sci0, /dev/sci1, usw.
  • bei Verwendung einer TripleDragon: /dev/cardreader0, /dev/cardreader1, usw.
  • bei Verwendung von PC/SC: 0, 1 usw.

infinity_number

Nummer des Device. Gilt nur bei Benutzung des Binaries für Infinity USB. Mögliche Werte: 0, 1, usw.

slot

Erlaubt die Angabe des Slots bei Verwendung eines SC8-Kartenlesers. Mögliche Werte: 0-7

parity

Die Parität der seriellen Verbindung (wird bei sci und dragon ignoriert). Mögliche Werte: Odd, Even, None Ist hier Odd oder Even gewählt, so werden dem Datenstrom Bits hinzugefügt um Fehler zu erkennen (vgl. Wikipedia). Eine Änderung dieses Parameters kann dazu führen dass die Karte nicht mehr gelesen werden kann, daher lohnt es sich, im Fehlerfall die Optionen durchzuprobieren.

reset

Gibt die Reset-Methode des Kartenlesers an (wird bei sci und dragon ignoriert). normal wird für Phoenix-Kartenleser benötigt, inverse für Smartmouse-Kartenleser.

export

Bei Angabe von No können nur Nutzer auf localhost diesen Kartenleser nutzen, bei Yes können auch externe Nutzer auf diesen Kartenleser zugreifen.

enabled

Ob der Kartenleser aktiviert ist oder nicht. Yes zum aktivieren, No zum Deaktivieren.

blocksa

Bei Yes werden EMMs, die an bestimmte Gruppen von Karten adressiert sind (shared address-EMMs, entspricht D2 bei PW), geblockt, bei No werden diese an die Karte weitergeleitet.

blockua

Bei Yes werden EMMs, die an die Karte direkt adressiert sind (unique address-EMMs, entspricht D3 bei PW), geblockt, bei No werden diese an die Karte weitergeleitet.

blockga

Bei Yes werden EMMs, die an alle Karten adressiert sind (global address-EMMs, entspricht D0 bei PW), geblockt, bei No werden diese an die Karte weitergeleitet.

blockC0

Bei Yes werden Fake-EMMs geblockt, bei No werden diese an die Karte weitergeleitet.

boxkey

Der Boxkey (nur für Nagra- und NDS-Karten relevant, die diesen benötigen).

rsa

Erlaubt die Angabe des RSA-Keys des Nagra-Receivers.

irdetomode

Durch Angabe von 0 wird der europäische Irdetomodus aktiviert, bei 1 der alternative (Ozeanien).

irdeto-camkey

Ermöglich die Angabe des Camkeys für Irdeto-Karten (8 Byte Hex).

irdeto-camkey-data

Ermöglicht die Angabe der Camkey-Daten für Irdeto-Karten (64byte Hex)

crypto-special

Bei Yes können bei bestimmten Cryptoworkskarten MOSC-Operationen während des Betriebs durchgeführt werden, bei No wird dies deaktiviert.

ipk

Steht für Issuer Public Key und bezeichnet einen Schlüssel für Cryptoworkskarten für die Verschlüsselung zwischen Karte und Receiver (64 Byte Hex)

ucpk

Ein weitere Key für Cryptoworkskarten. (64 Byte Hex) Die nähere Bedeutung wird im Forum beschrieben.

PTShandshake

Bei Yes wird ein spezieller HighBaud-Modus für Viaccess- und Cryptoworks-Karten aktiviert, bei No wird dieser deaktiviert.

carddetect

Bei Yes wird versucht, das Einstecken der Karte automatisch zu erkennen, bei no wird dies nicht versucht.

newcamd_port

Der Port des NewCamd-Servers für dieses Kartenlesegerät. Wirkt sich nur aus wenn weiter unten der NewCamd-Server auch aktiviert ist.

autosid

Bei Yes versucht NewCS selbst, die korrekten Service IDs anhand der Karte zu erkennen, bei No müssen diese manuell eingestellt werden.

Seca-PPV

to be filled

pincode

Erlaubt das Angeben des Pincodes der Karte für z.B. PPV oder Jugendschutz.

sid

Eine Sektion um manuell die erlaubten und verbotenen Service IDs der Karte zu definieren (um z.B. bestimmte Sender für das Sharing zu sperren).

allow

Listet alle erlaubten Service IDs auf. Einzelne Einträge bestehen aus einem id-Tag mit einer vierstelligen Zahl. Ist die ServiceID nur dreistellig (z.B. 123), so muss eine 0 vorangestellt werden (z.B. 0123).

deny

Listet alle verbotenenen Service IDs auf. Einzelne Einträge bestehen aus einem id-Tag mit einer vierstelligen Zahl. Ist die ServiceID nur dreistellig (z.B. 123), so muss eine 0 vorangestellt werden (z.B. 0123).

priority

Ermöglicht in gewisser Weise eine Priorisierung der ECMs von Usern wenn die Karte beschäftigt ist. Bei Verwendung von round sind alle gleichberechtigt ("Zufall"), bei fifo kommt der zuerst gesendete ECM auch zuerst an. Bei Verwendung von hard werden User, die eine niedrigere UserID haben (also in der Userliste der NewCamd-Konfiguration weiter vorne stehen) vor höheren UserIDs bevorzugt.

cache

NewCS verfügt über einen Cache für EMMs und ECMs um die Performance zu steigern. Hiermit können die Parameter dieser Caches geändert werden.

EMM

Anzahl der EMMs, die gespeichert werden von 0-255.

ECM

Anzahl der ECMs, die gespeichert werden von 0-255. Alternativ kann ein Wert von -1 angegeben werden, wodurch der Cache automatisch verwaltet wird.

radegastserver

Einstellungen für Cardsharing über das Radegast-Protokoll.

enabled

yes zum Einschalten, no zum Ausschalten des Radegastprotokolls.

port

Der Port auf dem der Radegastserver läuft.

allow

Eine Sektion um bestimmten IPs den Zugriff auf den Server zu gestatten. Es können beliebig viele hostname-Einträge hinzugefügt werden um diesen Zugriff zu gestatten.

hostname

Eine IP-Adresse oder DNS-Adresse, welche auf den Server zugreifen darf.

newcamdserver

Einstellungen für Cardsharing über das NewCamd-Protokoll.

enabled

yes zum Einschalten, no zum Ausschalten des NewCamdprotokolls.

name

Dient zur Identifikation gegenüber Clients. Hat nur kosmetische Auswirkungen.

deskey

Ein DES-Schlüssel zur Verschlüsselung der Kommunikation. Sollte unbedingt geändert werden! Bitte das angegebene Format beachten (14 2-stellige Zahlen)!

user

Erlaubt die Definition von Benutzern. Pro Nutzer muss eine eigene User-Sektion erstellt werden (inkl. <user> und </user>). Jeder Benutzer kann nur 1 Verbindung zum Server gleichzeitig aufbauen!

name

Der Benutzername für den Login (case-sensitive).

password

Das Passwort für den Login (case-sensitive).

hostname

Die IP-Adresse oder DNS-Adresse des Clients. Wird für den Reverse-Login verwendet. Auskommentieren wenn dieser nicht benötigt wird.

port

Der Port des Clients. Wird für den Reverse-Login verwendet und muss dementsprechend beim Client in der Firewall freigegeben sein. Auskommentieren wenn Reverse-Login nicht benötigt wird.

au

On wenn der Client EMMs zum Server senden darf, sonst Off.

sidoverride

On wenn der Client den Service ID-Filter (siehe Reader-Sektion oben!) ignorieren kann, sonst Off.

readers

Erlaubt die Angabe der erlaubten Kartenleser (Reader). Wenn dies auskommentiert ist, sind alle erlaubt! Es können beliebig viele allow-Einträge vorhanden sein.

allow

Die Bezeichnung des erlaubten Kartenlesers.

spider

Yes wenn der Client ein NewCamd-Cardspider sein darf, sonst No.

debug

Enthält Einstellungen für das Loggen. Es ist möglich, in eine Datei zu loggen (file), an eine Rechner per UDP Logmeldungen (udp) zu senden oder sich die Meldungen per Telnet-Verbindung (tcp) anzusehen. Des Weiteren können die Meldungen auf dem ausführenden Rechner auf der Konsole angezeigt werden.

password

Das Passwort für Telnet-Verbindungen. Muss mindestens aus 8 und maximal aus 25 Zeichen bestehen.

mode

Erlaubt die Angabe von simple oder advanced. Im advanced-Modus können per Telnet mehr Kommandos ausgeführt werden (welche potentiell gefährlich sind!)

level

Wie ausführlich die Debugausgaben sein sollen. Möglich sind (nach Ausführlichkeit der Meldungen sortiert): none, normal, verbose, spam und internal.

type

Für welchen Typen Debugausgaben erzeugt werden. Möglich sind: Init, general, ecm, emm, net, io und all. Mehrere dieser Begriffe können durch Kommas getrennt angegeben werden (z.B. "Init,ecm,emm").

output

Definiert, wo Logmeldungen ausgegeben werden sollen. Möglich sind: Console, udp, tcp, file und all. Mehrere dieser Begriffe können durch Kommas getrennt angegeben werden (z.b. "Console,tcp").

console_options

Ermöglicht eine separate Definition des Loglevels und der Logtypen (mit Komma getrennt) für die Konsole. Die möglichen Werte sind analog den Sektionen level und type! Kann auskommentiert werden um die Standardeinstellungen zu nutzen.

logfile

Definiert den Speicherort der Logdatei.

file_options

Ermöglicht eine separate Definition des Loglevels und der Logtypen (mit Komma getrennt) für die Speicherung in der Logdatei. Die möglichen Werte sind analog den Sektionen level und type! Kann auskommentiert werden um die Standardeinstellungen zu nutzen.

udp_host

Gibt die IP-Adresse des Hosts an, an welchen die Logmeldungen per UDP versandt werden.

udp_port

Gibt den Port des Hosts an, an welchen die Logmeldungen per UDP versandt werden.

udp_options

Ermöglicht eine separate Definition des Loglevels und der Logtypen (mit Komma getrennt) für den Versand per UDP. Die möglichen Werte sind analog den Sektionen level und type! Kann auskommentiert werden um die Standardeinstellungen zu nutzen.

tcp_port

Gibt den Port für den Telnet-Server an, auf den man sich zu Debug-Zwecken und zur Steuerung von NewCS einloggen kann.

tcp_options

Ermöglicht eine separate Definition des Loglevels und der Logtypen (mit Komma getrennt) für den Telnet-Server. Die möglichen Werte sind analog den Sektionen level und type! Kann auskommentiert werden um die Standardeinstellungen zu nutzen.

httpd

Eine Sektion für Einstellungen des Webinterfaces von NewCS. Die meisten Windows-Versionen unterstützen kein Webinterface. In diesem Fall sind die Einstellungen wirkungslos.

server

Enthält generelle Servereinstellungen.

port

Der Port für den HTTP-Server

enabled

Ob der Server aktiviert ist oder nicht.

user

Dient zur Definition von Zugangsdaten für den HTTP-Server. Es können mehrere dieser Sektionen existieren um unterschiedlichen Nutzern unterschiedliche Rechte zu gewähren.

name

Der Benutzername für den Login (case sensitive).

password

Das Passwort für den Login (case sensitive).

accesslevel

Die Rechte des Nutzers. Entweder admin für einen Administrator oder stats für einen User, der nur Statistiken sehen kann.

chameleon2

Das Chameleon2-Protokoll stellt eine Art P2P-Technik für die Verteilung von Kartendaten dar. Die Kommunikation erfolgt dabei mittels einer proprietären Verschlüsselung welche mit dem Vorgängerprotokoll Chameleon nicht mehr kompatibel ist (dieses verwendete SSL). Der einzige kompatible Client ist derzeit (März 2009) die MGCamd, das Protokoll selbst ist "Work in progress" und kann sich jederzeit ändern.

UnderConstruction.png Diese Sektion ist unvollständig und muss überarbeitet werden.

server

Enthält Einstellungen für die Serverseite (Beantworten von Anfragen mit eigenen Karten).

port

Der Port für eingehende Verbindungen

enabled

Yes zum Einschalten, No zum Ausschalten des Servers.

realm

Unsure.png Die folgenden Informationen sind möglicherweise nicht korrekt und sollten überprüft werden.

Ein Realm zu den Clients übermittelt wird. Soll in Zukunft das Verbinden zu mehreren Netzwerken erlauben.

peer

Enthält Einstellungen für die Verbindungen zu einem anderen Chameleon2-Server

hostname

IP oder DNS-Name des anderen Servers.

port

Port des anderen Servers.

name

Username zum Login (case sensitive).

password

Passwort zum Login (case sensitive).

realm

Unsure.png Die folgenden Informationen sind möglicherweise nicht korrekt und sollten überprüft werden.

Soll in Zukunft das Verbinden zu mehreren Netzwerken erlauben.

user

Enthält Einstellungen für erlaubte User auf dem Server.

name

Username zum Login (case sensitive).

password

Passwort zum Login (case sensitive).

realm

Unsure.png Die folgenden Informationen sind möglicherweise nicht korrekt und sollten überprüft werden.

Soll in Zukunft das Verbinden zu mehreren Netzwerken erlauben.

virtualcards

Ermöglicht das Hinzufügen von virtuellen Karten.

vc

Enthält die Daten für eine CAID/Provider-Kombination. Es können beliebig viele vc-Sektionen erstellt werden.

caid

Die CAID (Conditional Access Identification) gibt den verwendeten Verschlüsselungsanbieter an. Vgl. auch diesen Link.

provider

Enthält eine Provider-ID. Manche Anbieter verwenden dies um die Datenströme von verschiedenen Pay-TV Anbietern zu trennen. Vgl. auch diesen Link.