Шифрование в линуксе машинным ключом
От: ariets  
Дата: 02.10.15 09:24
Оценка:
Всем привет.

Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования. Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData

То есть зашифровать так, чтобы расшифровать можно было только на этой машине (любому пользователю)

Есть в линуксе такая возможность?
Re: Шифрование в линуксе машинным ключом
От: wildwind Россия  
Дата: 03.10.15 16:41
Оценка:
Здравствуйте, ariets, Вы писали:

a> Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования.


Что значит "нет возможности"? Процессор не поддерживает арифметические операции? Запрещено линковать криптобиблиотеки?

a> Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData

a> То есть зашифровать так, чтобы расшифровать можно было только на этой машине (любому пользователю)
a> Есть в линуксе такая возможность?

Никакого магического общесистемного хранилища ключей в Линуксе не предусмотрено. Бери ключ хоть из /dev/random и сохраняй где-нибудь.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re: Шифрование в линуксе машинным ключом
От: vsb Казахстан  
Дата: 03.10.15 17:09
Оценка:
В современных дистрибутивах есть файл /etc/machine-id, можно на его основе делать ключ и шифровать. Например так:

[root@localhost ~]# echo something | openssl aes-256-cbc -a -pass file:/etc/machine-id 
U2FsdGVkX189DDZxaAWlI8+jPu2dF89mlI0EUwgwzBg=
[root@localhost ~]# echo U2FsdGVkX189DDZxaAWlI8+jPu2dF89mlI0EUwgwzBg= | openssl aes-256-cbc -a -d -pass file:/etc/machine-id 
something
Re: Шифрование в линуксе машинным ключом
От: smeeld  
Дата: 03.10.15 18:02
Оценка:
Здравствуйте, ariets, Вы писали:

A>Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования. Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData


Брать любую криптопрогу или либу в линуксах, и юзать согласно её доке, в чём проблема?
Тот машинный ключ в windows есть часть криптоcистемы, основанной на известных криптоалгоритмах,
и криптопротоколах на которых основаны криптосистемы, реализованные в линуксах, только
обозванной как нечто невпендюренно продвинутое.
Re[2]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 03.10.15 21:59
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В современных дистрибутивах есть файл /etc/machine-id, можно на его основе делать ключ и шифровать.


К сожалению, такой метод не подойдет. Основная задача: зашифровать так, чтобы расшифровать можно было только изнутри системы.
Здесь же можно будет взять диск и расшифровать из другого линукса.

Поэтому я и взял за пример машинный ключ из винды.
Re[2]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 03.10.15 22:03
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, ariets, Вы писали:


a>> Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования.


W>Что значит "нет возможности"? Процессор не поддерживает арифметические операции? Запрещено линковать криптобиблиотеки?


a>> Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData

a>> То есть зашифровать так, чтобы расшифровать можно было только на этой машине (любому пользователю)
a>> Есть в линуксе такая возможность?

W>Никакого магического общесистемного хранилища ключей в Линуксе не предусмотрено. Бери ключ хоть из /dev/random и сохраняй где-нибудь.


Благодарю за остроумие. Но "сохраняй где-нибудь" не подходит. Сохранить надо на этой же системе, причем так, чтобы из другой системы расшифровать не получилось.

Это и имелось в виду под "нет возможности сгенерировать свой ключ шифрования"
Re[3]: Шифрование в линуксе машинным ключом
От: Sheridan Россия  
Дата: 03.10.15 23:12
Оценка: 2 (1) :)))
Здравствуйте, ariets, Вы писали:

vsb>>В современных дистрибутивах есть файл /etc/machine-id, можно на его основе делать ключ и шифровать.

A>К сожалению, такой метод не подойдет. Основная задача: зашифровать так, чтобы расшифровать можно было только изнутри системы.
A>Здесь же можно будет взять диск и расшифровать из другого линукса.

Ну сделай что нибудь типа
#lspci -vvv | md5sum >> /tmp/mashine-id
...
#rm /tmp/mashine-id

