Joan (discussió | contribucions)
Cap resum de modificació
 
Línia 1: Línia 1:
[[Category:LDST]]
==Format==
==Format==
El LDST sempre guarda un log en memòria, que es pot volcar a disc des de la pestanya <b>Info</b> del menu de configuració. El fitxer de log es guarda encriptat. L'encriptació usada és una combinació de RSA i AES. S'utilitza l'AES per encriptar totes les dades ja que és ràpid. Però no es pot usar sol ja que al ser de clau simètrica, si algú aconseguis extreure la clau del programa (relativament fàcil) podria desencriptar/editar/encriptar els logs cosa que es vol evitar. Per tan cada cop que s'encripta un log s'utilitza una clau generada aleatòriament i s'afegeix una capçalera amb la clau usada encriptada amb l'RSA. L'RSA té l'avantatge de ser de clau asimètrica (clau encriptar != clau desencriptar) i per tan el programa només necessita (i té) la clau d'encriptar. Metre que la clau de desencriptar no té per que sortir mai de l'empresa.
El LDST sempre guarda un log en memòria, que es pot volcar a disc des de la pestanya <b>Info</b> del menu de configuració. El fitxer de log es guarda encriptat. L'encriptació usada és una combinació de RSA i AES. S'utilitza l'AES per encriptar totes les dades ja que és ràpid. Però no es pot usar sol ja que al ser de clau simètrica, si algú aconseguis extreure la clau del programa (relativament fàcil) podria desencriptar/editar/encriptar els logs cosa que es vol evitar. Per tan cada cop que s'encripta un log s'utilitza una clau generada aleatòriament i s'afegeix una capçalera amb la clau usada encriptada amb l'RSA. L'RSA té l'avantatge de ser de clau asimètrica (clau encriptar != clau desencriptar) i per tan el programa només necessita (i té) la clau d'encriptar. Metre que la clau de desencriptar no té per que sortir mai de l'empresa.

Revisió de 11:32, 7 gen 2015

Format

El LDST sempre guarda un log en memòria, que es pot volcar a disc des de la pestanya Info del menu de configuració. El fitxer de log es guarda encriptat. L'encriptació usada és una combinació de RSA i AES. S'utilitza l'AES per encriptar totes les dades ja que és ràpid. Però no es pot usar sol ja que al ser de clau simètrica, si algú aconseguis extreure la clau del programa (relativament fàcil) podria desencriptar/editar/encriptar els logs cosa que es vol evitar. Per tan cada cop que s'encripta un log s'utilitza una clau generada aleatòriament i s'afegeix una capçalera amb la clau usada encriptada amb l'RSA. L'RSA té l'avantatge de ser de clau asimètrica (clau encriptar != clau desencriptar) i per tan el programa només necessita (i té) la clau d'encriptar. Metre que la clau de desencriptar no té per que sortir mai de l'empresa.

Capçalera
Pos Longitud Descripció
0x00 0x20 Clau AES
0x20 0x10 Reservat, omplert amb '\0'
0x30 0x10 IV per l'AES

Les dades del log estan organitzades en linies. Cada línia comença amb el caràcter 0xFE i consta de diversos camps de text separats per el caràcter 0xFF. Per guardar el text dels camps s'utilitza la codificació UTF-8 ja que:

  • És compacte per texte ASCII que és la majoria de dades que s'escriuen al log
  • A diferència del ASCII, no té problemes en representar caracters de gairabé qualsevol idioma
  • Hi han 2 codis d'un byte (0xFE i 0xFF) que l'UTF-8 no utilitza i per tan es poden usar com a delimitadors sense haver de necessitar seqüències d'escapament.

Hi han 2 tipus de linies:

  • Capçaleres:El primer camp de text conté el caràcter 'H'. El següent camp és el nom de la capçalera i pot anar següit d'un o més camps que són el(s) seu(s) valor(s). S'utilitzen per guardar informació que no canvia durant l'execució del programa(OS,versió del CLR,nom del programa,info del PC on s'està executant,....)
  • Lines d'events:El primer camp és un número en hexadecimal de 8 digits (32bits) que indica el número de línia, seguit de la resta de informació del event
Camp Longitud Format Descripció
NumLin 8 Hexadecimal Número de línia del log
Timestamp 16 Hexadecimal Ticks del sistema en el moment que s'ha produit l'event
RunLevel 2 Hexadecimal Nivell de gravetat de la línia
ThreadName var. UTF-8 Nom del Thread que ha creat aquesta entrada
Msg var. UTF-8 Missatge del log
LogLevel
Nom Descripció
0 PANIC Error fatal. Normalment la aplicació abortarà l'execució en la següent instrucció
1 ERROR Error no fatal, segurament l'aplicació pot continuar l'execució
2 WARNING Condició anòmala, la operació en curs probablement funcionarà
3 INFO Missatge d'informació sobre el que està fent el programa
4 EXTRA Més informació
5 DEBUG Misstges mostrant estat intern del programa i informació per que es pugui traçar amb facilitat l'execució

Utilitat de desencriptació

S'ha fet un petit programa en Perl per desencriptar els fitxers de log ja que:

  • És fàcilment portable i funciona tan en Windows com en sistemes unix, MacOS....
  • No s´ha de compilar.
  • Fàcilment adaptable a cgi i es pot integrar amb facilitat a l'Apache (via mod_perl)

Funcionament

log_decrypt.pl [-i input_file] [-o output_file] [-l log_file] [-f output_format] [-h]

  • -i input_file: Sel.lecciona el fitxer del que es llegiran les dades a desencriptar. Si no s'especifica, llegirà de l'entrada estandard
  • -o output_file: Sel.lecciona el fitxer del que es guardaran les dades a desencriptades. Si no s'especifica, escriurà a la sortida estandard
  • -l log_file: Sel.lecciona el fitxer del que s'escriuran tots els missatges de log i errors. Si no s'especifica, utilitzarà l'estandard error
  • -f output_format:Format en el que es treuran les dades. Valors vàlids: text,html .Per defecte usa: html
  • -h: Mostra una breu descripció del funcionament del comandament i finalitza l'execució. Ignora la resta d'opcions.