Skip to content

Commit cefc030

Browse files
authored
rot(NSG): add 12 new certs (#106)
1 parent e8ce5e3 commit cefc030

File tree

8 files changed

+143
-1
lines changed

8 files changed

+143
-1
lines changed

.github/workflows/sanity-check.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ jobs:
9090
vendor-id: IFX
9191
cert-type: intermediate
9292
config-file: .tpm-intermediates.yaml
93+
- vendor: nsg
94+
vendor-id: NSG
95+
cert-type: root
96+
config-file: .tpm-roots.yaml
97+
- vendor: nsg
98+
vendor-id: NSG
99+
cert-type: intermediate
100+
config-file: .tpm-intermediates.yaml
93101
- vendor: stm
94102
vendor-id: STM
95103
cert-type: root

.tpm-intermediates.yaml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,59 @@ vendors:
818818
validation:
819819
fingerprint:
820820
sha256: "EF:3A:56:45:E8:5C:87:82:34:43:19:4F:52:05:AC:59:0E:A9:D6:B9:B9:CE:06:58:74:91:F9:56:35:F0:EE:59"
821+
- id: "NSG"
822+
name: "NSING"
823+
certificates:
824+
- name: "NSING TPM ECC EK CA 001"
825+
url: "https://pki.nsing.com.sg/NSEccEkCA001/NSEccEkCA001.crt"
826+
validation:
827+
fingerprint:
828+
sha256: "C3:4A:98:41:22:F0:92:2F:A0:BA:06:7A:12:5D:68:BF:1F:2A:26:07:AD:94:01:CD:03:E5:65:55:0F:32:8A:8E"
829+
- name: "NSING TPM ECC EK CA 002"
830+
url: "https://pki.nsing.com.sg/NSEccEkCA002/NSEccEkCA002.crt"
831+
validation:
832+
fingerprint:
833+
sha256: "2A:D7:14:FE:3F:C7:FC:00:90:5D:7E:8D:0B:6E:73:81:FA:A4:E3:E8:E0:09:AC:BE:A7:91:56:65:F3:CD:58:AD"
834+
- name: "NSING TPM ECC EK CA 003"
835+
url: "https://pki.nsing.com.sg/NSEccEkCA003/NSEccEkCA003.crt"
836+
validation:
837+
fingerprint:
838+
sha256: "25:3B:E9:61:F9:B4:FF:7C:8A:F7:67:2C:AA:A1:5D:DA:D9:5A:CD:D3:E1:02:97:C8:BC:36:D1:27:9C:AF:6D:93"
839+
- name: "NSING TPM ECC EK CA 004"
840+
url: "https://pki.nsing.com.sg/NSEccEkCA004/NSEccEkCA004.crt"
841+
validation:
842+
fingerprint:
843+
sha256: "FB:5E:2B:64:9E:9E:D0:79:85:31:FC:6D:85:2E:0F:45:E0:D7:60:82:B9:65:28:C1:04:02:9F:0A:75:BB:82:1B"
844+
- name: "NSING TPM ECC EK CA 005"
845+
url: "https://pki.nsing.com.sg/NSEccEkCA005/NSEccEkCA005.crt"
846+
validation:
847+
fingerprint:
848+
sha256: "92:52:34:EA:37:B6:B2:4C:0A:36:64:57:0C:9A:07:BB:E8:AB:54:45:DD:56:C6:04:DB:D9:52:E3:C0:EC:01:BF"
849+
- name: "NSING TPM RSA EK CA 001"
850+
url: "https://pki.nsing.com.sg/NSRsaEkCA001/NSRsaEkCA001.crt"
851+
validation:
852+
fingerprint:
853+
sha256: "0A:46:61:6F:DC:D3:42:F7:85:D3:3A:9F:DA:50:07:57:3D:5A:C0:C9:96:57:9B:6E:25:DB:FC:15:B0:82:AD:1F"
854+
- name: "NSING TPM RSA EK CA 002"
855+
url: "https://pki.nsing.com.sg/NSRsaEkCA002/NSRsaEkCA002.crt"
856+
validation:
857+
fingerprint:
858+
sha256: "79:A4:C2:18:09:BE:1C:7B:9B:CB:0B:C7:64:72:93:C5:F3:14:CD:19:5A:29:BD:02:27:FA:74:C6:FD:D9:55:45"
859+
- name: "NSING TPM RSA EK CA 003"
860+
url: "https://pki.nsing.com.sg/NSRsaEkCA003/NSRsaEkCA003.crt"
861+
validation:
862+
fingerprint:
863+
sha256: "AC:21:E6:55:A5:D7:09:5B:53:D9:E5:A1:2B:F3:CA:42:32:06:DB:A1:63:43:AF:57:A8:10:54:C8:01:20:73:B1"
864+
- name: "NSING TPM RSA EK CA 004"
865+
url: "https://pki.nsing.com.sg/NSRsaEkCA004/NSRsaEkCA004.crt"
866+
validation:
867+
fingerprint:
868+
sha256: "05:D6:F6:60:49:8D:DD:6A:89:F7:88:63:03:59:13:A9:9F:22:F3:1A:BF:76:E1:56:53:F9:2A:82:B5:D7:4B:D2"
869+
- name: "NSING TPM RSA EK CA 005"
870+
url: "https://pki.nsing.com.sg/NSRsaEkCA005/NSRsaEkCA005.crt"
871+
validation:
872+
fingerprint:
873+
sha256: "F4:2C:E7:14:8B:56:38:32:90:F1:44:A5:77:00:DB:05:D3:CF:BB:6A:31:7E:7C:88:2E:83:69:50:DE:27:32:79"
821874
- id: "NTC"
822875
name: "Nuvoton Technology"
823876
certificates:

.tpm-roots.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,19 @@ vendors:
7373
validation:
7474
fingerprint:
7575
sha256: "87:0C:7A:35:CE:AB:3D:59:97:9F:2C:6A:52:40:42:D4:04:CB:71:51:80:04:35:09:25:FB:2C:ED:79:A9:99:DA"
76+
- id: "NSG"
77+
name: "NSING"
78+
certificates:
79+
- name: "NSING TPM ECC ROOT CA 001"
80+
url: "https://pki.nsing.com.sg/NSEccRootCA001/NSEccRootCA001.crt"
81+
validation:
82+
fingerprint:
83+
sha256: "6C:CF:8A:8A:80:3D:07:A0:02:A1:5D:48:89:FF:A0:B1:25:E4:A8:2A:1F:E4:21:1D:B3:C6:E8:59:29:19:F9:DC"
84+
- name: "NSING TPM RSA ROOT CA 001"
85+
url: "https://pki.nsing.com.sg/NSRsaRootCA001/NSRsaRootCA001.crt"
86+
validation:
87+
fingerprint:
88+
sha256: "72:CA:00:61:23:95:AF:02:7C:D8:4C:55:14:21:9F:11:0E:96:4D:FA:0B:FC:1E:FB:B3:AC:14:7E:3B:17:39:71"
7689
- id: "NTC"
7790
name: "Nuvoton Technology"
7891
certificates:

scripts/predict-new-urls.gos

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,46 @@ var vendors = map[string]VendorConfig{
116116
},
117117
},
118118
},
119+
"nsg": {
120+
ID: "NSG",
121+
Name: "NSING",
122+
Patterns: []VendorPattern{
123+
{
124+
Name: "ECC Root",
125+
CertType: CertTypeRoot,
126+
URLTemplate: "https://pki.nsing.com.sg/NSEccRootCA%03d/NSEccRootCA%03d.crt",
127+
MaxCount: 10,
128+
StartIndex: 1,
129+
},
130+
{
131+
Name: "RSA Root",
132+
CertType: CertTypeRoot,
133+
URLTemplate: "https://pki.nsing.com.sg/NSRsaRootCA%03d/NSRsaRootCA%03d.crt",
134+
MaxCount: 10,
135+
StartIndex: 1,
136+
},
137+
{
138+
Name: "ECC EK Intermediate",
139+
CertType: CertTypeIntermediate,
140+
URLTemplate: "https://pki.nsing.com.sg/NSEccEkCA%03d/NSEccEkCA%03d.crt",
141+
MaxCount: 10,
142+
StartIndex: 1,
143+
},
144+
{
145+
Name: "RSA EK Intermediate",
146+
CertType: CertTypeIntermediate,
147+
URLTemplate: "https://pki.nsing.com.sg/NSRsaEkCA%03d/NSRsaEkCA%03d.crt",
148+
MaxCount: 10,
149+
StartIndex: 1,
150+
},
151+
},
152+
},
119153
}
120154

