RuToken и luks (Linux)

Есть интересная статью по работе с luks: xakep.ru/post/54794/default.asp

Но не совсем понятно, как копировать ключи на rutoken. Устройства, как диска с разделом нет.

Как с ним работать, люди.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Рутокен, собственно, и не может быть показан, как диск с разделом.  Он по природе ближе к смарт-картам.
Как подружить LUKS с картой написано тут: https://wiki.ubuntu.com/SmartCardLUKSDiskEncryption
По аналогии может выйдет.

(2011-10-30 17:28:13 отредактировано Dmitry)

Re: RuToken и luks (Linux)

В общем, много расхождений. там пользуется Ubuntu. У меня Gentoo. Пробую адаптировать, спотыкаясь на initramfs-tools. Под Gentoo genkernel и initramfs-tools нет. Это не беда. Там дальше не совсем ясная картина:
"Upload the 255-byte LUKS keyfile in /crypto/smart.key to the SmartCard. "

как это сделать, не сказано.

Параллельно пробую реализовать работу rutoken с truecrypt.

а с truecrypt тоже вопрос.. ( http://www.gooze.eu/howto/truecrypt-sma … requisites )
pkcs15-init -E
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
(ok)
а дальше вот что:
pkcs15-init --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 12341234 --puk 43214321 --label "test"
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
Unspecified PIN [reference 2] required.
Please enter Unspecified PIN [reference 2]: (здесь был введен юзер пин дефолт 12345678)
[pkcs15-init] pkcs15-rutoken.c:232:rutoken_create_pin: Do not enter User unblocking PIN (PUK): Not supported
Failed to create PKCS #15 meta structure: Not supported

"Do not enter User unblocking PIN (PUK): Not supported" - а что же тогда вводить?

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

>> pkcs15-init --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 12341234 --puk 43214321 --label "test"

Эта строчка не сработает.

Делайте, как указано здесь:
http://www.opensc-project.org/opensc/wiki/AktivRutokenS

(2011-10-31 10:21:39 отредактировано Dmitry)

Re: RuToken и luks (Linux)

Да. Перешел на trucrypt. Всй работает.
pkcs15-init --erase-card
pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk ""
truecrypt --create-keyfile --hash=SHA-512
truecrypt --import-token-keyfiles --token-lib=/usr/lib/opensc-pkcs11.so
truecrypt --list-token-keyfiles --token-lib=/usr/lib/opensc-pkcs11.so
truecrypt -c volume.cnt --encryption=AES --hash=SHA-512 --keyfiles=token://slot/0/file/ss.key --token-lib=/usr/lib/opensc-pkcs11.so -p ""
truecrypt volume.cnt 1/ --keyfiles=token://slot/0/file/ss.key --token-lib=/usr/lib/opensc-pkcs11.so -p "" --protect-hidden=no
truecrypt -d volume.cnt
Но trucrypt вызывает сомнения, со своей sha-512 на то, что такую вещь можно взломать. Пусть не за месяц, а за пол года. Не одним человеком, а коллективно.  Там, вроде как, 8-10 символов обычно. состоят они.. цифры, латиница и табуляция. вариантов пароля 10 ^ (48+10) (десять в ~58 степени). если поделить на 2, то получается около 29 нулей. за пол года можно подобрать.. Truecrypt уже не opensource. Под той же Gentoo софтина уже masked. Во всяком случае не известно, на сколько в нем всё чисто, а самому разобраться не думаю, что получится.
Под luks длину ключа можно выставить. ту же 1024. Под truecrypt же выбор не особо и велик.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Если Вам хочется luks - попробуйте.

Как я уже говорил, есть более менее удачные попытки его прикрутить.
Но выполнить эту работу за вас мы, к сожалению, не сможем.
А оказать посильную помощь - это пожалуйста.

(2011-10-31 12:43:44 отредактировано Dmitry)

Re: RuToken и luks (Linux)

Есть вопрос по созданию пин кода, отличного от 12345678 or 87654321
При инициализации устройства, с прописыванием стандартного пин кода проблем нет, но, если прописывать другой пин, то возникают проблемы.
pkcs15-init --erase-card
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
здесь все ок, за исключением постоянно вылетающих двух ошибок.
Далее. Если назначать стандартный пин код админу 87654321, то вопросов нет:
pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
Unspecified PIN [reference 2] required.
Please enter Unspecified PIN [reference 2]:
ok
но, если вбить тот же восьмизначный код, но другой, то возникают ошибки:
pkcs15-init --create-pkcs15 --so-pin "43211234" --so-puk ""
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
Unspecified PIN [reference 2] required.
Please enter Unspecified PIN [reference 2]:
[pkcs15-init] pkcs15-rutoken.c:245:rutoken_create_pin: Incorrect PIN
Failed to create PKCS #15 meta structure: Not supported.
Я не против вбивать стандартный 87654321 пин код для админа, но ведь через админа можно зайти на устройство, поменять пин код юзеру и через него вытащить ключ, зная такой измененный пин код.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Поменять пин-код Вы можете установив вот такой флаг, как Вы и пишете
--so-pin "43211234"
но вводить, по появившемуся запросу, нужно старый so-pin, то есть 87654321

для смены дефолтных пин-кодов нужно воспользоваться утилитой  pkcs15-tool

Re: RuToken и luks (Linux)

pkcs15-init --create-pkcs15 --so-pin "12341234" --so-puk ""
[pkcs15-init] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-init] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
Unspecified PIN [reference 2] required.
Please enter Unspecified PIN [reference 2]: здесь ввожу старый 87654321
[pkcs15-init] card-rutoken.c:227:rutoken_check_sw: Authentication failed
[pkcs15-init] card-rutoken.c:686:rutoken_verify: returning with: PIN code or key incorrect
[pkcs15-init] sec.c:201:sc_pin_cmd: returning with: PIN code or key incorrect
[pkcs15-init] pkcs15-lib.c:3161:do_get_and_verify_secret: Failed to verify PIN (ref=0x2)
Failed to create PKCS #15 meta structure: PIN code or key incorrect

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Мы ошиблись вчера.

