Results 1 to 11 of 11

Thread: Hardware Encryption on WL-500gP / WL-500gD / WL-700gE

  1. #1

    Question Hardware Encryption on WL-500gP / WL-500gD / WL-700gE

    Инфа с OpenWRT wiki (http://wiki.openwrt.org/doc/hardware...e.accelerators)

    Note: If you want to learn about the current situation, you should search the Internet or maybe ask in the forum. This is outdated. Especially if you want to know, how fast a copy from a mounted filesystem (say ext3 over USB) over the scp is, you should specifically search for such benchmarks.

    Some models of the BCM47xx/53xx family support hardware accelerated encryption for IPSec (AES, DES, 3DES), simple hash calculations (MD5, SHA1) and TLS/SSL+HMAC processing. Not all devices have a hw crypto supporting chip. At least Asus WL500GD/X, Netgear WGT634U and Asus WL700gE do have hw crypto. However, testing of a WGT634U indicates that a pin under the BCM5365 was not pulled low to enable strong bulk cryptography, limiting the functionality to single DES.

    How did you find that out?
    Do you get an interrupt when sending a crypto job to the chip and limiting the request to DES only?)

    The specification states the hardware is able to support 75Mbps (9,4MB/s) of encrypted throughput. Without hardware acceleration using the blowfish encryption throughput is only ~0,4MB/s.

    Benchmark results that show the difference between software and hardware accelerated encryption/decryption can be found here. Due to the overhead of hardware/DMA transfers and buffer copies between kernel/user space it gives only a good return for packet sizes greater than 256 bytes. This size can be reduced for IPSec, because network hardware uses DMA and there is no need to copy the (encrypted) data between kernel and user space.

    The hardware specification needed for programming the crypto API of the bcm5365P (Broadcom 5365P) can be found here.

    The crypto chip is accessible through the SSB bus (Sonics Silicon Backplane). A Linux driver for SSB is available in OpenWRT's kernel >= 2.6.23 (Kamikaze)

    An example about how to communicate with the crypto chip can be found here (file b5365ips.tar.bz2).

    An OCF Linux driver that works with the ASUS WL500gP can be found in Trunk (SVN) or here and is called ubsec_ssb. Only OCF-enabled applications can be accelerated. That means, if you want e.g. an accelerated OpenSSH you have to manually enable cryptodev in OpenSSL. The driver is still considered experimental.

    Links to mailing-list posts with references to more recent and working version of Linux driver for Broadcom crypto chips here and here.

    Sun Crypto Accelerator 500 and 1000 (X6762A) cards are based on BCM5821. Might be worth checking Solaris references as well. Here is OpenSolaris driver for Broadcom crypto chips.

    Asus WL-700gE sources come with patched FreeSwan to utilize ubsec.

    Closed-source binary included in Asus Wl-700gE sources do support AES based on headers.

    There's a Linux port of the OpenBSD Cryptographic Framework (OCF) but the ubsec driver (Broadcom 58xx PCI cards) is not ported yet. If you compile OCF with the /dev/crypto device driver, userspace applications and libraries such as OpenSSL can be accelerated. There are patches for Openswan as well.

    Discussion about hardware accelerated crypto.

    Various versions of old BCM5820 driver sources.

    BCM5801/BCM5805/BCM5820 Security Processor Software Reference Library http://www.broadcom.com/products/acc...0-SRL101-R.pdf

    Cisco PIX VAC+ Encryption module is 64-bit PCI card based on Broadcom BCM5823. Another similar card is Checkpoint VPN-1 Accelerator Card II, III and IV from Silicom.

    SoC / CPU Accelerated Methods Datasheet
    BCM94704AGR WEP 128, AES OCB AES CCM 94704AGR-PB00-R.pdf
    BCM?4704P WEP 128, AES OCB, AES CCM, VPN 94704AGR-PB00-R.pdf
    BCM5365 AES (up to 256-bit CTR and CBC modes), DES, 3DES (CBC), HMAC-SHA1, HMAC-MD5, SHA1 and MD5. IPSec encryption and single pass authentication. 5365_5365P-PB01-R.pdf
    BCM5365P AES (up to 256-bit CTR and CBC modes), DES, 3DES (CBC), HMAC-SHA1, HMAC-MD5, SHA1 and MD5. IPSec encryption and single pass authentication. 5365_5365P-PB01-R.pdf
    Сам драйвер для WL-500gP: http://danm.de/files/src/bcm5365p/

    Надеюсь кто-то заинтересуется и портирует этот драйвер ядра на текущую прошивку, для OpenVPN/или других приложений нужно будет также пересобрать с поддержкой hardware-encryption (cryptodev) и запатчить OpenSSL с патчем от автора.

    Подбор ссылок по теме:
    https://forum.openwrt.org/viewtopic.php?id=18805
    https://dev.openwrt.org/browser/trun...file?rev=19372
    https://forum.openwrt.org/viewtopic....161355#p161355
    Last edited by staticroute; 29-07-2012 at 20:11. Reason: add links, add d-link dir-330

  2. #2
    Quote Originally Posted by staticroute View Post
    Надеюсь кто-то заинтересуется и портирует этот драйвер ядра на текущую прошивку, для OpenVPN/или других приложений нужно будет также пересобрать с поддержкой hardware-encryption (cryptodev) и запатчить OpenSSL с патчем от автора.
    Идея замечтательная, но в новых линейках роутеров N series и Dual-Band N series случайно не попадаются ни Secured Switch-процессоры наподобие BCM5365, ни SoC-процессоры с крипто-функциями как в BCM94704, или о наличии таких функций пока не догадываются Значит, речь может идти только об акселерации крипто-функций в стареньких роутерах wl-x00g со старым Broadcom SDK. Не за горами переход на новый SDK, в котором поддержки этих роутеров уже не будет.

    Сравнил скорость работы openssl из прошивки RT-N66u @BCM4706 (надеясь на наличие h/w акселерации шифрования) с аналогом из Entware. Никаких различий в скорости работы не обнаружил. На мой взгляд, если бы BCM4706 имел функции криптоакселерации, то с большой долей вероятности они были бы задействованы. К разговору можно будет вернуться только в случае, если выяснится, что в чипах новых роутеров криптоакселерация всё же есть.

    Quote Originally Posted by staticroute View Post
    OpenWRT комьюнити год назад забросило отдельно стоящий ubsec_ssb, заменив его на патчи из ocf-linux.
    Last edited by ryzhov_al; 29-07-2012 at 15:08.

  3. #3
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,119
    Blog Entries
    33
    Quote Originally Posted by ryzhov_al View Post
    Идея замечтательная, но в новых линейках роутеров N series и Dual-Band N series случайно не попадаются ни Secured Switch-процессоры
    наподобие BCM5365, ни SoC-процессоры с крипто-функциями как в BCM94704, или о наличии таких функций пока не догадываются
    Значит, речь может идти только об акселерации крипто-функций в стареньких роутерах wl-x00g со старым Broadcom SDK.
    Не за горами переход на новый SDK, в котором поддержки этих роутеров уже не будет.
    Sentry5™ Secured Switch Processor - BCM5365/5365P & AirForce Wireless Network Processor - BCM94704

    Есть ещё и такой: Single-Core Control Plane Processor - BCM5836P Programmer’s Guide/Data Sheet/PCI

    For advanced security, the BCM5836P integrates an on-chip IPSec acceleration engine that can deliver up to 75 Mbps of single-pass AES/3DES encryption throughput
    and supports a broad range of industry-standard security features such as symmetric-key encryption and authentication algorithms including the latest 256-bit Advanced
    Encryption Standard (AES), Digital Encryption Standard (DES), 3DES, SHA-1, MD5, HMAC-SHA1, and HMAC-MD5. These features make this processor an obvious choice
    for SOHO/SMB networking customers who need both high bandwidth performance and advanced security features such as encryption and user authentication.
    Quote Originally Posted by Hohmach View Post
    в DIR-330 USB-1.1
    Тогда действительно вопрос отпадает.
    BCM5836 = BCM4704 with additionl components - USB 2.0 core
    Там используется hardware crypto acceleration for IPSec, но нужна поддержка этого дела в прошивке.
    D-Link DIR-330

    CPU : Broadcom BCM5836PKPBG (264MHz)
    Flash : Spansion S29GL064A (8Mb)
    RAM : 2x16Mbytes
    Switch : BCM5325e
    Wi-Fi : BCM4318
    Serial : yes
    USB : yes
    JTAG : yes

    http://wl500g.info/showthread.php?18...D-Link-DIR-330

    BCM5801/BCM5805/BCM5820 Security Processor Software Reference Library http://www.broadcom.com/products/acc...0-SRL101-R.pdf
    BCM5801/BCM5805/BCM5820 Software Reference Library: http://www.broadcom.com/collateral/s...0-SRL101-R.pdf
    Last edited by Omega; 30-07-2012 at 14:41. Reason: fixed

  4. #4
    Quote Originally Posted by Omega View Post
    Sentry5™ Secured Switch Processor - BCM5365/5365P & AirForce Wireless Network Processor - BCM94704

    Есть ещё и такой: Single-Core Control Plane Processor - BCM5836P Programmer’s Guide/Data Sheet/PCI
    Ок, давай посмотрим где эти чипы встречаются:

    • SoC-камень BCM94704: 8 роутеров, включая два Азуса WL-500gpv1, WL-500W,
    • криптосвитч BCM5365: 2 роутера, включая один Азус WL-500g Deluxe.


    Всё это - девайсы старой гвардии. Боюсь, после того как будет закончен переезд на новый Broadcom SDK, эти роутеры останутся за бортом. Зачем корячиться-то?
    Мне кажется, что за поддержку акселерации крипто-функций возьмётся тот, кто тепло относится к этим некогда культовым железакам. Как ув.тов.Vampik, не позволяющий уйти в небытие DIR-320.

  5. #5
    Quote Originally Posted by ryzhov_al View Post
    Ок, давай посмотрим где эти чипы встречаются:

    • SoC-камень BCM94704: 8 роутеров, включая два Азуса WL-500gpv1, WL-500W,
    • криптосвитч BCM5365: 2 роутера, включая один Азус WL-500g Deluxe.


    Всё это - девайсы старой гвардии. Боюсь, после того как будет закончен переезд на новый Broadcom SDK, эти роутеры останутся за бортом. Зачем корячиться-то?
    Мне кажется, что за поддержку акселерации крипто-функций возьмётся тот, кто тепло относится к этим некогда культовым железакам. Как ув.тов.Vampik, не позволяющий уйти в небытие DIR-320.
    Если так рассуждать, можно вообще ничего не делать. В принципе сам драйвер уже есть, также есть пакеты вроде бы в OpenWRT с поддержкой этих штук, надо только сделать соответствующие пакеты и включить поддержку драйвера опционально в прошивку.

  6. #6
    Quote Originally Posted by staticroute View Post
    Если так рассуждать, можно вообще ничего не делать.
    ...надо только сделать соответствующие пакеты и включить поддержку драйвера опционально в прошивку.
    Я не имел в виду то, что это нафиг никому не нужно. Я говорил о том, что вряд ли стоит тратить усилия на те роутеры, которые в новом Broadcom SDK не будут поддерживаться.

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

  7. #7

    Немного не hardware, но всё-таки акселерация

    В мэйл-листе OpenWrt-Devel пробегал интересный патч, ускоряющий с помощью ассемблерной вставки работу OpenSSL:
    Quote Originally Posted by Catalin Patulea
    On a lightly loaded 24Kc, as measured by 'openssl speed sha1', shows between 27% and 120% speedup depending on block size. SHA1 is notably used in Transmission for piece verification.
    Предложил патч Андрею, результаты впечатляют:
    Quote Originally Posted by Padavan
    скорость речекинга 9.15 ГБ торрента занимает 15 минут. Но это с NTFS раздела через ufsd 8.6.
    Кто заинтересован, можете в Entware замерить скорость работы OpenSSL встроенным бенчмарком и/или оценить скорость работы завязанного на OpenSSL софта: торрентокачалки, VPN'ы и пр. После очередного ежемесячного обновления (в течение этой недели) посмотрим эффект от этого патча.

  8. #8
    В продолжение разговора. Проверил по встроенным бенчмаркам OpenSSL прирост скорости. Очень даже:

    Тест MD5 SHA-1 SHA-256 SHA-512 DES 3DES AES-128 AES-192 AES-256 RSA Sign RSA Verify DSA Sign DSA Verify
    Прирост скорости 2% 89% 43% 1% 0% 0% 0% 0% 0% 81% 90% 90% 90%

    Все тесты повторял трижды, затем арифметически усреднял значения. Напомню, именно SHA1 используется, например, торрент-клиентами при сверке хэшей торрент-контента.
    Обновлённая OpenSSL доступна в репозитории Entware.

  9. #9
    Quote Originally Posted by ryzhov_al View Post
    В продолжение разговора. Проверил по встроенным бенчмаркам OpenSSL прирост скорости. Очень даже:

    Тест MD5 SHA-1 SHA-256 SHA-512 DES 3DES AES-128 AES-192 AES-256 RSA Sign RSA Verify DSA Sign DSA Verify
    Прирост скорости 2% 89% 43% 1% 0% 0% 0% 0% 0% 81% 90% 90% 90%

    Все тесты повторял трижды, затем арифметически усреднял значения. Напомню, именно SHA1 используется, например, торрент-клиентами при сверке хэшей торрент-контента.
    Обновлённая OpenSSL доступна в репозитории Entware.
    Можете пересобрать OpenVPN с поддержкой нового OpenSSL? (или уже собран?)

  10. #10
    Quote Originally Posted by staticroute View Post
    Можете пересобрать OpenVPN с поддержкой нового OpenSSL? (или уже собран?)
    Пересобирать весь софт незачем (хотя в Entware он пересобран из-за обновления тулчейна). На примере wget. Он зависит от OpenSSL:
    Code:
    $ ldd /opt/bin/wget | grep ssl
            libssl.so.1.0.0 => /opt/lib/libssl.so.1.0.0 (0x2aac0000)
    $ opkg search *libssl.so*
    libopenssl - 1.0.1c-1
    т.е. при запуске подгружает пересобранную библиотеку OpenSSL и успешно её использует. Как и asterisk, lighttpd, transmission и остальные...
    Code:
    $ find ./feeds/ -name Makefile | xargs grep DEPENDS | grep libopenssl | wc -l
    123
    ... 123 пакета.

  11. #11

    Good news everyone!

    Ассемблерная оптимизация openssl теперь включена и в прошивки Padavan'а (RT-N56U/65U), и в AsusWRT-Merlin, и, с вышедшего на днях релиза Shibby's TomatoUSB.

Similar Threads

  1. Exploring WL500gP hardware expansion / interfacing possibilities
    By Inertial in forum WL-500gP Pics & Specs
    Replies: 38
    Last Post: 26-06-2013, 12:30
  2. Мод WL-700ge
    By GoshaP in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 109
    Last Post: 25-01-2012, 05:04
  3. SD/MMC Hardware mod: кто-нибудь на нашей прошивке делал ?
    By midya in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 25
    Last Post: 21-01-2012, 07:32
  4. 1TB in your WL-700gE?
    By monnier in forum WL-700g Q&A
    Replies: 4
    Last Post: 15-12-2008, 00:38
  5. ASUS WL-700gE Harddrive performance
    By chribok in forum WL-700g Pics & Specs
    Replies: 2
    Last Post: 11-01-2008, 20:09

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •