УЕП (UES) от Infonotary на Fedora 16 и Firefox 7/8

сряда, ноември 23rd, 2011

От дълго време се каня да си извадя електронен подпис, но все го отлагах. Напоследък обаче се стигна до момент, в който това стана наложително. Понеже естествено, ще го ползвам под Linux направих кратко проучване първо онлайн, а след това и сред познати. Имаше положителни мнения както за Инфонотари, така и за Банксервиз. Аз се спрях на първите по две причини – на пръв поглед по-добрата документация, и нещо доста по-тривиално, по-големият брой офиси на Инфонотари, в случая имаше такъв точно срещу моя офис.

От това, което прочетох се надявах да ми се падне Omnikey четец, но в избраният от мен офис на ЦКБ такива нямаше – единствената опция беше ACS. Понеже напоследък съм мързелив, а и ми трябваше спешно рискувах и го взех. Последното след попълването на един тон документация от момичето в офиса, което беше леко неориентирано, изглежда нямаше кой знае какъв опит с издаване на сертификати, но с малко помощ от приятели (с цената от две телефонни обаждания) все пак се справи.

И така, за мен остана да изчакам края на работния ден, да се прибера и да видя какво ще се получи. Ами смело мога да заявя, че четецът работи out of the box с ccid драйверът по подразбиране.

pcscd сървисът е стартиран:

[Nick@Pegasus ~]$ systemctl status pcscd.service
pcscd.service - PC/SC Smart Card Daemon
Loaded: loaded (/lib/systemd/system/pcscd.service; disabled)
Active: active (running) since Tue, 22 Nov 2011 20:56:10 +0200; 2h 9min ago
Main PID: 8758 (pcscd)
CGroup: name=systemd:/system/pcscd.service
└ 8758 /usr/sbin/pcscd -f

Исталирани са следните пакети:

[Nick@Pegasus ~]$ yum list pcsc-*
Installed Packages
pcsc-lite.x86_64                        1.7.4-6.fc16                  @fedora
pcsc-lite-ccid.x86_64                   1.4.5-1.fc16                  @fedora
pcsc-lite-devel.x86_64                  1.7.4-6.fc16                  @fedora
pcsc-lite-libs.x86_64                   1.7.4-6.fc16                  @fedora
[Nick@Pegasus ~]$ yum whatprovides pcsc-lite
pcsc-lite-1.7.4-6.fc16.x86_64 : PC/SC Lite smart card framework and applications
Repo        : fedora
[Nick@Pegasus ~]$ yum whatprovides pcsc-lite-ccid
pcsc-lite-ccid-1.4.5-1.fc16.x86_64 : Generic USB CCID smart card reader driver
Repo        : fedora

Ето и как се разпознава самият четец (dmesg output):

[787202.753102] usb 1-1.5.4: new full speed USB device number 13 using ehci_hcd
[787202.841264] usb 1-1.5.4: New USB device found, idVendor=072f, idProduct=90cc
[787202.841267] usb 1-1.5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[787202.841269] usb 1-1.5.4: Product: CCID USB Reader
[787202.841270] usb 1-1.5.4: Manufacturer: ACS
[789782.064529] usb 1-1.5.4: USB disconnect, device number 13

И малко по-подробно (lsusb -vd):

lsusb -vd 072f:90cc
 
Bus 001 Device 015: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x072f Advanced Card Systems, Ltd
  idProduct          0x90cc ACR38 SmartCard Reader
  bcdDevice            1.00
  iManufacturer           1 ACS
  iProduct                2 CCID USB Reader
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           93
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass        11 Chip/SmartCard
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      ChipCard Interface Descriptor:
        bLength                54
        bDescriptorType        33
        bcdCCID              1.00
        nMaxSlotIndex           0
        bVoltageSupport         7  5.0V 3.0V 1.8V
        dwProtocols             3  T=0 T=1
        dwDefaultClock       4000
        dwMaxiumumClock      4000
        bNumClockSupported      0
        dwDataRate          10752 bps
        dwMaxDataRate      344100 bps
        bNumDataRatesSupp.      0
        dwMaxIFSD             247
        dwSyncProtocols  00000000
        dwMechanical     00000000
        dwFeatures       00010030
          Auto clock change
          Auto baud rate change
          TPDU level exchange
        dwMaxCCIDMsgLen       271
        bClassGetResponse      00
        bClassEnvelope         00
        wlcdLayout           none
        bPINSupport             0
        bMaxCCIDBusySlots       1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              16
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Моделът на картата ми е T&S DS/2048 (L), което налага инсталирането на два допълнителни пакета от хранилището на Инфонотари, a именно – bit4id-ipki и infonotary-scardmanager.

