Me parece que una alternativa útil o un complemento a la función tradicional de detonación de puertos, fwknop, etc., para un sistema que requiera solo un acceso ocasional, sería:
- Configura un teclado de una sola vez y una clave precompartida.
- Almacene una copia de esa almohadilla y esa clave precompartida en el servidor a proteger, y mantenga una copia de cada una a mano.
- Mantenga todas las copias de esas claves tan privadas como sea posible (esto debería ser evidente).
- Haga arreglos para que el servidor pueda recibir mensajes SMS (texto) de una lista blanca de números de teléfono, descartando todos los demás.
- Los SMS entrantes con límite de velocidad de cada número incluido en la lista blanca agregando un retraso progresivamente mayor antes del procesamiento.
- Haga que el servidor procese los SMS en consecuencia:
- Si descifrar el contenido del SMS con la clave actual del teclado de un solo uso, se obtiene un mensaje en un formato específico, que contiene un número de puerto, un protocolo y la clave precompartida, entonces:
- Eliminar la clave actual del teclado de una sola vez, y hacer que la siguiente clave sea la clave actual.
- Enviar un SMS de respuesta, "OK"; y
- Permitir que se realice una nueva conexión de entrada al servidor en ese puerto bajo ese protocolo hasta que se haya realizado una conexión de este tipo o haya transcurrido un tiempo de espera preconfigurado (por ejemplo, 5 minutos).
- de lo contrario:
- No hagas nada.
- Si descifrar el contenido del SMS con la clave actual del teclado de un solo uso, se obtiene un mensaje en un formato específico, que contiene un número de puerto, un protocolo y la clave precompartida, entonces:
Tengo dos preguntas:
- ¿Existe todavía un sistema de este tipo, preferiblemente en forma FOSS?
- Además de, quizás, la no idoneidad para los casos de uso que requieren grandes cantidades de conexiones entrantes, ¿cuáles son las fallas en tal sistema?