O znakowaniu dokumentów klasyfikowanych i QR kodach

Jest sprawa oczywistą, że aby coś właściwie chronić, trzeba po pierwsze wiedzieć: co się ma i jaką to ma dla nas wartość. Ta zasada dotyczy także informacji, która zwłaszcza dziś w przedsiębiorstwach każdej branży – w co nikt nie wątpi – jest siłą napędową biznesu i jako taka, podobnie jak wszystkie aktywa firmy,  wymaga ochrony środkami i w sposób adekwatny do poziomu klasyfikacji.

Szeroko rozumiane zasoby informacyjne trzeba więc inwentaryzować i klasyfikować, stosownie do obowiązujących w przedsiębiorstwie standardów klasyfikacji. Potem należy je chronić, zapobiegając wyciekom informacji wrażliwych poza firmę. Jednakże dziś nie chciałbym koncentrować się na całości tego zagadnienia, bo pewnie musiałbym napisać o tym książkę. Z konieczności ograniczę się tylko do jednego aspektu, mianowicie do znakowania dokumentów klauzulami klasyfikacji, w sposób ułatwiający zarządzanie nimi.

Doskonałym sposobem znakowania dokumentów klasyfikowanych jest, moim zdaniem,  zamieszczanie w ich nagłówkach lub stopkach kodów QR (Quick Response Code). W takich znacznikach można zawrzeć nie tylko klauzulę klasyfikacji, ale także na przykład informacje o właścicielu dokumentu, dacie jego opracowania, sumie kontrolnej, identyfikatorze w bazie dokumentów klasyfikowanych itp. Kody można bardzo łatwo skanować i dekodować. Nie trzeba nawet w tym celu posiadać profesjonalnych skanerów. Można posłużyć się smartfonem  wyposażonym na przykład w oprogramowanie QRafter lub podobne.

W jaki sposób generować kody QR z klauzulami klasyfikacji?

Otóż, by opracować całkiem zgrabne rozwiązanie, nie trzeba wielkiego wysiłku i dużego budżetu. Starczy nieco ruszyć głową i posłużyć się własnymi umiejętnościami programistycznymi.

To, co chciałem zaprezentować, jest zaledwie prototypem i  wobec tego nie pretenduje do miana gotowego rozwiązania, a ma jedynie służyć jako odskocznia (inspiracja?) do bardziej użytecznych pomysłów .

Skrypt opracowany przez mnie, którego kod zamieszczam poniżej, został napisany w języku Ruby. Do zbudowania graficznego interfejsu użytkownika użyłem biblioteki GTK2. By działał poprawnie musicie go uruchamiać na komputerze z interpreterem języka Ruby. W Linux-ach i na MacOS jest on domyślnie zainstalowany. Dla środowiska Windows najlepszą jest dystrybucja dostępna pod adresem http://rubyinstaller.org/. Skrypt wymaga bibliotek GTK2 i rqrcode_png. Obie można zainstalować bardzo prosto poleceniami:

gem install gtk2

i

gem install rqrcode_png

Oto kod skryptu:

# encoding UTF-8
require 'rqrcode_png'
require 'gtk2'

def message_box(message)
   dialog = Gtk::Dialog.new("Message",
   $main_application_window,
   Gtk::Dialog::DESTROY_WITH_PARENT,
        [ Gtk::Stock::OK, Gtk::Dialog::RESPONSE_NONE ])
   # Dialog box should be destroyed when the user responds.
   dialog.signal_connect('response') { dialog.destroy }
   dialog.vbox.add(Gtk::Label.new(message))
   dialog.show_all
end

def qr_code_generate (text, resolution, size)
   begin
      qr = RQRCode::QRCode.new( text, :size =>size, :level => :h )
      png = qr.to_img 
      png.resize(resolution, resolution).save("your_qrcode.png")
      message_box("Your QRcode is saved into the: your_qr_code.png file in the current directory\n")
   rescue => e
      message_box("Problem, problem.... See the details at the console.\n")
      p e.message
      p e.backtrace
   end
end

window = Gtk::Window.new("QRCodeGen by Janusz Nawrat (2013)")
window.resizable = false
window.border_width = 10
window.signal_connect('destroy') { Gtk.main_quit }
window.set_size_request(350, 450)

frame = Gtk::Frame.new("Text to generate QRcode from...")
frame.set_shadow_type( Gtk::SHADOW_ETCHED_OUT )

textview = Gtk::TextView.new
textview.buffer.text = "Input your text here..."
textview.set_size_request(-1, 280)

