Removable media -> (auth|panic) key
This commit is contained in:
parent
c6678b5026
commit
11c0da1f9c
@ -5,9 +5,9 @@
|
||||
The pam\_panic PAM module shall protect people who have value data on their computer. It provides a panic function.
|
||||
|
||||
## How it works
|
||||
There exist a good and a bad flash drive.
|
||||
The good flash drive will let you pass to the password prompt.
|
||||
The bad flash drive will execute a reboot, poweroff and/or erase the luksHeader which will make your luksContainer undecryptable to anyone.
|
||||
There are two removable media which work as keys: One is the auth key and one is the panic key.
|
||||
The auth key will let you pass to the password prompt.
|
||||
The panic key will execute a reboot, poweroff and/or erase the luksHeader which will make your luksContainer undecryptable to anyone.
|
||||
|
||||
## Installation
|
||||
You need gcc or something similar.
|
||||
|
Binary file not shown.
Binary file not shown.
@ -22,7 +22,7 @@ LICENSE : GNU-GPLv3
|
||||
#ifdef POWEROFF
|
||||
#ifdef CRYPTSETUP
|
||||
|
||||
#define ASK "Please enter your secret removable media to decrypt the firewall and access the mainframe. "
|
||||
#define ASK "Please enter your secret key to decrypt the firewall and access the mainframe. "
|
||||
|
||||
|
||||
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char *argv[])
|
||||
@ -127,28 +127,28 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons
|
||||
free(serious_arg);
|
||||
|
||||
|
||||
// Check if serious device exist
|
||||
// Check if panic key exist
|
||||
if(serious && access(serious_dev, F_OK) == -1){
|
||||
pam_syslog(pamh, LOG_ALERT, "ALERT for argument \"serious\": Device doesn't exist.\n");
|
||||
return (PAM_IGNORE);
|
||||
}
|
||||
|
||||
|
||||
// Prompt for removable media
|
||||
// Prompt for (auth|panic) key
|
||||
int8_t counter = 0;
|
||||
while(access(allowed, F_OK) == -1 && access(rejected, F_OK) == -1){
|
||||
pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, &resp, ASK);
|
||||
if(++counter >= 3){
|
||||
pam_syslog(pamh, LOG_NOTICE, "Couldn't identify removable media. 3 tries.");
|
||||
pam_syslog(pamh, LOG_NOTICE, "Couldn't identify any keys. 3 tries.");
|
||||
return (PAM_MAXTRIES);
|
||||
}
|
||||
}
|
||||
|
||||
// Allowed removable media? OK!
|
||||
// Auth key? OK!
|
||||
if(access(allowed, F_OK) != -1)
|
||||
return (PAM_SUCCESS);
|
||||
|
||||
// Rejected removable media? PANIC!!1
|
||||
// Panic key? PANIC!!1
|
||||
if(access(rejected, F_OK) != -1){
|
||||
|
||||
if(serious){
|
||||
|
Loading…
Reference in New Issue
Block a user