ಸಮಸ್ಯೆ: ಕಣ್ಣುಮುಚ್ಚಿದ ನಂಬಿಕೆ
ನೀವು ಬೇಬಿ ಮಾನಿಟರ್ ಆ್ಯಪ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದಾಗ, ನಿಮ್ಮ ಮಗುವಿನ ನರ್ಸರಿಯಂತಹ ಅತ್ಯಂತ ಖಾಸಗಿ ಜಾಗಕ್ಕೆ ಅದಕ್ಕೆ ಪ್ರವೇಶ ನೀಡುತ್ತೀರಿ. ಆ್ಯಪ್ ಕೇಳುತ್ತದೆ, ಕೆಲವೊಮ್ಮೆ ನೋಡಲೂಬಹುದು. ಆದರೆ ಹಿಂದೆ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದು ಪೋಷಕರಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಕಾಣುವುದಿಲ್ಲ: ಸ್ಟ್ರೀಮ್ಗಳು ಮೂರನೇ ಪಕ್ಷದ ಸರ್ವರ್ಗಳ ಮೂಲಕ ಹೋಗುತ್ತವೆಯೇ, ಬಳಕೆಯ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತಾರೆಯೇ, ತಾಂತ್ರಿಕವಾಗಿ ಯಾರು ಯಾವುದನ್ನಾದರೂ ಪ್ರವೇಶಿಸಬಹುದು?
ನಿಜವಾದ ಉತ್ತರವೆಂದರೆ: ಅನೇಕ ಆ್ಯಪ್ಗಳಲ್ಲಿ ನಿಮಗೆ ತಿಳಿಯುವುದಿಲ್ಲ. ಕೋಡ್ ಮುಚ್ಚಲ್ಪಟ್ಟಿರುತ್ತದೆ ಮತ್ತು ವಿನ್ಯಾಸವು ಕೇವಲ ಹೇಳಿಕೆಯಾಗಿಯೇ ಉಳಿಯುತ್ತದೆ. ಕೊನೆಯಲ್ಲಿ, ಪೂರೈಕೆದಾರರನ್ನು ನಂಬುವಂತೆ ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ.
ಮುಚ್ಚಿದ ಕೋಡ್, ತೆರೆದ ದೌರ್ಬಲ್ಯಗಳು
ಇತ್ತೀಚಿನ ವರ್ಷಗಳಲ್ಲಿ ಹ್ಯಾಕ್ ಆದ ಬೇಬಿ ಮಾನಿಟರ್ಗಳ ಬಗ್ಗೆ ಸಾಕಷ್ಟು ವರದಿಗಳಿವೆ. ಅಪರಿಚಿತರು ಕೇಳಿಸಿಕೊಳ್ಳಲು, ಕ್ಯಾಮೆರಾಗಳನ್ನು ಕದಲಿಸಲು ಅಥವಾ ಸ್ಪೀಕರ್ಗಳ ಮೂಲಕ ಮಾತನಾಡಲು ಸಾಧ್ಯವಾಯಿತು. ಬಹುತೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇವು ವಿಚಿತ್ರ ದಾಳಿಗಳಲ್ಲ; ಎನ್ಕ್ರಿಪ್ಷನ್ ಇಲ್ಲದ ಸಂಪರ್ಕಗಳು, ಡೀಫಾಲ್ಟ್ ಪಾಸ್ವರ್ಡ್ಗಳು, ದೃಢೀಕರಣದ ಕೊರತೆಯಂತಹ ಗಂಭೀರ ವೈಫಲ್ಯಗಳಾಗಿದ್ದವು.
ಸ್ವಾಮ್ಯದ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ, ಹೊರಗಿನವರಿಗೆ ಈ ದೌರ್ಬಲ್ಯಗಳು ಏನಾದರೂ ಆದ ನಂತರವೇ ಗೋಚರಿಸುತ್ತವೆ. ಭದ್ರತಾ ಸಂಶೋಧಕರು, ಸ್ವತಂತ್ರ ಡೆವಲಪರ್ಗಳು ಮತ್ತು ಪೋಷಕರು ಸಿದ್ಧವಾದ ಉತ್ಪನ್ನವನ್ನು ಹೊರಗಿನಿಂದ ನೋಡುತ್ತಾರೆ. ನರ್ಸರಿಯಲ್ಲಿರುವ ಸಾಧನಕ್ಕೆ ಇದು ದುರ್ಬಲ ಮಾದರಿ.
ಭದ್ರತಾ ತತ್ವವಾಗಿ ಪಾರದರ್ಶಕತೆ
ಮಾಹಿತಿ ಭದ್ರತೆಯಲ್ಲಿ ಹಳೆಯದಾದ, ಉಪಯುಕ್ತ ನಿಯಮವೊಂದು ಇದೆ: Kerckhoffs ತತ್ವ. ಭದ್ರತೆಯು ವಿನ್ಯಾಸ ರಹಸ್ಯವಾಗಿರುವುದರ ಮೇಲೆ ಅವಲಂಬಿಸಬಾರದು. ಅದನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸಲಾಗಿದೆ ಎಂದು ಯಾರಿಗಾದರೂ ತಿಳಿದಿದ್ದರೂ ವ್ಯವಸ್ಥೆ ಸುರಕ್ಷಿತವಾಗಿರಬೇಕು.
ಬಹಿರಂಗವಾಗಿ ದಾಖಲಿಸಲಾದ ಕೋಡ್ ಮಾತ್ರದಿಂದ ಸಾಫ್ಟ್ವೇರ್ ಸುರಕ್ಷಿತವಾಗುವುದಿಲ್ಲ. ಆದರೆ ಅದರ ಹೇಳಿಕೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಕ್ಷೇತ್ರವನ್ನು ತಿಳಿದವರು ಮಾರ್ಕೆಟಿಂಗ್ ಬರಹ ಓದುವುದಕ್ಕಿಂತ ಡೇಟಾ ಹರಿವು, ಕೀ ಉತ್ಪಾದನೆ ಮತ್ತು ನಿಯಮಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.
Timmyಯ ವಿಧಾನ: ಪ್ರತ್ಯೇಕ ಭದ್ರತಾ ಮೂಲ ವ್ಯವಸ್ಥೆ
Timmyಯಲ್ಲಿ, ನಿಜವಾಗಿಯೂ ಭದ್ರತೆಗೆ ಮಹತ್ವವಾದ ಭಾಗಗಳು ಯಾವುವು ಎಂಬುದನ್ನು ಈಗ ನಾನು ಬಹಳ ಸ್ಪಷ್ಟವಾಗಿ ಬೇರ್ಪಡಿಸುತ್ತೇನೆ. UIಯ ಪ್ರತಿಯೊಂದು ಸಾಲೂ ಉತ್ಪನ್ನವು ನಂಬಿಕೆಗೆ ಅರ್ಹವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವುದಿಲ್ಲ. ಮುಖ್ಯವಾದವು ಬ್ಯಾಕ್ಎಂಡ್ ಲಾಜಿಕ್, ಸಿಗ್ನಲಿಂಗ್ ಒಪ್ಪಂದಗಳು, ಪೇರಿಂಗ್ ಕ್ರಿಪ್ಟೋಗ್ರಫಿ ಮತ್ತು ಯಾವ ಡೇಟಾ ಸರ್ವರ್ಗೆ ತಲುಪುತ್ತದೆ ಎಂಬ ಪ್ರಶ್ನೆ.
ಆದ್ದರಿಂದ ಭದ್ರತಾ ಮೂಲ ವ್ಯವಸ್ಥೆ ಈಗ ಸಾರ್ವಜನಿಕ baby-monitor-timmy-core ರೆಪೊಸಿಟರಿಯಲ್ಲಿ. ಸಂಪೂರ್ಣ ಆ್ಯಪ್ ಕೋಡ್ ಈಗ ಸಾರ್ವಜನಿಕವಾಗಿಲ್ಲ. ಭದ್ರತೆಗೆ ಮುಖ್ಯವಾದ ಘಟಕಗಳನ್ನು UI ಮತ್ತು ಉತ್ಪನ್ನದ ಲಾಜಿಕ್ನಿಂದ ಹೊರತೆಗೆದು, ಅವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ದಾಖಲಿಸಿ ಪರಿಶೀಲಿಸಬಹುದಾಗಿದೆ.
ಇದರ ಅರ್ಥ ನಿಖರವಾಗಿ ಏನು?
- ಸ್ಪಷ್ಟ ಗಡಿಗಳು: ಭದ್ರತಾ ಘಟಕಗಳನ್ನು UI ಮತ್ತು ಉತ್ಪನ್ನದ ಲಾಜಿಕ್ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ.
- ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾ ಹರಿವುಗಳು: ಪೇರಿಂಗ್, ಸಿಗ್ನಲಿಂಗ್ ಮತ್ತು ಬ್ಯಾಕ್ಎಂಡ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ದಾಖಲಿಸಬಹುದು.
- ಮರೆಮಾಚಿದ ಟ್ರ್ಯಾಕರ್ಗಳಿಲ್ಲ: ಮುಖ್ಯ ಮಾರ್ಗಗಳಲ್ಲಿ ತಾಂತ್ರಿಕವಾಗಿ ಅಗತ್ಯವಿರುವುದಷ್ಟೇ ಇರುತ್ತದೆ.
- ದೀರ್ಘಾವಧಿಯ ನಿರ್ವಹಣಾ ಸುಲಭತೆ: ಅಸಂಘಟಿತ ಏಕೈಕ ದೊಡ್ಡ ಕೋಡ್ಬೇಸ್ಗಿಂತ ಪ್ರತ್ಯೇಕ ಮೂಲ ವ್ಯವಸ್ಥೆಯನ್ನು ಪರಿಶೀಲಿಸುವುದು ಸುಲಭ.
ತೀರ್ಮಾನ: ಪೋಷಕರು ಪಾರದರ್ಶಕತೆಗೆ ಅರ್ಹರು
ಒಂದು ಆ್ಯಪ್ಗೆ ನರ್ಸರಿಗೆ ಪ್ರವೇಶವಿದ್ದರೆ, ಮುಖ್ಯ ಪ್ರಶ್ನೆಗಳಿಗೆ ಅದು ಸ್ಪಷ್ಟ ಉತ್ತರ ನೀಡಬೇಕು: ಯಾವ ಡೇಟಾ ಸೃಷ್ಟಿಯಾಗುತ್ತದೆ? ಅದು ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ? ಅದನ್ನು ಯಾರು ಓದಬಹುದು? ಪೋಷಕರು ಫುಟರ್ನಲ್ಲಿರುವ ಗೌಪ್ಯತಾ ಬ್ಯಾಡ್ಜ್ಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಅರ್ಹರು.
Baby Monitor Timmy ಒಳ್ಳೆಯ ಉತ್ಪನ್ನ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದ ಭದ್ರತೆ ಒಟ್ಟಿಗೆ ಇರಬಹುದು ಎಂದು ತೋರಿಸಬೇಕು. ನನಗೆ ಇದರ ಅರ್ಥ ಆ್ಯಪ್ನ ಪ್ರತಿಯೊಂದು ಮೂಲೆಯನ್ನೂ ಸಾರ್ವಜನಿಕಗೊಳಿಸುವುದಲ್ಲ. ಪೇರಿಂಗ್, ಸಿಗ್ನಲಿಂಗ್, ಬ್ಯಾಕ್ಎಂಡ್ ಪ್ರವೇಶ ಮತ್ತು ಡೇಟಾ ಹರಿವುಗಳನ್ನು ನಿರ್ಧರಿಸುವ ಭಾಗಗಳನ್ನು ತೆರೆಯುವುದೇ ಇದರ ಅರ್ಥ.