scrolledw = Gtk::ScrolledWindow.new
scrolledw.border_width = 5
scrolledw.add(textview)
scrolledw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS)
frame.add(scrolledw)

action_button = Gtk::Button.new("DO IT NOW")
clear_button = Gtk::Button.new("CLEAR")
cancel_button = Gtk::Button.new("Quit")

action_button.signal_connect('clicked') {
   qr_code_generate(textview.buffer.text, $resolution.value.to_i, $size.value.to_i)
   textview.buffer.text = "\n" + textview.buffer.text
   qrcode_picture = Gdk::Pixbuf.new("your_qrcode.png")
   iter = textview.buffer.get_iter_at_line(0)
   textview.buffer.insert_pixbuf(iter, qrcode_picture)
}

clear_button.signal_connect('clicked') {
   textview.buffer.text = ""
}

cancel_button.signal_connect('clicked') {
   Gtk.main_quit
}

param_frame = Gtk::Frame.new("QR Code Resolution")
param_frame.set_shadow_type( Gtk::SHADOW_ETCHED_OUT )

resol_label = Gtk::Label.new("QR Code Resolution: ")
$resolution = Gtk::HScale.new(80, 180, 20)
$resolution.value_pos = Gtk::POS_LEFT

size_frame = Gtk::Frame.new("QR Code Size")
size_frame.set_shadow_type( Gtk::SHADOW_ETCHED_OUT )
size_label = Gtk::Label.new("QR Code Size: ")
$size = Gtk::SpinButton.new(6, 20, 1)

hbox = Gtk::HBox.new(true, 1)
hbox.pack_start(action_button, true, true, 0)
hbox.pack_start(clear_button, true, true, 0)
hbox.pack_start(cancel_button, true, true, 0)

param_hbox = Gtk::HBox.new(true, 1)
param_hbox.pack_start(resol_label, true, true, 0)
param_hbox.pack_start($resolution, true, true, 0)
param_frame.add(param_hbox)

size_hbox = Gtk::HBox.new(true, 1)
size_hbox.pack_start(size_label, true, true, 0)
size_hbox.pack_start($size, true, true, 0)
size_frame.add(size_hbox)

vbox = Gtk::VBox.new(false, 1)
vbox.pack_start(frame, true, true, 0)
vbox.pack_start(param_frame, true, true, 0)
vbox.pack_start(size_frame, true, true, 0)
vbox.pack_start(hbox, false, false, 0)

window.add(vbox)
window.show_all
Gtk.main

Zamieszczam również zrzut ekranowy okna programu:

qr-code-gen_screen

Wspomniałem o bardziej użytecznych zastosowaniach kodów QR. Wyobrażam sobie, że na przykład drobna ingerencja w kod sterownika drukarek albo w kod skryptów spoolera, mogłaby takie kody generować  w pełni automatycznie i transparentnie dla użytkownika. Jednak, zanim zaczniecie eksperymentować, pamiętajcie, że nie możemy tego robić w systemach działających produkcyjnie, a każde rozwiązanie zanim zostanie produkcyjnie wdrożone musi być doskonale przetestowane i niezawodne, by biznes przedsiębiorstwa mógł poprawnie i bez zbędnych przerw funkcjonować.

Mam nadzieję, że udało mi się Was zainspirować.

Dziękuję za uwagę i do następnego artykułu na moim blogu!

Informacje Janusz Nawrat
Just ordinary man who likes thinking...

One Response to O znakowaniu dokumentów klasyfikowanych i QR kodach

  1. Robert Pławiak pisze:

    Janusz,
    To jest bardzo dobra idea …co ciekawe też o tym myślałem🙂 swoją drogą świetna innowacja. Jak potrzeba pomocy w tzw. komercjalizacji to chętnie Cię wspomogę

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

TOMASZ WEŁNA

artysta grafik | wykładowca

PRACOWNIA OKO

Szkoła Rysunku Malarstwa i Grafiki DR TOMASZA WEŁNY | KRAKÓW | Plac Matejki 10 | tel 691 81 75 74

Piękno neurobiologii

Blog Jerzego Vetulaniego

Teoria muzyki, zasady muzyki, podstawy muzyki

Teoria muzyki, zasady muzyki, podstawy muzyki - czyli to co każdy amator muzyki wiedzieć powinien :)

Personal Development & Inspirations

Przemyślenia i refleksje, którymi warto się podzielić (blog by Janusz Nawrat)

Business IT Cooperation Platform

Biznes i IT - dwa światy, które muszą współdziałać

%d bloggers like this: