PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » зашита криптованием


зашита криптованием

Сообщений 1 страница 5 из 5

1

возможно ли силами ПБ устроить зашиту такого уровня?
есть клиент приложение, оно обменивается с сервером данными с сервером соединившись с ним по проту 7777, проблемма в том что эти данные можно перехватить и подменить ложными..я вот подумал иде, поставить на клиенте и сервере приложение, которое будет висеть до порта 7777 то есть когда клиетская часть будет отсылать что либо на сервер то сначала эти данные проходять через мини фаервол на ПБ, криптуются и отсылаются, сервер их принял разкриптовал и отправит в серверное приложение.. данную функцию даже не надо возвращять обратно. сервер может отсялать клиенту чистый траф, а вот клиент отсылать серверу закриптованно, всё что отсылается на порт 7777 на клиенте закодировать, всё что принимается на сервере на порт 7777 раскодировать и дать серверному приложению.. типа ссч протокола или фаервола?

0

2

Функции шифрования можно найти в разделе Cipher справки.
Думаю что в данном случае, уместно использовать пару функций AESDecoder и AESEncoder. Подробнее об алгоритме шифрования http://ru.wikipedia.org/wiki/Advanced_E … n_Standard

Криптостойкость

В июне 2003 года Агентство национальной безопасности США постановило, что шифр AES является достаточно надёжным, чтобы использовать его для защиты сведений, составляющих государственную тайну (англ. classified information). Вплоть до уровня SECRET было разрешено использовать ключи длиной 128 бит, для уровня TOP SECRET требовались ключи длиной 192 и 256 бит[6].

Если правильно подобрать ключи шифрования, то расшифровать без ключа будет очень проблематично.
Пример из справки.

Код:
; Should be compiled in ascii mode
  ;
  String$ = "Hello this is a test for AES"
  
  *CipheredString   = AllocateMemory(Len(String$))
  *DecipheredString = AllocateMemory(Len(String$))
  
  If AESEncoder(@String$, *CipheredString, Len(String$), ?Key, 128, ?InitializationVector)
    Debug "Ciphered: "+PeekS(*CipheredString)
    
    AESDecoder(*CipheredString, *DecipheredString, Len(String$), ?Key, 128, ?InitializationVector)
    Debug "Deciphered: "+PeekS(*DecipheredString)
  EndIf

  DataSection
    Key:
      Data.b $06, $a9, $21, $40, $36, $b8, $a1, $5b, $51, $2e, $03, $d5, $34, $12, $00, $06
  
    InitializationVector:
      Data.b $3d, $af, $ba, $42, $9d, $9e, $b4, $30, $b4, $22, $da, $80, $2c, $9f, $ac, $41
  EndDataSection

0

3

а если я не могу внедрится в тело клиентской проги, что мне делать чтоб всё что отсылается через порт 7777 так криптовалось? и я правильно понял это клиентская часть, а декриптер? я вапще новичёк.. пока туг.. сори((

0

4

Нужно что-то похожее на файервол?
Тут по сложнее будет, и скорее всего понадобится писать свой драйвер, перехватывающий инет-пакеты, хотя, хз, подобные вещи не приходилось делать.

0

5

воо ... а технология Порт Кнокинг когда нить делалась на ПБ?

Отредактировано silveran (19.06.2011 21:12:08)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » зашита криптованием