Importante: Una vez transcurrida la fecha límite para este evento, podrá encontrar las soluciones de VBScript, Windows PowerShell y Perl en el Script Center. |
En "¿Llama a eso una contraseña segura?", los participantes deben escribir un script que, basado en los criterios facilitados, establezca la fortaleza de una contraseña.
| Acerca de este evento | |
| Escenario del evento | |
| Cómo participar |
División | nivel avanzado |
Fecha límite | Martes, 26 de febrero de 2008 (08:00 a. m., hora del Pacífico) |
Puntos concedidos | 10 |
En los tiempos que corren, se anima a la gente a usar contraseñas "seguras" siempre que necesiten crear o modificar una. Es un buen consejo, pero eso nos lleva también a hacernos un par de preguntas: 1) qué es exactamente una contraseña segura y 2) en la misma línea, ¿cómo podemos decir si una contraseña determinada es segura o no? El Evento 5 está pensado para poder dar respuesta a estas dos preguntas.
En este evento deberá crear un script que pueda determinar la "fortaleza" de una contraseña. La fortaleza de la contraseña se determinará sometiendo dicha contraseña a las comprobaciones siguientes. El script debe realizar todas las acciones que se exponen a continuación:
| • | Asegurarse de que la contraseña no es una palabra real. La contraseña rhubarb dará error en la prueba porque rhubarb es una palabra real. Para determinar si una palabra es o no una palabra real, use siempre el archivo WordList.txt, una lista de palabras oficial que se incluye como parte del Paquete de Participantes de los Juegos de Scripting. (Asegúrese de poner este archivo a la carpeta C:\Scripts.) |
| • | Asegurarse de que la contraseña, menos la última letra, no es una palabra real. Por ejemplo, la contraseña rhubarb5 generará un error en esta prueba porque, si elimina la última letra, el valor restante de la cadena, rhubarb, es una palabra real. |
| • | Asegurarse de que la contraseña, menos la primera letra, no es una palabra real. Por ejemplo, la contraseña @rhubarb generará un error en esta prueba porque, si elimina la primera letra, el valor restante de la cadena, rhubarb, es una palabra real. |
| • | Asegurarse de que la contraseña no se limita a sustituir el valor 0 (cero) por la letra o (ni la O mayúscula ni la o minúscula). Por ejemplo, la contraseña t00lbox dará error en esta prueba. ¿Por qué? Porque si reemplaza cada uno de los ceros por la letra O, obtendrá una palabra real: toolbox. |
| • | Asegurarse de que la contraseña no se limita a sustituir el valor 1 (uno) por la letra l (ni la L mayúscula ni la l minúscula). Por ejemplo, la contraseña f1oti11a dará error en esta prueba. ¿Por qué? Porque si reemplaza cada uno de los unos por la letra L, obtendrá una palabra real: flotilla. |
| • | Asegurarse de que la contraseña está compuesta por 10 caracteres como mínimo, pero no por más de 20. La contraseña rhubarb generará un error en esta prueba porque sólo tiene 7 caracteres. |
| • | Asegurarse de que la contraseña incluye por lo menos un número (dígitos del 0 al 9). La contraseña rhubarb%$qwC generará un error en esta prueba porque no incluye ningún número. |
| • | Asegurarse de que la contraseña contiene por lo menos una letra mayúscula. La contraseña rhubarb generará un error en esta prueba porque no contiene ninguna letra mayúscula. |
| • | Asegurarse de que la contraseña contiene por lo menos una letra minúscula. La contraseña RHUBARB generará un error en esta prueba porque no contiene ninguna letra minúscula. |
| • | Asegurarse de que la contraseña contiene por lo menos un símbolo. Puede tratarse de cualquier carácter que no sea ni una letra mayúscula, ni una letra minúscula, ni un número; que podría ser, entre otros, los símbolos ~, @, #, $, % y ^. |
| • | Asegurarse de que la contraseña no contiene cuatro (o más) letras minúsculas seguidas. La contraseña rhubARB generará un error en esta prueba porque contiene cuatro letras minúsculas (rhub) seguidas. |
| • | Asegurarse de que la contraseña no contiene cuatro (o más) letras mayúsculas seguidas. La contraseña rHUBArb generará un error en esta prueba porque contiene cuatro letras mayúsculas (HUBA) seguidas. |
| • | Asegurarse de que la contraseña no contiene ningún carácter duplicado. La contraseña rhubarb generará un error en esta prueba porque contiene dos erres y dos bes. |
Nota:. Sí, es cierto, son muchas cosas que recordar. Para ayudarle a hacer un seguimiento de todo, hemos incluido una lista de comprobación (Password_Checklist.doc) en el Paquete de Participantes. |
Para completar este evento correctamente, su script debe aceptar una contraseña que sea válida como argumento de la línea de comandos y luego valorar esa contraseña. Por ejemplo, si deseamos valorar la fortaleza de la contraseña rhubarb33! ejecutaríamos su script con un comando similar a éste:
myscript.vbs rhubarb33!
Su script debe empezar con una puntuación para la contraseña de 13 puntos, lo que significa que una contraseña que supere todas las comprobaciones obtendrá una puntación final de 13 puntos. Tras recuperar la contraseña de la colección de argumentos (pasaremos el script para sólo una contraseña cada vez), su script deberá ejecutar cada una de las comprobaciones de contraseña mencionadas anteriormente. Si la contraseña supera una comprobación concreta (por ejemplo, la prueba que comprueba si la contraseña es una palabra real), el script pasará sencillamente a la prueba siguiente. Es un proceso bastante fácil.
Pero, ¿qué pasa si la contraseña no logra pasar una comprobación concreta? Por ejemplo, la contraseña rhubarb no pasará la comprobación que dice que una contraseña no puede contener cuatro letras minúsculas consecutivas. En ese caso, el script deberá hacer dos cosas:
| • | Restar 1 de la puntuación de la contraseña. Por ejemplo, si la puntuación de la contraseña es 11 y el script genera error en la comprobación de cuatro letras minúsculas consecutivas, la puntuación contraseña deberá bajar a 10. |
| • | Devolver un mensaje que indique que la contraseña propuesta ha generado un error en esta prueba. Por ejemplo, en este caso se devolvería un mensaje parecido a éste: Four consecutive lowercase letters in password. |
Después de todas las comprobaciones, el script deberá valorar la contraseña mediante la escala siguiente:
| • | Una puntuación menor de 6 representa una contraseña débil. |
| • | Una puntuación de 7, 8, 9 ó 10 representa una contraseña medianamente fuerte. |
| • | Una puntuación de 11 o más representa una contraseña segura. |
Se deberá devolver la puntuación y la valoración de la contraseña. Por ejemplo:
A password score of 4 indicates a weak password.
Como ejemplo, se muestra a continuación el tipo de resultado que debe obtenerse al comprobar la contraseña rhubarb33!:
No uppercase letters in password. Four consecutive lowercase letters in password. Duplicate letters in password. A password score of 10 indicates a moderately-strong password.
Esto es todo lo que hay que hacer.
Una vez que haya completado su script, haga clic en el vínculo correspondiente para enviar su participación:
| • | |
| • | |
| • |
Si el vínculo no abre automáticamente un mensaje con una dirección predeterminada, envíe un correo electrónico a scripter@microsoft.com y en el asunto del mensaje, escriba Advanced VBScript: Event 5; Advanced Windows PowerShell: Event 5; o Advanced Perl: Event 5.
Lo único que debe hacer es pegar su código en el cuerpo del mensaje y, a continuación, enviar el correo. También puede incluir los datos siguientes:
| • | Un nombre o sobrenombre que podamos usar para identificarle al anunciar los ganadores de los Juegos de Scripting. |
| • | El nombre del país al que le gustaría representar. Puede ser su país de nacimiento o el país en el que viva actualmente, pero no tiene por qué ser así; puede representar al país que desee. |
| • | El nombre del grupo de usuarios del que sea miembro. Esta información debe incluirse en caso de que su grupo de usuarios tome parte en la Prueba de Grupos de Usuarios. |
Sólo necesita escribir estos datos en la parte superior del correo electrónico. Si lo hace así, su correo electrónico (suponiendo que esté enviando su participación para la división de VBScript) probablemente tendrá este aspecto:
Ken Myer
USA
Northern Iowa User Group
For i = 1 to 100
Wscript.Echo i
Next