Pull printing is the set of technologies and processes that allow print jobs to be released according to specific conditions; typically user authentication and proximity to a printer. We developed an open-source pull printing infrastructure based on Google CloudPrint that leverages the OpenID Connect protocol and the electronic IDentity (eID) card to protect users prints with a second-factor authentication. Our goal is to prevent print-related data breaches and tackle the challenges that hinder the widespread adoption of more secure printing solutions: costs and user experience.
Our prototype implementation based on the Italian eID is available under license Apache-2.0 on GitHub.
In order to provide an open, flexible and secure pull printing service for enterprises, we decided to extend Google CloudPrint capabilities with a multi-platform, printer-agnostic system that authenticates employees on a mobile application via OpenID Connect; in case of sensitive documents, a second-factor authentication is performed with an eID card.
Figure 1 provides a high-level view of the architecture. The enterprise is represented as a set of employees with their eID cards and workstations, an IT administrator in charge of the pull printing service, the enterprise printers and all the components that orchestrate our solution:
Once the pull printing service is deployed and operating in the enterprise, enrolled employees can use the service to print sensitive data as reported in Figure 2; a lock is shown in the figure when the employee needs to be authenticated to perform the corresponding operation.
Initially (Step 1), the employee needs to authenticate with his enterprise credentials on a Google Suite service (e.g., Docs) or, if not already, in his CloudPrint installation; then, select one or more document to print and the Virtual Printer as printing device. Google CloudPrint will send the print job(s) and the employee enterprise account email to the print endpoint (Step 2); there, documents are queued.
When the employee moves to the selected printer in the enterprise, he needs to (Step 3):
Finally, the enterprise printer will receive and print the documents (Step 4). The Print Releaser will notify the status to the employee.
Matteo Leonelli
JuniorResearcher@Security&Trust - Fondazione Bruno Kessler, Trento, Italy leonelli@fbk.euUmberto Morelli
Collaborator@Security&Trust - Fondazione Bruno Kessler, Trento, Italy umorelli@fbk.euGiada Sciarretta
Researcher@Security&Trust - Fondazione Bruno Kessler, Trento, Italy giada.sciarretta@fbk.euSilvio Ranise
Head of Security&Trust @ Fondazione Bruno Kessler, Trento, Italy ranise@fbk.eu