Moin moin da die Woche eine super Woche wird und endlich der Sommer kommt, denke ich sind die Köpfe reif für eine praktische Erholung nach der andauernden ESP Phase - ich habe mir diese Woche viel Theorie (Lektüre ) vorgenommen dem ESP8266 die SD Card noch näher zu bringen und habe am Wochenschluss ein Ass im Ärmel ( AES256 ) (lib ) , ich arbeite darauf hin, es hier wieder kundzutun, sofern mir Espressif nicht zuvorkommt; denn die kennen das Thema schon zwei Wochen uns sind 'hellwach' ;-) - aber Mikrocontroller.net hat Vorfahrt ;-) Daher: hier schon mal die Lib dazu. Einfach ins lib Verzeichnis kopieren und im Makefile mitaufführen 'aes256' Das h file folgt mit dem Projekt und allen Beschreibungen der API*s und Docu leider erst am Wochende. Am Montag Abend jedoch poste ich ein kleines Projekt mit der header Datei vorab - damit sich einige damit schon einspielen können - Das grosse Projekt bereite ich für das WE vor für NOVM xtensa explorer, VM ubuntu ide sowie victors IDE und werde in Youtube das ganze veranschaulichen. Damit ist eine Kommunikation zwischen der Peripherie ( UART, SPI, I2S usw ) nun verschlüsselt, auch der WEB Teil kann jetzt eigenmächtig verschlüsselt werden, der Bootloader kennt jetzt AES256, und das Firmware File / darf in Teilen komplett AES256 crypted sein und bleiben. Für mich ist das jetzt ein spannender Moment - bin daran schon einige Zeit. Gerade in Hinsicht einer 'CryptoBox' ist es sehr spannend in dem Thema, was der 1 Dollar Chip leisten kann wenn man ihn ausreizt. Wer ist denn noch aktiv dabei und würde sich ein paar Dinge antun dieser Woche, mein Anliegen ist es, verschiedene Beschaltungen und SD Cards zu probieren und in einer Liste festzuhalten ( WIKI ) was geht und was nicht. Dabei spiele ich als erstes nur ein einfaches Bit Banging an, danach das einfache SPI und dann in Kombination mit (H)SPI ( Flash, Oled, MCP23S17, SD Card ) Der ESP8266 soll dann zum Schluss Teile von der SD Card als Bootcode verwenden, die AES256 verschlüsselt sind und die Firmware 'etwas' schützen. Wer 'echte' Interesse? Bin ab Mi/Do wieder online dabei - habe mir die nächsten zwei Tage vorgenommen mehr über FAT und SD zu studieren und die Unterlagen schon vorbereitet, mal sehen wie sich der Thread füllt oder ins Nirvada schwindet ;-) lg rudi ;-) Meine Fragen (leider meine Schwachstellen) : Hat jemand eine SD Card am ESP per -> Bit Banging -> SPI Wie sind die Erfahrungen gewesen? Würde jemand sein Projekt hier ( Hersteller, Volume, Beschaltung ) posten? Mich wundert es nur, weil es dazu - wenn man danach sucht - keine aktuellen Einträge gibt. Das sollten wir schnellstens ändern und die ersten sein. Mit AES256 sind wir es jetzt - die Lib im Anhang - meine eigene Lib! "AES256 ESP8266 done!"
Wird die lib open soure? einer privaten closed source crypto lib würde ich meine daten nicht anvertrauen.
Marc S. schrieb: > Wird die lib open soure? > einer privaten closed source crypto lib würde ich meine daten nicht > anvertrauen. Du weisst schon wie AES256 funtioniert, oder? 256 bit Schlüssel erstellst du selber, die Routinen sind alle open source, sogar die Tabellen sind public. Denk mal drüber nach, ob das zutreffen kann, was du geschrieben hast. Dass es eine Lib zu den Routinen dazu gibt, liegt daran, es einfacher im Projekt zu handhaben:
1 | uint8_t buffer[16] = "ESP goes AES256!"; |
2 | uint8_t key[32] = ".............1f3a6e......"; |
3 | |
4 | uart0_sendStr(crypt(key,daten[16])); |
Dir bleibt es aber selbst überlassen, aus den Routinen selber eine Lib zu 'basteln'. AFAIK warum nur gibt es die nicht von dir? Deine State erklärt mir das. Läuft deine SD Card am ESP schon? Nein? ..
Dr AES256 schrieb: > Marc S. schrieb: > Wird die lib open soure? > einer privaten closed source crypto lib würde ich meine daten nicht > anvertrauen. > > Du weisst schon wie AES256 funtioniert, oder? > 256 bit Schlüssel erstellst du selber, die Routinen sind alle open > source, sogar die Tabellen sind public. Denk mal drüber nach, ob das > zutreffen kann, was du geschrieben hast. Dass es eine Lib zu den > Routinen dazu gibt, liegt daran, es einfacher im Projekt zu handhaben: und woher weiß ich dass rudi die open sorce Routinen richtig implementiert hat? nur weil irgendwo eine open source implementierug existiert heißt das doch nicht das ich rudi vertrauen kann.
:
Bearbeitet durch User
Wieso postest du eine .a-Datei und keine .c-Datei? Hier kann man es laden: http://www.literatecode.com/aes256 Wiki weiß auch was: https://en.wikipedia.org/wiki/AES_implementations#C.2FASM_library Und das Labor hat auch geforscht: http://www.das-labor.org/wiki/AVR-Crypto-Lib
:
Bearbeitet durch User
Alex W. schrieb: > Wieso postest du eine .a-Datei und keine .c-Datei? Weil ich immer noch mündig bin und selbst entscheide was ich poste und was nicht. Der Hauptgrund ist aber, weil man in jedem Projekt dann die c. Datei stehen hat und mit einer a. Datei im SDK Ordner unter den Libs steht wo sie dann hingehört und das Projekt übersichtlich hält. Es gibt auch spibitbang.a i2cbitbang.a mcp23x.a vpn.a und noch ein paar.. ich war nicht untätig das letzte dreiviertel Jahr und spare mir das auf fürs Finale ;) > > Hier kann man es laden: > http://www.literatecode.com/aes256 Das war auch nicht sonderlich schwer, steht ja alles in der lib drin :) es gibt nur eine Implementation die es wert ist, drüber zu sehen - und es ist die Beste. Wenn ich mir behelfen kann dann können es andere noch viel besser: Dann braucht keiner bis heute Abend warten wegen der header, der kann direkt von der Quelle bezogen werden. Auch den Download der Lib kann man sich sparen und selber machen: Einfach die c. Datei in den Projekt Ordner aufnehmen, die Header anpassen für den ESP / SDK, compilieren und man hat AES256 im Projekt. Nebenbei ensteht dann die o. Datei aus der macht man dann eine a. Datei die man dann als a. Datei Archiv in den Lib Ordner stellen kann um sich das gefummle bei jedem Projekt mit der c. Datei zu sparen. Einfach dann im Makefile die a. Datei mit angeben, wenn es dann gebraucht wird. Dann gibit es kein Gerangle über Vertrauen und Misstrauen, dann kann sich jeder selber am Besten vertrauen. Nur frage ich mich nach soviel 'Gegenklugscheissen' gerade, warum das bisher noch keiner gemacht hat? Ist nicht böse gemeint, aber ich finde keinen anderen Ausdruck der besser passt zu den drei Statements - sorry - nicht zu meinem :) > > Wiki weiß auch was: > https://en.wikipedia.org/wiki/AES_implementations#C.2FASM_library Es gibt x Seiten über AES256 > > Und das Labor hat auch geforscht: > http://www.das-labor.org/wiki/AVR-Crypto-Lib ja ja - liest du das auch? du solltest nicht stehen bleiben mit deinem wissen, wenn du meinst, du weisst etwas.. "WICHTIG: Diese Seite ist inzwischen veraltet. Mittlerweile hat sich eine Menge getan" Du solltest verlinkte Seiten daher erst mal lesen ;-) und - AVR hat nicht wirklich was mit dem ESP zu tun, aber du sollst Recht behalten. Dann kann ich mir die Vorstellerrei der Projekte hier wohl sparen für euch beide? Beachtet es dann einfach nicht :) Die anderen Downloader werden es vorgestellt bekommen und hoffe, dass sie sich genauso freuen wie ich, wie das reibungslos alles läuft. Mein Hauptanliegen war eigentlich SD Support im ESP und da von Anfang an mit dem ESP AES256 schon seit Oktober mache : "also loop AES256 in Debug line and Bootline for fuses the Firmware " http://www.esp8266.com/viewtopic.php?p=1447 und espressif mein flehen danach nicht nachkommt, http://bbs.espressif.com/viewtopic.php?t=12&p=235#p133 und auch die Hardware decrypting im Maskrom offenzulegen wollte ich lediglich denen einen Gefallen tun, die das auch so einsetzen wollen aber nicht implementieren können. Der interessante Teil wird der Bootloader Code, der protected code in den iram lädt - gibt es sowas schon?.. denke nicht :) Ausserdem kombiniere ich SD Card mit Firmware und protected Mode. Das war mein Pferd auf das ich von Anfang an gesetzt habe und bis heute nach fast einem Jahr keiner da ist, der das 'noch' machen kann .. ..dann wartet mal das Wochenende ab, ich geniesse es die Woche, zuzusehen, wie der Mund bei denen wassrig wird die 'Gegenklugscheissen' .... ;-) ;-) ;) Ich setze das in einem Projekt für Industry 4.0 bereits in Preview Release ein. Auch gibt es einige Windwos Apps, Android Apps und noch andere Dinge, Aber na gut. Das bin ich mittlerweilen hier von ein paar Jungs so gewohnt, so empfangen zu werden. Und die brauchen mich ja nicht. Neben AES256 sollte man sich dann auch die Arduino Geschichte ansehen, das ist dann für jeden verständlich, wie der esp und eine andere mcu in dem Fall dann der Arduino über Schnittstellen verschlüsselt übertragen. .. dabei waren diese Sachen sehr anschaulich loop AES http://sourceforge.net/projects/loop-aes/ http://loop-aes.sourceforge.net/aespipe/ others: ( arduino ect ) https://github.com/qistoph/ArduinoAES256 Aber ich habs dann lassen und mich auf das konzentriert: http://www.literatecode.com/aes256 Ein Beispiel von mir hab ich mal in den Bildern wiedergegeben, meine Bilder! Rufus ;) mein Text :) Einen kurzen Abriss kann man auch in einem anderen Forum lesen, wo ich das noch einsetze und umgeschrieben habe für AMR, AVR, PIC und weitere. http://www.matrixtsl.com/mmforums/viewtopic.php?f=58&t=16519 Und jetzt mache ich das public auch für den ESP8266. Ich bleib mir in meiner Arbeit treu :) Marc S. schrieb: > und woher weiß ich dass rudi die open sorce Routinen richtig > implementiert hat? was gibt es da verkehrt zu machen?
1 | uint8_t key[32], buf[16], i; |
2 | |
3 | // test key ...0001020304050607.....
|
4 | for (i=0; i < sizeof(key) ; i++ ) key[i] = i; |
5 | |
6 | aes256_context, ctx; |
7 | |
8 | aes256_init(&ctx, key); |
9 | |
10 | aes256_enctypt_exb(&ctx,buf); |
11 | |
12 | // Crypted Byte'S sind jetzt im buf
|
13 | |
14 | aes256_done(&ctx); |
> nur weil irgendwo eine open source implementierug > existiert mhm.. irgendwo ist gut :) na ja .. lass das mal so stehen. aber heist dass, dass du der osi nicht vertraust > heißt das doch nicht das ich rudi vertrauen kann. oder mir? mir musst du nicht vertrauen. deinem key ( siehe code ) must du vertrauen, dass er gut ist. Die Routinen sind überall gleich. Die Boxen sind überall gleich Kein Wunder - wenn die anders wären oder sabotiert, dann würden chipper/dechipper nichts mehr damit anfangen können. So nun viel Text, viel heisse Luft und .. viel zwinkerei Dann freue ich mich von Euch beiden auf Gegenprojektion :) lg rudi ;-) take it easy! peace Y edit: Zurück zum Thema: SD Card am ESP8266 / FAT/FAT16/FAT32 Links zum einlesen http://codeandlife.com/2012/04/02/simple-fat-and-sd-tutorial-part-1/ http://www.compuphase.com/mbr_fat.htm http://www.tavi.co.uk/phobos/fat.html Wer ist dabei? Bei wem läuft eine SD bereits? Standardmodule! ESP 01 -- ESP 12 edit2: http://security.stackexchange.com/questions/61361/why-use-256-bit-symmetric-encryption-in-tls-when-2048-bit-rsa-doesnt-even-offer edit3: man muss nicht enc / dec als header nehmen wie in den drei bildern, man kann es, und so sein eigenes 'id' protokoll aufbauen. für FC dient es im Flussdiagramm als Stütze für das bessere Verständnis, ohne mir dabei etwas zu denken; in der peripherie kommunikation fällt das alles weg, und es werden die blocks geschauffelt, später kommt eine polymer dazu, da kann man dann rechnen was man will :) .. txs hage! edit5: online tool http://aes.online-domain-tools.com/
Ich brauche kein gegenprojekt rudi, es ging mir nur darum, dass eine lib ohne den dahinter liegenden code zu kennen genau so gut die daten die ich schützen will an den macher der lib versenden könnte. Kryptografie ist ein heikles thema und wenn ich es für nötig halte sie ein zu setzen sollte ich der quelle auch vertrauen können oder nachprüfen können ob da alles mit rechten dingen zu geht. da du deine quellen offen gelegt hast steht einem vertrauensvollen einsatz deiner lib nichts im wege.
Marc S. schrieb: > Ich brauche kein gegenprojekt rudi, es ging mir nur darum, dass eine lib > ohne den dahinter liegenden code zu kennen genau so gut die daten die > ich schützen will an den macher der lib versenden könnte. > > Kryptografie ist ein heikles thema und wenn ich es für nötig halte sie > ein zu setzen sollte ich der quelle auch vertrauen können oder > nachprüfen können ob da alles mit rechten dingen zu geht. da du deine > quellen offen gelegt hast steht einem vertrauensvollen einsatz deiner > lib nichts im wege. hi marc, das hätte ich heute abend sowieso offengelegt, für FC ( Flowcode ICON ) habe ich das ja auch offengelegt und geschrieben auf was es aufbaut. ich nehme z.B. die quelle für alles her, auch in Delphi, XE und MS Studio , habe meine eigene DLL dazu gemacht, weil ich grad in dem thema drin war und warm war und ;) weil ich bei solchen sachen auch gerne auf eigene Sachen aufbaue, darum verstehe ich das statement sehr gut, ist ja auch berechtigt. mir hat die konstellation der mcu's spass gemacht die sich dann die sachen geteilt haben, so enstand dann der AES256 explore.. auch für android gleich durchgezogen. ich poste das schon noch alles; mir läuft wie immer die Zeit davon. rasen mähen muss ich auch wieder :) familie hängt im nacken, auto muss zum tüv usw :) mir geht ein schlussteil ab, und das ist das SD Card Kapitel und da wollte ich mich halt mit einigen austauschen die eine SD Card daran schon betreiben, denn es gibt lustigerweise dazu von mir kleine ansätze (copyprotect bereiche auf der card) die für den ESP sehr nützlich sind und sich eben mit der libaes256 wahnsinnig gut vertragen, wie aus dem Bilderbuch. später mehr versprochen, muss das selber erst noch richtig verstehen ob das future oder bug ist :) hoffe das du mein state nicht pers. nimmst. wäre schön wenn wir hier ein mircrocontroller.net sd card projekt stemmen würden, denn die wettstreiter sind derzeit alle dabei, zu kontern. und noch was: das neue ESP-12E ist mit vorsicht zu geniessen, auch das WROOM http://bbs.espressif.com/viewtopic.php?f=7&t=654&sid=8e2e8353ac8e7a0c6d8b592c3cb57b8c#p2406 wir sind und bleiben community! lg rudi ;-) aber das wissen ESP fans :)
push: my base for ESP AES256: http://www.literatecode.com/aes256 thanks to: Ilya O. Levin and Fyodor Yarochkin best wishes rudi ;-)
uncut video preview , sorry für die qualität, aber es sind meine ersten bandicam's, und unbearbeitet. sitze an einem anderem rechner. am wochenende sieht alles anders aus -------------------------------------------------------------------- Webserver mit AES256 http://youtu.be/2RqG_T-iinE protected AT Version mit AES256 http://youtu.be/eVfmBTm5Isg protected developer key im AT+GMR und extended security tags http://youtu.be/QjjikxtHoCI header folgt. lg rudi ;-)
Super Arbeit, So weit bin ich noch nicht, arbeite noch daran mir die Entwicklungsumgebung aufzusetzen (komm leider aus der Windows Richtung) Aber mein Ziel ist es den FT800 anzusprechen. Gameduino 2 hängt schon am ESP-03. Werde das hier auch weiter verfolgen.
einfacher header file: aes256.h
1 | /*
|
2 | * Byte-oriented AES-256 implementation.
|
3 | * All lookup tables replaced with 'on the fly' calculations.
|
4 | *
|
5 | * Copyright (c) 2007-2009 Ilya O. Levin, http://www.literatecode.com
|
6 | * Other contributors: Hal Finney
|
7 | *
|
8 | * Permission to use, copy, modify, and distribute this software for any
|
9 | * purpose with or without fee is hereby granted, provided that the above
|
10 | * copyright notice and this permission notice appear in all copies.
|
11 | *
|
12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
13 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
14 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
15 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
16 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
17 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
18 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
19 | */
|
20 | #ifndef uint8_t
|
21 | #define uint8_t unsigned char
|
22 | #endif
|
23 | |
24 | #ifdef __cplusplus
|
25 | extern "C" { |
26 | #endif
|
27 | |
28 | typedef struct { |
29 | uint8_t key[32]; |
30 | uint8_t enckey[32]; |
31 | uint8_t deckey[32]; |
32 | } aes256_context; |
33 | |
34 | |
35 | void aes256_init(aes256_context *, uint8_t * /* key */); |
36 | void aes256_done(aes256_context *); |
37 | void aes256_encrypt_ecb(aes256_context *, uint8_t * /* plaintext */); |
38 | void aes256_decrypt_ecb(aes256_context *, uint8_t * /* cipertext */); |
39 | |
40 | #ifdef __cplusplus
|
41 | }
|
42 | #endif
|
erweiterter einfacher header mit ein paar #defines - für das spätere printen oder weiterreichen in gepaartem hex format.. variablen dann nicht vergessen einzurichten im c file. file: aes256.h
1 | #ifndef uint8_t
|
2 | #define uint8_t unsigned char
|
3 | #endif
|
4 | |
5 | #ifdef __cplusplus
|
6 | extern "C" { |
7 | #endif
|
8 | |
9 | typedef struct { |
10 | uint8_t key[32]; |
11 | uint8_t enckey[32]; |
12 | uint8_t deckey[32]; |
13 | } aes256_context; |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | #define dumpx(s, i, buf2, sz) { at_port_print(s); \
|
20 | for (i = 0; i < (sizeof(buf2));i++) \
|
21 | { \
|
22 | os_sprintf(dumpmsg,"%02x ", buf2[i]);\
|
23 | at_port_print(dumpmsg); \
|
24 | } \
|
25 | at_port_print("\r\n"); }
|
26 | |
27 | |
28 | #define dumpc(s, i, buf2, sz) { at_port_print(s); \
|
29 | for (i = 0; i < (sizeof(buf2));i++) \
|
30 | { \
|
31 | os_sprintf(dumpmsg,"%c ", buf2[i]);\
|
32 | at_port_print(dumpmsg); \
|
33 | } \
|
34 | at_port_print("\r\n"); }
|
35 | |
36 | |
37 | #define dumpxk(s, i, buf2, sz) { at_port_print(s); \
|
38 | for (i = 0; i < (sizeof(buf2));i++) \
|
39 | { \
|
40 | os_sprintf(dumpmsg,"%02x", buf2[i]);\
|
41 | at_port_print(dumpmsg); \
|
42 | } \
|
43 | at_port_print("\r\n"); }
|
44 | |
45 | |
46 | |
47 | |
48 | |
49 | void aes256_init(aes256_context *, uint8_t * /* key */); |
50 | void aes256_done(aes256_context *); |
51 | void aes256_encrypt_ecb(aes256_context *, uint8_t * /* plaintext */); |
52 | void aes256_decrypt_ecb(aes256_context *, uint8_t * /* cipertext */); |
53 | |
54 | |
55 | |
56 | |
57 | #ifdef __cplusplus
|
58 | }
|
59 | #endif
|
ein kleines anschauliches beispiel: file.. je nachdem wo man es braucht hier mal eventuell in der user_main.c eventuell unter der user_init() hab das sio in das forum geschrieben können schreibfehler drin sein
1 | ..
|
2 | #include "aes256.h" |
3 | ..
|
4 | |
5 | |
6 | |
7 | uint8_t key[32], i; |
8 | uint8_t buf[16] = "rudi goes AES256"; // ich spare mir das \0 |
9 | uint8_t msg[128] = {0}; |
10 | |
11 | // AES256 Procedure
|
12 | // standardkey test einrichten
|
13 | // test key ...0001020304050607.....
|
14 | for (i=0; i < sizeof(key) ; i++ ) key[i] = i; |
15 | |
16 | // ..
|
17 | aes256_context ctx; |
18 | |
19 | // ..
|
20 | aes256_init(&ctx, key); |
21 | |
22 | // crypted nun den buf inhalt "rudi goes AES256"
|
23 | aes256_encrypt_ecb(&ctx,buf); |
24 | |
25 | // crypted Byte'S sind jetzt im buf
|
26 | // und können weiterverarbeitet werden.
|
27 | // uart ausgabe?
|
28 | // daten weiterreichen?
|
29 | // ..
|
30 | |
31 | |
32 | // für den Fall dass hier jetzt schluss ein soll
|
33 | // aes256_done(&ctx);
|
34 | |
35 | // wir wollen aber noch decrypten und nehmen gleich den buf als eingabe her
|
36 | // der kann jetzt von einem UART kommen, oder SPI oder ...
|
37 | // sollte die AES256 Prozedure geschlossen sein
|
38 | // dann muss man eine Instanz wieder öffnen
|
39 | // soll es ein andere Key sein, dann den key nehmen der
|
40 | // erforderlich ist, um zu decrypten
|
41 | // wenn es sich um den demo key handelt
|
42 | // dann eben wieder 00010203....1F
|
43 | |
44 | // AES256 Procedure
|
45 | // standardkey test einrichten
|
46 | // test key ...0001020304050607.....
|
47 | // brauchen wir jetzt aber nicht weil wir die gleiche
|
48 | // Instanz verwenden daher auskommentiert
|
49 | // for (i=0; i < sizeof(key) ; i++ ) key[i] = i;
|
50 | |
51 | // ..
|
52 | // aes256_context ctx;
|
53 | |
54 | // ..
|
55 | // aes256_init(&ctx, key);
|
56 | |
57 | |
58 | // decrypted nun den crypted buf inhalt 0x1f ....
|
59 | aes256_decrypt_ecb(&ctx,buf); |
60 | |
61 | // decrypted Byte'S sind jetzt im buf
|
62 | // und können weiterverarbeitet werden.
|
63 | |
64 | // jetzt schliessen wir mal das aes256 procedere ab
|
65 | aes256_done(&ctx); |
66 | |
67 | // wir sind fertig
|
die libaes256.a ins SDK lib verzeichnis und im Makefile dann den eintrag der lib nicht vergessen aes256 sollte bis zum weekend ausreichen. jeder kann sich die aes256 routinen dann so verkapseln wie er sie braucht, z.b. als functionen einbauen..
1 | // standardkey..
|
2 | void aes_set_standardkey(){ |
3 | |
4 | for ( i = 0; i < sizeof(key);i++) key[i] = i; |
5 | // dumpx("key:set ", i, key, sizeof(key));
|
6 | }
|
7 | |
8 | // beispiel aus dem video
|
9 | // anderer key
|
10 | void aes_set_kndkey(){ |
11 | for ( i = 0; i < sizeof(key);i++) key[i] = i+3; |
12 | // dumpx("key:knd ", i, key, sizeof(key));
|
13 | }
|
usw. wer nicht klar kommt, bitte schreibt es. lg rudi ;-) und bis zum wochenende dann :)
R. W. schrieb: > Alex W. schrieb: >> Wieso postest du eine .a-Datei und keine .c-Datei? > > Weil ich immer noch mündig bin und selbst entscheide > was ich poste und was nicht. So etwas von unnötig und dann auch noch kein Source dabei... Aber Hauptsache, es steht überall 'rudi'. Warum sollte irgendjemand bei klarem Verstand mit ESP irgendetwas verschlüsseln ? Aber von wirklich nützlichen Sachen wie SD-Card routine Null Ahnung. Und welche Firmware soll von wem geschützt werden ? Ja, das ist der Alptraum aller Anfänger und möchtegern Programmierer - alle wollen meinen Code klauen. 20 Prozent der Zeit für Code, 80 Prozent der Zeit um diesen (meistens schlechten) Code zu schützen. Nur weiter so...
Hi, wozu braucht man denn so etwas? Wenn der Boot-Code unverschlüsselt im Flash liegt kann man doch alles was später ausgeführt wird reverse engineeren, oder? Würde das nicht nur Sinn machen wenn der real Boot Code im Esp (64K?) beschreibbar wäre und nicht auslesbar wäre?
Marc V. schrieb: > So etwas von unnötig und dann auch noch kein Source dabei... > Aber Hauptsache, es steht überall 'rudi'. Hast du gepostet ohne zu lesen? Source: aes256.c http://www.literatecode.com/get/aes256.c aes256.h http://www.literatecode.com/get/aes256.h Wie eine Lib davon gemacht wird kannst du in dem Thread von 'rudi' entnehmen und wirst wohl auch noch hinbekommen > > Warum sollte irgendjemand bei klarem Verstand mit ESP irgendetwas > verschlüsseln ? Frag das mal AVR (XMEGA) oder Security Flash IC'S und dann fällt mir noch ein: P2P VPN SSL .. > > Aber von wirklich nützlichen Sachen wie SD-Card routine Null Ahnung. Dann lass dir das von 'rudi' erklären wenn 'du' Null Ahnung hast, auch das hast du überlesen, der bootet seit Oktober 2014 von SD Sonst noch was konstruktives von dir zum Thema? Man sollte einfach klappe halten wenn man ausser nörgeln nix zum thema weiss. Der Thread wird wie immer ins Nirvada gehen. SpenZerX schrieb: > Hi, > > wozu braucht man denn so etwas? Wenn der Boot-Code unverschlüsselt im > Flash liegt kann man doch alles was später ausgeführt wird reverse > engineeren, oder? Du hast irgendetwas nicht verstanden. Der Boot Code liegt eben crypted vor und kann nicht reversed werden Teile davon werden in den iram direct ausgetauscht und die HW Routine zunutze gemacht, kannst du den iram reversen, den irom? Schauh dir die Zusammenhänge von irom und iram genau an. Es geht nicht um das 'Neu Erfinden von AES256' es geht darum, dass man es auf einfache Art und Weise sich nützlich machen kann in einem überschaubaren einfachen Source Code der zu einer LIB für den ESP hier steht, die es nicht machen können. Wer von dem ganzen keine Ahnung hat, wird es mit oder ohne LIB nicht selber machen und auch kein Interesse haben eine Firmware schützen zu wollen. Wieso gibt es einen AVR Bootloader mit AES? Damit man das FW Hex crypted auf den AVR bekommen kann den der Bootloader dann in den geschützen Bereich des AVR decrypted. Hier sind aber beide Sachen vorhanden. AES verschlüsselte Übertragung AES verschlüsselete Übergabe an den ESP der ihn dann mit seiner eigenen HW Routine weiterverarbeiten kann. Der ESP hat im Gegensatz zu anderen mcu'S keinen Flash für Programmcode in dem Sinne und ist auf einen externen Chip - den man auslesen kann - ausgelagert. Um das geht es hier! > Würde das nicht nur Sinn machen wenn der real Boot Code im Esp (64K?) > beschreibbar wäre und nicht auslesbar wäre? Schauh dir die HW Routinen zu AES an die der ESP von Haus aus mitbringt z.B. für WPA und beachte die Tabelle die man bis zu 256bit im esp füttern kann die im ESP liegen. Wöfür die man wohl verwenden kann? ..
Dr AES256 schrieb: >> >> Warum sollte irgendjemand bei klarem Verstand mit ESP irgendetwas >> verschlüsseln ? > > Frag das mal AVR (XMEGA) oder Security Flash IC'S > und dann fällt mir noch ein: > > P2P > VPN > SSL > .. Marc V. schrieb: > Und welche Firmware soll von wem geschützt werden ? Du weisst doch, dass der ESP eine Reichweite von gerademal 30m hat ? Was genau soll da geschützt und verschlüsselt werden und warum gerade mit ESP8266 auf diesen 30m ? So einen Blödsinn habe ich seit langem nicht mehr gehört. Und dann auch noch so tun als ob man die Relativitätstheorie neu erfunden hat... Mit einer einfachen Tabelle mit 256Byt und einem eigenen Algorithmus der z.B. Montags ab 90-ten Byte anfängt, Dienstags mit Byte 176 anfängt, Monatszahl dazuaddiert usw., hat man schon ein Verfahren, welches praktisch unknackbar ist. Da braucht man kein AES oder sonstwas. Und wenn man schon AES verwenden will, dann aber ganz am Anfang, also am PC oder gleich die Library benutzen, die du abgeschrieben hast. > Sonst noch was konstruktives von dir zum Thema? > > Man sollte einfach klappe halten wenn man ausser nörgeln nix zum thema > weiss. Sagen wir es mal so: ich habe zum Thema mehr vergessen, als du jemals lernen wirst. P.S. Man sollte nicht unter 2 verschiedenen Namen posten. Das ist nicht schön.
:
Bearbeitet durch User
Marc V. schrieb: > Du weisst doch, dass der ESP eine Reichweite von gerademal 30m hat ? ?? hast du einen esp`? was machst du damit? was meinst du damit? inside? outside? pcb antenne, keramic antenne, extern antenne? wenn du den esp8266 selbst meinst, ohne irgendetwas, dann wirst du wahrscheinlich auf knapp unter 30 m kommen in der wildbahn soweit strahlt der, denke ich. mit einer pcb antenne liegst du schon bei knappen 70 m, praktisch und mit einer keramic knappe 150 m, praktisch mit einer yagi sieht es schon besser aus, knappe 1200 m, praktisch und parabol die üblichen werte bei zweien die sichtverbindung haben, praktisch. es soll hier kein reichweiten wettbewerb werden marc, wenn du das thema hier nicht brauchen kannst, worum es geht, dann lass doch einfach das 'wozubrauchtmandas' > Was genau soll da geschützt und verschlüsselt werden und warum gerade > mit ESP8266 auf diesen 30m ? wenn du ideen suchst, was du mit dem esp mit der "von mir erfundenen extended tag erweiterung" anstellen kannst, empfehle ich dir creativ workshops, du kannst auch zu mir nach niederbayern kommen, nimm deine gummistiefel mit, wir gehen hochgrassmähen, jetzt dann hansbierl sammeln und nebenbei plaudern wir. selbst leiterbahn verbindungen zu verschlüsseln zwischen peripherie macht sinn. wenn du beispiele brauchst - xbox. über das verfahren diskutiere ich nicht - interessiert mich auch nicht, will damit sagen, es machen welche. 16 byte crypted wo hinsenden, die 'nicht knackbar' sind solange aes256 sicher ist, wird das so sein. welchen zweck das hat, meine sache - meine idee - meine creativität. welchen sinn das hat, oder unsinn ist, entscheidet der, der es so macht. für meine zwecke ist das sinnvoll. es ist sicher, uneinsehbar und macht spass zuzusehen, wie anderen der "mund wassrig wird" und versuchen das geheimnis zu lüften.. ;-) > So einen Blödsinn habe ich seit langem nicht mehr gehört. .. > Und dann > auch noch so tun als ob man die Relativitätstheorie neu erfunden hat... .. > Mit einer einfachen Tabelle mit 256Byt und einem eigenen Algorithmus um gottes willen?!:"§ 256 byte? das sind 256 container für je 8 bit das sind 2048 bit ( RSA ) du bist ja schlimmer wie mein ansatz, bist du paranoid? oder meinst du 256 bit? > der z.B. Montags ab 90-ten Byte anfängt, Dienstags mit Byte 176 > anfängt, Monatszahl dazuaddiert usw., hat man schon ein Verfahren, > welches praktisch unknackbar ist. jetzt grinse ich aber :).. du willst also aes neu erfinden :) lustig.. ich bleib bei 197 fips.. ;) dann mach einen thread auf 'marc presente: mein neues unknackbare verfahren' und suche deine diskussion dort - ( will dich nicht verjagen hier so ist das nicht gemeint! ) die polymere ist ein anderes thema marc und kommt später dazu.. - hier versuche ich in drei schritten was darzulegen was es noch nicht gibt für den esp und nutze dabei esp eigene hw routinen über sd später. schritt eins: AES256 nahebringen, einfaches crypten/decrypten schritt zwei: sd card implementieren schritt drei: ... wirst du nicht mehr mitbekommen weil keiner da ist der eine sd card am esp laufen hat, daher bleib ich solange allein mit meiner praxis erfahrung. basta. nicht mehr und nicht weniger aber eben gefragt und neuland :) > Da braucht man kein AES oder sonstwas. Und wenn man schon AES verwenden > will, dann aber ganz am Anfang, also am PC oder gleich die Library > benutzen, die du abgeschrieben hast. was du meinen? was du nicht verstehen hier? sorry - lies das mal weiter oben: zitat: "ich nehme z.B. die quelle für alles her, auch in Delphi, XE und MS Studio , habe meine eigene DLL dazu gemacht,".. und? was sagt dir das? meinst du allen ernstes dass ich mir das aus jux ausdenke? :) > Sagen wir es mal so: ich habe zum Thema mehr vergessen, was hattest du dann zuvor eigentlich gewusst, wenn du in diesem thread sachen vergisst, die ein paar threads vorher stehen? nein ich werde jetzt nicht altersbeleidigend daher reden, da ich anständig erzogen worden bin, aber empfehle dir dann schon etwas bewegung im freien und etwas kniffiges jeden tag um fit zu bleiben. schade eigentlich - ist wie immer - "rudi" kommt mit was daher das keiner versteht weil er sich nicht ausdrücken kann und kauderwelsch schreibt und die schnabelspitzen tackern hier .. ist mir auch ehrlichgesagt egal - im gegensatz vieler meinungen hier - ich habe keine "mehrwisser" doku - kein espressif special vertrag oder sonstiges - mein wissen basiert auf praktiziern seit das esp fieber ausgebrochen ist - und mir macht das riesen spass, im neuland zu stochern und auf die schnauze zu fallen und wieder aufzustehen, meine erfahrung habe ich dabei gemacht fürs leben - was ich nicht mache ist, mein wissen zu teilen - in der form, dass ich meinen "code" poste. dieses gelächer spare ich mir dann doch - .. oder das weinen .. würde ich das auch noch machen, glaubt mir keiner, dass ich Laie bin. in diesem sinne.. ich weiss was ich kann und was ich will marc und was geht und was nicht. wenn ich über c code stolpere der nicht geht, frage ich hier im forum nach, karl heinz ist für mich der beste teacher sowie ein "klaus". die sagen dir nicht die lösung, die beschreiben den weg dorthin, sodass die sehnsucht nach der Lösung so gross wird, dass man sich auf den weg macht, sich hinzusetzen und c zu lernen, von anfang an. sowas fehlt einigen hier - und das obergetue von c machos kann ich nichts mehr ab - ist ok - aber ich denke - die sind dann stehen geblieben.. sonst gäbs ja schon alles.. .. aber dieses euphorische thema hatten wir hier schon oft und charakerisiert den "mikrocontroller.net rudi" und ganz ehrlich? darauf bin ich stolz wie "harry hirsch" mehr euphorie hier in dem thread lasse ich aussen vor, einige haben sich schon gemeldet die den gleichen weg suchten wie ich, hatten aber keinen ansatz, ich hatte den ansatz, konnte aber kein c für solche experimente, um das umzusetzen. heute sieht es anders aus, das meiste verdanke ich karl heinz hier aus dem forum, und wer mich persönlich kennt, ist erstaunt, was daraus geworden ist. soll nicht arrogant rüber kommen, aber es ist so. ich weiss noch, wem ich zu danken habe, wenn man erfolg spürt, ob du es glaubst oder nicht, espressif wollte das haben - da espressif aber wieder "zu gemacht hat" und alles per libs "uns" gibt, bekommen sie das know how dazu auch nur per lib. http://bbs.espressif.com/viewtopic.php?f=15&t=665 zitat: " with an own bootloader i boot in an asap comming project from sd card part of crypted bootcode (firmware) ( copy protected part ) and transfer it to iram... protected and run this mapped/direct details for this only you give me gift, wifes, cars, (drugs-no this is bad!) , rockn roll and other good things fun! will ´think about this .. but just in time - only libs because this is many month work in bootcode and more - @stanza ESP8266 goes AES256 now with own bootcode done! " meine erfahrung ist zu wenig um darüber ökonom urteilen zu können, ob das ein "boh äh" oder ein "buh oh" ist, in zeit und geld das umzurechnen?.. das letzte dreiviertel jahr hab ich alles liegen lassen, familie, freunde u.a. und mich nur dem ESP gewidmet. und behersch den heute.. ich wage zu behaupten - fast so gut wie espressif selbst - denn würde ich sagen besser - klingt das arrogant. die reaktion gibt mir recht, dass mein ansatz der richtige war, und dieses pferd wird im finale einlaufen, auf das ich gesetzt und mich für mich auf c eingelassen habe - , alles andere spare ich mir auf fürs finale http://www.esp8266.de oder meinst du ich drehe hier däumlein? .. lg rudi ;-)
R. W. schrieb: > um gottes willen?!:"§ 256 byte? das sind 256 container für je 8 bit das > sind 2048 bit ( RSA ) > du bist ja schlimmer wie mein ansatz, > bist du paranoid? oder meinst du 256 bit? Nein, ich meine 256Byt für die Tabelle und vielleicht noch 500Byt für code. R. W. schrieb: > dann mach einen thread auf 'marc presente: mein neues unknackbare > verfahren' und suche deine diskussion dort - Wozu ? Um noch weiter uber unnütze Sachen zu diskuttieren ? Ich bin raus.
Marc V. schrieb: > Ich bin raus. Schade! Ich meine das ernst Marc! Genau da fange ich dann an, aufzustehen, wenn mir welche so kommen wie ich dir gegenüber. Wer sagt "mir" denn, ob deine "Spinnerei" ( nicht ernst nehmen!!! ) nicht doch besser ist? Hoffe du verstehst diesen Ansatz richtig! Darum bin ich eigentlich froh für die vielen Ellenbogen Rempler hier im Forum, in der Natur ist das nichts anderes. Und wer den Weg sucht wird ihn gehen - ob er den richtigen gefunden hat wird sich erst zeigen. lg! rudi
R. W. schrieb: >> Ich bin raus. > > Schade! Ich meine das ernst Marc! Wenn Du das wirklich ernst meinst, dann schreibe mal ganze Sätze, benutze die Shift-Taste und gruppiere Dein Gestammele in wohlgeordnete Absätze. Lies mal oben Deinen Beitrag von 15:57 Uhr heute durch. Schon nach dem dritten Satz schwirrt einem der Kopf und man muss abbrechen, weil man überhaupt nichts mehr versteht. Kein Satz wird zu Ende geführt, kein Gedanke wird erläutert oder vertieft. Nur irgendwelche Worte aneinandergereiht. Sorry, du kannst das nicht ernst meinen! Denn Du zeigst noch nichtmals Respekt vor Deinen Lesern. Sonst würdest Du Dir mehr Mühe geben. Stattdessen rotzt Du einfach das, was Dir gerade im Kopf rumschwirrt, in die Tastatur. Kotz!
Marc V. schrieb: > Nein, ich meine 256Byt für die Tabelle und vielleicht noch 500Byt > für code. >
1 | uint8_t msgC [1][1]; |
2 | uint8_t tbl [8][8]; // 64er table // würfelung nach zeitfenster |
3 | ..
|
4 | uint8_t time.... |
5 | ..
|
6 | |
7 | |
8 | /*
|
9 | |
10 | 7 6 5 4 3 2 1 0
|
11 | 7 a b c d e f g h
|
12 | 6 i j k l m n o p
|
13 | 5 q r s t u v w x
|
14 | 4 y z A B C D E F
|
15 | 3 G H I J K L M N
|
16 | 2 O P Q R S T U V
|
17 | 1 W X Y Z 0 1 2 3
|
18 | 0 4 5 6 7 8 9 : )
|
19 | |
20 | |
21 | nur 64 zeichen..
|
22 | |
23 | |
24 | */
|
totale verschwendung war das.
1 | uint8_t msgC [1][1]; |
2 | uint8_t tbl [1][1]; // auch 64er table aber 8 bit x 8 bit |
3 | // würfelung nach zeitfenster
|
4 | ..
|
5 | uint8_t time.... |
6 | ..
|
7 | |
8 | |
9 | /*
|
10 | |
11 | 7 6 5 4 3 2 1 0
|
12 | 7 0 1 2 3 4 5 6 7
|
13 | 6 8 9 a b c d e f
|
14 | 5
|
15 | 4
|
16 | 3
|
17 | 2
|
18 | 1
|
19 | 0
|
20 | |
21 | */
|
du hast alle 255 zeichen du hast sogar noch weiter platz für extendeds 8x6 und belegst nur 8 x 2 und jetzt kommst du mit 256 byte du erschlagst mich ja lg rudi ;-)
Frank M. schrieb: > R. W. schrieb: >>> Ich bin raus. >> >> Schade! Ich meine das ernst Marc! > > Wenn Du das wirklich ernst meinst, dann schreibe mal ganze Sätze, > benutze die Shift-Taste und gruppiere Dein Gestammele in wohlgeordnete > Absätze. > > Lies mal oben Deinen Beitrag von 15:57 Uhr heute durch. Schon nach dem > dritten Satz schwirrt einem der Kopf und man muss abbrechen, weil man > überhaupt nichts mehr versteht. Kein Satz wird zu Ende geführt, kein > Gedanke wird erläutert oder vertieft. Nur irgendwelche Worte > aneinandergereiht. > > Sorry, du kannst das nicht ernst meinen! Denn Du zeigst noch nichtmals > Respekt vor Deinen Lesern. Sonst würdest Du Dir mehr Mühe geben. > Stattdessen rotzt Du einfach das, was Dir gerade im Kopf rumschwirrt, in > die Tastatur. Kotz! Ich hasse die normal Norm Frank! Ich schreibe schon immer klein. Ich mache mir Mühe, die gesammelte Erfahrung an den Mann zu bringen, die hat immens Nächte verschlungen. Dass es immer an dieser blöden normal Norm liegen soll, kann es doch nicht sein. Sobald ich anfange den Text zu formieren, ist der Gedankenzug dahin. Vieleicht sollte ich audatics machen? Einen Entwurf zum Threadtext? Mann. Ja - Du hast Recht. Aber so - siehst selber - kommt nichts von mir raus. Mist.. ..nochmal! Ja - Du hast Recht.
R. W. schrieb: > Ich schreibe schon immer klein. Damit mutest Du 1000 Lesern die 1000fache Arbeit zu, Deine Texte im Kopf in etwas verständliches umzuwandeln. Wenn Du Dir die Mühe geben würdest, dann muss diese Arbeit nur einmal und nicht 1000mal gemacht werden. > Sobald ich anfange den Text zu formieren, ist der Gedankenzug dahin. Das kann ja sein. Wenn ich aber versuche, Deinen Gedankengang zu verstehen, dann schaltet irgendwann mein Gehirn auf Durchzug, weil mein "Decoder" im Hirn mit einem Syntax Error aussteigt. Vielleicht machst Du es ja so: Erst schreibst Du den Text, wie Du es gewohnt bist, runter. Anschließend liest Du ihn Dir durch und formulierst die Sätze aus , wobei Du Dich Dich dabei in den unbedarften Leser versetzt, der gern mitkommen will. Dann erst schickst Du den Text ab. So geht dann auch kein Gedankengang verloren. > Vieleicht sollte ich audatics machen? Syntax Error. > Einen Entwurf zum Threadtext? Ja, siehe oben. > Aber so - siehst selber - kommt nichts von mir raus. Es wäre schade, wenn Deine Ideen von niemandem gelesen werden, weil keiner sie versteht.
Frank M. schrieb: > R. W. schrieb: > >> Ich schreibe schon immer klein. > > Damit mutest Du 1000 Lesern die 1000fache Arbeit zu, Deine Texte im Kopf > in etwas verständliches umzuwandeln. Wenn Du Dir die Mühe geben würdest, > dann muss diese Arbeit nur einmal und nicht 1000mal gemacht werden. Ja ich weiss, dass hattest Du mir schon mal so gesagt. Es war ja dann eine Zeit besser, in der auch manche unsicher waren, ob ich das jetzt bin, der das schreibt. >> Einen Entwurf zum Threadtext? > > Ja, siehe oben. Ja, ich werde es versuchen. Danke! lg rudi ;-)
R. W. schrieb: > Ja ich weiss, dass hattest Du mir schon mal so gesagt. > Es war ja dann eine Zeit besser, in der auch manche unsicher > waren, ob ich das jetzt bin, der das schreibt. Dich erkennt man schon - spätestens am Ende(!) am Smiley ;-)
.. schrieb im Beitrag "Re: WiFi Relais mit ESP8266 ESP-01 Modul (Bascom)": > Sieh dir das Linker File an.… > PROVIDE ( aes_decrypt = 0x400092d4 ); > PROVIDE ( aes_decrypt_deinit = 0x400092e4 ); > PROVIDE ( aes_decrypt_init = 0x40008ea4 ); > PROVIDE ( aes_unwrap = 0x40009410 ); Cool. Sowas habe ich auch gerade auf hackaday gelesen: > This means you don’t need to (and shouldn’t) re-implement MD5 (even > with hmac), SHA1, … AES, …! > The full list of functions that reside in the on-chip ROM can be found > in eagle.rom.addr.v6.ld. It would behoove you to take a look in there > now and see the wonderland of awesome that’s provided out of the box. http://hackaday.com/2015/03/18/how-to-directly-program-an-inexpensive-esp8266-wifi-module/ Frage: Benutzt Du für Deine Software diese o.g. AES-Funktionen? Kennst Du die Funktions-Signaturen, so dass man sie einfach "extern" deklarieren und benutzen kann? Ich will keine SD-Card schützen, wird eh alles open source. Es geht mir mehr um symmetrische End2End-Verschlüsselung.
:
Bearbeitet durch User
Torsten C. schrieb: > .. gerade .. gelesen: ;-) du bist lustig ;-) du musst krebs sein, der geht auch manchmal rückwarts ;-) .. > Frage: Benutzt Du für Deine Software diese o.g. AES-Funktionen? nein die hier die im ersten post steht u.a. auch jetzt im modifizierten bootloader 'rboot' https://www.youtube.com/watch?v=Q0VWK4UHcg8 > Kennst > Du die Funktions-Signaturen, so dass man sie einfach "extern" > deklarieren und benutzen kann? die stehen u.a. auch in der libctypto.a , libssl.a ein sehr gutes example, sollte es deiner aufmerksamkeit entgangen sein :) http://bbs.espressif.com/viewtopic.php?f=7&t=386 wo kommst du nicht weiter? -> neuer thread !!! bitte ;-) lg rudi ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.