Ho un programma che raggruppa due file XOR utilizzando una crittografia a tempo. Poiché il file di chiavi è di natura così sensibile, non voglio che alcuna traccia del file di chiavi appaia sul disco rigido del computer in quanto ciò potrebbe compromettere la sicurezza.C - Esecuzione di un programma nella RAM
La domanda è: come si esegue il programma nella RAM in modo da evitare la presenza di tracce sull'HD? In alternativa, l'esecuzione del programma da un'unità flash contiene tracce del file di chiavi sull'unità flash?
seguito è riportato come il file di chiavi è trattato nel programma:
/* Check if keyfile can be opened. */
if((keyfile = fopen(argv[3], "rb"))== NULL)
{
printf("Can't open keyfile.\n");
printf("Please enter a valid filename.\n");
printf("USAGE: OTP <source file> <output file> <keyfile>\n");
perror("Error");
return(1);
}
/* Get size of keyfile */
fstat(fileno(keyfile), &keybuf);
/* Check if keyfile is the same size as, or bigger than the sourcefile */
if((keybuf.st_size) < (statbuf.st_size))
{
printf("Source file is larger than keyfile.\n");
printf("This significantly reduces cryptographic strength.\n");
printf("Do you wish to continue? (Y/N)\n");
fgets(buffer, 20, stdin);
sscanf(buffer, "%c", &ans);
if(ans == 'n' || ans == 'N')
{
return (1);
}
if(ans == 'y' || ans == 'Y')
{
printf("Proceeding with Encryption/Decryption.\n");
}
/* Encrypt/Decrypt and write to output file. */
while(count < (statbuf.st_size))
{
key=fgetc(keyfile);
data=fgetc(sourcefile);
output=(key^data);
fputc(output,destfile);
count++;
}
/* Close files. */
fclose(keyfile);
fclose(sourcefile);
fclose(destfile);
mi sono imbattuto in una funzione inram
quando googling questo, ma che non sembrano essere quello che mi serviva.
Grazie! Questo sembra essere esattamente ciò di cui ho bisogno. Le tue ipotesi erano giuste. – youjustreadthis
Ciao di nuovo, ho recentemente un altro thread: http://stackoverflow.com/questions/12990214/is-this-usage-of-mlockall-correct#12990658 e ho ottenuto una risposta confusa che sembrava contraddire ciò che hai detto qui. Potresti dare un'occhiata e dare la tua opinione sulla risposta? @Geoff Reedy – youjustreadthis