Matrix has you...
Re[4]: Шифрование в линуксе машинным ключом
От: мыщъх США http://nezumi-lab.org
Дата: 04.10.15 00:35
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, ariets, Вы писали:


S>Ну сделай что нибудь типа

md5 и крипитография это две большие разницы.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[5]: Шифрование в линуксе машинным ключом
От: Sheridan Россия  
Дата: 04.10.15 08:24
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>md5 и крипитография это две большие разницы.

Это ты не мне говори, я всего лишь подсказываю как к машине привязаться можно
Matrix has you...
Re: Шифрование в линуксе машинным ключом
От: kov_serg Россия  
Дата: 05.10.15 00:01
Оценка:
Здравствуйте, ariets, Вы писали:

A>Всем привет.


A>Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования. Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData


A>То есть зашифровать так, чтобы расшифровать можно было только на этой машине (любому пользователю)


A>Есть в линуксе такая возможность?


Что мешает использовать e-token
Re[3]: Шифрование в линуксе машинным ключом
От: wildwind Россия  
Дата: 05.10.15 08:53
Оценка:
Здравствуйте, ariets, Вы писали:

a> Сохранить надо на этой же системе, причем так, чтобы из другой системы расшифровать не получилось.

a> Это и имелось в виду под "нет возможности сгенерировать свой ключ шифрования"

Ничего не понятно. Понял только, что у тебы проблемы с криптосхемой. Если хочешь дельных советов, опиши толком свою задачу и крнкретные сценарии. И желательно не тут, а в форуме ИБ.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[4]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 05.10.15 09:12
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Ничего не понятно. Понял только, что у тебы проблемы с криптосхемой. Если хочешь дельных советов, опиши толком свою задачу и крнкретные сценарии. И желательно не тут, а в форуме ИБ.


RSDN в полной красе. Помочь не помогут, но скажут, что проблемы с архитектурой.

Задачу я описал в первом сообщении: нужен аналог в линуксе CryptProctectData из WinAPI (с параметром CRYPTPROTECT_LOCAL_MACHINE-шифрование машинным ключом). В винде люди пользуются, и никто не кричит про проблемы с криптосхемой.

Если ты не в курсе про эту ф-ию, а читать лень, то прошу воздержаться от советов.
Re[4]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 05.10.15 09:17
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Ну сделай что нибудь типа

S>
S>#lspci -vvv | md5sum >> /tmp/mashine-id
S>...
S>#rm /tmp/mashine-id
S>

S>

Наверно, так и сделаю.
С линуксом не очень знаком: программно эту портянку можно получить (с++)? Или проще запустить процесс lspci и прочитать его выхлоп?
Re[5]: Шифрование в линуксе машинным ключом
От: Anton Batenev Россия https://github.com/abbat
Дата: 05.10.15 09:55
Оценка:
Здравствуйте, ariets, Вы писали:

a> С линуксом не очень знаком: программно эту портянку можно получить (с++)?


Конечно. Можешь взять исходный код утилиты и посмотреть как она работает.

a> Или проще запустить процесс lspci и прочитать его выхлоп?


К сожалению из топика не совсем понятно, что тебе нужно, по этому не могу сказать что будет проще.
... в первом классе мне говорили, что нужно делиться, а теперь говорят, что это незаконно ...
Re[5]: Шифрование в линуксе машинным ключом
От: Michael7 Россия  
Дата: 05.10.15 11:16
Оценка:
Здравствуйте, ariets, Вы писали:

A>Наверно, так и сделаю.

A>С линуксом не очень знаком: программно эту портянку можно получить (с++)? Или проще запустить процесс lspci и прочитать его выхлоп?

Вот только, если пользователь хоть что-то заменит, убавит или добавит в машину или даже видеокарту в другой слот переставит, уже этот "id" изменится со всеми вытекающими проблемами. В тоже время выхлоп lspci я бы не спешил считать чем-то настолько уникальным, что его нельзя подобрать при большом желании.
Re[4]: Шифрование в линуксе машинным ключом
От: Michael7 Россия  
Дата: 05.10.15 11:24
Оценка: 2 (1)
Здравствуйте, Sheridan, Вы писали:

