Ich habe ein Programm, das zwei Dateien XORs zusammen mit einer Time-Pad-Verschlüsselung. Da die Schlüsseldatei so sensibel ist, möchte ich keine Spuren der Schlüsseldatei auf der Festplatte des Computers anzeigen, da dies die Sicherheit beeinträchtigen könnte.C - Ausführen eines Programms im RAM
Die Frage ist, wie führe ich das Programm im RAM, um Spuren auf der HD zu vermeiden? Enthält das Ausführen des Programms von einem Flash-Laufwerk Spuren der Schlüsseldatei auf dem Flash-Laufwerk?
Unten ist, wie die Schlüsseldatei im Programm behandelt wird:
/* 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);
ich auf eine inram
Funktion kam, als diese googeln, aber das scheint nicht zu sein, was ich brauchte.
Vielen Dank! Das scheint genau das zu sein, was ich brauche. Ihre Annahmen waren völlig richtig. – youjustreadthis
Hallo nochmal, ich habe vor kurzem einen anderen Thread: http://stackoverflow.com/questions/12990214/is-this-usage-of-mlockall-correct#12990658 und bekam dort eine verwirrende Antwort, die dem zu widersprechen schien was du hast sagte hier. Könnten Sie vielleicht einen Blick darauf werfen und Ihre Meinung zu der Antwort geben? @ Geoff Reedy – youjustreadthis