MPCS: Unterschied zwischen den Versionen

Aus Streamboard Wiki
Zur Navigation springen Zur Suche springen
Zeile 99: Zeile 99:


====BindWait====
====BindWait====
Maximale Zeit in Sekunden, die der [[Cardreader]] beim Start wartet, bis er den jeweiligen Netzwerk-Port in Zugriff bekommt. Falls der MPCS innerhalb dieser Zeit den Port nicht binden kann, terminiert Er mit "Bind Request failed". Ursachen dafür sind
Maximale Zeit in Sekunden, die der [[Cardreader]] beim Start wartet, bis er den jeweiligen Netzwerk-Port in Zugriff bekommt. Falls der MPCS innerhalb dieser Zeit den Port nicht binden kann, terminiert er mit "Bind Request failed". Ursachen dafür sind
*Doppelbelegung von Ports
*Doppelbelegung von Ports
*Ein vormals abgestürzter MPCS der die Ports nicht wieder freigegeben hat
*Ein vormals abgestürzter MPCS der die Ports nicht wieder freigegeben hat

Version vom 3. März 2009, 12:12 Uhr

Was kann das Programm

MPCS ist ein multi-platform/multi-protokoll cardserver.

Am 19.11.2003 regte user Mode im streamboard-forum die Idee: Cardserver für Linux an. Aus den Diskussionen ging ein erster neuer Cardserver hervor, den dukat am 13.01.2004 vorstellte. Anlässlich der Weiterentwicklung dieses MPCS zur Version 0.7j schrieb dukat am 27.11.04:

"linux cardserver" ist natuerlich jetzt ein merkwuerdiger name für einen cardserver, der auf verschiedenen platformen laufen kann. ich habe ihn deshalb auf mp-cardserver umgetauft.(multi-platform/multi-protokoll.)

Welche Plattformen und Protokolle werden unterstützt

Plattformen

Linux mit den hauptsächlichen Derivaten einschließlich dbox2. Siehe Abschnitt Versionen!

Windows unter Verwendung von cygwin. Siehe Abschnitt Versionen!

Protokolle

camd3

Die Verwendung dieses Protokolls hat den Vorteil, dass auf der Seite der Clients, die auf der Basis von Camd3 arbeiten, keine Änderungen in den Konfigurationen nötig sind, sofern serverseitig auf diese Variablen Rücksicht genommen wird (z.B. in der mpcs.users). Erfolgreich getestet bis camd3 Vers. 3.902.

camd3.3

Entspricht auf Clientseite (camd3.servers) dem Eintrag unter cs378x (TCP) Vgl. camd3

camd3.5

Entspricht auf Clientseite (camd3.servers) dem Eintrag unter cs357x (UDP) Vgl. camd3

newcamd

gbox

radegast

Welche Hardware wird unterstützt (reader, receiver...)

Seriell

USB

Dateien für die Configuration und deren Variablenbeschreibung

Hinweis für alle Dateien: Komandozeilen können mit # auskommentiert werden. Das hat zur Folge, dass eine auskommentierte Zeile bei Ausführung des Programms nicht gelesen und damit auch nicht ausgeführt wird!

mpcs.conf

V1.0 (KrazyIvan Version)

[global]
Nice            = -15
ClientTimeout   = 4
ClientMaxIdle   = 60
CacheDelay      = 0
FallbackTimeout = 1
BindWait        = 10
ResolveDelay    = 10
DyndnsInterval  = 120
LogFile         = stdout
#LogFile        = /ramdsk/kpcs.log
#PidFile        = /ramdsk/kpcs.pid
#MaxLogSize     = 102400
showecmdw       = 0
showemmdw       = 0
disablecache1   = 0
disablecache2   = 0
disablecache    = 0
Filter          = 0
#Filter         = 500

[newcamd]
Key             = 0102030405060708091011121314
Port            = 23423@0604:000000;