S>Ну сделай что нибудь типа

S>
S>#lspci -vvv | md5sum >> /tmp/mashine-id
S>...
S>#rm /tmp/mashine-id
S>

S>

lspci сомнительный выбор для этой цели. Лучше

#dmidecode -t system


Там и UUID будет уникальным. Но надо понимать, что его как и lspci получить может кто угодно, имеющий доступ к системе. Собственно, как и в винде.

вместо system можно использовать другие параметры, например, baseboard выдаст серийник материнки,
Отредактировано 05.10.2015 11:25 Michael7 . Предыдущая версия .
Re[5]: Шифрование в линуксе машинным ключом
От: wildwind Россия  
Дата: 05.10.15 11:49
Оценка: -1
Здравствуйте, ariets, Вы писали:

a> RSDN в полной красе. Помочь не помогут, но скажут, что проблемы с архитектурой.


То, что тебе не могут помочь, не проблема RSDN. Напоминание о возможных проблемах с архитектурой это бонус.

a> Задачу я описал в первом сообщении: нужен аналог в линуксе CryptProctectData из WinAPI (с параметром CRYPTPROTECT_LOCAL_MACHINE-шифрование машинным ключом).


Уже ответили, что нет аналога, а ты: "Все равно хочу!". Глупо же.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[6]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 05.10.15 12:51
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Уже ответили, что нет аналога, а ты: "Все равно хочу!". Глупо же.


Ты странный какой-то. Где ты увидел, что я "все равно хочу"?
Я указал только, что задачу я описал в первом сообщении, как она мне нужна. Для ясности повторил ее, раз уж ты потребовал точной формулировки.

Но ты продолжай традиции форума: архитектуру уже осудил, топикстартера глупым обозвал. Или пока не весь арсенал исчерпан, может, остановишься?

ПС: никто пока явно не ответил, что нет аналога. Но, судя по всему, это так.
Re[7]: Шифрование в линуксе машинным ключом
От: wildwind Россия  
Дата: 05.10.15 13:08
Оценка:
Здравствуйте, ariets, Вы писали:

a> ПС: никто пока явно не ответил, что нет аналога. Но, судя по всему, это так.


Я ответил.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[5]: /sys
От: Sheridan Россия  
Дата: 05.10.15 13:14
Оценка:
Здравствуйте, ariets, Вы писали:


A>Наверно, так и сделаю.

A>С линуксом не очень знаком: программно эту портянку можно получить (с++)? Или проще запустить процесс lspci и прочитать его выхлоп?
Да проще дёрнуть lspci. Только поосторожнее с verbose (количество -v), ибо
gate configuration-generator # lspci -vvv | md5sum
c3525f277f20a2d272f560ce549163e1  -
gate configuration-generator # lspci -vvv | md5sum
e3d58fcf3b52705a57558afa3b0fba0c  -
gate configuration-generator # lspci -vvv | md5sum
e3d58fcf3b52705a57558afa3b0fba0c  -
gate configuration-generator # lspci -vvv | md5sum
32ca855e429efc93c8da7f5da47a3c79  -
gate configuration-generator # lspci -vvv | md5sum
e3d58fcf3b52705a57558afa3b0fba0c  -

А лучше всего наверное будет покопаться в /sys или /proc (это псевдо-файловые системы, которые генерируются на лету, дают описание оборудования, процессов итд), поискать нужное, типа
gate 0000:ff:13.0 # cat /sys/bus/pci/devices/*/*(vendor|device) | md5sum
0cd665030ab8f3992ee52b9af17dd007  -
gate 0000:ff:13.0 # cat /sys/bus/pci/devices/*/*(vendor|device) | md5sum
0cd665030ab8f3992ee52b9af17dd007  -
gate 0000:ff:13.0 # cat /sys/bus/pci/devices/*/*(vendor|device) | md5sum
0cd665030ab8f3992ee52b9af17dd007  -
gate 0000:ff:13.0 # cat /sys/bus/pci/devices/*/*(vendor|device) | md5sum
0cd665030ab8f3992ee52b9af17dd007  -
gate 0000:ff:13.0 # cat /sys/bus/pci/devices/*/*(vendor|device) | md5sum
0cd665030ab8f3992ee52b9af17dd007  -

