tex: extend section on hibp integration
This commit is contained in:
parent
7e4fcb8d95
commit
5ddcd344d8
@ -705,22 +705,38 @@ records would be dropped entirely.
|
|||||||
|
|
||||||
Troy Hunt's \textbf{Have I Been Pwned?} online service
|
Troy Hunt's \textbf{Have I Been Pwned?} online service
|
||||||
(\url{https://haveibeenpwned.com/}) has been chosen as the online source of
|
(\url{https://haveibeenpwned.com/}) has been chosen as the online source of
|
||||||
compromised data. The service offers public APIs that are protected by API keys
|
compromised data. The service offers public APIs, which were originally (and it
|
||||||
due to abuse-prevention reasons.
|
was the intention of their author that they stay that way) provided free of
|
||||||
|
charge and with little-to-no rate-limiting. A major overhaul in this regard has
|
||||||
|
been revealed in November of 2022, where in addition to a new rate-limit
|
||||||
|
system, different-levels-of-symbolic fees were introduced to obtain the API
|
||||||
|
keys. These Apparently, the top consumers of the API seemed to utilise it
|
||||||
|
orders of magnitude more than the average person, which led Hunt to devising a
|
||||||
|
new, tiered API access system in which the \emph{little guys} would not be
|
||||||
|
subsidising the \emph{big guys}\cite{hibpBillingChanges}. Additionally, the
|
||||||
|
symbolic fee of \$3.50/mo for the entry-level, 10 requests per minute API key
|
||||||
|
was meant to serve as a small barrier for (mis)users with nefarious purposes,
|
||||||
|
but pose practically no obstacle for \emph{legitimate} users, which is entirely
|
||||||
|
reasonable.
|
||||||
|
|
||||||
The application's \texttt{hibp} module and database representation models
|
The application's \texttt{hibp} module and database representation attempts to
|
||||||
the values returned by this API, which allows searching in large breaches using
|
model the values returned by this API and declare actions to be performed upon
|
||||||
email addresses.
|
the data, which is what facilitates the breach search functionality in the
|
||||||
|
program.
|
||||||
|
|
||||||
The architecture there is relatively simple: the application administrator
|
The architecture is relatively simple: the application administrator configures
|
||||||
configures an API key for the HIBP service, the user enters the query
|
an API key for the HIBP service via the management interface, the user enters
|
||||||
parameters, the application constructs a query, calls the API and waits for a
|
the query parameters and the application then constructs the API call that is
|
||||||
response. As the API is rate-limited based on the key supplied, this can pose
|
sent to the API, awaiting the response. As the API is rate-limited
|
||||||
an issue and it has not been fully resolved in the UI. The application then
|
(individually, based on the API key supplied), this \emph{could} pose an issue
|
||||||
parses the returned data and binds it to the local model for validation. If
|
at high utilisation times, and thus needs to be handled in the backend as well
|
||||||
that goes well, the data is saved into the database as a cache and the search
|
as in the UI.
|
||||||
query is performed on the saved data. If it returns anything, it is displayed
|
|
||||||
to the user for browsing.
|
After a response from the API server arrives, the application parses the
|
||||||
|
returned data and attempts to \emph{bind} it to the pre-programmed \emph{model}
|
||||||
|
for validation. If the data can be successfully validated, it is saved into the
|
||||||
|
database as a cache and the search query is performed on the saved data. The
|
||||||
|
result is then displayed to the user for browsing.
|
||||||
|
|
||||||
|
|
||||||
\n{1}{Deployment recommendations}\label{sec:deploymentRecommendations}
|
\n{1}{Deployment recommendations}\label{sec:deploymentRecommendations}
|
||||||
|
@ -413,4 +413,12 @@ institution = {International Organization for Standardization}
|
|||||||
note={{Available from: \url{https://developers.redhat.com/blog/2019/01/15/podman-managing-containers-pods} [viewed 2023-07-24]}}
|
note={{Available from: \url{https://developers.redhat.com/blog/2019/01/15/podman-managing-containers-pods} [viewed 2023-07-24]}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{hibpBillingChanges,
|
||||||
|
author = {{Troy Hunt}},
|
||||||
|
year = 2022,
|
||||||
|
title = {{The Have I Been Pwned API Now Has Different Rate Limits and Annual Billing}},
|
||||||
|
howpublished = {[online]},
|
||||||
|
note={{Available from: \url{https://www.troyhunt.com/the-have-i-been-pwned-api-now-has-different-rate-limits-and-annual-billing/} [viewed 2023-08-15]}}
|
||||||
|
}
|
||||||
|
|
||||||
% =========================================================================== %
|
% =========================================================================== %
|
||||||
|
Reference in New Issue
Block a user