Implementación del API HIBP - sar-05/PIA_HIBP GitHub Wiki

Descripción

El API se llama Have I Been Pwned (HIBP), la cual principalmente informa si un correo ingresado ha pasado por un “data breach”, o cómo también se conoce, escape o fuga de datos. Se necesita pagar al API de HIBP para poder hacer consultas. Nosotros escogimos el más barato que ofrece 10 consultas por minuto. El API también puede trabajar por dominio, el cual te devuelve el alias del email al que ha tenido un “data breach” y los dominios de las páginas web donde sucedió el “data breach”; así como ingresar la contraseña y que devuelva si ha estado en un “data breach”, pero nosotros trabajaremos con el parámetro que busca “data breaches” por correo ingresado.

Justificación

El resultado que se espera con el API de HIBP es el de poder obtener información sobre “data breaches” con las personas que nos rodean. Se quiere saber la razón de usuarios que han sufrido la filtración de datos por persona encuestada, para principalmente concientizar a estos sobre la información recabada por HIBP. Se obtendrá el nombre de la página donde sucedió el “data breach”, la fecha cuando sucedió, los tipos de datos que se filtraron, el número de correos filtrados en el “data breach”, si la filtración es verificada, si la filtración se considera sensible, si la filtración fue causado por una campaña de malware, y una descripción detallado sobre el breach. Con esta información podemos concluir varios aspectos relacionados con “data breaches” con usuarios de nuestra comunidad.

Acceso y Conexión

Para acceder al API se usa como endpoint GET ‘https://haveibeenpwned.com/api/v3/breachedaccount/{account}’, en donde account va el correo; más el parámetro ‘?truncateResponse=false’ y como header va como diccionario los siguientes elementos: el hibp key, que se proporciona al comprar la suscripción, el user agent, el cual es py script y finalmente accept con valor 'application/json', el cual sirve para que se nos brinde más datos aparte del nombre donde ocurrió la filtración, en caso que haya una filtración.