Tenemos puertas bloqueadas por RFID en la universidad. Cómo puedo hacer que mi teléfono Android emule mi tarjeta de identidad de estudiante y abrir las puertas bloqueadas por RFID con él?

Depende.

TLDR - no realmente no, demasiado complicado técnicamente, comercialmente y en cuanto a seguridad.

Sin embargo, supongamos que quieres considerarlo...

Lo primero es, ¿qué tipo de RFID es? Suelen existir 3 tipos y normalmente sólo dos de ellos se utilizan en los sistemas de control de acceso físico. Se denominan imaginativamente Baja Frecuencia y Alta Frecuencia: así LF y HF. La UHF (ultra) existe pero se utiliza para la identificación de artículos de largo alcance para la logística y el comercio minorista y no para el control de accesos.

¿Entonces cómo saberlo? Tome su teléfono Android NFC y descargue la aplicación NXP NFC Tag writer, y utilícela para intentar leer la tarjeta de identificación que utiliza en los lectores para acceder a la universidad.

Si la aplicación responde y da alguna información, (dará al menos la tarjeta Unique Id - UID). Entonces se trata de una tarjeta HF. Si no tienes suerte entonces es una tarjeta LF y no funcionan con teléfonos NFC, debido a la física de la inducción de la corriente electromagnética y el tamaño de la bobina yada, yada.

Así que asumiendo que es una tarjeta HF entonces la app te dará información sobre el fabricante de la tarjeta y algunos datos básicos sobre cómo está formateada.

Algunas veces el sistema de control de acceso sólo utiliza el UID de la tarjeta para autenticarte. En cuyo caso sería una cuestión bastante sencilla de crear una aplicación HCE que 'falsifique' cualquier UID que quieras. Así que sería posible en este caso tomar el UID de su aplicación de lectura de la tarjeta y tratar. **Descargo de responsabilidad** No estoy abogando por esto en absoluto - si esto funciona entonces usted está eludiendo los controles de seguridad establecidos por la institución y probablemente estaría en violación de los términos y condiciones que acordó al obtener la tarjeta.

Si la seguridad es más fuerte y la autenticación realmente utiliza los datos de la tarjeta para autenticarle en lugar de utilizar sólo el UID de la tarjeta como una búsqueda, entonces, (si hipotéticamente usted fuera a hacer esto - que no estoy recomendando, por supuesto) tendría que entender la disposición de los datos - y si se ha implementado correctamente, entonces también será encriptado. En cuyo caso tendrás que entender el esquema de encriptación y autenticación, la disposición de los datos, y el protocolo de intercambio de datos y luego implementarlos en una aplicación Android.

Todo esto es posible, por supuesto, y como otras respuestas han insinuado el software puede ser un poco "peludo", especialmente si se trata de implementar protocolos propietarios, como Mifare Classic de NXP o iClass de HID. No sólo es un código muy complicado, sino que además estarías rompiendo los derechos de autor para hacerlo y probablemente no encontrarías una buena especificación para ellos tampoco