Остава само настройката на browser-а, който в случая е firefox. Сертификатът може да се инсталира директно от линка изпратен от Инфонотари чрез e-mail, а за улеснение на конфигурацията може да се добави следният firefox add-on – InfoNotary Configurator for Mozilla, . Ако при отварянето на тестовият линк (тестът може да бъде направен и от Preferences –> Signature Test на добавката на Инфонотари), отговорът е Data Accepted, то всичко е наред и можем да подписваме на воля.

Допълнителна информация:

Загубих доста време да разбера какъв е точният модел на четеца. Както може да се види от output-а по-горе то се разпознава като ACR38. На капачето му обаче е изписано ACR38T, а според една от техническите спецификации на сайта на производителя, а и според външният му вид, то това е ACR38DT. Според същата спецификация, въпросният четец работи с ccid, само ако е с firmware 1.12, и явно моят е такъв. В противен случай вероятно ще се наложи инсталирането на vendor драйверите.

Ето как изглежда на практика:

Полезни линкове (дадени са и в текста по-горе):

  1. Използване на квалифициран електронен подпис в Mozilla Firefox за Linux
  2. Използване на хранилищата на InfoNotary
  3. InfoNotary Configurator for Mozilla
  4. Инсталация на драйвери за четец и смарт карта в Linux

Умишлено не посочвам линк към „Инсталация на драйвери за четец и смарт карта в Linux“. Въпреки, че статията е относително актуална, то в нея има някои неточности, които могат да доведат до объркване. Освен това е и доста Ubuntu ориентирана. Но това, не е кой знае какъв проблем, освен че имената на пакетите във Fedora са други.  Проблемът е друг, че по начинът, по който е написан краят на статията, може да се остане с впечатлението, че е нужно да се инсталира и OpenSC. Това не е необходимо! OpenSC, въпреки че разпознава правилно четеца, зарежда и използва CNS драйвера. Освен това, ACS липсва от списъкa с поддържаният от проекта хардуер, но пък е споменат в списъкът с поддържани устройства от CCID.

И така в резюме: ACS ACR38DT от Инфонотари работи под Fedora 16 с Firefox 7, без да е необходимо да се инсталират допълните драйвери за картовия четец.

Рдакция /24.11.2011/: Статията във wiki-то на Инфонотари е редактирана, и е доста по-точна в момента. Така че включвам и линк-а към нея.

Fedora 16 Verne

събота, ноември 12th, 2011

Във вторник излезе 16-тата версия на Fedora с кодово название Verne. За разлика от предната 15-та, този път има доста промени, подобрения и нови неща, като може би най-отличителните са Grub2, както и продължаващата миграция от SysV към systemd.  Ето и някои други заслужаващи внимание новости:

  • Chrony заменя ntpd като основен метод за синхронизация на време
  • ext4 отдавна е част от дистрибуцията, но сега ext4 драйвера се използва за монтирането и на ext2 и ext3 дялове.
  • 1000 System accounts – преместване на границата между потребителски и системни акаунти от UID/GID 500, на UID/GID 1000
  • Gnome 3.2
  • KDE 4.7
  • Много подобрения и добавени приложения свързани със виртуализацията и облачните услуги

Екипът на Fedora прави хубав жест с решението да посвети Verne  на големият Денис Ричи.

Повече подробности могат да бъдат намерени в Release Notes, Feature List и официалният анонс.

По стара лична традиция upgrade-нах от 15-та към 16-та версия посредством yum. Въпреки че не е сред официално препоръчваните начини за update, си остава най-удобният за мен. Процедурата е следната:

Импортиране на ключа:

rpm --import https://fedoraproject.org/static/A82BA4B7.txt

Update на yum:

yum update yum

Изчистване на кеш-а:

yum clean all

И самия update:

yum --releasever=16 --disableplugin=presto distro-sync

Имаше малко проблеми със счупени зависимости, та се наложи преди това да премахна:

yum -y remove kino, libnih, libmtp-hal

След това всичко мина гладко и можеше да се насладя на добрата работа на Artwork тима.

Verne

Kannel daily svn snapshot rpm

петък, октомври 28th, 2011

