Beiträge von mainziman

    Enten sind immer gut 🦆

    besonders wenn sie am Sonntag aus dem Backofen kommen :D


    MyMattes sehr schön gesagt (geschrieben);

    ich kann hier x Dinge auflisten, welche bei Autos von heute an Sicherheitsfeatures verbaut sind, welche es damals in den 1980er/90er nicht gegeben hat, oder nur in Premiums verbaut waren;

    analog kann ich x Eigenschaften auflisten, welche es in neuen Programmiersprachen gibt, welche damals unbekannt waren;


    und dennoch gilt: man sollte als Entwickler bei einer Schiene bleiben, die man auf Grund von Erfahrung/Routine mittlerweile beherrscht;

    der Umstieg auf eine neue Schiene birgt meist mehr Risiken/Fehler als der Nutzen bringen würde;


    es klingt jetzt dramatisch, aber ein 50jg. Entwickler, der auf was neues umsteigen soll, birgt mehr Risiken als wenn er beim alten bleibt;


    wie ich oben bereits geschrieben habe, die selbst verursachten Unfälle mit Elektrofahrrädern und tlw. schweren Verletzungen, sind genau die Altersgruppe,

    bei welcher man zwar glaubt es gut zu meinen, aber damit eigentlich es schlechter macht;


    ab einem Alter kommen die Wehwechen orthopädischer Natur, und hier es dann gut zu meinen dass ein Elektrofahrrad hilft,

    dass der/diejenige mit z.B. Knieproblemen weiterhin mit dem Rad fahren kann, ist nicht immer gut;

    Also das viele Sprachen einen Stack Overflow mittlerweile unmöglich machen ist doch jetzt kein Trugschluss, oder habe ich dich falsch verstanden?

    das ist aber ein grober Fehler; das ist nicht den Sprachen geschuldet sondern ganz anderen Umständen:

    (i) du bist im 64-bit x86_64 Modus unterwegs

    (ii) hier werden Parameter über sogenannte Registersets und nicht am Stack übergeben.

    folgendes Code-Snippet würde in Rust ebenfalls unter DOS unweigerlich einen Abgang machen

    Code
    main( )
    {
    int values[32000];
    
    ...
    }

    Win98SE4ever Diskussion mit mainziman sind immer etwas "schwierig". Das ist hier quasi eine Forumsregel :)

    Du meinst auf einem intellektuellen Niveau ... :P


    ich wollt es halt nicht ganz so eiskalt formulieren, aber wenn wer das schreibt

    dass C heutzutage nicht mehr für sicherheitsrelevanten Code verwendet werden sollte.

    stellt man dann die Gegenfrage: was nützt das beste Werkzeug, wenn man

    (i) nicht umgehen kann damit

    (ii) es nicht beherrscht

    (iii) ...


    auch das teuerste Auto landet

    (i) im Straßengraben

    (ii) gegen einen Baum

    (iii) ...

    wennst man es nicht beherrscht;


    von daher liebe ich dann Aussagen wie diese "mit einem E-Auto fährt man einfach entspannter" ...

    weil die einfach Humbug sind;


    sieht man ja mittlerweile bei den teils doch schweren selbst verursachten Unfällen (an Hand der Verletzungen) mit Elektrofahrrädern;

    weil man einfach zu doof ist die Technik zu beherrschen; :P

    Kleines Beispiel: Heartbleed / OpenSSL

    ich weiß zwar nicht worauf Du damit 'raus willst;


    aber wenn ich nur daran erinnere, dass in bash ein 20(!) Jahre alter Bug, welcher ein Sicherheitsproblem dargestellt hat,

    erst vor ein paar Jahren behoben wurde;

    und da stell ich dann schon eiskalt die Frage:

    20 Jahre lang gaffen da die unterschiedlichsten Leute in den Quellcode und keinem fällt da irgendwas auf?


    und zum Thema Sicherheit: keep it simple, keep it small und zu guter letzt: Features weche nicht vorhanden sind,

    stellen auch kein Sicherheitsproblem dar;


    und bei dem Umfang an Quellcode der da mittlerweile bei den diversen Projekten existiert gilt mittlerweile folgendes Gesetz:

    Fehler der Vergangenheit, welche jetzt ausgebessert sind, stellten in der Vergangenheit weniger Sicherheitsrisiko dar,

    als die Fehler, welche heute unentdeckt vorhanden sind;


    da spielt es dann mittlerweile echt keine Rolle mehr mit welchen Tools, mit welchen Programmiersprachen hantiert wird;

    Es geht um die (durch Tools und Programmiersprachen erzwungene) Reduktion menschlicher Fehlereinflüsse.

    das ist der Oberquark,

    erzwungen wird da gar nix, man kann alles umgehen ;)


    was meinst Du was alles für Konstrukte in C++ möglich sind?

    ein Tipp: all jene von C - es genügt der ANSI Standard von 1989 - und einige mehr ... ^^

    Und Kollisionsgefahr besteht hier nicht wirklich.

    worauf beziehst Du den Terminus "Kollision"?


    und ja die Werte können mehrmals vorkommen;

    spätestens nach dem Millionsten Wert hast Du bis dahin garantiert 2mal den selben Wert bekommen;

    Also ich bin Fan von TOTP (zeitbasiertes HOTP).

    Ik weiß was TOTP und was HOTP isch;

    und dass TOTP viele verwenden, die Frage war aber ob jemand HOTP wo verwendet ...


    TOTP auf Android läuft reibungslos über FOSS Aegis oder FreeOTP+.

    das mit den + is mit Vorsicht zu genießen;

    FreeOTP is meins; bzw. im Google Playstore


    Deinen C-Code kann ich nicht beurteilen, habe aber aus den zahllosen Sicherheitsproblemen der vergangenen Jahre gelernt, dass C heutzutage nicht mehr für sicherheitsrelevanten Code verwendet werden sollte.

    da hast Dir aber gefährlichen Quark angeeignet;

    korrekt: nicht jeder dahergelaufener Pfeiffendeckel sollte sicherheitsrelevanten Code programmieren ...

    Gibt doch schon fliegende Autos.

    https://www.bbc.com/news/technology-57651843

    das ist nur EIN Auto; das ist ein Prototyp von einem in der Slowakei lebenden Ingenieur;

    und dessen Kosten belaufen sich auf rund ½ Mio. EUR; ;)


    anderes Thema:

    hat jemand irgendwo HOTP als 2FA im Einsatz?


    gibt ja durchaus interessante Einblicke, wenn man sich da die eine od. andere Implementierung zu HOTP bzw. TOTP ansieht;

    (dass sich da auch manche schämen sollten, weil deren Implementierung nur Quarkwerte liefert, ist ein anderes Kapitel)


    hier ein paar Code-Schnippsel einer korrekt funktionierenden Implementierung


    C: totp.c
    uint32_t
    TOTP(uint8_t *key, size_t kl, uint64_t time, int digits)
    {
        uint32_t totp;
        totp = HOTP(key, kl, time, digits);
        return totp;
    }



    was schließt man daraus?

    dass die Berechnung des TOTP-Wertes der Gegenwart nichts anderes als der HOTP-Wert der evtl. etwas ferneren Zukunft ist -

    wenn der Zähler die 50 Mio. Marke überschritten hat;

    (ich weiß es stimmt nicht exakt)

    das kuriose bei dem Quellcode, obwohl diese die Fileerweiterung .c haben,

    findet man dann doch Konstrukte, welche C im Standard so gar nicht kennen dürfte;

    da die Compiler von heute aber so eierlegende Ungeheuer sind, und von Fehlerfreiheit keine Spur ist,

    sowas da dann gar nicht auffällt;


    C: main.c
    ...
    if (argc <= 1) {
      fprintf(stderr, "Provide at least one argument\n");
      return -1;
    }
    ...
    int var = 0;

    das Statement in Zeile 7 darf der C-Compiler nicht für gut gefinden, der C++-Compiler hingegen schon;


    C ist auch meine Lieblingssprache, neben FORTRAN und Assembler :P

    soeben in einem auf GIT publizierten Quellcode folgendes entdeckt

    zuerst die aufrufende Fkt.

    C: main.c
    size_t pos;
    size_t len;
    char *k;
    
    k = argv[ 2 ];
    len = strlen( key );
    // von der Variable pos finde ich nirgends eine Initialisierung, ist also irgendwas ... 
    // hier der Aufruf
    if (func(k, len, pos) == 1) {
    ...

    und jetzt die aufgerufende Fkt.

    C: func.c
    int func(char *k, size_t len, size_t pos)
    {
      if (((len & 0xF) != 0) && ((len & 0xF) != 8)) return 1;
    
      for (pos = 0; (pos < len); pos++) {
      ...
    }

    ich unterstelle hier mal eiskalt, dass derartiger Quark in den Quellcodes kiloweise existiert :(


    jemand bei einer Wartung des Quellcodes hier am Beispiel des Moduls func.c

    womöglich der Variable pos doch eine Bedeutung gibt, und sämtliche Aufrufe davon

    mit ähnlicher Konstellation wie hier am Beispiel des Moduls main.c dann zur Zeitbombe werden;


    nebenbei ist die if-Bedingung in Zeile 3 besser so realisiert

    if ((len & 0x7) != 0) return 1;

    Weil TOTP sich ja nicht durch ein Computerprogramm berechnen lassen. Auch aus einem PNG einen QR-Code zu dekodieren, ist für einen Computer unmöglich.

    Bester Turing-Test wo gibt. :thumbup::rolleyes:

    Klar, ein Computerprogramm kann nur schlechter sein, als derjenige der es programmiert hat ;)

    Wenn ich es schaffe dass er bei Dir fehlschlägt, wird auch das Computerprogramm fehlschlagen ^^

    so ich hab jetzt das ultimative Captcha;


    auf der Website scannt man einen QR-code

    mit z.B. dem Google Authenticator

    und der nächste Wert ist der gesuchte Captcha-Wert


    dass sowas von Bots umgangen werden kann,

    könnt ein wenig Tricky sein, wenn auch noch die QR-codes im Minutentakt sich ändern ;)

    Ist nur die Frage, ob man über DCF77(?) so kleine Parzellen verwirklichen kann? :/

    eher eine Frage wie man herangeht; DCF77 müsste im Gegensatz zu jetzt UTC an Stelle von CET/CEST verbreiten,

    denn jeder hätte dann auf seinem System das 'Delta' zur UTC eingestellt;


    gibt auch Diskussionen im Netz, dass die ganze Welt nur noch eine einzige Zeitzone wäre;

    weil es unerheblich ist, wenn Du z.B. mit Deinem Geschäftspartner in Kalifornien telephonieren willst,

    ob Du darüber nachdenkst, wie spät es dort ist oder ob es dort evtl. Mitten in der Nacht ist;

    (Mitten in der Nacht muss ja nicht zwingend 00:00 Uhr heissen, kann auch 10:00 Uhr sein)


    sind halt so Befindlichkeiten wie, da gibts dann aber Leute bei denen die Zeitzone der realen (natürlichen) Zeit sehr nahe kommt;

    und das kann nicht sein;

    damit bist dann beim selben Quark wie mit dem Euro, weil da wurde jedem bei der Umstellung ein unorthodox kryptisch 6 stelliger Umrechnungsfaktor auf's Aug' gedrückt - kann ja nicht sein, dass da ein Land den 'Vorteil' hätte und z.B. nur durch 2 zu dividieren bräuchte;

    lordmd Du sprichst damit etwas an, was durchaus eine Bedeutung hat;


    das wurde bei uns echt mal diskutiert, z.B. Schulen gestaffelt beginnen zu lassen und nicht alle zum gleichen Zeitpunkt; Anstoß dieser Diskussion war die Tatsache, dass der innserstädtische ÖPNV - und damit der Verkehr, welcher die Leute vom Bahnhof in der Stadt verteilt - hier genau zu der Zeit seine Kapazitätsgrenzen erreicht;

    Niedergeschmettert wurde diese Diskussion dann von der Lehrergewerkschaft - kann ja nicht sein, dass man in der Grundschule erst um 09:00 Uhr zu unterrichten beginnen kann und 1 Stunde 'nachhängen' darf und nicht wie die Lehrer der anderen Schulen da schon frei hat ...

    wobei auf der anderen Seite hier Eltern von mehreren Kindern es auch schwerer hätten ...