# -- camd 3.5x ----------------------------------------------------------------
# Port            : Port-Number (0 disables this protocol)
# ServerIP        : bind service to ONE dedicated ip-address
# -----------------------------------------------------------------------------

[cs378x]
Port            = 54343

[cs357x]
Port            = 54343

Variablenbeschreibung

Nice

Systempriorität. MPCS benötigt fast keine CPU-Leistung. Wenn aber CPU-Leistung benötigt wird, sollte diese sofort zur Verfügung stehen. Werte von 20 bis -20 sind möglich, wobei 20 gering und -20 sehr hoch ist. Wird der Parameter auskommentiert(#), wird diese Funktion nicht ausgerufen. Das ist wichtig z.B. für die dbox2, wenn die Fehlermeldung "relocation error:setpriority" erscheint. Vgl. Prioritätsscheduling

Nice = -1

ClientTimeout

Maximale Wartezeit des Clients in Sekunden auf eine Antwort.

ClientTimeout = 4

ClientMaxIdle

Maximale Zeit in Sekunden, die der Client inaktiv bleiben kann, bevor er automatisch abgemeldet wird.

ClientMaxIdle = 120

CacheDelay

Mindestzeit in Millisekunden, die ein Request brauchen muss. Hört sich zwar paradox an, betrifft aber das Problem, wenn die Antwort aus dem cache zu schnell an den Client übermittelt wird.

CacheDelay = 300

FallbackTimeout

Maximale Wartezeit des Cardservers in Sekunden auf primäre Reader, bevor der/die Fallback-Reader (falls vorhanden!) befragt werden.

FallbackTimeout = 1

BindWait

Maximale Zeit in Sekunden, die der Cardreader beim Start wartet, bis er den jeweiligen Netzwerk-Port in Zugriff bekommt. Falls der MPCS innerhalb dieser Zeit den Port nicht binden kann, terminiert er mit "Bind Request failed". Ursachen dafür sind

  • Doppelbelegung von Ports
  • Ein vormals abgestürzter MPCS der die Ports nicht wieder freigegeben hat
  • der MPCS wurde mehrmals gleichzeitig gestartet
BindWait = 20

ResolveDelay

Zeit in Sekunden, gibt die Pause bei der Namensauflösung an.

DyndnsInterval

bitte noch ergänzen!

LogFile

Hier kann die Logdatei eingestellt und Devices benannt werden.

Zum Beispiel:

  • /dev/null = Es wird kein Logfile erzeugt.
  • /dev/tty = Bildschirmausgabe.
  • syslog = Die Ausgabe wird an den syslogd übergeben.

Empfehlungen:

  • linux i386 = /var/log/mpcs.log
  • dbox2 = /dev/null oder /dev/tty
  • Windows = mpcs.log (im Verzeichnis, in dem MPCS enthalten ist)

PidFile

Hier kann ein Pidfile angegeben werden. Das ist eine ASCII-Datei, in der die Prozess-ID vom Hauptprozess des Cardservers enthalten ist. Dieser Eintrag kann dazu benutzt werden, um den Cardserver wieder "sauber" anzuhalten, wenn er im Hintergund läuft.

MaxLogSize

Mit diesem Parameter kann die maximale Größe der Logdatei festgelegt werden. Das ist bei umfangreichem Logbetrieb empfehlenswert. Die Logdaten werden dann im Verfahren First-In/First-out auf die festgelegte Größe begrenzt.

showecmdw

bitte ergänzen

showemmdw

bitte ergänzen

disablecache1

bitte ergänzen

disablecache2

bitte ergänzen

disablecache

bitte ergänzen

Filter

bitte ergänzen

[newcamd]

Für Newcamd-User selbsterklärend!

camd 3.5x

Selbsterklärend. Wegen Protokoll camd 3.5 siehe auch Abschnitt Protokolle Wichtig: Wenn hier ein Port eingetragen wird, muss dieser Port mit dem Eintrag in der camd3.servers bei den Clients übereinstimmen!

mpcs.user

V1.0 (KrazyIvan Version)

#.user is auto reload... then make changes to file  relaod automaticly not need restart
[account]
User = user
Pwd  = 54546
Uniq  = 1
Group = 1
#AU disable
AU = 0
# this is auto AU reader all reader
#AU = 1
#AU single reader
#AU = myreader
EndDate = 2009-01-05
#or both are ok
#EndDate = 2009/01/05
#Betatunnel = 1833.0081:1702,1833.0082:1702

Variablenbeschreibung

[account]

Grundsatz: Es können mehrere [account]-sections erstellt werden. Jede vollständige section wird dann als account verwendet. So kann für jeden user ein separater account mit unterschiedlichen Zugangsdaten und Berechtigungen angelegt werden. Z.B.: [dbox-Wohnzimmer] mit allen Rechten, jedoch [dbox-Kinderzimmer] nur mit Rechten, die den Jugendschutz berücksichtigen. Oder [Dyndns-IP], die nur ein bestimmtes PayTV-Packet erhalten soll!

User

User-Name. Muss gesetzt sein!

Pwd

Passwort. Muss gesetzt sein!

Uniq

Uniq kann 0 oder 1 sein, wobei 1 bedeutet, dass dieser User sich nicht zweimal zur gleichen Zeit anmelden kann!

ab MPCS 1.0n

Uniq = uniq kann 0, 1, 2 oder 3 sein. Optional (Default: Uniq=0)

  • 0 - disable
  • 1 - per IP
  • 2 - 1 user per Port
  • 3 - only 1 user allow for all port

Beispiel:

Uniq = 2

Group

Jeder User muss in einer oder mehrere Gruppen eingetragen sein. Damit lässt sich dann bestimmen, auf welche Reader, sofern mehrere vorhanden sind, dieser Client Zugriff haben soll.

AU

Mit den Eintragungen in diesem Abschnitt kann gesteuert werden, ob für bestimmte oder alle Reader AU zugelassen werden soll. Gültige Werte:

AU=     0                 -> kein AU
AU=     1                 -> Auto (ab 1.0)
AU=     <gültiger Reader> -> AU für eingetragenen Reader

Zum AU ist im allgemeinen zu sagen:

  • Sparsamer Umgang mit AU Clients ist besser für den MPCS
  • Ein AU Client erhält die Kartendaten (Sicherheit)
  • Benutzung der EmmCache Funktion vermeidet zu hohe Belastung des Readers

Enddate

bitte ergänzen

Betatunnel

Bis zur Version 0.9.e ist hier eine Betacrypt-Tunnelung möglich. Im Beispiel werden 1833.0081 und 1833.0082 jeweils auf 1702 getunnelt. Ab version 1.0n ist dieser Parameter nicht mehr erforderlich! bitte prüfen und eventuell überarbeiten!

mpcs.reader(V1.0)

Tritt an die Stelle von mpcs.server (bis einschließlich Version 0.9.e!)

V1.0 (KrazyIvan Version)

[reader]
blockua          = 1
blockga          = 1
blocksa          = 1
AU               = 1
Enable           = 1
Label            = myreader
Protocol         = mouse
Device           = /dev/ttyS0
#pincode         = 7291
#BaudRate	  = 16000
EMMCache         = 1,1,10
Detect           = CD
Group            = 1,2,3
Fallback         = 0
CAID	          = 0666
ChID             = 0666:02,03,04,05,06,07,0E

Variablenbeschreibung

[reader]

Grundsatz: Es können mehrere [reader]-sections erstellt werden. Jede vollständige section wird dann als reader verwendet. Beispiele: [NG²], [phoenix], [mastercrd] usw.

blockua

unique address-EMMs, entspricht D3 bei PW

blockua = 0 (nicht blocken)
blockua = 1 (Blocke EMMs, die an die Karte direkt adressiert sind)

blockga

global address-EMMs, entspricht D0 bei PW

blockga = 0 (nicht blocken)
blockga = 1 (Blocke EMMs, die an alle Karten gehen)

blocksa

shared address-EMMs, entspricht D2 bei PW

blocksa = 0 (nicht blocken)
blocksa = 1 (Blocke EMMs, die an bestimmte Gruppen von Karten gehen)

AU

Zum AU ist im allgemeinen zu sagen:

  • Sparsamer Umgang mit AU Clients ist besser für den MPCS
  • Ein AU Client erhält die Kartendaten (Sicherheit)
  • Benutzung der EmmCache Funktion vermeidet zu hohe Belastung des Readers
AU = 0 (Autoupdate aus)
AU = 1 (Autoupdate ein)

Enable

Enable = 0 (Reader aus)
Enable = 1 (Reader ein)

Label

Name der Readers. Pflichtfeld! Wird benötigt, um die Zuordnung von AU in mpcs.user zu ermöglichen.

Label = Mouse

Protocol

Kommunikationsprotokoll für den Reader.

Protocol = mouse (Lokaler Cardreader)
Protocol = internal (Alle Cardreader mit einem "Device=/dev/sciX")
Protocol = camd35 (Cascading - camd 3.5-kompatibler Remote-Server)

Device

Bei lokalem Reader (mouse-mode) das Device, an dem der Reader angeschlossen ist.

Device = /dev/ttyS0   (Reader an COM1 (bei Linux i386 und Windows))
Device = /dev/tts/1   (Reader an COM2 (Linux dbox2 mit multicam))
Device = /dev/ttyUSB0 (Reader an USB  (Linux i386))

Hinweis: Der Zähler für die Device liegt immer um 1 hinter der Nummer des COM-Ports! Also ttyS0 = COM1, tts/1 = COM2. Bei Benutzung neuerer PC sind kaum noch serielle Anschlüsse vorhanden, sodass in diesen Fällen USB 2.0 benutzt werden muss. Hier am besten im Gerätemanager des PC (Windows) nachschauen, welcher COM-Port dem Reader zugewiesen wurde und in die Device den Port -1 eintragen!

pincode

Bei Readern, die mit einem Pincode arbeiten, muss dieser hier eingetragen werden.

Pincode = 12345

BaudRate

Für Reader, deren Geschwindigkeit über eine Baudrate eingestellt werden kann, kann hier ein Eintrag erfolgen.
Verwendet man am Reader eine höhere Taktfrequenz als für die Karte vorgesehen (Übertakten/ Overclocking), muß hier die Baudrate nach folgender Formel angepasst werden:

Baudrate = 9600 / originalCardMHz * newCrystalMHZ
Baudrate =  9600  (entspricht default)
Baudrate = 16000  (6MHz-Karte wird mit 10MHz betrieben | 9600 / 6 * 10 = 1600)

Bei dem Gebrauch von USB-Wandlern ist darauf zu achten, dass der PL2303 nur Standardbaudraten unterstützt, und somit der Betrieb einer übertakten Karte nicht möglich ist. Es wird die Verwendung eines Wandlers mit FTDI empfohlen.

EMMCache

Definition des EMM-Caches für den Reader. Derzeit nur für lokale Reader. Betrifft die AU-Funktion. Damit kann entschieden werden, ob Update-Kommandos vom Provider immer oder nur unter bestimmten Voraussetzungen geschrieben werden. Format:

EmmCache = <usecache>,<rewritte>,<logging>
* <usecache> 0 = cache ein
* <usecache> 1 = cache aus

* <rewrite>  n = Wie oft ein und das selbe Update-Kommando geschrieben wird. Gilt nur bei <usecache> 1

* <logging>  0 = Einträge im Logfile nur im Fehlerfall
* <logging>  1 = Nur geschriebene Emm's keine verworfenen (skipped)
* <logging>  2 = alle emm's werden im Log vermerkt

Empfehlung:

EmmCache = 1,3,2

Detect

Statusleitung für "Karte ist drin".

Detect = CD   (Carrier Detect)
Detect = DSR  (Data Set Ready)
Detect = CTS  (Clear To Send)
Detect = RING (Ring Indicator)
Detect = NONE (Erkennung wird abgeschaltet, aber es wird immer ein "Karte ist drin" signalisiert!)
Detect = gpio2 ... gpio7 (neu!)
  • Inverse Leitung = "!" voranstellen (z.B. "Detect=!CTS")

Group

Jeder Reader muss in einer oder mehrere Gruppen eingetragen sein. Damit lässt sich bestimmen, welcher Client auf welchen Reader Zugriff hat.

  • Format Group=<grp>[,<grp>][,<grp>]...
  • <grp> muss zwischen 1 und 32 liegen.

Fallback

  • 0 = Reader ist kein Fallback-Reader
  • 1 = Reader ist Fallback-Reader

CAID

Liste gültiger caid's und mapping für diesen Reader.

  • Format: CAID=<caid>[&<mask>][:<new caid>],...
  • wird <mask> nicht angegeben, ist <mask> automatisch FFFF.
  • wird <new caid> nicht angegeben, wird caid nicht vereändert.
  • Beispiel: CAID=1702,1722 (dieser Reader wird nur für caid 1702 und 1722 benutzt)
  • Beispiel: CAID=1702&FFDF (hat die gleiche Folge wie die vorhergehende Zeile)
  • Beispiel: CAID=1702&FFDF:1702 (dieser Reader wird ebenfalls nur für caid 1702 und 1722 benutzt und die caid wird auf 1702 gemapped.)
  • Beispiel: 0100,0600&FF00 (dieser Reader wird für caid 0100 und 0600-06FF benutzt.)

Dieser Parameter ist optional. Wird er nicht gesetzt, sind alle caid's gültig und werden nicht gemapped.

ChID

Es können zu einer caid ganz bestimmte ChID's zugelassen werden.

mpcs.server

V. 0.9.e (Team Edition)

[reader]
Label            = myreader
Protocol         = mouse
Device           = /dev/ttyS0
Detect           = CD
Account          = user1,pwd1
EMMCache         = 1,1,10
BlockNano        =
Group            = 1,2,3
CAID	          = 0666

Variablenbeschreibung

Siehe Erläuterungen zu mpcs.reader!

Account

Benutzername und Passwort beim Zugriff auf Remote-Server.

  • Beispiel: user1,pwd1

BlockNano

Definition für EMM-Blocking des Readers. Hiermit können bestimmte Update-Kommandos blockiert werden.

  • Bei Verwendung ist es unumgänglich, sich mit der Materie gründlich vertraut zu machen!
  • Empfehlung für Non-Cracks: Diesen Parameter nicht verwenden!

mpcs.services

[premiere]
caid=1702,1722
srvid=000A,000B,002B,0009,0022,0029,0014,0204,0017,0010,002A,0203,0024,001C,0013,000E,000D,000F,000C,0016,0206,0018,00A8,0015,0012,0011,001B,0309,00D0,00D1,00D2,00D3,00D4,00DC,00DD,00DE,00F0,00F1,00F2,00F3,00F4
[premiere-familie]
caid=1702,1722
srvid=000C,000D,000E,000F,0013,0015,0016,0018,001B,001C,001D,0020,0024,002A,0032,00A8,0203,0206
[pwhd]
caid=1833
srvid=0081,0082
[arena]
caid=1702,1722
srvid=0032,00F4,00DC,00E3,00E1,00F2,00F3,00D4
[kdhome]
caid=1702,1722
srvid=C3B5,C3B6,C3B7,C3B8,C3B9,C3BA,C3BB,C3BC,C3BD,C3BF,C47D,C47E,C47F,C480,C481,C482,C483,C60E,C60F,C610,C612,C613,C614,C615,C616,D035,D036,D099,D09C,D09E,D0A1,D0A3,D0A4
[KD]
provid=001101
caid=1801
[orf]
caid=1702
srvid=32C9,32CA,32D4,32CB,32CC,32CD,32CE,32CF,32D0,32D1,32D2,32D3,32C9,4E27,3332
[tividi]
caid=1702,1722
srvid=32C9,332F,3338,3332,3333,3334,3335,3337,5E25,5E27,5E29,5E2A,5E2C,5E2D,5E2E,5E38,5A3D,5A3F,5A49,2F45,0206,2F49,2F4A,2F4B,2F4C,2F4D,2F46,2F47,2F48,2F4E,2F4F,3EEB,2B5D,2B5E,2B5F,2B60,2B61,2B63,2B64,2B65,2B66,4AA8,4AA9,4AAA,3716,3719,371B,371F,3EE5,3EE6,3EE7,3EE8,3EE9,3EEA,4AA2,4AA3,4AA4,4AA5,4AA6,4AA7,5E30,3339,332D,371E,371D,D099

mpcs.srvid

0001:MTV Portugal
0002:MTV Polska
0003:Music Box Russia
0004:VH1 Polska
0005:VIVA Polska
0006:MTV 1
0007:VH1
0008:PREMIERE START
0009:PREMIERE 4
000a:PREMIERE 1
000b:PREMIERE 2
...
..
.

mpcs.ac

Cycles für Anticascading

Diese Datei wird nur benötigt wenn Anticascading eingeschaltet ist. Diese Liste dient als Referenz, in welchen Intervallen ECM Requests eingehen sollten. Der letzte Eintrag (*=7) setzt den Wert für "alle Anderen darüber nicht aufgeführten. Der Wert ist in Sekunden anzugeben.

0100:00003D=20
0100:000065=7
0100:00006A=13
0500:020910=30
0500:020A00=15
0500:020A10=15
0500:020A20=15
0500:020A30=15
0500:020A40=15
0500:021500=15
0604:000000=11
0919:000000=20
0961:000000=8
1702:FFFFFF=7
1722:FFFFFF=7
1801:000000=20
4A70:000000=14
*=7

mpcs.cert

#
#	this file contains needed Issuer Public Keys -or- Session Keys
#	(currently supported with cryptoworks only)
#
#CAID:reserved:KEY

#sample with IPK for CAID 0D22
0D22:00000000:8000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#sample with Session Key for CAID 0D22
0D22:00000000:B5C7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

mpcs.guess

#
#	mpcs caid guessing table (by len)
#	caid 0500 and 1801 not needed
#	format: <len>:<caid>
#	where <len> is length of ecm in hex
#
29:1762
34:0604
36:0D05
3C:4A70
6E:0919
47:0D05
48:0D05
4C:0B00
50:0D05
51:0D05
54:1702
5A:0B00
67:0B00
71:0D0C
72:4AD0
73:090F
7C:090F
81:090F
85:0D02
91:4AD1
99:0D00
9C:0D02

mpcs.ird

;-------------------------------------------
; Irdeto guessing table (by signature)
; format: <byte3>:<byte4-7>:<caid>:<sid>
; all fields in hex

Versionen (Linux, WinPC, .....)

0.9e

0.9e Team Edition

1.0 (KrazyIvan Version)

Router

Fritzbox 7110

Fritzbox 7120

Fritzbox 7170

Speedport W920V

WRT

STB

Dbox2

Dreambox

Monitoring/ Remote Konfiguration

MicroMon

Der microMon kann die Loggingschnittstelle des MPCS mitschneiden und Statistiken über Clientzugriffe erheben. Zusätzlich ist die Konfiguration der Clients möglich. MicroMon bietet zudem die Darstellung der Logs von camd3, newCS, MBox und GBox an. Auch Syslog aus anderen Quellen (z.B. dbox2) kann dargestellt werden.

MPCS Control Center

Links zu den Threads im streamboard und zur database

Forum MPCS

http://streamboard.gmc.to/wbb2/board.php?boardid=214

Thread microMon

http://streamboard.gmc.to/wbb2/thread.php?postid=292726#post292726