Currently the current kannel version in epel is 1.4.3 /which according to kannel.org is the latest stable release/. However if you want to use sqlbox and smppbox, the only option is to use svn. So I decided to build my custom kannel rpm by using the source tarball from the daily svn snapshot. My kannel.spec is based on the file from the epel rpm for 1.4.3 version. The changes are minimal:

--- kannel.epel.spec    2011-10-28 16:29:01.000000000 +0300
+++ kannel.spec 2011-10-28 16:31:48.000000000 +0300
@@ -1,18 +1,18 @@
 Summary: WAP and SMS gateway
 Name: kannel
-Version: 1.4.3
-Release: 5%{?dist}
+Version: 1.5.0
+Release: 20111028%{?dist}
 License: BSD
 Group: System Environment/Daemons
 URL: http://www.kannel.org/
-Source0: http://www.kannel.org/download/%{version}/gateway-%{version}.tar.bz2
+Source0: http://www.kannel.org/download/kannel-snapshot.tar.gz
 Source1: kannel.logrotate
 Source2: kannel.init
 Source3: kannel.conf
 Source4: gw-config
 # TODO: a corresponding configure.in patch could be upstreamable?
-Patch0: gateway-1.4.3-ssldetect.patch
-Patch1: gateway-1.4.1-typesh.patch
+#Patch0: gateway-1.4.3-ssldetect.patch
+#Patch1: gateway-1.4.1-typesh.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: bison, byacc, flex, ghostscript
 BuildRequires: libxml2-devel, openssl-devel, zlib-devel, pcre-devel
@@ -69,9 +69,9 @@
 
 %prep
-%setup -q -n gateway-%{version}
-%patch0 -p1 -b .ssldetect
-%patch1 -p1 -b .typesh
+%setup -q -n kannel-snapshot
+#%patch0 -p1 -b .ssldetect
+#%patch1 -p1 -b .typesh
 %{__chmod} -c -x gwlib/html-entities.def # for -debuginfo, as of 1.4.3
 
@@ -147,6 +147,7 @@
 %{_bindir}/seewbmp
 %{_bindir}/wmlsc
 %{_bindir}/wmlsdasm