121155
func main() {
122156
count := flag.Int("count", defaultCount, "maximum number to check")
123157
out := flag.String("out", "", "output file (default: stdout)")
124-
vendor := flag.String("vendor", "ifx", "vendor to scan (ifx, all)")
158+
vendor := flag.String("vendor", "ifx", "vendor to scan (ifx, stm, nsg, all)")
125159
certType := flag.String("type", "", "filter by certificate type: 'root' or 'intermediate' (empty = no filter)")
126160
flag.Parse()
127161

365 KB
Binary file not shown.

src/NSG/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# NSING (NSG)
2+
3+
## Certificate Inventory
4+
5+
| Certificate Name | Type | Source Document | Does the source references a fingerprint? |
6+
|------------------|------|-----------------|:-----------------------------------------:|
7+
| NSING TPM ECC ROOT CA 001 | Root | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
8+
| NSING TPM RSA ROOT CA 001 | Root | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
9+
| NSING TPM ECC EK CA 001 | Intermediate | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
10+
| NSING TPM ECC EK CA 002 | Intermediate | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
11+
| NSING TPM ECC EK CA 003 | Intermediate | URL Discovery | No |
12+
| NSING TPM ECC EK CA 004 | Intermediate | URL Discovery | No |
13+
| NSING TPM ECC EK CA 005 | Intermediate | URL Discovery | No |
14+
| NSING TPM RSA EK CA 001 | Intermediate | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
15+
| NSING TPM RSA EK CA 002 | Intermediate | [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) | No |
16+
| NSING TPM RSA EK CA 003 | Intermediate | URL Discovery | No |
17+
| NSING TPM RSA EK CA 004 | Intermediate | URL Discovery | No |
18+
| NSING TPM RSA EK CA 005 | Intermediate | URL Discovery | No |
19+
20+
## Source Information
21+
22+
The certificate details were initially retrieved from the official NSING documentation:
23+
- **Web Page**: https://nsing.com.sg/product/tpm/trustedcomputing/NS350/
24+
- **Documentation PDF**: [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf)
25+
- **Screenshot Reference**:
26+
![](nsing_website.png)
27+
28+
> [!NOTE]
29+
> The PDF document has been archived locally as [NSINGTPMEKcertificatesv1.0.pdf](NSINGTPMEKcertificatesv1.0.pdf) for reference.
30+
31+
## Note
32+
33+
1. **URL Discovery**: The PDF documentation only references intermediate CAs 001 and 002. Additional intermediate certificates (003, 004, 005) were discovered by testing incremental URL patterns against the NSING PKI infrastructure at `https://pki.nsing.com.sg/`.

src/NSG/nsing_website.png

147 KB
Loading

src/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ This directory contains the evidence and documentation proving how the URLs for
1111
| IFX | Infineon | [README](IFX/) | B |
1212
| MSFT | Microsoft | [README](MSFT/) | C |
1313
| NTC | Nuvoton Technology | [README](NTC/) | A |
14+
| NSG | NSING | [README](NSG/) | B |
1415
| STM | STMicroelectronics | [README](STM/) | A |
1516

1617
### Accessibility Score Legend

0 commit comments

Comments
 (0)