CA ಇಲ್ಲದೆ OpenVPN: peer-fingerprint ಸಹಚರರನ್ನು ಹೇಗೆ ಪರಿಶೀಲಿಸುತ್ತದೆ
ಬೆರಳಚ್ಚು ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಿನ್ ಮಾಡುತ್ತದೆ, ಹಂಚಿದ ರಹಸ್ಯವನ್ನಲ್ಲ. ಡೈಜೆಸ್ಟ್ ಏನನ್ನು ಆವರಿಸುತ್ತದೆ, ಪ್ರತಿ ಬದಿ ತನ್ನ ಅನುಮತಿಸಿದ ಪಟ್ಟಿಯನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುತ್ತದೆ ಮತ್ತು ನವೀಕರಣಕ್ಕೆ ಎಷ್ಟು ತಗಲುತ್ತದೆ ಎಂದು ನೋಡಿ.
ಸಣ್ಣ ನಿಯೋಜನೆಯು ಬೆರಳಚ್ಚುಗಳತ್ತ ಹೋಗುತ್ತದೆ, ಏಕೆಂದರೆ ಪ್ರಮಾಣಪತ್ರ ಪ್ರಾಧಿಕಾರವು ಯಾರಿಗೂ ನಿರ್ವಹಿಸಲು ಸಮಯವಿಲ್ಲದ ಮೂಲಸೌಕರ್ಯದಂತೆ ಕಾಣುತ್ತದೆ. ಪ್ರವೃತ್ತಿ ಸಮಂಜಸವಾಗಿದೆ, ಆದರೆ ಜನರು ಬದಲಿಗೆ ತೆಗೆದುಕೊಳ್ಳುವ ಚಿಕ್ಕದಾರಿ—ಒಂದು ಡೇಟಾ-ಚಾನೆಲ್ನ ರಹಸ್ಯವನ್ನು ಎರಡೂ ತುದಿಗಳಿಗೆ ನಕಲಿಸುವುದು—ಹಾಗಲ್ಲ. peer-fingerprint ಸಂರಚನೆಯು TLS ರಚನೆಯನ್ನು ಅಖಂಡವಾಗಿ ಇರಿಸುತ್ತದೆ: ಪ್ರತಿ ಬದಿಯೂ ತನ್ನದೇ ಖಾಸಗಿ ಕೀಲಿ ಮತ್ತು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಇನ್ನೂ ಹೊಂದಿದೆ, ಮತ್ತು ಪ್ರತಿ ಬದಿಯೂ ಇನ್ನೂ ಇನ್ನೊಂದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಬದಲಾಗುವುದು ಪರಿಶೀಲನೆ ಎಲ್ಲಿ ಲಂಗರು ಹಾಕಿದೆ ಎಂಬುದು: ವಿಶ್ವಾಸಾರ್ಹ ನೀಡುವವರಿಂದ ಪಿನ್ ಮಾಡಿದ ಡೈಜೆಸ್ಟ್ಗಳ ಸಣ್ಣ ಪಟ್ಟಿಗೆ. ಡೈಜೆಸ್ಟ್ ಹೆಸರಿನ ಬದಲು ಇಡೀ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆವರಿಸುವುದರಿಂದ, ನವೀಕರಣವು ನಿಜವಾಗಿ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುವ ಕೆಲಸವಾಗುತ್ತದೆ.
ಬೆರಳಚ್ಚು ನಿಜವಾಗಿ ಏನನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತದೆ
ಪ್ರಮಾಣಪತ್ರದ ಬೆರಳಚ್ಚು DER-ಎನ್ಕೋಡ್ ಆದ ಇಡೀ ಪ್ರಮಾಣಪತ್ರದ ಡೈಜೆಸ್ಟ್, ಅದರ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯದ್ದಲ್ಲ ಮತ್ತು ಅದರ ವಿಷಯ-ಹೆಸರಿನದ್ದಲ್ಲ. ಆದ್ದರಿಂದ ಒಂದೇ ಹೆಸರು ಮತ್ತು ಒಂದೇ ಕೀಲಿ ಆದರೆ ಬೇರೆ ಬೇರೆ ಮಾನ್ಯತಾ ದಿನಾಂಕಗಳಿರುವ ಎರಡು ಪ್ರಮಾಣಪತ್ರಗಳಿಗೆ ಬೇರೆ ಬೇರೆ ಬೆರಳಚ್ಚುಗಳಿರುತ್ತವೆ. ಅದೇ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ನಿಖರಗೊಳಿಸುತ್ತದೆ, ಮತ್ತು ಅದೇ ನವೀಕರಣವನ್ನು ತೊಂದರೆಗೊಳಿಸುತ್ತದೆ. ಪಿನ್ನಿಂಗ್ ಸಾಮಾನ್ಯವಾಗಿ ಕೀಲಿಯ ಮೇಲೆ ನಂಬಿಕೆ ಎಂದರ್ಥವಾಗಲಾರದು, ಏಕೆಂದರೆ ಅದು ಅದರ ಜೀವನದ ಒಂದು ಕ್ಷಣದಲ್ಲಿ ಒಂದು ವಸ್ತುವನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ಯಾರಾದರೂ ಡೈಜೆಸ್ಟ್ ತಿಳಿಯಬಹುದು, ಮತ್ತು ಅದನ್ನು ತಿಳಿಯುವುದು ತಾನಾಗಿಯೇ ಏನನ್ನೂ ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ.
openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256
ಹೊಂದುವ ಖಾಸಗಿ ಕೀಲಿಯ ಮಾಲೀಕತ್ವವೇ ಸಹಚರನ ಬಳಿ ಆ ಪ್ರಮಾಣಪತ್ರ ಇದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ, ಮತ್ತು ಡೈಜೆಸ್ಟ್ ಎಂದರೆ ಇನ್ನೊಂದು ಬದಿ ಆ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಎದುರು ನೋಡಿತ್ತೋ ಇಲ್ಲವೋ ಎಂದು ನಿರ್ಧರಿಸುವ ರೀತಿ. ಈ ಬೇರ್ಪಡಿಕೆಯೇ ಈ ವಿನ್ಯಾಸವು ಹಳೆಯ ಹಂಚಿದ-ರಹಸ್ಯ ವ್ಯವಸ್ಥೆ ಅಲ್ಲದಿರಲು ಕಾರಣ: ಹಂಚಿದ ಕೀಲಿ ಅದೇ ಬೈಟ್ಗಳನ್ನು ತಿಳಿದ ಯಾರನ್ನಾದರೂ ದೃಢೀಕರಿಸುತ್ತದೆ, ಆದರೆ ಪಿನ್ನಿಂಗ್ ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ. ಬೇರೆ ಸಾಧನವು ಅದೇ ರಹಸ್ಯದ ಪ್ರತಿಯಲ್ಲ, ತನ್ನದೇ ನಮೂದನ್ನು ಪಡೆಯುತ್ತದೆ, ಇದು ಫೈಲ್ಗಳಲ್ಲಿ ಸಣ್ಣ ವ್ಯತ್ಯಾಸ ಮತ್ತು ಹಾನಿಯ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ದೊಡ್ಡ ವ್ಯತ್ಯಾಸ.
ನಕ್ಷೆ ಪರಸ್ಪರ, ಸಮ್ಮಿತೀಯವಲ್ಲ
ಪ್ರತಿ ಅಂತ್ಯ ಬಿಂದುವಿಗೆ ಎರಡು ವಸ್ತು ಬೇಕು: ತನ್ನ ಖಾಸಗಿ ಕೀಲಿ ಪ್ರಮಾಣಪತ್ರದೊಂದಿಗೆ, ಮತ್ತು ಯಾವ ಸಹಚರ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂಬ ಹೇಳಿಕೆ. ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಆ ಹೇಳಿಕೆ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರದ ಡೈಜೆಸ್ಟ್; ಸರ್ವರ್ನಲ್ಲಿ ಅದು ನೋಂದಾಯಿತ ಕ್ಲೈಂಟ್ ಡೈಜೆಸ್ಟ್ಗಳ ಪಟ್ಟಿ. Community 2.6 ಗಾಗಿ ಸಣ್ಣ ಸಂರಚನೆಯ ಅಧಿಕೃತ ಉದಾಹರಣೆ peer-fingerprint ನೊಂದಿಗೆ ಜೋಡಣೆಯನ್ನು ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ನೈಜ ನಿಯೋಜನೆಗೆ ಈ ನಂಬಿಕೆ ಮಾದರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು ಅದನ್ನು ಓದುವುದು ಯೋಗ್ಯ. ಎರಡು ದಿಕ್ಕುಗಳು ಒಂದು ತಿರುಗಿಸಿದ ಪಟ್ಟಿಯಲ್ಲ, ಮತ್ತು ಅವು ಒಂದೇ ಕ್ಷಣದಲ್ಲಿ ವಿಫಲವಾಗುವುದಿಲ್ಲ.
| Verification direction | What is pinned | What never leaves that endpoint | How a wrong pin shows up |
|---|---|---|---|
| Client checks the server | One digest, for the server certificate | The server private key | The client aborts during the TLS handshake |
| Server checks the client | A digest per enrolled client | Each client private key | The server rejects the peer before a tunnel exists |
ಸಾಧನ ಸೇರಿಸುವುದು ಸರ್ವರ್ನಲ್ಲಿನ ಅನುಮತಿಸಿದ ಪಟ್ಟಿಯನ್ನು ಸಂಪಾದಿಸುತ್ತದೆ, ಇರುವ ಕ್ಲೈಂಟ್ನ ಖಾಸಗಿ ಸಾಮಗ್ರಿಯನ್ನು ನಕಲಿಸದೆ ಮತ್ತು ಸರ್ವರ್ ಕೀಲಿಯನ್ನು ಎಲ್ಲಿಗೂ ಸರಿಸದೆ. ಎರಡು ದಿಕ್ಕುಗಳು ಸ್ವತಂತ್ರವಾಗಿಯೂ ವಿಫಲವಾಗುತ್ತವೆ, ಇದು ರೋಗನಿರ್ಣಯದಲ್ಲಿ ಉಪಯುಕ್ತ: ಯಾವ ಬದಿ ಹ್ಯಾಂಡ್ಶೇಕ್ ಮುಚ್ಚುತ್ತದೆಯೋ ಅದೇ ನಿರೀಕ್ಷೆ ಈಡೇರದ ಬದಿ. ಕ್ಲೈಂಟ್ ಸರ್ವರ್ ಅನ್ನು ತಿರಸ್ಕರಿಸಿದರೆ, ಡೈಜೆಸ್ಟ್ ಒದಗಿಸಿದ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ಹೊಂದುವುದಿಲ್ಲ. ಸರ್ವರ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ತಿರಸ್ಕರಿಸಿದರೆ, ಆ ಕ್ಲೈಂಟ್ನ ಡೈಜೆಸ್ಟ್ ಪಟ್ಟಿಯಲ್ಲಿ ಇಲ್ಲ, ಅಥವಾ ಕ್ಲೈಂಟ್ ನೋಂದಾಯಿತದ್ದಕ್ಕಿಂತ ಬೇರೆ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಒದಗಿಸುತ್ತಿದೆ.
ನೋಂದಣಿ: ಹೊಸ ಸಾಧನ ಹೇಗೆ ಸೇರುತ್ತದೆ
ಹೊಸ ಸಾಧನದ ಕೀಲಿ ಮತ್ತು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಖಾಸಗಿ ಕೀಲಿ ಇರುವಲ್ಲಿಯೇ ರಚಿಸಿ, ನಂತರ ಸಾರ್ವಜನಿಕ ವಸ್ತುವನ್ನು ಮಾತ್ರ ಅದನ್ನು ಪಿನ್ ಮಾಡಬೇಕಾದ ಬದಿಗೆ ಸರಿಸಿ. ನಿರೀಕ್ಷಿತ ಡೈಜೆಸ್ಟ್ ಅನ್ನು ನೀವು ಈಗಾಗಲೇ ನಂಬುವ ಚಾನೆಲ್ ಮೂಲಕ ವರ್ಗಾಯಿಸಿ, ಮತ್ತು ಪರಿಚಿತವಾಗಿ ಕಾಣುವ ಹೆಸರಿನ ಬದಲು ಪೂರ್ಣ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹೋಲಿಸಿ. ಪ್ರಮಾಣಪತ್ರದೊಂದಿಗೆ ಅದೇ ಪರಿಶೀಲಿಸದ ಡೌನ್ಲೋಡ್ನಿಂದ ನಕಲಿಸಿದ ಡೈಜೆಸ್ಟ್ ಎರಡು ಫೈಲ್ಗಳು ಒಂದಕ್ಕೊಂದು ಹೊಂದುತ್ತವೆ ಎಂದಷ್ಟೇ ಸಾಬೀತುಪಡಿಸುತ್ತದೆ. ಇದು ಸ್ಥಿರತೆಯ ಪರಿಶೀಲನೆ, ಗುರುತಿನದ್ದಲ್ಲ, ಮತ್ತು ಈ ವಿನ್ಯಾಸ ದುರ್ಬಲಗೊಳ್ಳುವ ಅತ್ಯಂತ ಮೌನ ಮಾರ್ಗ ಇದು.
ಸರ್ವರ್ನಲ್ಲಿ, ಡೈಜೆಸ್ಟ್ ಸೇರಿಸುವುದು ಸಾಮಾನ್ಯ ನಿರ್ವಾಹಕದ ಮೂಲಕ ಹೋಗುವ ಸಂರಚನಾ ಬದಲಾವಣೆ, ಮತ್ತು ಅದರ ನಂತರ ಮರುಸಂಪರ್ಕ ಆಗುತ್ತದೆ. ಹೊಸ ಸಾಧನ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಡೈಜೆಸ್ಟ್ ತೆಗೆದ ಸಾಧನ ಇನ್ನು ಸಂಪರ್ಕಗೊಳ್ಳುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿ. ಕೇವಲ ಸಕಾರಾತ್ಮಕ ಪ್ರಕರಣವನ್ನು ಆವರಿಸುವ ಪರೀಕ್ಷೆ ಅನುಮತಿಸಿದ ಪಟ್ಟಿಯನ್ನು ಪರಿಶೀಲಿಸದೆ ಬಿಡುತ್ತದೆ, ಮತ್ತು ಆರು ತಿಂಗಳ ನಂತರ ನೀವು ನಿಖರವಾಗಿ ಆ ಸ್ಥಿತಿಯಲ್ಲಿರುತ್ತೀರಿ.
ನವೀಕರಣವೇ ದುಬಾರಿ ಕ್ಷಣ
ಪ್ರತಿ ಪ್ರಮಾಣಪತ್ರವೂ ಮುಕ್ತಾಯಗೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಕೀಲಿ ಹಾಗೂ ಹೆಸರುಗಳು ಒಂದೇ ಇದ್ದರೂ ಹೊಸ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ಹೊಸ ಡೈಜೆಸ್ಟ್ ಇರುತ್ತದೆ. ನೀಡುವವರ ಅಡಿಯಲ್ಲಿ ನವೀಕರಣವು ಆ ನೀಡುವವರನ್ನು ನಂಬುವ ಸಹಚರರಿಗೆ ಪಾರದರ್ಶಕ; ಪಿನ್ನಿಂಗ್ ಅಡಿಯಲ್ಲಿ ಅದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಿನ್ ಮಾಡುವ ಪ್ರತಿ ಸಹಚರನಿಗೆ ನೋಂದಣಿ ಘಟನೆ.
ಮುಕ್ತಾಯ ದಿನಾಂಕದ ನಂತರವಲ್ಲ, ಮೊದಲೇ ಕ್ರಮವನ್ನು ಯೋಜಿಸಿ. ಹೊಸ ಡೈಜೆಸ್ಟ್ ಅನ್ನು ಅದನ್ನು ಪರಿಶೀಲಿಸುವ ಪಕ್ಷಗಳಿಗೆ ಹಂಚಿ, ಬದಲಾವಣೆಯನ್ನು ಅನ್ವಯಿಸಿ, ಮತ್ತು ನಂತರವೇ ಅಂತ್ಯ ಬಿಂದುವಿನಲ್ಲಿ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬದಲಿಸಿ. ಆ ಕ್ರಮವು ಯಾವ ಪ್ರಮಾಣಪತ್ರ ಚಾಲ್ತಿಯಲ್ಲಿದೆ ಎಂಬುದರಲ್ಲಿ ಎರಡು ಬದಿಗಳು ಭಿನ್ನಾಭಿಪ್ರಾಯಪಡುವ ಕಿಟಕಿಯನ್ನು ಬಿಡುವುದಿಲ್ಲ. ಪಟ್ಟಿಯನ್ನೂ ಪರಿಶೀಲನೆಯಲ್ಲಿರಿಸಿ, ಏಕೆಂದರೆ ಪಿನ್ ಮಾಡಿದ ಪಟ್ಟಿ ತಿಂಗಳುಗಳ ಹಿಂದೆ ನಿವೃತ್ತಗೊಂಡ ಸಾಧನಗಳ ನಮೂದುಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಪ್ರತಿ ಹಳೆಯ ನಮೂದೂ ಅದರ ಕೀಲಿ ಉಳಿದರೆ ಇನ್ನೂ ದೃಢೀಕರಣಗೊಳ್ಳುವ ಗುರುತು, ಆದ್ದರಿಂದ ಒಂದನ್ನು ತೆಗೆಯುವುದು ಸ್ವಚ್ಛತೆಯಲ್ಲ, ಭದ್ರತಾ ಕ್ರಮ.
ನಂಬಿಕೆ ನಕ್ಷೆ ನಿರ್ಧರಿಸದಿರುವುದು
ದೃಢೀಕರಣವು ಒಂದು ಪದರ, ಮತ್ತು ಪಿನ್ ಮಾಡಿದ ನಕ್ಷೆ ವಿಳಾಸ ಪೂಲ್, ತಳ್ಳಲಾದ ಮಾರ್ಗಗಳು, ಮಾರ್ಗದ MTU ಅಥವಾ ಫೈರ್ವಾಲ್ ನೀತಿಯ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಅವು ಪ್ರತ್ಯೇಕ ಸಂರಚನೆ ಮತ್ತು ಪ್ರತ್ಯೇಕ ವೈಫಲ್ಯ ವಿಧಾನಗಳಾಗಿ ಉಳಿಯುತ್ತವೆ. ದೃಢೀಕರಣಗೊಂಡು ಯಾವುದೇ ಸಂಚಾರವನ್ನು ಹಾಯಿಸದ ಸುರಂಗವು ಎಂದೂ ಏಳದ ಸುರಂಗಕ್ಕಿಂತ ಬೇರೆ ತನಿಖೆ.
ನಕ್ಷೆಯೂ ಅಪರಿಮಿತವಾಗಿ ಸ್ಕೇಲ್ ಆಗುವುದಿಲ್ಲ, ಮತ್ತು ದೊಡ್ಡ ನಿಯೋಜನೆಗಳು ನೀಡುವವರ-ಆಧಾರಿತ PKI ಗೆ ಬಂದು ನಿಲ್ಲುತ್ತವೆ. ಆ ಆದ್ಯತೆ ಕ್ರಿಪ್ಟೋಗ್ರಫಿ ಬಗ್ಗೆ ಅಲ್ಲ, ಕಾರ್ಯಾಚರಣೆ ಬಗ್ಗೆ, ಏಕೆಂದರೆ ಕಳೆ ಬೆಳೆದಂತೆ ಪ್ರತಿ ಸಹಚರನಲ್ಲಿ ಪಟ್ಟಿ ಸಂಪಾದಿಸುವುದಕ್ಕಿಂತ ಒಂದು ಪ್ರಾಧಿಕಾರದ ಮೂಲಕ ಗುರುತುಗಳನ್ನು ಸೇರಿಸುವುದು ಮತ್ತು ನಿವೃತ್ತಗೊಳಿಸುವುದು ಅಗ್ಗ. ಕ್ಲೈಂಟ್ ಅನುಷ್ಠಾನವು ಈ ಆಯ್ಕೆಯನ್ನು ಬೆಂಬಲಿಸದಿದ್ದರೆ, ಉತ್ತರ ಆ ಕ್ಲೈಂಟ್ ದಾಖಲಿಸುವ ಹೊಂದಿಕೊಳ್ಳುವ ನಂಬಿಕೆ ಮಾದರಿ, ಅಥವಾ ಬೆಂಬಲಿತ ಬದಲಿ. ಪರಿಶೀಲನಾ ಎಚ್ಚರಿಕೆಯನ್ನು ಒತ್ತಡಿಸುವುದು ಆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುವುದಿಲ್ಲ, ಮತ್ತು ವಿನ್ಯಾಸದ ಇಡೀ ಮೌಲ್ಯ ಪರಿಶೀಲನೆ ಇನ್ನೂ ನಡೆಯುತ್ತದೆ ಎಂಬುದೇ.