Как сделать парольную систему для доступа к файлам?
Задание по предмету "Информационная безопасность" звучит так:
Разработать паролшьную систему для доступа к файлам.
Вот так преподователь ответил на мой вопрос, что именно требуется в этом задание:
Разработать такую систему, которая позволяет получить доступ к файлам только тому, кто владеет какой-либо секретной информацией (пароль, ключ, и т д)
Задание не привязанно к какой-либо системе, но так, как у меня linux, то буду делать под linux.
У меня есть несколько вариантов, как такое реализовать:
1)Создать папку, настроить права доступа к ней. - слишком просто для студента 4 курса.
2)Шифровать файлы тоже не подходит (есть отдельное задание, посвященное этому).
3)Шифровать файлы, и подписывать с помощью ЭЦП - да, прочитать может только знающий пароль, проверить, что редактировал только хозяин - тоже можно. Но попортить злоумышленник их все равно можно.
более менее адкватная(интересная) идея:
Создать папку, запретить все доступ к ней, даже на чтение. Написать демона, который ее охраняет (зашифровывае/расшифровывает/меняет права). Чтобы получить доступ, нужно вставить флешку, на которой записан ключ.
Демон проверяет этот ключ, открывает доступ и расшифровывает папку (кстати, как делать это быстро, чтобы user не ждал, пока расшифруются 10 гигов).
Защита от порчи была и будет только одна. В современных системах контроля версий просто создается новая копия файла (полная или разностная не суть) и ведется в ней работа, до какого-то события удаления старых копий.
доступ ко всем этому можно хоть пароль, хоть физический ключ, в любом варианте можно увидеть, кто трогал файл и зачем.
Шифрование вещь хоть иногда полезная, но для хранения файлов чаще всего большой роли не играет т.к. для кражи информации всегда можно сфоткать экран монитора (свой, соседа, директора).
Если прям вот сильно охото похвастаться или подтянуться, идите в ногу со временем: сканер отпечатка пальца, сканер радужки или банально приложение на смартфоне считывающее QR код, после чего документ открывается.
Утилита cryptsetup в принципе позволяет не писать своего демона.
Там достаточно выделить раздел диска, который будет зашифрован. Далее можно создать несколько ключей для открытия одного и того же файла.
Или сделать по принципу - 1 пользователь имеет свой раздел плюс 1 ключ доступа + 1 мастер ключа администратора.