Seguridad de Arduino en la Domótica

Recientemente comencé con un proyecto de domótica, estoy creando un sistema para abrir una puerta con un lector RFID (si, básico) en la parte de hardware no me significó mucho trabajo, y en la parte de código, comencé con uno de este proyecto: MFRC522 Library Cheap RC522 rfid Reader Door Unlock Project - Project Guidance - Arduino Forum

Actualmente estoy implementando algunas mejoras en temas de seguridad y modificandolo a mis necesidades.
Pero a medida que avanzaba con el proyecto, me surgieron algunas dudas, las que quiero exponer aquí;

Primero, aclarar que sé que ningún sistema es 100% seguro, pero siempre hay cosas que mejorar, comenzando sobre esa base, estaba pensando, a raiz del sistema RFID, ¿qué sucedería si una persona, que sabe que el sistema corre bajo Arduino, y tiene los conocimientos básicos necesarios obtiene acceso a introducir su propio código? En teoría lo que creo, es que una persona podría crear un código "abriendo" todos pines de arduino y obtener acceso a lo que sea que yo quiera mantener seguro. Como este es un ejercicio teórico que hice, no quiero entrar en detalles sobre la protección externa que podría tener la placa, que pueden ser muchas.

Buscando información al respecto no encontré nada relacionado con este problema teórico. Pero leyendo algunos artículos, llegué a la conclusión que la solución podría venir desde el bootloader (aúnque no estoy totalmente seguro). He leído en muchas ocasiones argumentos del tipo "Arduino es un proyecto de codigo libre" lo que no quiere decir que tiene que ser inseguro. Por lo mismo una de las soluciones que se me ocurren es; sabiendo que el bootloader es el que se encarga de administrar el código que se sube a la memoria, hacer que este permita la verificación de un parámetro con una clave para validar el nuevo código y así permitir o denegar un nuevo script. Además si no existe una clave, el sistema trabajaría en modo desarrollador (con funciona actualmente Arduino)

Intentaré explicarme mejor:

Modo Desarrollador
Bootloader [No Verifica] ---> [Código sin clave] --> Permite la carga de código.

Modo Producción
Bootloader[Verifica] ----> [código con clave asignada]
Subir nuevo código ----> Bootloader[Verifica la nueva clave con la clave en el codigo actual] (Permitiendo o bloqueando el acceso según corresponda)

No estoy seguro si sería el bootloader el encargado de hacer algo como esto, ni si es posible su implementación pero megustaría saber sus opiniones al respecto.

saludos!