- Ανοικτή Διακυβέρνηση - http://www.opengov.gr/consultations -

Άρθρο 25 Απαιτήσεις του ενδιάμεσου συστήματος ελέγχου για το διαδικτυακό παιγνιο – Γενική Αρχιτεκτονική

[1]

Εικόνα 1. Τοπολογία τεχνικής λύσης

Ο πάροχος υπηρεσιών τυχερών παιγνίων μέσω διαδικτύου έχει την υποχρέωση να υλοποιήσει το ενδιάμεσο σύστημα ελέγχου και την πύλη ελέγχου σε πραγματικό χρόνο (Gateway), σύμφωνα με τις προδιαγραφές που παρουσιάζονται στη συνέχεια.

Το ενδιάμεσο σύστημα ελέγχου έχει σαν κύριες λειτουργίες τη συλλογή των δεδομένων από την κεντρική πλατφόρμα του παρόχου (data capture), την ασφάλεια των δεδομένων αυτών (ακεραιότητα, αυθεντικότητα, εμπιστευτικότητα, διαθεσιμότητα) (data sealing) και την οριστική αποθήκευσή τους στη διάταξη ασφαλούς αποθήκευσης (Safe).

Μέσω της πύλης ελέγχου σε πραγματικό χρόνο, όλη η διαδικτυακή κίνηση των παικτών κατευθύνεται στην κεντρική πλατφόρμα του παρόχου.

Η Αρχή έχει πρόσβαση στη διάταξη ασφαλούς αποθήκευσης, προκειμένου να προσπελάσει τα δομημένα σύνολα δεδομένων που απαιτούνται για τον ελεγκτικό και εποπτικό της ρόλο.

Στη συνέχεια περιγράφονται αναλυτικά οι τεχνικές προδιαγραφές των παραπάνω συστημάτων, δίνοντας μεγαλύτερη έμφαση στα υποσυστήματα του ενδιάμεσου συστήματος ελέγχου και στην πύλη ελέγχου σε πραγματικό χρόνο (Gateway).

https://www.gamingcommission.gov.gr [2]).

Τα δεδομένα ακολουθούν την κωδικοποίηση UTF-8, ενώ όπου γίνεται αναφορά σε χρόνο, ακολουθείται το πρότυπο UTC.

[3]

Εικόνα 2. Διαδικασία σύνδεσης διαδοχικών πακέτων δεδομένων (chaining)

 

[4]

Εικόνα 3. Διαδικασία συμπίεσης και κρυπτογράφησης των δεδομένων

 

Στο δεύτερο βήμα πρέπει να παρέχεται η δυνατότητα ασυμμετρικής κρυπτογράφησης με περισσότερα του ενός δημόσια κλειδιά (πιστοποιητικά Χ.509), εφόσον αυτό ζητηθεί από την Αρχή.

Το ψηφιακό πιστοποιητικό το οποίο χρησιμοποιείται στην ανωτέρω διαδικασία δύναται να αντικαθίστανται με απόφαση της Αρχής.

https://www.gamingcommission.gov.gr [2]).

[5]Εικόνα 4. Μοντέλο δεδομένων για το αρχείο ελέγχου xml

 

https://www.w3.org/TR/xmlenc-core/ [6]) (xenc:EncryptedKey).
  • Αναφορά στα κρυπτογραφημένα δεδομένα σύμφωνα με το πρότυπο W3C XML Encryption (xenc:EncryptedData).
  • Οι πληροφορίες σύνδεσης των διαδοχικών πακέτων δεδομένων (chaining) (dsig:Manifest).
  • Η ψηφιακή υπογραφή του πακέτου δεδομένων, συμπεριλαμβανομένης και της χρονοσήμανσης του, σύμφωνα με το πρότυπο XAdES (dsig:Signature).
  • Παρακάτω παρουσιάζονται λεπτομέρειες για τη μεθοδολογία σύνταξης του αρχείου ελέγχου xml.

    /hgc:licenseholderId

    Αναγνωριστικό, μονοσήμαντο όνομα του Κατόχου της Άδειας.

    /hgc:generationDate

    Ημερομηνία και ώρα δημιουργίας του αρχείου ελέγχου.

    /hgc:manifestSequenceNumber

    Αύξων αριθμός του αρχείου ελέγχου (Ακέραιος αριθμός Ν >=1). Ταυτίζεται με τον αύξοντα αριθμό πακέτου δεδομένων.

    /hgc:metadata

    Μεταδεδομένα του αρχείου δεδομένων xml του πακέτου δεδομένων (συγκεντρωτικά δεδομένα).

    /hgc:metadata/hgc:numberOfRecords

    Αριθμός εγγραφών που περιέχονται στο αρχείο xml.

    /hgc:metadata/hgc:dateFirstRecord

    Ημερομηνία και ώρα της πρώτης εγγραφής στο αρχείο xml.

    /hgc:metadata/hgc:dateLastRecord

    Ημερομηνία και ώρα της τελευταίας εγγραφής στο αρχείο xml.

    /hgc:metadata/hgc:sizeUncompressed

    Μέγεθος του μη συμπιεσμένου αρχείου δεδομένων xml σε bytes

    /hgc:metadata/hgc:sizeCompressed

    Μέγεθος του συμπιεσμένου αρχείου δεδομένων xml σε bytes.

    /xenc:EncryptedKey

    Το στοιχείο <xenc:EncryptedKey> περιέχει το δυναμικά παραγόμενο συμμετρικό κλειδί (AES256), με το οποίο είναι ασυμμετρικά κρυπτογραφημένο το αρχείο δεδομένων, κάνοντας χρήση του δημόσιου κλειδιού της Αρχής (πιστοποιητικό X.509), σύμφωνα με το πρότυπο W3C XML Encryption. Το στοιχείο επίσης περιέχει ένα αναγνωριστικό όνομα για την αναγνώριση του συμμετρικού κλειδιού <xenc: CarriedKeyName>.

    Σύμφωνα με το πρότυπο W3C XML Encryption, η δομή του συγκεκριμένου στοιχείου θα πρέπει να είναι ως εξής:

    <xenc:EncryptedKey Id=»NameOfRegulator» xmlns=»http://www.w3.org/2001/04/xmlenc#»>

    < xenc:EncryptionMethod Algorithm=»http://www.w3.org/2001/04/xmlenc#rsa-1_5″/>

    <dsig:KeyInfo xmlns:ds=»http://www.w3.org/2000/09/xmldsig#»>

    <dsig:X509Data>

    <dsig:X509SubjectName>CN=Regulator, OU=Authority</dsig:X509SubjectName>

    </dsig:X509Data>

    </dsig:KeyInfo>

    <xenc:CipherData>

    <CipherValue>xyzi…rO+abc</CipherValue>

    </xenc:CipherData>

    <xenc:CarriedKeyName>K20</xenc:CarriedKeyName>

    </xenc:EncryptedKey>

    Στην περίπτωση που υπάρχουν περισσότερα πιστοποιητικά κρυπτογράφησης X.509 της/των ελεγκτικής(-ών) αρχής(-ών), τότε πρέπει να δημιουργηθούν περισσότερα στοιχεία <xenc:EncryptedKey>, τα οποία θα περιέχουν το ίδιο συμμετρικό κλειδί και όνομα, αλλά θα δείχνουν στο εκάστοτε πιστοποιητικό κρυπτογράφησης X.509 της ελεγκτικής αρχής (ds:X509SubjectName). Σαν αναγνωριστικό Id του στοιχείου <xenc:EncryptedKey>, θα δίνεται ένα αναγνωριστικό όνομα για την εποπτεύουσα αρχή για την οποία δημιουργείται το στοιχείο αυτό. Το αναγνωριστικό όνομα θα κοινοποιηθεί στον Κάτοχο της Άδειας από την Αρχή.

    Σαν όνομα του για την αναγνώριση του συμμετρικού κλειδιού <xenc: CarriedKeyName> χρησιμοποιούμε τον αύξοντα αριθμό του αρχείου ελέγχου (π.χ. 20), με την προσθήκη του προθέματος K (Key).

    /xenc:EncryptedData

    Αυτό το στοιχείο αντιπροσωπεύει την αναφορά στα κρυπτογραφημένα δεδομένα, σύμφωνα με το πρότυπο κρυπτογράφησης XML Encryption. Περιέχει τον αλγόριθμο κρυπτογράφησης (AES256), καθώς και την εσωτερική αναφορά στο συμμετρικό κλειδί, μέσω του ονόματός του <xenc: CarriedKeyName>.

    Η αναφορά στα κρυπτογραφημένα δεδομένα γίνεται μέσω ενός URI, το οποίο σχηματίζεται ως ακολούθως:

    • Τη διαδρομή URL του αρχείου zip. Η διαδρομή αντιστοιχεί στη δενδρική δομή φακέλων του Safe. Παράδειγμα:

    <licenseholder>_<licenseid>_<seqno>_<YYYYMMDD>_<hhmmss>.zip

    • Τη διαδρομή του συμπιεσμένου και κρυπτογραφημένου αρχείου δεδομένων data.bin μέσα στο αρχείο zip. Παράδειγμα:

    /data.bin

    Στο τελικό στοιχείο <xenc:EncryptedData> προστίθεται ένα αναγνωριστικό Id, βάσει του οποίου θα γίνει η σύνδεση των διαδοχικών πακέτων (chaining), όπως παρουσιάζεται παρακάτω στην περιγραφή του στοιχείου < dsig:manifest >.

    Συνεπώς, το στοιχείο <xenc:EncryptedData> θα έχει την παρακάτω μορφή:

    <xenc:EncryptedData xmlns:xenc=»http://www.w3.org/2001/04/xmlenc#» Id=»D20″>

    <xenc:EncryptionMethod Algorithm=»http://www.w3.org/2001/04/xmlenc#aes256-cbc»/>

    <dsig:KeyInfo xmlns:ds=»http://www.w3.org/2000/09/xmldsig#»>

    <dsig:KeyName>K20</dsig:KeyName>

    </dsig:KeyInfo>

    <xenc:CipherData>

    <xenc:CipherReference

    URI=»/<licenseholder>/<licenseid>/2019/01/01/<licenseholder>_<licenseid>_20_20190101_155502.zip/data.bin»/>

    </xenc:CipherData>

    </xenc:EncryptedData>

    Στο παραπάνω παράδειγμα, το αναγνωριστικό του στοιχείου <xenc:EncryptedData> (Id=»D20″), προκύπτει από τον αύξοντα αριθμό του πακέτου (20), με την προσθήκη του προθέματος D (Data), επειδή γίνεται αναφορά στο πακέτο δεδομένων.

    Στην περίπτωση που έπρεπε να γίνει κάποια αναφορά στο αρχείο ελέγχου (manifest), χρησιμοποιούμε τον αύξοντα αριθμό του αρχείου ελέγχου (20), με την προσθήκη του προθέματος C (Control).

    /dsig:manifest

    Για τη σύνδεση των διαδοχικών πακέτων (batches) μεταξύ τους χρησιμοποιείται το στοιχείο <dsig:Manifest>. Το στοιχείο αυτό προέρχεται από το πρότυπο XadES (XMLDSIG). Περιέχει δύο αναφορές στα δεδομένα (τρέχοντος και προηγούμενου πακέτου) , συμπεριλαμβανομένων των αντίστοιχων hash τιμών τους.

    Η δομή του στοιχείου αυτού συνοψίζεται ως εξής:

    • Περιέχει αναφορά στο αντίστοιχο <dsig:Manifest> στοιχείο του αμέσως προηγούμενου πακέτου zip που δημιουργήθηκε, συμπεριλαμβανομένης και της hash τιμής του αρχείου δεδομένων xml που υπολογίστηκε βάσει του προηγούμενου κανονικοποιημένου αρχείου δεδομένων xml (προδιαγραφή Exclusive XML Canonicalization [XML-C14N]).

    Η αναφορά στο προηγούμενο πακέτο δεδομένων γίνεται μέσω ενός URI, το οποίο σχηματίζεται ως ακολούθως:

    • Τη διαδρομή URL του προηγούμενου αρχείου zip. Η διαδρομή αντιστοιχεί στη δενδρική δομή φακέλων του Safe, όπως ορίζεται στις ενότητες 5.4 και 5.11. Παράδειγμα:

    <licenseholder>_<licenseid>_<seqno>_<YYYYMMDD>_<hhmmss>.zip

    • Τη διαδρομή του αρχείου ελέγχου manifest xml μέσα στο προηγούμενο αρχείο zip. Παράδειγμα:

    /manifest.xml

    • Την αναφορά στο αναγνωριστικό Id του στοιχείου <dsig:Manifest> του προηγούμενου πακέτου zip (<dsig:Manifest Id=”PreviousID”>). Παράδειγμα:

    #<Id>

    • Περιέχει αναφορά στο στοιχείο <xenc:EncryptedData> του τρέχοντος αρχείου ελέγχου, συμπεριλαμβανομένης και της hash τιμής του αρχείου δεδομένων xml που υπολογίστηκε βάσει του τρέχοντος κανονικοποιημένου αρχείου δεδομένων xml (προδιαγραφή Exclusive XML Canonicalization [XML-C14N]). Η τιμή hash υπολογίζεται στο μη κρυπτογραφημένο και μη συμπιεσμένο αρχείο δεδομένων xml.

    Στη συνέχεια πρέπει να αναφέρονται οι κανόνες μετασχηματισμού (αποκρυπτογράφηση, αποσυμπίεση) που πρέπει να εφαρμοστούν προκειμένου να γίνει επαλήθευση της τιμής hash ενός πακέτου δεδομένων.

    Συνεπώς, το στοιχείο <dsig:Manifest> θα έχει την παρακάτω μορφή:

    <dsig:Manifest Id=»C20″>

    <dsig:ReferenceURI=»/<licenseholder>/<licenseid>/2019/01/01/<licenseholder>_<licenseid>_19_20190101_145500/manifest.xml#C19″>

    <dsig:Transforms>

    <dsig:Transform Algorithm=»http://www.w3.org/2001/10/xml-exc-c14n#»/>

    </dsig:Transforms>

    <dsig:DigestMethod Algorithm=»http://www.w3.org/2001/04/xmlenc#sha256″/>

    <dsig:DigestValue>PreviousHashValue</dsig:DigestValue>

    </dsig:Reference>

     

    <dsig:Reference URI=»#D20″>

    <dsig:Transforms>

    <dsig:Transform Algorithm=»Decryption algorithm»/>

    <dsig:Transform Algorithm=»Decompress algorithm»/>

    </dsig:Transforms>

    <dsig:DigestMethod Algorithm=»http://www.w3.org/2001/04/xmlenc#sha256″/>

    <dsig:DigestValue>CurrectHashValue</dsig:DigestValue>

    </dsig:Reference>

    </dsig:Manifest>

    /dsig:Signature

    Πρόκειται για το στοιχείο που περιλαμβάνει την ψηφιακή υπογραφή του πακέτου δεδομένων. Η ψηφιακή υπογραφή προστίθεται ως enveloped signature σύμφωνα με το πρότυπο XAdES, συμπεριλαμβανομένης και της χρονοσήμανσης (πρότυπο XΑdES-T).