ݺߣ

ݺߣShare a Scribd company logo
Čtečky
Adam Hořčica, 1. 3. 2014
(Bronislav Robenek, Dominik Mališ, Petr Gregor a další)
„Čtečky“ ?!
Systémy kontroly vstupů
Obsah

• Co to je?
• Motivace a požadavky
• Architektura
– Dveřní jednotka
– Komunikace
– Integrace s dalšími systémy
Systémy kontroly vstupů

ČSN norma (ČSN EN 50133-2-1)
• Poplachové systémy – Systémy kontroly vstupů pro
použití v bezpečnostních aplikacích
• Individuální / Centralizované
• Požadavky (včetně např. IP krytí)
• Neřeší způsob identifikace (pouze počet možností)
Motivace

• Areál kolejí Strahov (ČVUT)
• Každý má dnes nějakou RFID kartu
… ale ne všichni jsou studenti ČVUT

• ČVUT systém
• Nasadit pro zájmové místnosti
RFID

• Bezkontaktní karta
• Mifare
– 13.56 MHz

• Např. OpenCard, NFC platební karta,…
Studentská karta ČVUT
• Od výroby má každá karta jedinečné ID
Základní požadavky

• Využít stávající karty
– Ale možnost přidělit vlastní (non ČVUT lidé)

•
•
•
•
•

Přímé napojení na IS
Jednoduchá správa
Rychlý vývoj (malý počet jednotek)
Možnosti rozvoje do budoucna
Splňovat ČSN EN 50133-2-1 (ne 100%)
Architektura
PoE, UPS
Dveřní
jednotka

CML IS

RFID
ETH

Okolní systémy

El. zámek
DVEŘNÍ JEDNOTKA
Dveřní jednotka
Dveřní jednotka

• Základem je BeagleBone Black
– ~ mini počítač ala Raspberry Pi
– Má ale mnohem víc GPIO
– Distribuce Debian

• Původní návrh počítal s ARM Cortex M3 + ETH
modul – cenově srovnatelné s BBB
Čtečky SH
SW dveřní jednotky

• JavaScript
• Node.js
– JS platforma postavená nad V8
– event-driven, non-blocking I/O model

• NPM (node package manager)
– Knihovna Serialport
– Knihovna Onoff
Arduino (synchronní kód)
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Node.js (asynchronní kód I.)
var Gpio = require('onoff').Gpio,
led = new Gpio(17, 'out');
function on () {
led.writeSync(1);
setTimeout(off, 1000);
}
function off () {
led.writeSync(0);
setTimeout(on, 1000);
}

on();
Node.js (asynchronní kód II.)
function on () {
led.write(1, function (err) {
if (err) throw err;
setTimeout(off, 1000);
});
}
function off () {
led.write(0, function (err) {
if (err) throw err;
setTimeout(on, 1000);
});
}
on();
Node.js (asynchronní kód II. - lépe)
function callFn(fn) {
return function (err) {
if (err) throw err;
setTimeout(off, 1000);
}
}
function on () {
led.write(1, callFn(off));
}
function off () {
led.write(0, callFn(on));
}
on();
Architektura SW

Stavový automat

APP

Pomocné fn.
HAL

HAL Mock

onoff / tty

Mocha

BBB

…

HW
Komunikace s ISem

• HTTPS
– Serverový i klientský certifikát
– Server i klient ověřuje Fingerprint certifikátu

• Komunikace pomocí REST
– RESTful webservice
REST
GET https://cards.is/auth/in/1234567890

Content-Type: json/application
{

"result": "granted"
}
Jak zjistit místnost

• Čtečka (pošle požadavek na IS)
→ zařízení v síti
→ přiřazené v místnosti
→ do místnosti má přístup skupina
→ uživatel
→ ID karty
Áܰ
Okolní systémy
Monitoring

SMS při narušení

• Icinga
• Observium
• Statistika provozu

Bezpečnostní kamery
Vzdálená zpráva

• Záznam při otevření
dveří

• VPN, SSH
• Proxy

Nějaké další nápady…
Čtečky SH
Čtečky SH
Čtečky SH
Otázky?
Nějaké další nápady…
…ozvěte se mi!

Adam Hořčica
mailto: a.horcica@sh.cvut.cz
twitter: @horcicaa
http://macgyver.sh.cvut.cz/

More Related Content

Čtečky SH