Add authentication support to coreSNTP demo (#625)

Update the coreSNTP demo to showcase use of symmetric key algorithm of authentication scheme for securing SNTP communication between client and server.
The demo uses the AES-128-CMAC algorithm for the generating Message Authentication Code for the client on sending the SNTP time request to server as well as validating the server response received by verifying if the payload present authentication code can be generated. Use of an authentication mechanism in SNTP communication protects against server spoofing attacks as well as man-in-the-middle attacks of server response modification.

The demo uses corePKCS11 library for the AES-CMAC operations. Also, the demo adds functionality of generating random number, using corePKCS11, for sending as a parameter to the Sntp_SendTimeRequest API.

Note: For symmetric key based security mechanism to be protective against malicious, it is IMPORTANT to securely pre-share the symmetric key between client and server.
This commit is contained in:
Archit Aggarwal 2021-06-16 10:22:06 -07:00 committed by GitHub
parent f771faef4a
commit 5a41846f05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 1765 additions and 57 deletions

View file

@ -7,6 +7,7 @@ aclk
acm
adc
adcclk
addclientauthcode
adden
addfaketaskwaitingtoreceivefromqueue
addfaketaskwaitingtosendtoqueue
@ -151,6 +152,7 @@ bss
btimer
btn
buf
buffersize
bufsize
burtc
burtcclkdiv
@ -441,6 +443,7 @@ dap
dat
datashee
datasheet
datatracker
dbe
dcdc
dclr
@ -811,6 +814,7 @@ het
hetbase
hetport
hetreg
hexstring
hfclk
hfrco
hfxo
@ -1396,6 +1400,8 @@ passsed
passwordsize
pasv
pathlen
pauthcodesize
pauthcontext
payloadlength
pb
pbasetime
@ -1445,6 +1451,7 @@ pclientcert
pclk
pclkb
pclwipappsblockinggettxbuffer
pcmackey
pcmethod
pcmyreply
pcname
@ -1511,6 +1518,7 @@ pfm
pfr
pfs
pfswe
pfunctionlist
phostname
php
phy
@ -1609,11 +1617,13 @@ preceivedcommand
predivide
prefen
premain
prequestbuffer
prescale
prescaled
prescaler
presense
presigned
presponsedata
prev
printc
printf
@ -1812,6 +1822,7 @@ ps
psc
pscheckvariable
psel
pserver
pserverinfo
psignature
psl
@ -2048,6 +2059,7 @@ resetart
resetprg
resoltion
resp
responsesize
resubscribe
resubscribes
resync
@ -2214,6 +2226,9 @@ sni
snprintf
sntp
sntpclienttask
sntperrorauthfailure
sntpservernotauthenticated
sntpsuccess
sntptask
soc
sockaddr
@ -2370,6 +2385,7 @@ tim
timeguard
timertest
timertimer
timeserver
tls
tmr
tmrdemoone