1

Based in UK.

I manage a certification website that allows users to register an account and complete a course, before doing so they explicitly agree to the website's privacy policy and GDPR. The website collects their name and email address, along with any courses they have have completed / passed.

Users are assigned (pdf) certificates via the website that contain a unique number. I now want to setup a publicly accessible search function that enables employers, or potential employers to validate the authenticity of these certificates based on this unique number, similar to CompTIA, Linux Training and others.

The idea is that the (potential) employers will receive a copy of the certificate and enter this unique number on the website. A database check will be performed on this unique number and if it's valid, the user's name, email address and certification date will be displayed to the person performing the search, along with a This is a valid certificate number , message.

If the unique number isn't found a standard not found message will be displayed.

Do I need to be concerned about any GDPR or privacy issues here, or does it all sound ok?

1
  • e-mail address would be a rather useless thing: people change e-mail addresses.
    – Trish
    Commented Nov 4, 2021 at 15:17

1 Answer 1

3

GDPR definitely applies. Your scenario seems to raise two questions:

  • What is the legal basis for processing?
  • Are the security measures appropriate?

Legal basis

Every processing activity of personal data requires a legal basis. Most well-known is consent, but there are six categories in Art 6(1) GDPR including legitimate interests and necessity for performing a contract with the data subject. Conditions on consent are laid out in Art 7 GDPR.

You say that data subjects “explicitly agree to the website's privacy policy and GDPR”. The GDPR does not generally expect “agreement” to a privacy policy, as information per Art 13 is an unilateral notice. Such general agreement also cannot constitute valid consent.

In the context of certifications, the legal basis would likely be necessity for performing a contract with the data subject: You were contracted to provide this validation service to the data subjects. You should however make it clear which information will be displayed on the validation page (other than a valid/not valid) response. For example, I am concerned that showing the email address would not be strictly necessary for providing the validation service. You should also consider whether this validation service is a core component of your certification service, or whether there should be an opt-in or opt-out here.

Security Measures

The GDPR requires that you implement appropriate security measures, “taking into account the state of the art, the costs of implementation and the nature, scope, context and purposes of processing as well as the risks of varying likelihood and severity for the rights and freedoms” of the data subjects (see Art 32 GDPR).

This gives you a lot of leeway to determine what measures are appropriate, but also criteria that you must consider in your determination. A number of security measures are explicitly suggested and must also be considered:

  • pseudonymization and encryption
  • ensuring confidentiality, integrity, availability, and resilience of your systems
  • ability to restore the service (e.g. backups)
  • processes for regularly testing and evaluating your measures

Aside from generic IT security measures like backups and providing the service over a HTTPS connection, I would be concerned about “insecure direct object reference” style attacks on the database. If I know that certification no 1234 exists, I could try to get the information for other numbers like no 1233 and so on. This would leak personal data.

Basic defenses could include requiring additional information such as the data subject's name to be provided, or using anti-bot measures such as captchas and rate limits.

However, the real solution is to avoid sequential IDs, and to generate sufficiently large tokens with a cryptographically secure random number generator. Instead of a “certification number”, it would be better to view this as a “validation code”.

1
  • Also, doing it the other way around - providing the user name and date of completion and showing the verification number is more secure because the attacker has to know those already and gets no really useful info even if they do. Yes, the verification no is personal information but it’s not particularly sensitive.
    – Dale M
    Commented Nov 4, 2021 at 20:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .