Quasi tutte le applicazioni critiche per la sicurezza che conosco sono scritte in C. Non credo che ci siano altri linguaggi che hanno uno stato reale più elevato nella produzione di applicazioni sicure.
C si dice che sia un linguaggio povero per la sicurezza da parte di persone che non capiscono.
Se si desidera che i programmatori C utilizzino la libreria, utilizzare C. Se qualcos'altro sta legando una mano dietro la schiena mentre si prova a camminare su un bilanciere (l'attrezzatura per la ginnastica). Certo, ci sono dozzine di altri linguaggi che sono in grado di interfacciarsi con C, ma in genere implica l'uso di un livello C e quindi l'inserimento dei tipi di dati C in un tipo di dati specifico della lingua (oggetti Java, oggetti Python, ecc.) E quando la chiamata è finita, si utilizza la stessa conversione su un tipo di dati C. Rende solo più difficile lavorare e potenzialmente più lento se non si prendono tutte le decisioni di progettazione giuste. E la gente non capirà il codice sorgente, quindi non gli piacerà usarlo (vedi di più su questo sotto).
Se si vuole la sicurezza, quindi scrivere molto buon codice, indossando il cappello "aspetti di sicurezza" saldamente in ogni momento, trovare una mailing di sicurezza list o al sito web e post-it lì per la revisione, prendere i commenti di revisione a bordo, capire i commenti e correggere eventuali commenti significativi da risolvere. Distribuisci il codice sorgente agli utenti, in modo che le persone possano vedere cosa fa il tuo codice. Coloro che comprendono la sicurezza sapranno cosa cercare e capiranno di aver fatto un buon lavoro (o un cattivo lavoro, a seconda di quale sia applicabile) - e coloro che non lo faranno si fideranno delle persone giuste. Se è buono, la gente lo userà. Se è "nascosto" e non è di facile accesso, non avrai molti clienti, indipendentemente dalla lingua che utilizzi.
Non preoccuparti, non rivelerai nulla di più dalla fonte di rilascio.Se c'è un difetto nel codice ed è abbastanza popolare (o importante), qualcuno troverà il difetto, anche se pubblichi solo i binari. Per gli esperti di reverse engineering, non avere codice sorgente è solo un piccolo ostacolo.
sicurezza non deriva da utilizzando un linguaggio specifico o uno strumento specifico, esso deriva da un buon design e una buona conoscenza di base dei problemi con la sicurezza.
E ricordate security by obscurity (se questo significa "codice sorgente nascosta" o "linguaggio inusuale", o qualcosa d'altro oscuro) è falsa sicurezza.
Questo è piuttosto meno vero per la sicurezza che per altre preoccupazioni. –