при помощи pkcs15-init невозможно установить недефолные пин-коды

Для того чтобы все таки сменить пин-коды потребуется воспользоваться утилитой pkcs15-tool

Re: RuToken и luks (Linux)

Да, устаете, наверное, просто. А для меня это все вообще новинка. Вот в разбегающихся глазах и простого не вижу.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

(2011-11-02 21:41:48 отредактировано Dmitry)

Re: RuToken и luks (Linux)

Только как менять user pin.
security officer pin меняется просто "pkcs15-tool --change-pin", а как user pin.
man page без каких-либо объяснений.
pkcs15-tool --change-pin "User PIN" не то.

добавлено..
pkcs15-tool --list-pins
[pkcs15-tool] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-tool] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found

Using reader with a card: Rutoken S driver
PIN [Security Officer PIN]
    Com. Flags: 0x3
    ID        : 01
    Flags     : [0x9B], case-sensitive, local, unblock-disabled, initialized, soPin
    Length    : min_len:8, max_len:16, stored_len:16
    Pad char  : 0xFF
    Reference : 1
    Type      : ascii-numeric
    Path      : 3f005015

PIN [User PIN]
    Com. Flags: 0x3
    ID        : 02
    Flags     : [0x1B], case-sensitive, local, unblock-disabled, initialized
    Length    : min_len:8, max_len:16, stored_len:16
    Pad char  : 0xFF
    Reference : 2
    Type      : ascii-numeric
    Path      : 3f005015

pkcs15-tool --change-pin --auth-id 02
[pkcs15-tool] reader-pcsc.c:906:pcsc_detect_readers: SCardEstablishContext failed: 0x8010001d
[pkcs15-tool] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found

Using reader with a card: Rutoken S driver
Enter old PIN [User PIN]:
Enter new PIN [User PIN]:
Enter new PIN again [User PIN]:

теперь бы понять, как сделать так, что бы ключи не были извлекаемы. работа в tryecrypt.

Это относится к теме о tryecrypt, или же можно как-то средствами pkcs это сделать.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Актуален ли данный вопрос ещё?

Re: RuToken и luks (Linux)

Мда.
Три года все проработало не плохо и тут на тебе.
truecrypt volume.cnt  /share/ --keyfiles=token://slot/0/file/ss.key --token-lib=/usr/lib/opensc-pkcs11.so -p "" --protect-hidden=no
Enter password/PIN for token 'Rutoken S (User PIN)': ввожу, как обычно, пинкод.
Incorrect keyfile(s) and/or password or not a TrueCrypt volume.

Enter password for volume.cnt:

И не понятно, кто виноват. То ли файл разрушен, то ли что-то с ключом не так.
По truecrypt --list-token-keyfiles --token-lib=/usr/lib/opensc-pkcs11.so ключ как бы есть, но вот цел ли он, вопрос.

2.6.39-gentoo-r3 #1 SMP i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

Re: RuToken и luks (Linux)

Целостность ключа проверить невозможно, если он работает (на нем можно подписать) - он скорее всего цел.