Снаружи это обычные текстовые файлы с доступом только по чтению. (Есть и только по записи, для управления, типа записал туда 1, устройство отключилось. Но это другая песня).
Matrix has you...
Re[6]: Шифрование в линуксе машинным ключом
От: Sheridan Россия  
Дата: 05.10.15 13:15
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Вот только, если пользователь хоть что-то заменит, убавит или добавит в машину или даже видеокарту в другой слот переставит, уже этот "id" изменится со всеми вытекающими проблемами. В тоже время выхлоп lspci я бы не спешил считать чем-то настолько уникальным, что его нельзя подобрать при большом желании.

Ему это и надо. Я бы еще lsusb прикрутил и сгенерировал ключ при воткнутой специальной флешке или например вебке
Matrix has you...
Re[5]: Шифрование в линуксе машинным ключом
От: Sheridan Россия  
Дата: 05.10.15 13:17
Оценка:
Здравствуйте, Michael7, Вы писали:

M>
M>#dmidecode -t system
M>


Оно реже встречается, в генту нопример по умолчанию оного нет (как впрочем и lspci), поэтому, как я советовал выше недавно, лучше завязаться на /sys или /proc
Matrix has you...
Re[6]: Шифрование в линуксе машинным ключом
От: Sheridan Россия  
Дата: 05.10.15 13:18
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

a>> С линуксом не очень знаком: программно эту портянку можно получить (с++)?

AB>Конечно. Можешь взять исходный код утилиты и посмотреть как она работает.
Зочем огород городить, ежели от утилиты нужен просто вывод и его не надо парсить а тупо посчитать его md5.
Matrix has you...
Re[6]: Шифрование в линуксе машинным ключом
От: fin_81  
Дата: 05.10.15 13:37
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, Michael7, Вы писали:


M>>
M>>#dmidecode -t system
M>>


S>Оно реже встречается, в генту нопример по умолчанию оного нет (как впрочем и lspci), поэтому, как я советовал выше недавно, лучше завязаться на /sys или /proc


/sys/class/dmi/id/

или
/sys/devices/virtual/dmi

но *serial и *uuid доступны только для рута. Также зависит от конфига ядра.
Re: Шифрование в линуксе машинным ключом
От: andrey.desman  
Дата: 05.10.15 14:06
Оценка:
Здравствуйте, ariets, Вы писали:

A>Надо на линукс машине зашифровать строчку. При этом нет возможности сгенерировать свой ключ шифрования. Хотелось бы что-то вроде машинного ключа в Windows, который используется в CryptProtectData

A>То есть зашифровать так, чтобы расшифровать можно было только на этой машине (любому пользователю)

А что подразумевается под «этой машиной»? Если заменили процессор, видяху или сетевую карту, это все еще та же машина? А если все заменили? А если взяли диск, и воткнули в другой ПК? (что суть то же самое, что и предыдущее) А если переустановили систему, это все та же машина?
Re[2]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 05.10.15 14:16
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>А что подразумевается под «этой машиной»? Если заменили процессор, видяху или сетевую карту, это все еще та же машина? А если все заменили? А если взяли диск, и воткнули в другой ПК? (что суть то же самое, что и предыдущее) А если переустановили систему, это все та же машина?


Логичное уточнение. Во всех случаях ответ: это уже другая машина. При таких условиях и виндовая ф-ия не отработает.
То есть это ок, если ключ уже будет другой и расшифровка не отработает. То есть это как раз и требуется.

Как уже подсказали выше, dmidecode вполне подходит.
Re[7]: Шифрование в линуксе машинным ключом
От: ariets  
Дата: 05.10.15 14:21
Оценка:
Всем спасибо за советы. Я понял направление мысли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.