+%{_bindir}/decode_emimsg
 %{_sbindir}/*
 %{_mandir}/man?/*
 %attr(0750,kannel,kannel) %dir %{_var}/log/kannel/
@@ -164,6 +165,9 @@

I assumed that the two patches applied to version 1.4.3 are not necessary, because they probably are part of the svn code.

There was a build error on the first run:

RPM build errors:
Installed (but unpackaged) file(s) found: /usr/bin/decode_emimsg

so I had to add „%{_bindir}/decode_emimsg“ in the %files section.
The spec file expect the availability of the following files in the SOURCE directory: kannel.logrotate, kannel.init, kannel.conf, gw-config

The kannel.spec file can be found here.
The command used to build the rpm is:

rpmbuild -ba kannel.spec

Another way to do the trick:
http://www.blogalex.com/archives/23

Default to open: The story of open source and Red Hat

вторник, август 30th, 2011

Какво се случва с CentOS?

четвъртък, юли 28th, 2011

Това е въпрос, който доста хора избрали тази дистрибуция си задаваха докато чакаха излизането на CentOS 6, което се забави повече от половин година след излизането на RHEL 6.0. Е, в крайна сметка го дочакахме – CentOS 6 стана факт на 10-ти юли. Каква обаче бе причината за това забавяне така и не стана ясно. Изписа се доста по темата,  както в специализираните Linux издания и форуми, така и в centos-devel мейл листа, както и по блогове на ползватели и разработчици, но до голяма степен повечето от казаното бяха догадки и предположения. Отдавна се каня да драсна и аз някои размисли по въпроса, та дойде и този светъл момент. Няма да се спирам подробно на това, как и защо е възникнал, или какво представлява CentOS. Просто ще напиша какво не ми хареса на мен в цялата история.

Малко откъслечни мисли

Разбира се основното е забавянето от 242 дни. Както на самия CentOS 6.0 така и на Security ъпдейтите за 5.6, които също „излипсваха“ за известно време в началото на 2011.  Основната теза защитавана от разработчиците на дистрибуцията е липсата на ресурс и лошо стечение на обстоятелствата (излизането на RHEL 5.6 и 6.0 за относително кратък период). В общи линии нещата бяха представени така – Трябваше да избираме кое да направим първо, ние избрахме 5.6, а Scientific Linux 6.0, за това те ни изпревариха. Другата основна догадка сред community-то бе, че стъпките предприети от RedHat с идеята да затруднят Oracle в копирането на RHEL и предлагането на support за него, са попречили сериозно и на CentOS но разработчиците точно и ясно неколкократно отрекоха това да е проблем. Модифицираните от екипа на CentOS пакети са 11, премахнатите от CentOS пакети са 10 и е добавен 1, което както и да го гледаме е нищожно малко. Това не трябва да създава впечатлението обаче, че реализирането на CentOS е работа за 2 дни. Всеки пакет се build-ва от srpm-а предоставен от RedHat, така че несъмнено е времеемко и изисква адекватно внимание. Въпросът е в това, че пускането на предния major release (5.0) е отнело само 28 дни. Какво толкова се е променило през изминалите от тогава 4 години. Никой не знае. Дори и хора, като Dag Wieers не са наясно  (всеки ползващ RedHat дериват би трябвало да е наясно кой е той). В това и за мен се крие основния проблем – липсата на информация. Имаше неколкократни запитвания в мейл листа и официалния форум, имаше и предложения за евентуална помощ, но единственото, което се имаше насреща бяха уклончиви и на моменти дори арогантни отговори, в повечето случаи дори не от пряко ангажирани с процеса хора. Чат пат се включваше и Karanbir Singh, но без някаква кой знае каква конкретика.  Това е нещото, което ме подразни много повече от самото забавяне (за щастие нямах планирани машини за пускане в production, освен една миграция, която спокойно можех да забавя). Да не говорим че се започнаха дори и подигравки, когато се случеше поредното „побутване“ с 2 седмици на полу-официалния schedule (още по-лошото е, че дори нямаше history, просто се сменяше датата).

Силно се надявам хората стоящи зад проекта сериозно да се замислят над това случващото се и да поемат подадената им ръка, без да подхождат с високомерие, каквото на моменти се демонстрираше. Когато си вдигнал летвата толкова високо, нивото се поддържа доста трудно, особено когато ресурсът е ограничен, но е по-добре да кажеш че се нуждаеш от помощ, отколкото системно да отклоняваш адекватни въпроси с фрази от рода „Не бързайте, ще стане“.

Графично представяне, с което да обоснова горното

Инспириран от тази статия и наличната информация във Wikipedia и announce мейл листите на RedHat и дистрибуциите базирани на него направих сравнителна табличка и графика за забавянията (в дни) спрямо Redhat release-ите (започва от 4.4, понеже тогава е първият Oracle Unbreakable release).

За пресмятането на разликата в дните ползвах ето този one-line perl script:

perl -e 'use Date::Calc qw(Delta_Days); printf "%d\n", Delta_Days(first_date,second_date);'

където датите са във формат – „yyyy,mm,dd“

Таблицата:

Release Version CentOS delay SL delay Oracle delay RHEL release date CentOS release date SL release date Oracle release date
4.4 20 60 77 08/10/06 08/30/06 10/09/06 10/26/06
4.5 16 55 16 05/01/07 05/17/07 06/25/07 05/17/07
4.6 30 117 24 11/16/07 12/16/07 03/12/08 12/10/07
4.7 51 41 12 07/24/08 09/13/08 09/03/08 08/05/08
4.8 95 71 8 05/18/09 08/21/09 07/28/09 05/26/09
4.9 14 64 8 02/16/11 03/02/11 04/21/11 02/24/11
5 28 51 104 03/14/07 04/12/07 05/04/07 06/26/07
5.1 25 70 19 11/07/07 12/02/07 01/16/08 11/26/07
5.2 34 36 12 05/21/08 06/24/08 06/26/08 06/02/08
5.3 69 58 8 01/20/09 03/31/09 03/19/09 01/28/09
5.4 49 63 7 09/02/09 10/21/09 11/04/09 09/09/09
5.5 44 49 7 03/31/10 05/14/10 05/19/10 04/07/10
5.6 85 159 9 01/13/11 04/08/11 06/21/11 01/22/11
6 242 113 93 11/10/10 07/10/11 03/03/11 02/11/11
6.1 60 60 13 05/19/11 TBD TBD 06/01/11

И графично представяне на горното (клик за по-голям размер):

От друг ъгъл и с малко transparency (клик за по-голям размер):

Както се вижда основно от графиките, забавянията напоследък са постоянни и при CentOS бележат регрес, чиито апогей бе забавянето на 6-цата. Докато при SL и особено Oracle се отбелязва прогрес. Не знам колко е голям екипа на Oracle, естествено на тях им и плащат за това, но не може да им се отрече че що се касае до време се справят добре. SL е горе-долу на едно ниво с CentOS, с изключение на последните няколко release-а, където бие по точки. Техният тим е обявен на сайта им, и никак не е голям. Те също са на заплата в CERN, но по стечение на обстоятелствата мисля, че дистрибуцията не им е сред топ приоритетите. Паралелно си поддържат и около 9000 сървъра и 3000 декстоп станции по техни думи.

Та въпроса, какво става с CentOS си виси на дневен ред и си го задавам не само аз:

Matt Simmons е написал много добър пост темата тук. Понеже нямах физическата възможност да следя всеки threads в CentOS-devel мейл листа (по груби спомени бяха няколко хиляди) преди малко попаднах на ето този мейл там, в което е написано следното /което и донякъде отговаря на въпроса за забавянето само по себе си/:

This is NOT the case with 6.0.  First off, we can not use any of the
existing infrastructure to build on because we can not build on a CentOS
4 or CentOS 5 machine because of the changing of MD5SUM in the RPMs
themselves.

Secondly, the distribution will not build on the Beta (much like the 3.x
release and UNLIKE the 4.0 and 5.0 releases).  Not only that, but
upstream used many "non released" packages to build on ... packages we
can not see or get.

Now, because of those things and because we choose to stop work on 6.0
to build out 5.6 and 4.9, the 6.0 release is late.

Но няколко мейла по-натам Dag Wieers прави доста ценно включване, което и обяснява неговото оттегляне, както чувството за безизходица обзело крайните потребители след отговори от рода на „Ще стане, когато стане“, и объркването от липсата на заявка за помощ от безспорно „силната“ CentOS общност:

On Mon, 16 May 2011, Johnny Hughes wrote:

> It will be released when it is released, if you don't like it then leave. 
Before I leave this list let me take you back about 7 years to the
Whitebox mailinglist. You may not remember that Whitebox had a list of
issues of its own, no timely updates, no community effort, lack of good
communication. It was mostly a one-man-effort.

And the people on that list who were not pleased, included Johnny and
Karanbir. And it's striking (and ironic) how similar the discussions went
7 years ago. Johnny said:

   [WBEL-users] WBEL Vs Centos ? :-S
   http://beau.org/pipermail/whitebox-users/2004-December/004761.html

   "If timely updates are not a key factor for you, then WBEL is a great
   distro.  If timely updates are the most important thing you consider
   about the distro you want, then WBEL might not be a fit for you.  That
   is all I have ever said ... and I have never said it meanly."

or:

   [WBEL-users] WBEL Vs Centos ? :-S
   http://beau.org/pipermail/whitebox-users/2004-December/004740.html

   "I just think people should not have the expectation the WBEL is
   community operated, it is not.  It's NOT like debian or gentoo where
   others can get involved.  I know, I tried really hard to do so many
   times.

Karanbir said:

   [WBEL-users] WBEL ...dead?
   http://beau.org/pipermail/whitebox-users/2004-December/004684.html

   "Be a lil difficult to sell that to the IT Manager / CTO : Hang tight
   dude, its comming. Anytime now."

or:

   [WBEL-users] WBEL ...dead?
   http://beau.org/pipermail/whitebox-users/2004-December/004709.html

   "Why ? the other RHEL recompiles dont have this 'its coming, hang on'
   attitude do they ?

   If there is a security issue out there, you can put in a fairly good
   idea as to when its possible to deploy with them. Whats the scene with
   WBEL ?"

The only difference I see is that back then Whitebox had only a fraction
of users, and even less using it for critical mission, while nowadays
people rely even more on timely security updates and releases coming from
CentOS. And people expect to help and contribute to the process to make
that happen.

Which, contrary to what is stated now, was an essential part in the start
and growth of the CentOS project.

Какви са опциите?

  • оставаме си с CentOS
  • миграция към SL
  • ползване на support и съответно RHEL
  • ползване на Fedora (няма long time support)
  • ползване на друга популярна сървърна дистрибуция (не- Redhat / RPM базирана)

Моят избор за момента е да остана с CentOS – е, освен ако не почна работа във фирма, която си плаща за RHEL :)  С CentOS все пак са и доста други (в това число Facebook, Amazon EC2, Tumblr). Но понеже горчивия привкус от тази история остава, при първа въмозжност ще хвърля един поглед на SL.

Stop ACTA