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 | ||
|---|---|---|
| Nº | 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.