ProfilingCryptography Developers - Portal

Post on 08-May-2022

1 views 0 download

Transcript of ProfilingCryptography Developers - Portal

Profiling CryptographyDevelopers

Said Ali

Goal

1

Correlation between crypto developer contribution on Stack OverFlow

andcrypto developer activity on GitHub

Sample crypto question

2

Sample profile

3

Reputation 28‘484Crypto score 543

Crypto accepted answers 85

4

Did Jay use crypto APIs on GitHub?

Pipeline

Tag analysis

• Crypto tag

5

Stack Exchange

• Crypto user

Scraping

• Social media• GitHub

GitHub API

• Repositories• Crypto repo

Git Blame

• File author• File committer

Tag analysis

6

11‘130 cryptodiscussions

2‘184 tags

Tag analysis

𝑯𝟏 𝑜𝑓 𝑡𝑎𝑔 "x" = #𝑝𝑜𝑠𝑡𝑠 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑖𝑛𝑔 "𝑥" 𝐴𝑁𝐷 "𝑐𝑟𝑦𝑝𝑡𝑜𝑔𝑟𝑎𝑝h𝑦 "#𝑝𝑜𝑠𝑡𝑠 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑖𝑛𝑔 "𝑥"

7

𝑯𝟐 𝑜𝑓 𝑡𝑎𝑔 "x" = #𝑝𝑜𝑠𝑡𝑠 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑖𝑛𝑔 "𝑥" 𝐴𝑁𝐷 "𝑐𝑟𝑦𝑝𝑡𝑜𝑔𝑟𝑎𝑝h𝑦" #𝑝𝑜𝑠𝑡𝑠 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑖𝑛𝑔 "𝑐𝑟𝑦𝑝𝑡𝑜𝑔𝑟𝑎𝑝h𝑦 "

𝑯𝟏 = 0.025𝑯𝟐 = 0.005

Tag analysis

3des aes bouncycastle cng crypto++ cryptoapi cryptographic-hash-function cryptography

cryptojs des diffie-hellman digital-signature ecdsa elliptic-curve encryption-

asymmetricencryption-symmetric

encryption hash hmac jce keystore md5 openssl pbkdf2

pkcs#7 pkcs#11 private-key public-key-encryption public-key pycrypto rijndael rsa

salt sha sha1 sha256 smartcard x509 x509certificate Xor

8

Total: 42 Tags

Stack Exchange

9

UserIdCrypto score

Reputation#Crypto accepted answer

#Crypto accepted answer > 10Crypto score > 10

42 tags 92‘000 crypto discussions

Stack OverFlow users

10

Developers10

50

250

1250

6250

0 100 200 300 400 500 600 700 800 900 1000

#Crypto accepted answers

Stack OverFlow users

11

Jay

Developers10

50

250

1250

6250

0 100 200 300 400 500 600 700 800 900 1000

#Crypto accepted answers

Stack OverFlow users

12

Developers10

50

250

1250

6250

0 100 200 300 400 500 600 700 800 900 1000

Crypto score #Crypto accepted answers

Stack OverFlow users

13

Jay

Developers10

50

250

1250

6250

0 100 200 300 400 500 600 700 800 900 1000

Crypto score #Crypto accepted answers

Stack OverFlow scraping

14

Stack OverFlow scraping

15

Manual search

16

Stack Overflow crypto users

17

44.8% Match

552 380 68

0 100 200 300 400 500 600 700 800 900 1000

No GitHub GitHub - Scraping GitHub - Manual search

GitHub API - PyGithub

18

RegEx

ExactCrypto-related

Exact Match

Repo API CodeSearch API

448 GitHub users

23’634Repositories Crypto-related

Languages

0

1000

2000

3000

4000

5000

6000

Shell

JavaScript

HTML

Python

CSS

Ruby C

Perl

C++

Java C# PH

P

Haskell

Objective-C Ru

st

TypeScript

Pascal

19

Total: 23634 Repositories

Selected languages

0

1000

2000

3000

4000

5000

6000

Shell

JavaScript

HTML

Python

CSS

Ruby C

Perl

C++

Java C# PH

P

Haskell

Objective-C Ru

st

TypeScript

Pascal

20

Crypto libraries

21

Python Ruby C Perl C++ Java C# PHP Rust

from passlib. require 'rbnacl' include "tomcrypt_ include <botan/ Java.security

import passlib require 'digest' include <tomcrypt.h> include "cryptlib.h" Javax.crypto

import pbkdf2_sha256 require 'openssl' include "paillier.h" include <cryptlib>

import nacl require 'bcrypt' include "rsa.h" include "aes.h"

from nacl include "x509.h" using CryptoPP::

import hashlib include "crypto_“ include <des.h>

from hashlib include <openssl/ include "blowfish.h"

from crypto include <themis/include <wolfssl/

include "secblock.h"

import crypto include "xxhash.h" include "eccrypto.h"

from pyelliptic include "aes.h" include <helib/

import bcrypt include "md5.h" include "cryptopp/

from bcrypt include "sha1.h" include <cryptopp/

include "sha256.h" include <openssl/

include "blowfish.h"

include "des.h

Crypto-related repositories

22

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Python Ruby C C++ Java

Non-crypto repositorie Crypto-related repositorie

2.1%

2.5%

2.9%5.6%

9.2%

Crypto-related repositories

23

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Python Ruby C C++ Java

Non-crypto repositorie Crypto-related repositorie

GitBlame

Crypto file contributor

24

58

6

36

37

39

22

3

11

9

25

JAVA

C++

PYTHON

RUBY

C

#Developer contributed to crypto file #Developer contributed to crypto project

Next steps

25

Remaining steps

26

No crypto projectsContributed tocrypto files

Contributed tocrypto projects

crypto score andreputationcrypto score

?

reputation

Remaining steps

27

No crypto projectsContributed tocrypto files

Contributed tocrypto projects

crypto score andreputationcrypto score

?

reputation

Remaining steps

28

No crypto projectsContributed tocrypto files

Contributed tocrypto projects

crypto score andreputationcrypto score

?

reputation

How experienced is Jay?

29

Reputation 28‘484Crypto accepted answers 85

Crypto score 543

Repositories 45Crypto repositories 3

Crypto files 87Crypto files contribution 5

Summary

30